tag:blogger.com,1999:blog-38696042600614167882024-03-05T21:18:31.769-08:00Ben Li-Sauerwine's NotebookFormerly the blog of Ben SauerwineBen Li-Sauerwinehttp://www.blogger.com/profile/00531994213807228431noreply@blogger.comBlogger88125tag:blogger.com,1999:blog-3869604260061416788.post-67020290056243796122018-12-31T12:54:00.000-08:002019-01-01T23:28:47.718-08:00What's Happening?<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://4.bp.blogspot.com/-vnkxNCyRwhw/XCpjNgPH4CI/AAAAAAAA4_A/Wn1592sBGpkycuOKhQqKtcSP0qx4ub_aQCLcBGAs/s1600/3b29c751-1263-48d1-84b5-cd4459ffc5b1.jpeg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1173" data-original-width="1173" height="200" src="https://4.bp.blogspot.com/-vnkxNCyRwhw/XCpjNgPH4CI/AAAAAAAA4_A/Wn1592sBGpkycuOKhQqKtcSP0qx4ub_aQCLcBGAs/s200/3b29c751-1263-48d1-84b5-cd4459ffc5b1.jpeg" width="200" /></a></div>
After over a year of radio silence since Cora's birth, I thought it would be appropriate to put an update here before the end of 2018. You might think, from my propensity to post a lot of interesting small projects, that I've stopped doing anything of note at all and spent all the time with the little muffin pictured to the left. While being a father is hard, it's nowhere near as hard as a PhD program and with my extra time I've been focusing my time on a smaller number of much larger projects, one of which I can report on now.<br />
<br />
One of those projects is a startup called <a href="http://www.stratusmedicine.com/">Stratus Medicine</a>, which I co-founded with some former colleagues from Sage Bionetworks. At Sage Bionetworks, there was recognition that the medical field has a lot of data that remains hidden away from the rest of the word--for legal reasons, or for compatibility reasons, or just for the value of the data set. Data that might be used to save lives is stored in EMRs or labs and isn't even easily accessible to people that should have access to it. The three of us, Dave, Erich and myself, set off to solve that problem. Updates on Stratus Medicine will be provided on the company website, and I won't say any more here lest I accidentally divulge sensitive information.<br />
<br />
Aside from work, we moved to Columbus in the summer for Simiao's <a href="https://wexnermedical.osu.edu/departments/emergency-medicine/education/residencies/em-residency">first job out of residency</a>. Somehow, I never would have guessed that Columbus is the 15th-largest metropolitan area in the US. I definitely miss things about Seattle and Chicago, but Columbus has a lot going for it too. I'd say that the biggest problem with it is that it's completely surrounded by Ohio. A lot of our non-work time has been occupied by renovating the house, which is still a work in progress. I took a few before and after pictures just now. Apologies for the clutter--like I said, we're still working on the renovations, my brother in law is visiting so we set up a table in the office for him, and dinner was in progress when I took these. A lot of the progress has been stuff you don't see: we had the entire house re-wired, we added first-floor laundry and a new bathroom, the ductwork was all re-done with smart dampers, inadequate ceiling beams were replaced, a lot of the plumbing was re-done, the whole house was wired with CAT6, drainage was added in the basement, and a foundation crack fixed.<br />
<br />
The master bedroom:<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjr6pR9iKE-msOOACdWpwFVz2noz7IdnBPFyuBnsniLRy4EWMRfni7bJWJcXt9Q5YnZIBIL8iICzDEUMkIyB8Fm4o5cog6IhTc-igUErxDWvhkke_abXM8JeZn48XxlEU5mUCsg-gH4tCg/s1600/IS2b9pigrn04ho0000000000.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="682" data-original-width="1024" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjr6pR9iKE-msOOACdWpwFVz2noz7IdnBPFyuBnsniLRy4EWMRfni7bJWJcXt9Q5YnZIBIL8iICzDEUMkIyB8Fm4o5cog6IhTc-igUErxDWvhkke_abXM8JeZn48XxlEU5mUCsg-gH4tCg/s320/IS2b9pigrn04ho0000000000.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Before</td></tr>
</tbody></table>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3cCyMhl_Pd_ioKDyWNtdPmKV0zxzPGUbXxrFbMbIIVqOB6YYuzNLJfbywpTgZorNmzotdO7g3q-Fqx3xOM4FglaBJHyBmDWzLm_PU1lyAUAWnyBR4DBtAHL0dAZMkCGkYR1BChu0gh4M/s1600/DSC03804.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto; text-align: center;"><img border="0" data-original-height="1069" data-original-width="1600" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3cCyMhl_Pd_ioKDyWNtdPmKV0zxzPGUbXxrFbMbIIVqOB6YYuzNLJfbywpTgZorNmzotdO7g3q-Fqx3xOM4FglaBJHyBmDWzLm_PU1lyAUAWnyBR4DBtAHL0dAZMkCGkYR1BChu0gh4M/s320/DSC03804.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">After</td></tr>
</tbody></table>
<br />
<br />
<div>
The living room:</div>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://2.bp.blogspot.com/-rm6fhohV9D8/XCp8WoGUJpI/AAAAAAAA4_k/AZtwNcXowJYOREi2zCXthxNzKy7TR2BUACLcBGAs/s1600/ISmayfailkbyki1000000000.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="682" data-original-width="1024" height="213" src="https://2.bp.blogspot.com/-rm6fhohV9D8/XCp8WoGUJpI/AAAAAAAA4_k/AZtwNcXowJYOREi2zCXthxNzKy7TR2BUACLcBGAs/s320/ISmayfailkbyki1000000000.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Before</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://1.bp.blogspot.com/-PJRkaPLh6HI/XCp8cluyu_I/AAAAAAAA4_o/Utqa2h41CUAaTWbJKCW1gsK3RJ5Ji5ELQCLcBGAs/s1600/DSC03808.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto; text-align: center;"><img border="0" data-original-height="1069" data-original-width="1600" height="213" src="https://1.bp.blogspot.com/-PJRkaPLh6HI/XCp8cluyu_I/AAAAAAAA4_o/Utqa2h41CUAaTWbJKCW1gsK3RJ5Ji5ELQCLcBGAs/s320/DSC03808.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">After</td></tr>
</tbody></table>
<br />
<div>
</div>
<div>
The kitchen:</div>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://3.bp.blogspot.com/-QvEDtl-jcE0/XCp8uWS3IXI/AAAAAAAA4_0/m8l6IRCJJmUOUyHmAj0D8Mck9UWRbY3aACLcBGAs/s1600/ISi7tid3ge11ao0000000000.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="682" data-original-width="1024" height="213" src="https://3.bp.blogspot.com/-QvEDtl-jcE0/XCp8uWS3IXI/AAAAAAAA4_0/m8l6IRCJJmUOUyHmAj0D8Mck9UWRbY3aACLcBGAs/s320/ISi7tid3ge11ao0000000000.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Before</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://2.bp.blogspot.com/-H9NoPqxWBWw/XCp81MQ6qiI/AAAAAAAA4_4/nLoY4ae2YrooEk8JcQa30yoXMWQxUFbzgCLcBGAs/s1600/DSC03807.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1069" data-original-width="1600" height="213" src="https://2.bp.blogspot.com/-H9NoPqxWBWw/XCp81MQ6qiI/AAAAAAAA4_4/nLoY4ae2YrooEk8JcQa30yoXMWQxUFbzgCLcBGAs/s320/DSC03807.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">After</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://4.bp.blogspot.com/-Pw717PZD2Ms/XCp9A3VpQ2I/AAAAAAAA5AA/Jkn38TI2i0I24lTcUO-EECaoiwJJ8ZskQCLcBGAs/s1600/ISmi8dthjx2rbp0000000000.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto; text-align: center;"><img border="0" data-original-height="682" data-original-width="1024" height="213" src="https://4.bp.blogspot.com/-Pw717PZD2Ms/XCp9A3VpQ2I/AAAAAAAA5AA/Jkn38TI2i0I24lTcUO-EECaoiwJJ8ZskQCLcBGAs/s320/ISmi8dthjx2rbp0000000000.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Before</td></tr>
</tbody></table>
<br />
<div>
</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://1.bp.blogspot.com/-3mteenF1u6U/XCp9K6ZsPzI/AAAAAAAA5AI/LET0rw5Ztqw5xkQsxtwiQZgyCqPSrD8CwCLcBGAs/s1600/DSC03806.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1069" data-original-width="1600" height="213" src="https://1.bp.blogspot.com/-3mteenF1u6U/XCp9K6ZsPzI/AAAAAAAA5AI/LET0rw5Ztqw5xkQsxtwiQZgyCqPSrD8CwCLcBGAs/s320/DSC03806.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">After</td></tr>
</tbody></table>
<br />
The office:<br />
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://2.bp.blogspot.com/-zwgUR8pJxbs/XCp9U_cSMKI/AAAAAAAA5AQ/cz_3HwXToxITTUVadHcgicKtI-KK6tncgCLcBGAs/s1600/ISyj125t9lz3go0000000000.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="682" data-original-width="1024" height="213" src="https://2.bp.blogspot.com/-zwgUR8pJxbs/XCp9U_cSMKI/AAAAAAAA5AQ/cz_3HwXToxITTUVadHcgicKtI-KK6tncgCLcBGAs/s320/ISyj125t9lz3go0000000000.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Before</td></tr>
</tbody></table>
<div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiadQWvmG5HpQwLUrizJtEzqyRlnNtR-ydllPiGfN6qQ64RxN5bdl9ScbCLrRmN01z_hLjuGxL-o1bqg2LZTeWide6YKLmbOQ9z-H-_rWOiHcHdUKovYvRlXhqpajg3hflQKnWa3HfTcNo/s1600/DSC03809.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto; text-align: center;"><img border="0" data-original-height="1069" data-original-width="1600" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiadQWvmG5HpQwLUrizJtEzqyRlnNtR-ydllPiGfN6qQ64RxN5bdl9ScbCLrRmN01z_hLjuGxL-o1bqg2LZTeWide6YKLmbOQ9z-H-_rWOiHcHdUKovYvRlXhqpajg3hflQKnWa3HfTcNo/s320/DSC03809.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">After</td></tr>
</tbody></table>
<br />
<div>
</div>
</div>
<div>
The basement:</div>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://1.bp.blogspot.com/-PTKldNfX5zo/XCp-wSRuZiI/AAAAAAAA5As/iw0tjUxDOrgYnJy_biA1DMRkJ0vy5EoZwCLcBGAs/s1600/ISa1r6vwb6t3ao0000000000.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="682" data-original-width="1024" height="213" src="https://1.bp.blogspot.com/-PTKldNfX5zo/XCp-wSRuZiI/AAAAAAAA5As/iw0tjUxDOrgYnJy_biA1DMRkJ0vy5EoZwCLcBGAs/s320/ISa1r6vwb6t3ao0000000000.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Before</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZPOJ0c0mhSd3b84utVB5dJrQroGomuzWU3nEhewVLg7K4v1h45H90l74TSggkERlxzlZnI20yR1UXTdzWnMXSnZcUzt4spIHAItE1Si7zqmtrjPFR2sjnldKjcFxheTXUD4xmfKGvz5o/s1600/DSC03810.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1069" data-original-width="1600" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZPOJ0c0mhSd3b84utVB5dJrQroGomuzWU3nEhewVLg7K4v1h45H90l74TSggkERlxzlZnI20yR1UXTdzWnMXSnZcUzt4spIHAItE1Si7zqmtrjPFR2sjnldKjcFxheTXUD4xmfKGvz5o/s320/DSC03810.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">After</td></tr>
</tbody></table>
<br />
Finally, as a peace offering for so few updates, I have some great unlisted videos of Cora on YouTube. We <a href="https://www.youtube.com/watch?v=V-31255WnSc">started a jug band</a>, we <a href="https://www.youtube.com/watch?v=4rFghDLQpRA">tried pop rocks for the first time</a>, we <a href="https://www.youtube.com/watch?v=JjtUpqZRiyg">stood strong against the leaf blower</a>, we <a href="https://www.youtube.com/watch?v=FJV_Ee12tG8">tried white truffle for the first time</a>, we <a href="https://www.youtube.com/watch?v=hI0PSjDmQt4">love chocolate buttons</a>, and we <a href="https://www.youtube.com/watch?v=yeWD5x7tqKM">learned to creep</a>.<br />
<div>
<br /></div>
<div>
Hope to update you with some exciting news soon! Thanks for checking in, and happy 2019!<br />
<div>
<br /></div>
</div>
Ben Li-Sauerwinehttp://www.blogger.com/profile/00531994213807228431noreply@blogger.com0tag:blogger.com,1999:blog-3869604260061416788.post-48609662657102742912017-09-05T11:25:00.003-07:002017-09-05T11:27:32.035-07:00Welcome, CoraOur daughter Cora was born on Thursday, the best day of my entire life.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://4.bp.blogspot.com/-aiTMN0uc-VU/Wa7r_cY9wWI/AAAAAAAAjow/s6X_Jx9VvZUA6KXqIMicvdohqO60jXDGgCKgBGAs/s1600/IMG-20170903-WA0005.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="480" src="https://4.bp.blogspot.com/-aiTMN0uc-VU/Wa7r_cY9wWI/AAAAAAAAjow/s6X_Jx9VvZUA6KXqIMicvdohqO60jXDGgCKgBGAs/s640/IMG-20170903-WA0005.jpg" width="640" /></a></div>
<br />
That's all for now.Ben Li-Sauerwinehttp://www.blogger.com/profile/00531994213807228431noreply@blogger.com0tag:blogger.com,1999:blog-3869604260061416788.post-6039494344923157502017-03-20T02:15:00.003-07:002017-03-20T02:15:44.776-07:00Maui, Photography, Biology, Poetry<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://4.bp.blogspot.com/-PPbTFISDh7U/WM-V_9R33NI/AAAAAAAAeHk/ZXA1pM9RIY4TWejq8cblVTbSlo-zvY2EACLcB/s1600/DSC02377-cropped.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="200" src="https://4.bp.blogspot.com/-PPbTFISDh7U/WM-V_9R33NI/AAAAAAAAeHk/ZXA1pM9RIY4TWejq8cblVTbSlo-zvY2EACLcB/s200/DSC02377-cropped.jpg" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The Aristocrats</td></tr>
</tbody></table>
Simiao and I are on vacation in Maui, and I wanted to share a photo that has quickly become one of my favorite photos that I've ever taken.<br />
<br />
I'm not a very good photographer. My equipment is nothing special, I don't have the most artistic eye, and I lack the means to go exotic places that few have ever seen. I always think it's odd that when people go on vacation, you see certain scenic areas that people swarm on and take photos of. This makes sense if there are unusual conditions, if the photographer is using advanced equipment, or if the photographer is taking photos of friends and family. In many cases, though, people are simply holding up an iPhone and snapping a picture. In this case, why wouldn't one just Google an image of the location by a professional photographer or buy a postcard? Better photographers with better equipment have probably waited out better conditions for the perfect photo of the canonical scenic vistas, so if you're not willing to invest that kind of time and money in a postcard-perfect shot, why bother? This is certainly the case for the lovely scenery at the resorts at Wailea where we're staying, and this is why I tend to think small when I have my camera out on vacation. I like to look for a subject that is uniquely mine rather than something that's been photographed a million times before by better artists than myself. With that in mind, today when we went for a stroll I brought my macro lens. It turned out that I photographed more than I bargained for.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://2.bp.blogspot.com/-rFjJnucZ1Lw/WM-YTncUKgI/AAAAAAAAeHw/BTfZ6MRbqnQjBeDzDIyRW_BkqUXI6QmGgCLcB/s1600/DSC02363.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="426" src="https://2.bp.blogspot.com/-rFjJnucZ1Lw/WM-YTncUKgI/AAAAAAAAeHw/BTfZ6MRbqnQjBeDzDIyRW_BkqUXI6QmGgCLcB/s640/DSC02363.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The invader and the thief</td></tr>
</tbody></table>
<br />
On our walk, I spotted a member of one of my favorite genus of spiders, <a href="https://en.wikipedia.org/wiki/Argiope_(spider)">Argiope</a>. These spiders have a proclivity to draw unusual patterns called stabilimenta on their webs which are believed to play a role in drawing prey to their webs and perhaps in confusing parasitic wasps that might like to feed the spider to their young. The breeze was strong and the web was bouncing, but using a flash, a slightly higher F-stop and some patience I managed to get a photo where the web looked crisp and my subject was in focus.<br />
<br />
When I researched the species of spider later, I learned that this girl is an <a href="https://en.wikipedia.org/wiki/Argiope_appensa">argiope appensa</a>, an introduced species in Hawaii. One thing I noticed only after looking at the photos at home, though, was the tiny fly sitting on the spider's meal. In this particular photo, the fly was kind enough to center itself on the cocooned meal of the spider, which adds to the pleasing composition of my photo.<br />
<br />
I had one final question, though: what business did this tiny fly have on the spider's meal? Was it a parasite on the spider, a kleptoparasite on the meal, or just a coincidence? After some research, I identified the fly as <a href="http://milichiidae.info/taxonomy/term/473/descriptions">milichiella lacteipennis</a>. Indeed, milichella lacteipennis is a kleptoparasite, and in the picture above it is drinking the spider's meal right under its nose!<br />
<br />
I found this scenario poetic after listening to <a href="https://www.thisamericanlife.org/radio-archives/episode/611/vague-and-confused?act=1#play">This American Life #611, Act One</a> about the Robinson family's administration of native Hawaiians on <a href="https://en.wikipedia.org/wiki/Niihau">Niihau</a>. The island is entirely owned by the Robinsons who administrate the native Hawaiians on the island in a largely autocratic way since the natives live there at their luxury. Their manner of rule as described in This American Life felt immoral at best and exploitative at worst, and I can only hope that someday the native Hawaiian residents are able to take back what is theirs from the invaders.Ben Li-Sauerwinehttp://www.blogger.com/profile/00531994213807228431noreply@blogger.com0tag:blogger.com,1999:blog-3869604260061416788.post-75978010971604109812016-12-31T16:01:00.002-08:002017-01-01T21:43:58.880-08:002016 Vacation Roundup<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhn4AVbfW-e6ICAdeBp4H33bj6EWsdJYdybwyyucaY74UsdnTyb5oyFtQcio6mwNm2yoG3cqTYcMHUgaE7_1WLjbUYz7hvC4Pi0_JCsNSp8k5ce-4uMzvIO5GWskDqjbidxcfJlPXK9vS0/s1600/DSC01778-cropped.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhn4AVbfW-e6ICAdeBp4H33bj6EWsdJYdybwyyucaY74UsdnTyb5oyFtQcio6mwNm2yoG3cqTYcMHUgaE7_1WLjbUYz7hvC4Pi0_JCsNSp8k5ce-4uMzvIO5GWskDqjbidxcfJlPXK9vS0/s200/DSC01778-cropped.jpg" width="200" /></a></div>
With 2016 being almost over, I thought it would be a good idea to finally get around to posting pictures from our last three vacations to Scotland, Yosemite, and Clearwater which I hadn't bothered to do up until now. I've been really busy with a few secret projects which I can reveal soon.<br />
<br />
Until then, check out the highlight reel from our most recent 2016 vacations, and happy new year!<br />
<br />
<br />
<br />
<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://3.bp.blogspot.com/-UPlM2Ucg9S0/WGg9SCLVbHI/AAAAAAAAcL0/junsn6AhV4AdiaGej4Nsw4UkEJCLWxADwCLcB/s1600/DSC01300.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="640" src="https://3.bp.blogspot.com/-UPlM2Ucg9S0/WGg9SCLVbHI/AAAAAAAAcL0/junsn6AhV4AdiaGej4Nsw4UkEJCLWxADwCLcB/s640/DSC01300.jpg" width="425" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Theo came with us to Scotland! On our first day, we found these awesome steps in Edinburgh.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://4.bp.blogspot.com/-y2o25el4jeI/WGg9dybds6I/AAAAAAAAcL4/uKm1iaRPhB0roQQaMocwSbg0bSEBWzF2QCLcB/s1600/DSC01334.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="426" src="https://4.bp.blogspot.com/-y2o25el4jeI/WGg9dybds6I/AAAAAAAAcL4/uKm1iaRPhB0roQQaMocwSbg0bSEBWzF2QCLcB/s640/DSC01334.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">A sheep dog demonstration at Leault Working Sheepdogs.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://1.bp.blogspot.com/-QQ02j2VJxvU/WGg9oy4f-TI/AAAAAAAAcL8/TBvlhHDIC60KdqedLXFE3Q-MCPuiu6kFQCLcB/s1600/DSC01359.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="640" src="https://1.bp.blogspot.com/-QQ02j2VJxvU/WGg9oy4f-TI/AAAAAAAAcL8/TBvlhHDIC60KdqedLXFE3Q-MCPuiu6kFQCLcB/s640/DSC01359.jpg" width="427" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><br /></td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://2.bp.blogspot.com/-uKY3ohNKbmE/WGg90Qn1yVI/AAAAAAAAcMA/z6DTYv_qurwkkn9-qtVRDdpAYFTYY6QOgCEw/s1600/DSC01366.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="426" src="https://2.bp.blogspot.com/-uKY3ohNKbmE/WGg90Qn1yVI/AAAAAAAAcMA/z6DTYv_qurwkkn9-qtVRDdpAYFTYY6QOgCEw/s640/DSC01366.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">We stayed at a little mill house outside Elgin in Scotland, and this graceful old stone bridge sat just outside our back yard.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://3.bp.blogspot.com/-ZgbF6AwpvUA/WGg-DX7arPI/AAAAAAAAcMI/_PAET9ikmqwiZrMbNOqBVvrYWGm8o40wgCLcB/s1600/DSC01440.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="426" src="https://3.bp.blogspot.com/-ZgbF6AwpvUA/WGg-DX7arPI/AAAAAAAAcMI/_PAET9ikmqwiZrMbNOqBVvrYWGm8o40wgCLcB/s640/DSC01440.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Pot stills at Glen Grant distillery.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgT3yJyOrH7YKRtipxaZEFBfOsxBanyudsSYdd_rjzaI9Fl5JPgoPvvn58Abr79sU1eQKMFmPcQ4V7CBwdGnA2QAZKouUZOBmIf-YRQDZFQpOGhAO7DplWdSjr20o2GsJF16aem-5Co61c/s1600/DSC01425.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgT3yJyOrH7YKRtipxaZEFBfOsxBanyudsSYdd_rjzaI9Fl5JPgoPvvn58Abr79sU1eQKMFmPcQ4V7CBwdGnA2QAZKouUZOBmIf-YRQDZFQpOGhAO7DplWdSjr20o2GsJF16aem-5Co61c/s640/DSC01425.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The view from one of the murder-holes at <a href="https://en.wikipedia.org/wiki/Balvenie_Castle">Balvenie Castle</a>.</td></tr>
</tbody></table>
<a href="https://1.bp.blogspot.com/-7tWQQNyxtHQ/WGg-Kn4v09I/AAAAAAAAcMM/7qp2mF_ZvMoRkaHByaDkWny7bfKQRZ_QACLcB/s1600/DSC01480.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a>
<br />
<br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3dfEykTscPW3B1eE-1NkGQA5lMG3b-ioQ0tTVYPyWjx4GsTjm5vrLsdEg6NoR73wIl4XoAedSry-yRqc6iaF97U29RbFvzVYh2Yzj1FDM6nUcKmpjQlaa9nAQMIkpsAaNdyzhEJ7jeuQ/s1600/DSC01764.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3dfEykTscPW3B1eE-1NkGQA5lMG3b-ioQ0tTVYPyWjx4GsTjm5vrLsdEg6NoR73wIl4XoAedSry-yRqc6iaF97U29RbFvzVYh2Yzj1FDM6nUcKmpjQlaa9nAQMIkpsAaNdyzhEJ7jeuQ/s640/DSC01764.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Having fun with my neutral-density filter at Lower Yosemite Falls.</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-mcl8EADRGqg/WGg-Pih5M1I/AAAAAAAAcMQ/67CTAegS8TY6ElJbnAfYfNLkNs2mTzqhQCLcB/s1600/DSC01496.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a><br /></div>
<a href="https://1.bp.blogspot.com/-mcl8EADRGqg/WGg-Pih5M1I/AAAAAAAAcMQ/67CTAegS8TY6ElJbnAfYfNLkNs2mTzqhQCLcB/s1600/DSC01496.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a><br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://3.bp.blogspot.com/-mn49jn3vAwQ/WGg-VSdHBoI/AAAAAAAAcMU/ipf59T4BmDwHuy30AyyNv9XazTa7ByFkgCLcB/s1600/DSC01522.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="640" src="https://3.bp.blogspot.com/-mn49jn3vAwQ/WGg-VSdHBoI/AAAAAAAAcMU/ipf59T4BmDwHuy30AyyNv9XazTa7ByFkgCLcB/s640/DSC01522.jpg" width="426" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">A <a href="https://en.wikipedia.org/wiki/Drosera_anglica">great sundew</a> at <a href="https://en.wikipedia.org/wiki/Loch_Cluanie">Loch Cluanie</a>, Scotland. Unfortunately, I didn't own a macro lens yet! I would have loved to get some close-ups of the fascinating detail of the leaves.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://2.bp.blogspot.com/--XryVFDr0ug/WGg-aJNeCzI/AAAAAAAAcMY/wX18I_FPHZ0qYUVBqmPG6DQwaPVcTJ-ZQCLcB/s1600/DSC01533.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="426" src="https://2.bp.blogspot.com/--XryVFDr0ug/WGg-aJNeCzI/AAAAAAAAcMY/wX18I_FPHZ0qYUVBqmPG6DQwaPVcTJ-ZQCLcB/s640/DSC01533.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Simiao and Theo stand by a stream at Loch Cluanie.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://1.bp.blogspot.com/-j8ZvE31-Gmw/WGg-eg1zdSI/AAAAAAAAcMc/knrXzWeOmIcDXpS6LqjmsiGM6_zlbjz8QCLcB/s1600/DSC01567.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="426" src="https://1.bp.blogspot.com/-j8ZvE31-Gmw/WGg-eg1zdSI/AAAAAAAAcMc/knrXzWeOmIcDXpS6LqjmsiGM6_zlbjz8QCLcB/s640/DSC01567.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The <a href="https://en.wikipedia.org/wiki/Fairy_Pools">Fairy Pools</a> at the Isle of Skye.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://1.bp.blogspot.com/-x0vKW6jc5Yk/WGg-h9ULcII/AAAAAAAAcMg/TAPqR1zG56UoiopsrQz6602YXLmhgVB_ACLcB/s1600/DSC01586.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="426" src="https://1.bp.blogspot.com/-x0vKW6jc5Yk/WGg-h9ULcII/AAAAAAAAcMg/TAPqR1zG56UoiopsrQz6602YXLmhgVB_ACLcB/s640/DSC01586.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">A little lake near <a href="https://en.wikipedia.org/wiki/Loch_Mealt">Mealt Falls</a> on the Isle of Skye. The ocean was pretty, but I think that this brooding sky mirrored in the placid lake was more interesting.</td></tr>
</tbody></table>
<br /><div class="separator" style="clear: both; text-align: center;">
<a href="https://4.bp.blogspot.com/-ymMzvo23IQ4/WGg-yYu_KKI/AAAAAAAAcMs/cjGwUUcjtWAcBZMVyC4caybQ0YkbSt9KQCLcB/s1600/DSC01803.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a><br /></div>
<a href="https://4.bp.blogspot.com/-ymMzvo23IQ4/WGg-yYu_KKI/AAAAAAAAcMs/cjGwUUcjtWAcBZMVyC4caybQ0YkbSt9KQCLcB/s1600/DSC01803.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a><br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJTelTHuyWcSOLEz-ciWAFTVoLzTtEpRUPtcbYHVJ7SWm8nEngYER1ycL-JymUpAPR4zk4pHzUueqJpcQouYrTms6yrjrCI2OqQu97MDCjwJ3vM41s-gOP9hj_kf6Y9uKPlAtmZyVmfd8/s1600/DSC01868.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJTelTHuyWcSOLEz-ciWAFTVoLzTtEpRUPtcbYHVJ7SWm8nEngYER1ycL-JymUpAPR4zk4pHzUueqJpcQouYrTms6yrjrCI2OqQu97MDCjwJ3vM41s-gOP9hj_kf6Y9uKPlAtmZyVmfd8/s640/DSC01868.jpg" width="425" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><a href="https://en.wikipedia.org/wiki/Liberty_Cap_(California)">Liberty cap</a> and a ponderously blue, cloudless sky at Yosemite. The water you see in the picture is just seconds from going over Nevada Falls.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1izu4-MtxYxWGk0Lwbf7l_csAFpY6UhHU1dRsBj-SwELWNxHCP8JSbU6G3J8QN0YMd1sTgQYFTwVJxaPwBu7QYkUCAV5YSJEeyexTNsYfq9wGjmkwAZaBlfsLd-Iyitoa-_YfXpDKVRk/s1600/DSC01913.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1izu4-MtxYxWGk0Lwbf7l_csAFpY6UhHU1dRsBj-SwELWNxHCP8JSbU6G3J8QN0YMd1sTgQYFTwVJxaPwBu7QYkUCAV5YSJEeyexTNsYfq9wGjmkwAZaBlfsLd-Iyitoa-_YfXpDKVRk/s640/DSC01913.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">A cricket we found at the <a href="https://en.wikipedia.org/wiki/Merced_Grove">Merced Grove</a> of giant sequoias.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://2.bp.blogspot.com/-gAAYmOyRDnY/WGg_E4czEKI/AAAAAAAAcM8/VODhze1N-Kg4ZTG6KftvUi1grRXDvy5iACLcB/s1600/DSC01931.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="426" src="https://2.bp.blogspot.com/-gAAYmOyRDnY/WGg_E4czEKI/AAAAAAAAcM8/VODhze1N-Kg4ZTG6KftvUi1grRXDvy5iACLcB/s640/DSC01931.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">A giant sequoia, and a giant sequoia pine cone.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://2.bp.blogspot.com/-hPZfqtfH3pA/WGg_JyjFXoI/AAAAAAAAcNA/BML_do7LE5g1Io6IZMvrz5ZKIU7fDUCgACLcB/s1600/DSC01937.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="426" src="https://2.bp.blogspot.com/-hPZfqtfH3pA/WGg_JyjFXoI/AAAAAAAAcNA/BML_do7LE5g1Io6IZMvrz5ZKIU7fDUCgACLcB/s640/DSC01937.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Simiao wouldn't crawl through the hollow interior of this fallen giant sequoia for me, so I just got a picture of her at the gnarled roots.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://1.bp.blogspot.com/-EMYMcXJMaw0/WGg_PUNy6pI/AAAAAAAAcNE/f7_QGG57ZjEakW2U8Vfq4mqqaTNTNkPGwCLcB/s1600/DSC02007.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="426" src="https://1.bp.blogspot.com/-EMYMcXJMaw0/WGg_PUNy6pI/AAAAAAAAcNE/f7_QGG57ZjEakW2U8Vfq4mqqaTNTNkPGwCLcB/s640/DSC02007.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">A <a href="https://en.wikipedia.org/wiki/Steller's_jay">Steller's Jay</a> at Yosemite National Park. We saw one swoop down from the trees, peck a mouse on the trail to death, then fly off with the mouse for dinner!</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://2.bp.blogspot.com/-gEwDdZfp3FU/WGg_Sa_8c_I/AAAAAAAAcNI/UKss5qLtokonoZOCeEjsXA8Egl4gwusGACLcB/s1600/DSC02338.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="426" src="https://2.bp.blogspot.com/-gEwDdZfp3FU/WGg_Sa_8c_I/AAAAAAAAcNI/UKss5qLtokonoZOCeEjsXA8Egl4gwusGACLcB/s640/DSC02338.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><a href="https://en.wikipedia.org/wiki/Vermetidae">Worm shells</a> that we found at the extreme North tip of <a href="https://en.wikipedia.org/wiki/Three_Rooker_Island">Three Rooker Island</a>.</td></tr>
</tbody></table>
<div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://4.bp.blogspot.com/-7tWQQNyxtHQ/WGg-Kn4v09I/AAAAAAAAcM4/xnuKfDusmd8je_u53ZyCiAxSgAXbnR9JQCPcB/s1600/DSC01480.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="426" src="https://4.bp.blogspot.com/-7tWQQNyxtHQ/WGg-Kn4v09I/AAAAAAAAcM4/xnuKfDusmd8je_u53ZyCiAxSgAXbnR9JQCPcB/s640/DSC01480.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">I found a four leaf clover behind Glen Grant distillery. Can you?</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://2.bp.blogspot.com/-mcl8EADRGqg/WGg-Pih5M1I/AAAAAAAAcM4/g0ByUI-2Un0XwC4Ux_IVbkI1piQmhbxwwCPcB/s1600/DSC01496.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="426" src="https://2.bp.blogspot.com/-mcl8EADRGqg/WGg-Pih5M1I/AAAAAAAAcM4/g0ByUI-2Un0XwC4Ux_IVbkI1piQmhbxwwCPcB/s640/DSC01496.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The ruins of <a href="https://en.wikipedia.org/wiki/Elgin_Cathedral">Elgin Cathedral</a> were in some ways more interesting than the intact St. Giles cathedral in Edinburgh. The cathedral was apparently larger, the carvings and inscriptions more interesting, and the imagination can transform it into a much grander place.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://4.bp.blogspot.com/-USJmjfn33Sk/WGg-s79qT8I/AAAAAAAAcNQ/Lw683q8S6LU689tWjzgvUMjIyWhQM-RigCPcB/s1600/DSC01783.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="426" src="https://4.bp.blogspot.com/-USJmjfn33Sk/WGg-s79qT8I/AAAAAAAAcNQ/Lw683q8S6LU689tWjzgvUMjIyWhQM-RigCPcB/s640/DSC01783.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td class="tr-caption" style="font-size: 12.8px;">A rock climbing break on our way up to Nevada Falls in Yosemite National Park.</td></tr>
</tbody></table>
<div class="separator" style="clear: both; font-size: medium;">
<a href="https://2.bp.blogspot.com/-USJmjfn33Sk/WGg-s79qT8I/AAAAAAAAcMo/rd5cj_eBpB03Ww-ysS6BkGMBVyTcFHnfACLcB/s1600/DSC01783.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a></div>
</td></tr>
</tbody></table>
<br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://3.bp.blogspot.com/-ymMzvo23IQ4/WGg-yYu_KKI/AAAAAAAAcNQ/3rM9Rqehrx8eNmkwEz5Nr80pIAgWsHKFQCPcB/s1600/DSC01803.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="426" src="https://3.bp.blogspot.com/-ymMzvo23IQ4/WGg-yYu_KKI/AAAAAAAAcNQ/3rM9Rqehrx8eNmkwEz5Nr80pIAgWsHKFQCPcB/s640/DSC01803.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">A bold, thieving squirrel licks its fingers after a pilfered meal at the top of Vernal Falls in Yosemite National Park.</td></tr>
</tbody></table>
<br /></div>
Ben Li-Sauerwinehttp://www.blogger.com/profile/00531994213807228431noreply@blogger.com0tag:blogger.com,1999:blog-3869604260061416788.post-87651196376997451442016-10-11T22:51:00.002-07:002016-10-12T12:39:03.167-07:00The Anniversary Box<div class="separator" style="clear: both; text-align: center;">
<a href="https://3.bp.blogspot.com/-avbVEb6dy8U/V_3K_L17TVI/AAAAAAAAZsw/jrJGfleqmhsX6BPIsmMZJ0HNqP9iWZy6wCLcB/s1600/DSC01647.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" src="https://3.bp.blogspot.com/-avbVEb6dy8U/V_3K_L17TVI/AAAAAAAAZsw/jrJGfleqmhsX6BPIsmMZJ0HNqP9iWZy6wCLcB/s200/DSC01647.jpg" width="200" /></a></div>
Today is our two-year wedding anniversary! At our wedding, we asked our guests to write a note on a card that we would then open up ostensibly on our first anniversary. Unfortunately, we were on vacation at the time and didn't get a chance to and decided to wait for our next anniversary to open the box.<br />
<br />
I thought a lot of the notes were insightful, funny, or just cute, and so I transcribed some favorite quotes here! If you recognize yours, and would like to be credited, just let me know and I'll de-anonymize you.<br />
<br />
<b><br /></b>
<b>The sweet compliments (I think!)</b><br />
<br />
<i>"Everything is the best."</i><br />
<i><br /></i>
<i>"I'm so lucky to have known you guys during this tough time of intern year. I'm sure we'll feel next year is even worse."</i><br />
<i><br /></i>
<i>"Hold hands--we've always noticed you look better than any other couple doing that."</i><br />
<i><br class="Apple-interchange-newline" />"One thing that won't change is that you'll both still be amazing people with a great sense of fun and impeccably destructive logic."</i><br />
<div>
<br /></div>
<div>
I think that last one was a compliment, at least.</div>
<br />
<b>The sage advice</b><br />
<i><br /></i>
<i>"Personal space can be awesome."</i><br />
<i><br /></i>
<i>"Fly a quadcopter somewhere romantic."</i><br />
<i><br /></i>
<i>"Your spouse is like a good cup of coffee--you may have it every morning but you never stop enjoying it!"</i><br />
<i><br /></i>
I wish I never stopped enjoying it. It runs out so quickly!<br />
<i><br /></i>
<b>Our quirky friends</b><br />
<br />
<i>"I don't have chocolate on me."</i><br />
<i><br /></i>
<i>"Aren't you glad I don't draw for a living?"</i><br />
<i><br /></i>
<i>"Our minds were blown at Costco today."</i><br />
<i><br /></i>
I really have to know. What was it that blew their minds at Costco?<br />
<i><br /></i>
<b>Wow</b><br />
<b><br /></b>
<i>"Once upon a time, we were all hanging out at the Morton Arboretum, celebrating your love when all of a sudden a squirrel invaded your reception. It jumped up on the bar and sat down next to the bottle of Disaronno. It then promptly began to pour drinks for everyone. He said, 'I want to embody the generosity that Ben and Simiao show to one another.' The squirrel then proceeded to pass out drinks to all of the guests. They were very excited and amazed by this talking, bar tending, love celebrating squirrel. As the drinks settled in, the talented squirrel recognized it was time to take the celebration to the next level. He promptly had the DJ start the music and broke out a soul train dance line. The winning move was a specially designed move for the happy new couple. It involved pins and ended with a fantastic split. Sadly, a rabid dog ate the squirrel; However, a giraffe emerged from the woodwork and with one fell swoop won the hearts and minds of all attendees! They stood in accord and said, 'Giraffe, you are excellent, talented, amazing and kind, but Ben and Simiao are far, far better."</i><br />
<i><br /></i>
... I don't even know what to say about that one! I guess our drinks were pretty great!Ben Li-Sauerwinehttp://www.blogger.com/profile/00531994213807228431noreply@blogger.com1tag:blogger.com,1999:blog-3869604260061416788.post-73069526060517299382016-09-24T00:47:00.000-07:002016-09-24T00:47:53.411-07:00Photos and Anti-Photos<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-asgbyXcFMLM/VZg1uvmuchI/AAAAAAAALO4/A4ZVi9P6T9w/s1600/nothing.JPG" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="200" src="https://4.bp.blogspot.com/-asgbyXcFMLM/VZg1uvmuchI/AAAAAAAALO4/A4ZVi9P6T9w/s200/nothing.JPG" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Simiao holds an inverse egg at the narrows<br />
at Zion national park.</td></tr>
</tbody></table>
We don't give taking a photograph much thought these days. We take our cell phone out of our pocket, point it at what we want to remember, and press a button. We don't think about what's going on behind the scenes: light hits the charge-counting device (CCD) for some amount of time, then at the end the image equals how many photons hit the charge-counting device over that period of time. The world doesn't actually stand still for the CCD, though. Time still passes, things move, life goes on. The CCD, therefore, is actually reporting an average of what it saw while it was counting. This can be apparent through motion blur or ruined photos if the photographer happened to be moving quickly while taking the picture. When one takes a typical long exposure, this becomes even more pronounced because the transient things tend to disappear: you get a picture of a city street with no cars, or a sidewalk with no pedestrians because the sidewalk and the street spent more time in the frame than the people or the cars.<br />
<br />
What if we were able to take a picture of just the things that changed, and not the things that didn't? You can perhaps imagine a landscape where you can see the clouds going by but not the mountains, where you could see the river going by but not the shore, where you could see the leaves blowing in the wind but not the tree trunks, and where you could see the people playing soccer but not the field.<br />
<br />
This is what I call an <b>anti-photo</b>.<br />
<br />
<h3>
<span style="font-family: "arial" , "helvetica" , sans-serif; font-size: small;">Part 1: Solargraphs and Time-Lapse Video</span></h3>
<u><br /></u>
This entire process can be done with a camera using a timer, but at the start of this project I actually just wanted something to do with old Android cell phones. It turns out that an old cell phone is actually a great platform for taking long exposures and time lapses: it's basically disposable because I wasn't doing anything with it anyway, it has a decent camera and amount of storage space, and is easy to set up as a time-lapse. <br />
<br />
In order to take time lapses with an Android cell phone, I installed the excellent, free program <a href="https://play.google.com/store/apps/details?id=com.ubiris.timelapse&hl=en">Time and Tide - Lapse for Camera</a>. It can be configured to take a photograph at a configurable time interval, and gives you some essential controls over the camera settings: for instance, if you intend on making a synthetic solargraph or anti-photo, you will probably want to turn off flash. You will also want to set the focus to infinity, because otherwise the frame will subtly change over the time-lapse and lead to a blurry finished product once you composite the images. It may also be worthwhile to set the ISO to 100 or otherwise something constant so that the same brightness on the image always corresponds to the same brightness of light.<br />
<br />
Finally, simply set your camera up somewhere that it won't get bumped and let Time and Tide - Lapse run. Once you have taken the desired series of photos, transfer them to your computer and the fun can begin! It is straightforward to composite these images into a video in Linux using, for instance:<br />
<br />
<div style="text-align: center;">
<span style="font-family: "courier new" , "courier" , monospace;">avconv -i %08d.JPG output.mkv</span></div>
<div style="text-align: center;">
<br /></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/TqjHeWIHVQc/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/TqjHeWIHVQc?feature=player_embedded" width="320"></iframe></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/t11uHwFCQOg/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/t11uHwFCQOg?feature=player_embedded" width="320"></iframe></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/0JOWMmGj-_s/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/0JOWMmGj-_s?feature=player_embedded" width="320"></iframe></div>
<br />
Next I wanted to make synthetic solargraphs from these collections of short exposures. The solargraphs I made in <a href="http://sauerwine.blogspot.com/2013/11/pinhole-picture-from-arizona.html">previous</a> <a href="http://sauerwine.blogspot.com/2013/10/the-rescue-mission.html">posts</a> are different from simply averaging the pixels in each photo in the series: if I were to average each pixel, then a bright pixel in one photo would eventually be darkened if it was dark in subsequent photos. In a solargraph, a pixel, once exposed, will never darken, only brighten with repeated exposure. Thus, I wrote a special piece of code to sum up each pixel and then normalize the result to the brightest pixel in the series. Here, for example, is a solargraph composite of the final video shown above:<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgU4wS5GdhYXhrkUmGLtUsi7fzn3bNAefNSkv_tjv9uaOJHduqqcQ8S3bfWmEeVVGneOWunynRuSyBtbWek_NpOfOQBKU3ZhJweRp4vIKniNMNlj7aNC3Qy39VmpuKGpHDLAgJeiFhNYw8/s1600/solar-1000.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgU4wS5GdhYXhrkUmGLtUsi7fzn3bNAefNSkv_tjv9uaOJHduqqcQ8S3bfWmEeVVGneOWunynRuSyBtbWek_NpOfOQBKU3ZhJweRp4vIKniNMNlj7aNC3Qy39VmpuKGpHDLAgJeiFhNYw8/s640/solar-1000.jpg" width="360" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">A synthetic solargraph taken out the window of the old Google Chicago office. Note how it has the tendency to sharpen the otherwise low-quality images coming from the repurposed Android phone.</td></tr>
</tbody></table>
<br />
The <a href="https://github.com/theGOTOguy/Antiphotos">program that generated these images</a> is provided for your utility. It turns out that it is actually the same program that generates the anti-photos in the next section!<br />
<br />
This is the point where the original intent of this post went awry. It turns out that the re-purposed Android phones were great for doing traditional long exposures by taking many pictures and then integrating them with my solargraph program. However, anti-photos were a bit trickier: not only were the Android phones' cameras very noisy compared to a modern DSLR or electronic viewfinder camera, but the compression noise in the JPEG images they took made their images exhibit noise down to the pixel which made the resulting anti-photos unacceptable.<br />
<br />
<h3>
<span style="font-family: "arial" , "helvetica" , sans-serif; font-size: small; text-decoration: underline;">Part 2: Anti-photos</span></h3>
<br />
It's now relevant to discuss why the same program generates both solargraphs and anti-photos, and how these two things are actually similar in some ways. <br />
<br />
In a solargraph, every single pixel in a series of photos has its value added to that of the others, then a normalization happens at the end. In an anti-photo, <span id="docs-internal-guid-f0e5306e-589f-0c4d-d496-a89952f1f95c"><span style="font-family: Arial; font-size: 14.6667px; vertical-align: baseline; white-space: pre-wrap;">we only take into account pixels</span></span> <i>that have changed sufficiently from the previous photo; </i>these are added to a running total, then normalized at the end. The definition of "changed sufficiently" is left open to interpretation. In an anti-photo, the definition of "sufficient change" is selected to be high enough so that in consecutive photos we throw out unchanged parts of the image. If "sufficient change" was set high enough, then every picture would come out black because no pixel could ever change enough to trigger accepting it. Generally, though, the higher "sufficient change" is defined to be, the darker the image will become.<br />
<br />
Interestingly, if the definition of "changed sufficiently" is set to "no change", an anti-photo actually becomes a solargraph because every pixel is always included! So, the same program is actually capable of doing both solargraphs and anti-photos.<br />
<br />
Let's look at some examples!<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://3.bp.blogspot.com/-_Y1A2AYCzgw/V-Wux1sWvWI/AAAAAAAAZOA/u-Rz8Co0fVA2_9ko6YK6sp6xloeKwYs6ACLcB/s1600/anti-fixed3-1000-c53-b05.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="640" src="https://3.bp.blogspot.com/-_Y1A2AYCzgw/V-Wux1sWvWI/AAAAAAAAZOA/u-Rz8Co0fVA2_9ko6YK6sp6xloeKwYs6ACLcB/s640/anti-fixed3-1000-c53-b05.jpg" width="360" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">A very early version of an antiphoto--I like that you can see the people walking down the sidewalk and the cars driving by, but there were a few issues with this series as well. The compression noise at the edges of objects means that buildings are much more pronounced than they would be if I had shot in RAW mode. The frame changed vastly in brightness over time besides, so you can see bright images in the reflections on the buildings. Further, the intended subject--the people and the cars--were not well-centered in the shot.</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://2.bp.blogspot.com/-F8Rcghzu6RA/V-Ob4ScNVHI/AAAAAAAAZMw/lnDFiu2Qa-snGmdngMyE6_7NyBcAwHC2gCEw/s1600/anti-f8-c40-b01-u0-a2.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="426" src="https://2.bp.blogspot.com/-F8Rcghzu6RA/V-Ob4ScNVHI/AAAAAAAAZMw/lnDFiu2Qa-snGmdngMyE6_7NyBcAwHC2gCEw/s640/anti-f8-c40-b01-u0-a2.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Melting ice in three different glasses, illuminated by candelight. You can see the shape of the surface of the ice cubes as they shrank and melted.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://1.bp.blogspot.com/-R0TmwtKpCV8/V-OcPw8sLNI/AAAAAAAAZM0/UsiTgOtmeDs7s19pU1CBQ1hQ0bnHlIubACLcB/s1600/anti-f9-c30-b01-u1-a2.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="426" src="https://1.bp.blogspot.com/-R0TmwtKpCV8/V-OcPw8sLNI/AAAAAAAAZM0/UsiTgOtmeDs7s19pU1CBQ1hQ0bnHlIubACLcB/s640/anti-f9-c30-b01-u1-a2.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Little fish swimming around in a stream. The fish are dark-colored, so taking a series of anti-photos revealed the bright stream bed rather than the dark fish.</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://1.bp.blogspot.com/-5Mi8CdGojiw/V-ObdkLLa_I/AAAAAAAAZMs/3nnTlwnhCy8G2qpVKRDppNQZicbCUvdKQCLcB/s1600/anti-f5-c200-b01-u2.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="425" src="https://1.bp.blogspot.com/-5Mi8CdGojiw/V-ObdkLLa_I/AAAAAAAAZMs/3nnTlwnhCy8G2qpVKRDppNQZicbCUvdKQCLcB/s640/anti-f5-c200-b01-u2.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The Chicago skyline in broad daylight. During the series of photos, a cloud obscured the sun. So, only the parts of the city directly illuminated by the sun (as opposed to illuminated by reflected light) survived the anti-photo procedure. The net result? Using the sun as the world's largest flash-bulb.</td></tr>
</tbody></table>
<br />
<div>
So, how do you take a good anti-photo, and how can you make your own? The basic technique is simple. Set your camera up on a tripod with a timer, then set the timer to take a picture periodically--perhaps every minute in the case of melting ice, or every second in the case of swimming fish. Choose an interval that makes sense based on the rate at which your subject is moving. Set the camera to have a constant shutter speed, a constant ISO, and set it to manual focus so that you always get the same frame and illumination. Be sure to shoot in RAW mode, as the compression noise from lossy encoding like JPEG will add a significant amount of unwanted noise to the anti-photo algorithm. As few as 30 photos can be assembled to make a great anti-photo.</div>
<div>
<br /></div>
<div>
The above techniques will go a long way towards taking an appropriate series of photos to make a good anti-photo, but I picked up a few extra tips from repeated practice:</div>
<div>
<ul>
<li>Be sure to select a scene that, as much as possible, is uniformly illuminated over the series of photos. Otherwise, you will pick up the changes in illumination as opposed to the change in subject.</li>
<li>Landscapes don't tend to make great anti-photos (the skyline above being a rare exception). Try to select a subject that is the only thing changing in the frame, such as the fish or the ice.</li>
<li>The normal rules of framing a photo don't make sense for anti-photos. Try to think about how the subject is moving and frame that motion, not the scene at large. </li>
</ul>
<div>
<br /></div>
</div>
<div>
Using my program to make an anti-photo is straightforward. See the <a href="https://github.com/theGOTOguy/Antiphotos">GitHub repository</a> for a download link and instructions!</div>
<div>
<br /></div>
<div>
If you're into photography, I hope you will decide to try your hand and your eye at seeing the world's motion instead of seeing the world as a static image and make your own anti-photos. When you do, please let me know what you come up with--I'll be happy to add some links to your work here!</div>
Ben Li-Sauerwinehttp://www.blogger.com/profile/00531994213807228431noreply@blogger.com0tag:blogger.com,1999:blog-3869604260061416788.post-6219563292411046492016-04-24T16:41:00.004-07:002016-04-24T16:41:54.121-07:00Ben Li-Sauerwine 2016<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-0Dp_A4sDO2k/Vx1ZQlOO1oI/AAAAAAAAU9g/sMafDEv7iPER1l2XSeGExoZb6MgwvW1uACLcB/s1600/Feeldotdotdot.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="https://1.bp.blogspot.com/-0Dp_A4sDO2k/Vx1ZQlOO1oI/AAAAAAAAU9g/sMafDEv7iPER1l2XSeGExoZb6MgwvW1uACLcB/s640/Feeldotdotdot.png" width="465" /></a></div>
<br />
My good friend <a href="https://angel.co/meshwith">Chris Gaiteri</a> made this awesome photoshop for me, which obviously needs to be shared with the world. Vote Ben in 2016!Ben Li-Sauerwinehttp://www.blogger.com/profile/00531994213807228431noreply@blogger.com0tag:blogger.com,1999:blog-3869604260061416788.post-60073999827692803802016-04-10T23:28:00.002-07:002016-04-10T23:28:53.698-07:00Goodbye, Google<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-TzLwRledMmw/Vws-fu5ABiI/AAAAAAAAUxo/_3oCA-l6bakWvE5iNnReQ79c2eCGSrNbQ/s1600/DSC00858.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" src="https://1.bp.blogspot.com/-TzLwRledMmw/Vws-fu5ABiI/AAAAAAAAUxo/_3oCA-l6bakWvE5iNnReQ79c2eCGSrNbQ/s200/DSC00858.jpg" width="200" /></a></div>
Friday was my final day as a software engineer at Google. It's been an exciting 3 years! I discovered a bug so big that it <a href="http://www.theregister.co.uk/2014/03/14/google_cloud_storage_bug/">made the news</a>. I wrote code that ground over multiple terabytes of data in parallel to help with business decisions. I helped with the Google Code Jam competitions. I even wrote internal services that monitored our internal code quality to help with keeping our codebase clean and manageable. I launched brand-new products and made meaningful improvements to old ones. Most importantly, I worked with wonderful colleagues in an environment where I felt appreciated and respected and where I learned to be a better coder every day.<br />
<br />
Google isn't by any means a perfect company, but the internal culture is such that one can be candid and open about problems and as such it is constantly improving. I think that this is not only a lesson that other companies could stand to take an example from, but an example that could be followed in one's personal relationships as well.<br />
<br />
So, why did I leave? After 3 years, I felt that it was time for a new challenge. I've joined a startup as a partner with two former colleagues. I'll be making strategic and hiring decisions as well as design and technical decisions and working directly with customers and investors. Overall, it's a chance to develop new skills besides just my technical ones, and that's pretty exciting! You'll be hearing more about it soon (there's no attractive website yet,) but you can check out my newly updated CV if you want a hint!Ben Li-Sauerwinehttp://www.blogger.com/profile/00531994213807228431noreply@blogger.com0tag:blogger.com,1999:blog-3869604260061416788.post-45934943002325904062016-04-04T22:34:00.000-07:002016-04-06T10:53:20.053-07:00French Polynesia Stories<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://2.bp.blogspot.com/-CRfUbt0XaMo/VwNCum5BZjI/AAAAAAAAUmk/pGNu5rBBLUM0JEYpKRATkpysN-e1NmSYQ/s1600/DSC01041-cropped.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" src="https://2.bp.blogspot.com/-CRfUbt0XaMo/VwNCum5BZjI/AAAAAAAAUmk/pGNu5rBBLUM0JEYpKRATkpysN-e1NmSYQ/s200/DSC01041-cropped.jpg" width="200" /></a></div>
Last week Simiao and I were on vacation in French Polynesia. Ever since I first saw a picture of the ring-shaped islands in the Pacific, I'd always wanted to visit. Is the water really so electric blue? Are the little islets really so close together that I could swim from place to place? Are there really coconuts all over the place that I can just pick up, crack open and drink the water from?<br />
<br />
The answer to all of these questions is a resounding "yes." We spent 2 afternoons in Papeete, 2 days in Moorea, and 4 days in Bora Bora. All of the locations were charming, but we preferred the natural beauty of Moorea and Bora Bora to the city in Papeete. Initially I'd wanted to stay in the over-water bungalows, but unfortunately those were all spoken for 3 months in advance so we stayed in garden units instead. In retrospect, not only were the garden units less expensive per night, but the 30-second walk to the lagoon was so convenient that I think I'd stay in the garden units next time I visit too. What's more, in one case, the garden unit included a private plunge pool which I think is a nicer feature than ocean adjacency.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://3.bp.blogspot.com/-lnqZeRLNqP8/VwNMIZbVx6I/AAAAAAAAUnc/WufnG8IYjoEaGfo-Xw8oT6ERIFzQLPLLQ/s1600/IMG_0299.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto; text-align: center;"><img border="0" height="480" src="https://3.bp.blogspot.com/-lnqZeRLNqP8/VwNMIZbVx6I/AAAAAAAAUnc/WufnG8IYjoEaGfo-Xw8oT6ERIFzQLPLLQ/s640/IMG_0299.JPG" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">A <a href="https://en.wikipedia.org/wiki/Lemon_shark">Lemon Shark</a> on a snorkeling tour we booked in Bora Bora. The black fish are triggerfish. These sharks have attacked divers in rare occasions, but don't normally pose a threat to humans.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td><a href="https://2.bp.blogspot.com/-BEtn0Txgo2g/VwNHqCHxuTI/AAAAAAAAUm0/rnx94U3sORwMb6kIfX3NXHVM3w6O440YQ/s1600/DSC00886.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="425" src="https://2.bp.blogspot.com/-BEtn0Txgo2g/VwNHqCHxuTI/AAAAAAAAUm0/rnx94U3sORwMb6kIfX3NXHVM3w6O440YQ/s640/DSC00886.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption">Mt. Rotui on Moorea appears on the French Polynesian 50 and 100 Franc coins. The mountain is a former volcanic peak, and the ring-shaped reef around the island marks the original maximum extent of the volcano. The dormant volcano is slowly eroding into the ocean, but the ring-shaped reef keeps growing and will ultimately be the only remnant in the distant future.</td></tr>
</tbody></table>
</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://2.bp.blogspot.com/-4HMIf5lrwPM/VwNI_CVq96I/AAAAAAAAUnA/iyIaWq-XRMAEz7e8GApF33Z7NF060HKug/s1600/DSC00922.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="426" src="https://2.bp.blogspot.com/-4HMIf5lrwPM/VwNI_CVq96I/AAAAAAAAUnA/iyIaWq-XRMAEz7e8GApF33Z7NF060HKug/s640/DSC00922.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><a href="https://en.wikipedia.org/wiki/Spinner_dolphin">Spinner dolphins</a> on <a href="http://www.drmichaelpoole.com/index.htm#_=_">Dr. Poole's dolphin tour</a>. Intriguingly, while our hotel donated to his research it did not advertise or help us book his tour: the hotel gets a kickback for booking the penned dolphin experience at the Intercontinental. I highly recommend contributing to his research by patronizing his tour. Fun and educational, we found Dr. Poole's tour to be one of the highlights of our trip.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzN1WSggx7V-s7To6Tecbh5uF0OTaOgwVVbIG90Zf2xaPHgLQ7Dz5rsmR5bqiSgbv-8VyqOjB6gVXKUYzqjiusJ3tj6lVRPuTPDsbdMq0NArbX2N-v36OAmNdZFWGBMkGjjs0NYB-BGCw/s1600/DSC00975.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzN1WSggx7V-s7To6Tecbh5uF0OTaOgwVVbIG90Zf2xaPHgLQ7Dz5rsmR5bqiSgbv-8VyqOjB6gVXKUYzqjiusJ3tj6lVRPuTPDsbdMq0NArbX2N-v36OAmNdZFWGBMkGjjs0NYB-BGCw/s640/DSC00975.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The welcome party at the Sofitel Private Island on Bora Bora. The best feature of the private island is that both the best reef for snorkeling and the best place to see rays in the lagoon are actually easily within swimming distance using flippers from the island, though weaker swimmers might prefer booking a tour.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><br />
<a href="https://2.bp.blogspot.com/-A8c9gOQhwo4/VwNLEP3pKrI/AAAAAAAAUnU/8XLgAeHdBh8F7xdk_Sl_Y2jHQAPG9bHMw/s1600/IMG_0120.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto; text-align: center;"><img border="0" height="480" src="https://2.bp.blogspot.com/-A8c9gOQhwo4/VwNLEP3pKrI/AAAAAAAAUnU/8XLgAeHdBh8F7xdk_Sl_Y2jHQAPG9bHMw/s640/IMG_0120.JPG" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">We saw no fewer than five octopi in Bora Bora. Incredibly, they could change their patterns and shapes on demand to suit their camouflage needs. They could change from a dark red to blue-green and would alter the white spots to look like whatever rock they were hiding on. </td></tr>
</tbody></table>
Ben Li-Sauerwinehttp://www.blogger.com/profile/00531994213807228431noreply@blogger.com0tag:blogger.com,1999:blog-3869604260061416788.post-9768224538480726172016-02-01T21:06:00.000-08:002016-02-01T21:24:20.155-08:00How We Beat Motion Sickness in The Witness<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHJDaRtZzGHtpY769uSovX_I0RAqsf69bgxq29Vxhyphenhyphenk756AV9Ke1wJLMpPR_oxr1mxaH6X5IALdGP3AjbAvNsNdHcCYaTUi7H9ALqkIaTOa9WzR3oLrauV6cUMeAGuIqj29VcBCeB8db8/s1600/img_4774_cropped.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHJDaRtZzGHtpY769uSovX_I0RAqsf69bgxq29Vxhyphenhyphenk756AV9Ke1wJLMpPR_oxr1mxaH6X5IALdGP3AjbAvNsNdHcCYaTUi7H9ALqkIaTOa9WzR3oLrauV6cUMeAGuIqj29VcBCeB8db8/s200/img_4774_cropped.jpg" width="200" /></a></div>
When <a href="http://the-witness.net/">The Witness</a> was finally released, I was really excited that Simiao and I would be able to enjoy a video game together. Previously, the only games that Simiao could really get into were old-school arcade and Atari games, but I thought that this was right up her alley: puzzle focused, not scary, and I trusted that Jonathan Blow would settle for nothing less than brilliant design in his games.<br />
<br />
Much to my dismay, we quickly learned that like many others Simiao experiences motion sickness in first-person style games. It took several sessions of experimentation to come up with a permutation of settings that worked to make the game playable for her. In case you find yourself in this position, here's what we had to do to make the game playable for her:<br />
<br />
<br />
<ol>
<li>Play the game with the lights in the room on.</li>
<li>Position the monitor so that she is sitting a bit further back from it.</li>
<li>Set the field of view to 90 degrees. While there is no field of view slider in The Witness, this was attainable by right-clicking The Witness in steam, going to Properties then Local Files, clicking Browse Local Files, then opening Local.variables in the data folder. Under ":/misc", we added the line "fov_vertical 90" to achieve this.</li>
<li>My monitor, the ASUS PG278Q, has a GamePlus button on it. By pressing this button on the monitor, I am able to overlay a crosshair on the center of the screen in the monitor settings. This unchanging, central focal point helped with her motion sickness.</li>
<li>Finally, we used the amazing <a href="http://www.guru3d.com/files-details/rtss-rivatuner-statistics-server-download.html">RivaTuner Statistics Server</a> to cap the frame rate at 30Hz. It installs in a snap, appears to be fully compatible with GSYNC and The Witness, and offers a simple means to control frame rate. We set the Framerate Limit to 30Hz and it worked like a charm.</li>
</ol>
<div>
<br />
We did try some chemical methods without success. Simiao tried taking Benadryl which works similarly to Dramamine for motion sickness, and we tried ginger tea to settle her stomach. Though these were not helpful, the ginger tea was delicious. I couldn't help to think while discovering the techniques that did and did not work for Simiao that games should include a "motion sickness friendly" graphics mode that would automatically apply some of these settings to a game. It would be fairly trivial to overlay a cross hair, increase the field of view, and limit the frame rate to something more friendly to those affected by motion sickness.<br />
<br /></div>
<div>
Together, the five techniques listed above enable us to enjoy The Witness together, which is a beautiful and intellectually satisfying game to play. Now all we need is some more free time to play it in!<br />
<br />
<br /></div>
Ben Li-Sauerwinehttp://www.blogger.com/profile/00531994213807228431noreply@blogger.com0tag:blogger.com,1999:blog-3869604260061416788.post-88069237650351778792015-11-07T12:38:00.001-08:002015-11-07T12:38:01.450-08:00Yellowstone Stories<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-kbeJlA-ZWWI/Vj5algpAAsI/AAAAAAAAQZU/fVOUmE0Lt7c/s1600/out-8.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="200" src="http://2.bp.blogspot.com/-kbeJlA-ZWWI/Vj5algpAAsI/AAAAAAAAQZU/fVOUmE0Lt7c/s200/out-8.jpg" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">We saw more elk around human habitats<br />in Yellowstone than in the wild.</td></tr>
</tbody></table>
For our one-year anniversary, Simiao and I went hiking in Yellowstone. I'd always wanted to visit this national park, and I've never seen so many alien landscapes in such close proximity to each other: thermal features, beautiful canyons and waterfalls, wildlife, petrified trees, and black obsidian beaches. If you decide to go to Yellowstone, I highly recommend that you go in the first week of the off-season. Lower prices notwithstanding, the size of the parking lots gave me an idea of what a zoo the park must be during the summer with traffic jams, impossible parking and screaming children. When we went in the first week of October it felt like we had the whole park to ourselves. <br />
<br />
These are a few of my favorite photos. I do have more related to an awesome side project I've been working on for almost a year now, but it's still not ready and needs some more work. It'll be awesome when it's ready, trust me!<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-f_F37CQ-xrE/Vj5b2ETni-I/AAAAAAAAQZc/qJX14XxU-bo/s1600/out-0.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="266" src="http://3.bp.blogspot.com/-f_F37CQ-xrE/Vj5b2ETni-I/AAAAAAAAQZc/qJX14XxU-bo/s400/out-0.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">A toothpick-like tree at the <a href="https://en.wikipedia.org/wiki/Grand_Prismatic_Spring">Grand Prismatic Spring</a>.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-7KYQdyCy-pA/Vj5cJuNRppI/AAAAAAAAQZo/BwjjTfzN0tU/s1600/out-1.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="http://2.bp.blogspot.com/-7KYQdyCy-pA/Vj5cJuNRppI/AAAAAAAAQZo/BwjjTfzN0tU/s320/out-1.jpg" width="213" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Watching this spooting thermal feature at the <a href="https://en.wikipedia.org/wiki/Geothermal_areas_of_Yellowstone">Artist's Paint Pots</a> was like watching a natural lava lamp.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-qOVP5AQqB7o/Vj5ci44gZbI/AAAAAAAAQZw/8MbT6NyZPcA/s1600/out-2.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="266" src="http://3.bp.blogspot.com/-qOVP5AQqB7o/Vj5ci44gZbI/AAAAAAAAQZw/8MbT6NyZPcA/s400/out-2.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">A squirrel fattening up for the coming winter.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-LxbfrCi25dg/Vj5cuTAOEOI/AAAAAAAAQZ8/A_2iaESu99g/s1600/out-3.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="266" src="http://2.bp.blogspot.com/-LxbfrCi25dg/Vj5cuTAOEOI/AAAAAAAAQZ8/A_2iaESu99g/s400/out-3.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The obsidian beach at <a href="https://en.wikipedia.org/wiki/Yellowstone_Lake">Yellowstone Lake</a>, the world's highest alpine lake.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-XHJvaFaINJc/Vj5dtxTL-1I/AAAAAAAAQaA/7tmadTm41KY/s1600/out-4.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="266" src="http://2.bp.blogspot.com/-XHJvaFaINJc/Vj5dtxTL-1I/AAAAAAAAQaA/7tmadTm41KY/s400/out-4.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">A trio of fluffy <a href="https://en.wikipedia.org/wiki/Gray_jay">gray jays</a> were stalking us around Yellowstone Lake.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfie-G_i-qfxgGvOSCTcioZWGAamaXfSUmYDcMvFNOIbPelYYK8ZKIF0fThjBybhXiXDOpNTJuV0186NkayCRWvujbc2iiw8wtJi4aj8Xd-9JamwtROJXKa7kwtFvEyBBQp7RG-iXKZcg/s1600/out-5.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfie-G_i-qfxgGvOSCTcioZWGAamaXfSUmYDcMvFNOIbPelYYK8ZKIF0fThjBybhXiXDOpNTJuV0186NkayCRWvujbc2iiw8wtJi4aj8Xd-9JamwtROJXKa7kwtFvEyBBQp7RG-iXKZcg/s400/out-5.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">A fiery sunset over <a href="https://en.wikipedia.org/wiki/Great_Fountain_Geyser">Great Fountain Geyser</a>, which declined to erupt for the occasion.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-HKDms9EeS0M/Vj5e3pvPBrI/AAAAAAAAQaQ/rUD7GuStEbI/s1600/out-6.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="400" src="http://4.bp.blogspot.com/-HKDms9EeS0M/Vj5e3pvPBrI/AAAAAAAAQaQ/rUD7GuStEbI/s400/out-6.jpg" width="266" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">A tree grows on top of a petrified tree stump on an incredibly steep trail on <a href="https://en.wikipedia.org/wiki/Specimen_Ridge">Specimen Ridge</a>.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-Y-ikClVdzvE/Vj5gxOivxvI/AAAAAAAAQac/13eNsvcVE7M/s1600/out-7.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="266" src="http://3.bp.blogspot.com/-Y-ikClVdzvE/Vj5gxOivxvI/AAAAAAAAQac/13eNsvcVE7M/s400/out-7.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">A view of the <a href="http://www.nps.gov/yell/learn/photosmultimedia/0031lamarvalley-iy.htm">Lamar Valley</a> from Specimen Ridge.</td></tr>
</tbody></table>
<div>
<br /></div>
Ben Li-Sauerwinehttp://www.blogger.com/profile/00531994213807228431noreply@blogger.com0tag:blogger.com,1999:blog-3869604260061416788.post-25100495548173516292015-06-26T20:48:00.001-07:002015-06-26T20:48:32.409-07:00Utah Stories<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-tHg9vOsHvfU/VY4LAmx2WWI/AAAAAAAALEI/xLvUrjIHPsA/s1600/IMG_9682_crop.JPG" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="200" src="http://2.bp.blogspot.com/-tHg9vOsHvfU/VY4LAmx2WWI/AAAAAAAALEI/xLvUrjIHPsA/s200/IMG_9682_crop.JPG" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">If you find yourself exploring a national park,<br />
please don't feed the wildlife. Someone <br />
further up the trail fed this <br />
<a href="https://en.wikipedia.org/wiki/Golden-mantled_ground_squirrel">golden-mantled ground squirrel</a> <br />
a piece of hard candy. It was eating <br />
the wrapper along with the food.</td></tr>
</tbody></table>
Simiao and I recently took a vacation to Utah to explore Bryce Canyon and Zion National Park. I've always loved the scenery of the American Southwest and I relished the opportunity to scramble around on some very photogenic sandstone.<br />
<br />
My favorite hike was the Virgin River Narrows, and if you are considering doing this hike you should definitely rent neoprene socks, a pair of hiking sticks and water hiking shoes from one of the local outfitters. You won't regret it. I saw dozens of people struggling, slipping and falling along that trail. My favorite scenery, however, was in Upper Coyote Butte, which I could have wandered around and explored for days.<br />
<br />
The landscapes in Bryce Canyon, Zion, Coyote Butte and White Pocket are absolutely incredible. I wish I could have taken a photo that would convey the beauty of the southwest. Unfortunately, I don't consider myself a great landscape photographer, so I prefer to take pictures of things that perhaps not every single tourist that has ever passed through the park has seen. I've included some favorites here.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-CNazj2XwwwU/VY4N7e0GiAI/AAAAAAAALEU/TijJHcPBi4M/s1600/IMG_9623.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="400" src="http://4.bp.blogspot.com/-CNazj2XwwwU/VY4N7e0GiAI/AAAAAAAALEU/TijJHcPBi4M/s400/IMG_9623.JPG" width="266" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Sunset over the <a href="https://en.wikipedia.org/wiki/Hoodoo_(geology)">hoodoos</a> at Bryce Canyon. Sadly, I forgot to bring my timer for this trip so I was unable to take star-trail pictures over the rock formations.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4TWnQmANLCM_-00KDzc2X_tIoKVJ-FX1RwFgSZLq7GKZcdGkOXk1EBRBbafkE3McFWqS56f4Srn7Q8BirZtBxrYCOt0HYy54SQHPmWpOYZ_55kXfT8pRalbaCAC5xyGxwS8pNHV6nt-0/s1600/IMG_9626.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4TWnQmANLCM_-00KDzc2X_tIoKVJ-FX1RwFgSZLq7GKZcdGkOXk1EBRBbafkE3McFWqS56f4Srn7Q8BirZtBxrYCOt0HYy54SQHPmWpOYZ_55kXfT8pRalbaCAC5xyGxwS8pNHV6nt-0/s400/IMG_9626.JPG" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><a href="https://en.wikipedia.org/wiki/Pyrrocoma_uniflora">Plaintain Goldenweed</a> over Bryce Canyon. </td></tr>
</tbody></table>
<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOGA4i_B5GQWl9dadfmRpp7GlkL-MlPMju9JCgoTisUZxBAmX7DUQ5A7sX9h3F528lOt7ZteGGMmr4phL3QIJN7hcZfQXurqm4FZurmFX2FYMoTB0n5BRNit8h2ylBRiWkhjDeVyux3do/s1600/IMG_9779.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto; text-align: center;"><img border="0" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOGA4i_B5GQWl9dadfmRpp7GlkL-MlPMju9JCgoTisUZxBAmX7DUQ5A7sX9h3F528lOt7ZteGGMmr4phL3QIJN7hcZfQXurqm4FZurmFX2FYMoTB0n5BRNit8h2ylBRiWkhjDeVyux3do/s400/IMG_9779.JPG" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">I can't do landscapes, but I thought this tiny arch and bonsai-sized Juniper tree were a perfect microcosm of Upper Coyote Butte. Note the <a href="https://en.wikipedia.org/wiki/Concretion#Moqui_Marbles">Moqui marbles</a> in the sandstone.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-rfGfp0DSXY4/VY4VlMawOuI/AAAAAAAALE4/eUrR89zH5K8/s1600/IMG_9808.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="266" src="http://4.bp.blogspot.com/-rfGfp0DSXY4/VY4VlMawOuI/AAAAAAAALE4/eUrR89zH5K8/s400/IMG_9808.JPG" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">A <a href="https://en.wikipedia.org/wiki/Great_Basin_spadefoot">Great Basin Spadefoot</a> tadpole living in a puddle at Upper Coyote Butte. Remarkably, there were also at least two kinds of shrimp living in this same pool, <a href="https://en.wikipedia.org/wiki/Triops_longicaudatus">tadpole shrimp</a> and <a href="https://en.wikipedia.org/w/index.php?title=Clam_shrimp&redirect=no">clam shrimp</a>.</td></tr>
</tbody></table>
<br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-F43qPd1Agnw/VY4Y4HucrLI/AAAAAAAALFA/Y-rySNAOhlM/s1600/IMG_9822.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="266" src="http://1.bp.blogspot.com/-F43qPd1Agnw/VY4Y4HucrLI/AAAAAAAALFA/Y-rySNAOhlM/s400/IMG_9822.JPG" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">We startled this <a href="https://en.wikipedia.org/wiki/Sceloporus_magister">Desert Spiny Lizard</a> which preferred to glare at us from under a rock and behind a dead Juniper.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-46Mj9O5u5xI/VY4Z3a1CJgI/AAAAAAAALFI/jyOEgD3oD_Q/s1600/IMG_9837.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="266" src="http://3.bp.blogspot.com/-46Mj9O5u5xI/VY4Z3a1CJgI/AAAAAAAALFI/jyOEgD3oD_Q/s400/IMG_9837.JPG" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">This <a href="https://en.wikipedia.org/wiki/Pallid-winged_grasshopper">Pallid-Winged Grasshopper</a> didn't appreciate my picking it up for a photo, and repeatedly bit me until I shooed it off my finger.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-bzYbMUcIkuc/VY4bYz85xjI/AAAAAAAALFU/hzTZqFEc9V4/s1600/IMG_9847.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="400" src="http://4.bp.blogspot.com/-bzYbMUcIkuc/VY4bYz85xjI/AAAAAAAALFU/hzTZqFEc9V4/s400/IMG_9847.JPG" width="266" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The sandstone here resembled a tubular wave that was turned to stone by the gaze of a surfing Medusa.</td></tr>
</tbody></table>
<br /><div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-c3ZJU3Vd4Z8/VY4chuTTUyI/AAAAAAAALFc/HID_yR2lLnY/s1600/IMG_9881.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="http://2.bp.blogspot.com/-c3ZJU3Vd4Z8/VY4chuTTUyI/AAAAAAAALFc/HID_yR2lLnY/s400/IMG_9881.JPG" width="266" /></a></div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-1Nr0LymttYk/VY4c--qDeWI/AAAAAAAALFk/F26WnqqhEN8/s1600/IMG_9920.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="http://3.bp.blogspot.com/-1Nr0LymttYk/VY4c--qDeWI/AAAAAAAALFk/F26WnqqhEN8/s400/IMG_9920.JPG" width="266" /></a></div>
<div>
<br /></div>
Ben Li-Sauerwinehttp://www.blogger.com/profile/00531994213807228431noreply@blogger.com0tag:blogger.com,1999:blog-3869604260061416788.post-52045725868754499122015-02-15T14:34:00.002-08:002015-02-16T23:02:35.458-08:00A 3D Printable Model of Cloud Gate aka "The Bean"<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibyCWx03GH17rDKpsquwys5fjZV8WQR9xn3p-S6yIFFVs6sU-h8_jWgDX9slV8bQ5FbhmK_5SC5GUz3BotwEFE7CAsf-IIR98zgrfDYmeUUwQA4O355qn157vpZqU_SLW5AbD_aX2fTvI/s1600/reflection.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibyCWx03GH17rDKpsquwys5fjZV8WQR9xn3p-S6yIFFVs6sU-h8_jWgDX9slV8bQ5FbhmK_5SC5GUz3BotwEFE7CAsf-IIR98zgrfDYmeUUwQA4O355qn157vpZqU_SLW5AbD_aX2fTvI/s1600/reflection.jpg" height="200" width="200" /></a></div>
There are few works of modern art as beloved as Chicago's <a href="http://en.wikipedia.org/wiki/Cloud_Gate">Cloud Gate</a>, aka "The Bean". It is interactive without having any moving parts, and indeed without being mobile at all. Nobody at any age can resist engaging with their reflection in its curiously curved surface.<br />
<br />
I started playing with <a href="https://www.tinkercad.com/">TinkerCad</a> because I wanted to use the 3D printer at work, a <a href="http://store.makerbot.com/replicator">Makerbot Replicator</a>, to print custom enclosures for my other electronics projects. I thought that printing a model of Cloud Gate would be an easy way to learn to use the system before building my enclosures. It turns out that I had it completely backwards. To print an enclosure out of basic shapes (cylinders and boxes) is many times easier than designing your own custom surface for printing, and it took me a very long time to finally get it right. <br />
<br />
I learned a few things about Cloud Gate as I worked on this model:<br />
<ul>
<li>Cloud Gate as seen from above is not a perfect ellipse.</li>
<li>Wikipedia and all other sources including <a href="http://anishkapoor.com/">Anish Kappor's own website</a> as the dimensions of Cloud Gate wrong. In particular, the height of the arch. You only need to stand under the arch to see that there is no way that it is 12 feet high. At most, it might be 10.</li>
<li>It is not possible to continuously deform a sphere into Cloud Gate. Its derivatives are discontinuous at certain points on the surface, so I had to resort to <a href="http://en.wikipedia.org/wiki/B%C3%A9zier_curve">Bezier curves</a> to model it.</li>
</ul>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-XhY4zi1h4gk/VODtGQXvoAI/AAAAAAAAJN0/cjmiZsejcw8/s1600/arch.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-XhY4zi1h4gk/VODtGQXvoAI/AAAAAAAAJN0/cjmiZsejcw8/s1600/arch.jpg" height="200" width="150" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">I am 6' 1" tall. There is no way that the arch is 12 feet tall. If I put my hand straight up, I can come within a foot of touching the arch.</td></tr>
</tbody></table>
<div>
Once I finally got the right form for the equations that generate the model, it was simply a matter of tuning the constants that generate the surface to match Cloud Gate as closely as possible. I'm confident that my current version of the model is close enough that, while certainly not an exact copy, nobody would be able to tell the difference even if I scaled mine to the size of the real thing and put them side-by-side.</div>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-ZtuhiB8kW-aduSAxTCTCrk34Qw3zXW5u6vZowwAEWJXaLASeZsdGn6xAfOxuGh5LF7EZbZyQfXEE82sR6ER09JByJR5ryfYKaQ8wTapP-6G2HmcODT397ZTQ7ETP97mA1YcoNTSY68Y/s1600/bean1.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-ZtuhiB8kW-aduSAxTCTCrk34Qw3zXW5u6vZowwAEWJXaLASeZsdGn6xAfOxuGh5LF7EZbZyQfXEE82sR6ER09JByJR5ryfYKaQ8wTapP-6G2HmcODT397ZTQ7ETP97mA1YcoNTSY68Y/s1600/bean1.jpg" height="179" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The evolution of the model. The earliest model was printed in 2 separate pieces connected with pegs before I realized that the model prints fine when it is printed upside-down with supports and a raft.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-B0aETNM91tc/VOD5PQG64PI/AAAAAAAAJOU/J4E7lGSKsK0/s1600/bean2.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-B0aETNM91tc/VOD5PQG64PI/AAAAAAAAJOU/J4E7lGSKsK0/s1600/bean2.jpg" height="180" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The underside of the models. I think that they look better printed at standard resolution because the natural color PVA comes out shinier.</td></tr>
</tbody></table>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-u2n3lVapniw/VOD5XJuMXrI/AAAAAAAAJOc/_AT03iN7daI/s1600/bean3.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-u2n3lVapniw/VOD5XJuMXrI/AAAAAAAAJOc/_AT03iN7daI/s1600/bean3.jpg" height="180" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The model is well-balanced enough that it does not require a stand to sit normally.</td></tr>
</tbody></table>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEippurs5m2ER9E7KaGaNHQK2-4jByuROiefAAJgBLO_rhZ3HInLDlg8dggzwkJDqcHKft53HieJ63ERmFY89OvGWg5fBYN5r2j45THaDpLBZcjVoMRxHDmEwBxz3jH1yfTaKN5nf_TzHFM/s1600/bean4.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEippurs5m2ER9E7KaGaNHQK2-4jByuROiefAAJgBLO_rhZ3HInLDlg8dggzwkJDqcHKft53HieJ63ERmFY89OvGWg5fBYN5r2j45THaDpLBZcjVoMRxHDmEwBxz3jH1yfTaKN5nf_TzHFM/s1600/bean4.jpg" height="180" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">End-on, Cloud Gate has an egg-like shape.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-mHcUIHjH94M/VOD6HzoBkfI/AAAAAAAAJOs/n-xoCTpa-UQ/s1600/bean5.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-mHcUIHjH94M/VOD6HzoBkfI/AAAAAAAAJOs/n-xoCTpa-UQ/s1600/bean5.jpg" height="180" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The underside of the model showing the omphalos, or navel.</td></tr>
</tbody></table>
<div>
I recommend printing the model upside-down using supports and rafts, 25% infill and standard quality. The supports are straightforward to remove using a razor blade. The higher infill is necessary because the flat surfaces have a tendency to sag a bit at lower infill, and the standard quality prints with a larger radius and gives a shinier result.</div>
<div>
<br /></div>
<div>
It's also pretty fun to take my shape generator on TinkerCad and play with your own variant of Cloud Gate by editing the parameters. If I feel bold later, I may try <a href="http://www.shapeways.com/materials/steel">having one 3D printed in steel</a> then buffing it to a mirror finish for the ultimate desktop Cloud Gate.<br />
<br />
Download the model or printable STL files here:</div>
<div>
<br />
<ul>
<li><a href="https://tinkercad.com/things/7ECRdzjIHsa">Cloud Gate on TinkerCAD</a>, with source code for the shape generator.</li>
<li><a href="http://www.thingiverse.com/thing:684126">Cloud Gate on Thingiverse</a>, with instructions and downloadable STL file.</li>
</ul>
</div>
<div>
<br /></div>
Ben Li-Sauerwinehttp://www.blogger.com/profile/00531994213807228431noreply@blogger.com1tag:blogger.com,1999:blog-3869604260061416788.post-22097587270127254282015-01-29T22:28:00.002-08:002015-01-29T22:33:46.466-08:00Bayesian Network Reconstruction Using Systems Genetics Data: Comparison of MCMC Methods<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/--E3Cg9ejNK4/VMsfqQiUa1I/AAAAAAAAI_8/fvEUctWez_4/s1600/numbers.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/--E3Cg9ejNK4/VMsfqQiUa1I/AAAAAAAAI_8/fvEUctWez_4/s1600/numbers.jpg" height="200" width="199" /></a></div>
Several former colleagues and I collaborated on a paper that was finally published in Genetics on January 28. You can read it for free online <a href="http://www.genetics.org/content/early/2015/01/28/genetics.114.172619.full.pdf+html">here</a>.<br />
<br />
I won't regurgitate the entire work here, but I did want to take a moment to say why this research is important for many fields, not just genetics. In fact, the <a href="http://en.wikipedia.org/wiki/Bayesian_network">Bayesian network</a> reconstruction problem arises in numerous places including finance, machine learning, and crystallography. The premise of it is this: suppose you had a black box that, based on some inputs that are supplied to it, would perform a possibly random calculation and then give some results back to you. Now it is your job to figure out how the machine works. How are the outputs related to the inputs, and more importantly what is the underlying calculation that happens to produce these outputs? Keep in mind that this machine could be doing nearly anything under the hood: performing entirely different calculations based on one input, rolling dice and giving a random result, or throwing your inputs out entirely.<br />
<br />
To computational biologists right now, the cell is such a black box. We are able to measure a lot of things about it and do a lot of things to it, but we are unable to actually look at all of the things that are happening inside a cell in real time. Not only are they happening at really fast timescales, we don't have microscopes capable of watching all of the relevant interactions that happen inside a cell at once, for example DNA unwinding, RNA synthesis, ribosomes making proteins, protein folding, protein-protein and extra-cellular interactions. As a result, we are left measuring things such as <a href="http://en.wikipedia.org/wiki/Single-nucleotide_polymorphism">single-nucleotide polymorphism</a> and <a href="http://en.wikipedia.org/wiki/Gene_expression">expression </a>data and then trying to infer how the genes in the cell worked after the fact.<br />
<br />
How we reconstruct a cell's regulatory network is remarkably naive: we construct a completely random network, tweak it to make it more plausible (e.g., <a href="http://en.wikipedia.org/wiki/Simulated_annealing">simulated annealing</a> or <a href="http://en.wikipedia.org/wiki/Gradient_descent">gradient descent</a>), and then repeat this many many times. Finally, we propose that the links in the resulting networks that appeared most often are likely to be the true connections in the real network. <br />
<br />
This isn't a perfect approach, but it has yielded new insights in the past. Perhaps someday someone will come up with a greatly improved approach to reconstructing Bayesian networks, and it will be a boon to technology and mankind worthy of a Nobel prize.Ben Li-Sauerwinehttp://www.blogger.com/profile/00531994213807228431noreply@blogger.com0tag:blogger.com,1999:blog-3869604260061416788.post-32358105496120820692015-01-10T18:56:00.001-08:002015-01-10T18:56:40.234-08:00Nash Equilibrium in the Sealed-Bid Senior Auction<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-Te1G4SxjLx0/VLCCccv6SCI/AAAAAAAAIx4/oTwKjmFDn3s/s1600/20131223_221149.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-Te1G4SxjLx0/VLCCccv6SCI/AAAAAAAAIx4/oTwKjmFDn3s/s1600/20131223_221149.jpg" height="200" width="200" /></a></div>
At work we've been thinking a lot about auction theory, and I was challenged to solve for the <a href="http://en.wikipedia.org/wiki/Nash_equilibrium">Nash equilibrium</a> in the sealed-bid <a href="http://en.wikipedia.org/wiki/Auction">senior auction</a>. I found the solution and I think the result is pretty interesting, but before I get to that point I want to give some background about what an auction is and this scenario in particular.<br />
<br />
An sealed-bid auction is in its purest sense a game played between a number of bidders who all would like an item and would like to pay as little as possible for it to maximize their profit. Unlike an auction like eBay where the current hammer price is public knowledge, in the sealed-bid auction every bidder will write down how much they want to bid for the item. The auctioneer will then collect all of these secret bids and select the highest bid to be the winner<sup>1</sup>. Nobody has a chance to change their bid after they pass the auctioneer their secret bid.<br />
<br />
It's crucial to understand what a Nash Equilibrium is, and why it's important. Simply put, a Nash equilibrium strategy is a strategy such that if it was known that all other bidders were following this strategy, then it would not be optimal to deviate from the strategy. A kind of Nash equilibrium is a <a href="http://en.wikipedia.org/wiki/Strategic_dominance">dominant strategy</a>, where all bidders should follow the dominant strategy regardless of what the other players were doing.<br />
<br />
Let's start with a familiar example of a dominant strategy: the second-price auction. In a second-price auction, the highest bidder wins but only pays as much as the second-highest bidder. An example of this is an eBay auction. In a second-price auction, the dominant strategy is to bid your valuation <b>v</b> of the item at auction. In the case where you lose the auction, you pay nothing and gain nothing. In the case where you win the auction, you get the item (with value <b>v</b>) and you pay the second-highest bidder's bid (which we will call <b>b</b> for now). Your profit is then <b>v</b> - <b>b</b>, and is maximized because if you had bid less than <b>b</b> then you wouldn't have won the auction, if you bid between <b>b</b> and <b>v</b> then you are indifferent because you would have paid <b>b</b> and made profit <b>v</b> - <b>b</b> anyway, and if you had bid more than <b>v</b> you might have actually lost money because you would have paid more than the item is worth to you if the second bidder had bid higher than <b>v</b>. Thus, no matter what, even if you knew that everyone else was going to bid zero, you would still bid your valuation of the item in the second-price auction.<br />
<br />
The first-price sealed-bid auction, on the other hand, does not have a dominant strategy. In a first-price sealed-bid auction, the highest bid wins the item and pays their bid exactly. In this case, bidding my valuation <b>v</b> is actually not a good idea: I will never make a profit! If I lose, I get nothing, and if I win, my profit is my valuation <b>v</b> minus my bid <b>v</b>, which is zero!<br />
<br />
In fact, in the first-price sealed-bid auction, the best strategy actually depends on the distribution of valuations of the item in question. That is, if I thought everyone valued the item between $0 and $1 with a uniform distribution, then the optimal strategy would be different than if everyone valued the item in a normal distribution around $0.50. It becomes even more complicated in the case where I am uncertain in my appraisal of the item, in which case I must consider the <a href="http://en.wikipedia.org/wiki/Winner%27s_curse">winner's curse</a>!<br />
<br />
I will sidestep all of this complexity by asserting that <b>in every case I study below, the bidders all know that every bidder's valuation of the item is selected from a uniform distribution between 0 and 1, and that every bidder knows how many other bidders there are. </b>The solutions below are only applicable given this assertion. <br />
<br />
In the first-price sealed-bid auction, the ideal bid would be only slightly higher than the second place bidder's bid. Naively, I will make the zero-order guess that all bidders will actually bid their valuation except for the one who actually does the math. Now I'd like to know the bid that maximizes this privileged bidder's profit, which is the maximum of the expectation value of profit given a particular bid <b>b, </b>valuation <b>v </b>and number of bidders <b>N</b>. So,<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-MLsh08mtw9M/VLCOSpFCRAI/AAAAAAAAIyI/P5iVAVls5zY/s1600/latex_09c805110e4d153e3876faf283ab2953.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-MLsh08mtw9M/VLCOSpFCRAI/AAAAAAAAIyI/P5iVAVls5zY/s1600/latex_09c805110e4d153e3876faf283ab2953.png" height="31" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Equation 1: Expected profit in the uniform-distribution first-price sealed-bid auction assuming that all bidders except one privileged bidder bid their value.</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
The first term is the profit if the privileged bidder wins with bid <b>b</b>, and the second term is the probability that all other bidders had valuations and bids less than <b>b</b>. The expected profit is maximized if the first derivative is zero<sup>2</sup><br />
<sup><br /></sup>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-DcLHHyueGnU/VLChsqzblWI/AAAAAAAAIzg/egS0O8B-sp0/s1600/latex_ab6fb5ea31a40c8599362626cebdb547.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://4.bp.blogspot.com/-DcLHHyueGnU/VLChsqzblWI/AAAAAAAAIzg/egS0O8B-sp0/s1600/latex_ab6fb5ea31a40c8599362626cebdb547.png" height="62" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Equation 2: Solving for the the maximum expected profit in the uniform-distribution first-price sealed-bid auction, if all bidders but one bid their valuation</td></tr>
</tbody></table>
<br />
It is now straightforward to solve for the optimal bidding strategy.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-c_towUcfQog/VLCP2uzTLAI/AAAAAAAAIyc/-eKwP1JQZ0w/s1600/latex_5cba05bb0fd13962501efff1f56b2bb6.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-c_towUcfQog/VLCP2uzTLAI/AAAAAAAAIyc/-eKwP1JQZ0w/s1600/latex_5cba05bb0fd13962501efff1f56b2bb6.png" height="80" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Equation 3: I will show that this is the Nash equilibrium strategy in the uniform-distribution first-price sealed-bid auction.</td></tr>
</tbody></table>
<br />
I made a crucial assumption above: that every other player would bid their valuation. A strategy is only a Nash equilibrium if the strategy would be optimal given that everyone else is using the strategy. If everyone were using this bidding strategy, would it be worthwhile to deviate? To find out, I can substitute this bidding strategy into the profit term in equation 1 and solve again. Now, all of the other bidders are using the strategy in Equation 3. Can our privileged bidder do better? The first term in Equation 1 remains the same: the profit will just be his value minus his bid. However, the probability that a bidder wins with this bid has changed because everyone else's value could actually be somewhat higher, <b>v </b>= <b>N</b> <b>b</b> / (<b>N</b> - 1).<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbQjnSSXgk227CwVB6jAz7iWOfay7FlvsDTnIXpCVpmbTKKTjAJr8MC64owhP3-Z8UZ9AX4H27crD9gVTajZN8wl1UJxUr1h2KdXGRLl08_YczLekc5Mpop6gPp24RQ0kboee0HtXQ8CM/s1600/latex_91429460b9fddff9fd32a1f9a4bb5488.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbQjnSSXgk227CwVB6jAz7iWOfay7FlvsDTnIXpCVpmbTKKTjAJr8MC64owhP3-Z8UZ9AX4H27crD9gVTajZN8wl1UJxUr1h2KdXGRLl08_YczLekc5Mpop6gPp24RQ0kboee0HtXQ8CM/s1600/latex_91429460b9fddff9fd32a1f9a4bb5488.png" height="42" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Equation 4: Solving for the maximum profit in the uniform-distribution first-price sealed-bid auction, if all other players bid the Nash equilibrium.</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
Just like in equation 2, I can solve for the new optimal strategy. It should be obvious that the optimal bid, which is just the solution to<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-o1X4epgEnSk/VLCg3ackgMI/AAAAAAAAIzI/l-5yYAWKIJY/s1600/latex_32be202cad9f533ad782a2b190a89edb.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-o1X4epgEnSk/VLCg3ackgMI/AAAAAAAAIzI/l-5yYAWKIJY/s1600/latex_32be202cad9f533ad782a2b190a89edb.png" height="51" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
is just the same as equation 3. Therefore, equation 3 is the Nash equilibrium.<br />
<br />
<br />
I can now calculate the winner's expected profit in equilibrium by substituting equation 3 into equation 4, yielding<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-3pAJ2Z5Ivrg/VLCkMiWm7eI/AAAAAAAAIzs/QQ8Ljr4phj8/s1600/latex_71e3a0d9d35f1c25bd7c495fc81812a8.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-3pAJ2Z5Ivrg/VLCkMiWm7eI/AAAAAAAAIzs/QQ8Ljr4phj8/s1600/latex_71e3a0d9d35f1c25bd7c495fc81812a8.png" height="53" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Equation 5: The expected profit given that all players bid rationally in the uniform-distribution first-price sealed-bid auction.</td></tr>
</tbody></table>
<br />
It turns out that equation 5 is something more universal than might be expected. The <a href="http://en.wikipedia.org/wiki/Revenue_equivalence">Revenue Equivalence Theorem</a> tells us that as long as we set the rules of the auction so that the highest bidder wins the item and a bidder with value 0 has an expected profit of 0, all sealed-bid uniform-distribution auctions will have the same expected profit as in equation 5!<br />
<br />
For example, let's consider an all-pay auction. In an all-pay auction, every bidder pays their bid but only the highest bidder goes home with the item. Obviously, a bidder should bid less than in the first-price auction above because their risk is higher: a bidder will always pay his bid but may not actually get the item to show for it. As long as a bidder's valuation is more than zero, then he should bid more than zero because there is a small chance that he could get a spectacular deal on the item! How much, exactly, should a bidder bid?<br />
<br />
I'll solve this with the revenue equivalence theorem. The revenue equivalence theorem tells me that the expected profit must be the same as in Equation 5, because the highest bidder still wins the auction and a bidder with the lowest valuation, 0, will simply walk away from the auction neither profiting nor paying. Therefore, equation to solve is:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-WPLpTx3QbPY/VLCnFLEX8jI/AAAAAAAAIz4/HdYlvIjLqn8/s1600/latex_03915ff7559119b9dba9cdf1d6a01859.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-WPLpTx3QbPY/VLCnFLEX8jI/AAAAAAAAIz4/HdYlvIjLqn8/s1600/latex_03915ff7559119b9dba9cdf1d6a01859.png" height="84" width="320" /></a></div>
<br />
<br />
The left hand side of the equation comes from the revenue equivalence theorem. The right hand side is justified as follows: if a bidder has the highest valuation <b>v </b>(and therefore the highest bid), then he gets the item and recovers value v. All bidders always pay their bid, <b>b</b>, in the all-pay auction so that value is simply subtracted. This is trivially solved:<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-N4gNe6gJap8/VLCnr4NypGI/AAAAAAAAI0A/hHPNQhYZKYs/s1600/latex_fe7944833d48c9cbf567151dabfdbdeb.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-N4gNe6gJap8/VLCnr4NypGI/AAAAAAAAI0A/hHPNQhYZKYs/s1600/latex_fe7944833d48c9cbf567151dabfdbdeb.png" height="113" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Equation 6: The Nash equilibrium bid in the uniform-distribution all-pay sealed-bid auction.</td></tr>
</tbody></table>
<br />
Now I am ready to tackle the original challenge: the Senior Auction. In the Senior Auction, the first-place and second-place bidders both pay, but nobody else does. Like all other auctions discussed here, the highest bidder will still be the one who takes home the item. A rational bidder should bid at least as much in the all-pay auction because their risk is lower, and should bid less than in the first-price auction because their risk is higher. Let's find out exactly how much using the Revenue Equivalence Theorem.<br />
<br />
This should be fairly straightforward to solve. The profit for the highest bidder is v - b, and the cost for the second-highest bidder is their bid b. Thus, I have:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-xxAp0n-atM4/VLHci-W18YI/AAAAAAAAI0Q/ScGFRx0nzuk/s1600/latex_49f2e030cd7b0ee140431d87db2ad07b.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-xxAp0n-atM4/VLHci-W18YI/AAAAAAAAI0Q/ScGFRx0nzuk/s1600/latex_49f2e030cd7b0ee140431d87db2ad07b.png" height="52" width="640" /></a></div>
<br />
Which is just<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-LIbPkOGSszI/VLHdWLpHvbI/AAAAAAAAI0Y/ZAAgqc7Jm30/s1600/latex_4841adec7a04356254c57721fe8260b5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-LIbPkOGSszI/VLHdWLpHvbI/AAAAAAAAI0Y/ZAAgqc7Jm30/s1600/latex_4841adec7a04356254c57721fe8260b5.png" height="76" width="640" /></a></div>
<br />
This is straightforward to solve for b in terms of v:<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-GSRqlTSz0Mw/VLHeFbkzcDI/AAAAAAAAI0g/1kkA8oV5z94/s1600/latex_5c5c4b999a05a69119d1a8b353a9e237.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-GSRqlTSz0Mw/VLHeFbkzcDI/AAAAAAAAI0g/1kkA8oV5z94/s1600/latex_5c5c4b999a05a69119d1a8b353a9e237.png" height="66" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Equation 7: The Nash equilibrium bid in the uniform-distribution sealed-bid senior auction.</td></tr>
</tbody></table>
<br />
For example, let's take a look at the Nash equilibrium bid in the first-price, all-pay and senior auction for 10 bidders.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-9yeHhpUiYl8/VLHe0QpmaUI/AAAAAAAAI0s/q0XFlsK-djE/s1600/senior-price.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-9yeHhpUiYl8/VLHe0QpmaUI/AAAAAAAAI0s/q0XFlsK-djE/s1600/senior-price.png" height="492" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figure 1: Nash equilibrium bid as a function of valuation in three different types of auction, given 10 bidders with uniform valuations on [0,1]. </td></tr>
</tbody></table>
<br />
Figure 1 shows two things that give us confidence in the result from equation 7. A rational bidder always bids at least as high in the senior auction as in the all pay auction, and never bids more than in the first price auction. This makes sense because the bidder's risk in the senior auction is higher than in the first price auction, but lower than that in all pay. Another comforting observation in equation 7 is that for N = 2, the result is exactly the same as in the all pay auction as would be expected.<br />
<br />
I'd like to verify that this is actually a Nash equilibrium by inverting equation 7, substituting back into the expected profit function and taking the first derivative, but that is algebraically cumbersome. Instead, I will employ a computer algebra system, <a href="http://sourceforge.net/projects/wxmaxima/">wxMaxima</a>, and verify that the solution is a Nash equilibrium for some chosen values. In my <a href="https://drive.google.com/file/d/0B67qmvk4E9ZzUUdhTVpLU2JrbVU/view?usp=sharing">Maxima notebook (download here)</a>, I require both <span style="font-family: Courier New, Courier, monospace;">bid(v, B)</span><span style="font-family: inherit;">, which is the putative equilibrium bid given valuation <b>v</b> and number of bidders <b>B </b>and </span><span style="font-family: Courier New, Courier, monospace;">value(b, B)</span><span style="font-family: inherit;">, which inverts </span><span style="font-family: Courier New, Courier, monospace;">bid(v, B)</span><span style="font-family: inherit;"> with respect to valuation. The function </span><span style="font-family: Courier New, Courier, monospace;">ExpectedWinnings(b, v, N, B)</span><span style="font-family: inherit;"> gives the expected winnings in a top-<b>N</b>-pay auction given bid <b>b</b>, valuation <b>v</b>, <b>N</b> the number of top bidders who pay their bid, and the number of bidders <b>B</b>. The </span><br />
expression <span style="font-family: Courier New, Courier, monospace;">solve(diff(ExpectedWinningsAllPay(b, v, B), b), b)</span><span style="font-family: Arial, Helvetica, sans-serif;"> </span><span style="font-family: inherit;">determines the optimal bid <b>b</b> by solving </span><br />
<span style="font-family: inherit;"><br /></span>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-VwJcoZYrRxE/VLHi4gSP8hI/AAAAAAAAI04/-ZseGdXPOOk/s1600/latex_f02503ca4089e5826c1edcf1a7de7593.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-VwJcoZYrRxE/VLHi4gSP8hI/AAAAAAAAI04/-ZseGdXPOOk/s1600/latex_f02503ca4089e5826c1edcf1a7de7593.png" height="93" width="320" /></a></div>
<span style="font-family: inherit;"><br /></span>
<br />
<span style="font-family: inherit;">given that all other bidders engage in the strategy prescribed by </span><span style="font-family: 'Courier New', Courier, monospace;">bid </span><span style="font-family: inherit;">and </span><span style="font-family: 'Courier New', Courier, monospace;">value</span><span style="font-family: inherit;">. If the result is the same as </span><span style="font-family: 'Courier New', Courier, monospace;">bid</span><span style="font-family: inherit;">, then </span><span style="font-family: 'Courier New', Courier, monospace;">bid </span><span style="font-family: inherit;">is a Nash equilibrium because there is nothing to be gained from deviating from this strategy given that everyone else is using it.</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">If you execute my wxMaxima notebook yourself, you will see that Equation 7 is indeed a Nash equilibrium for the chosen valuation and number of bidders, so it is empirically true that Equation 7 is the Nash equilibrium for the uniform-distribution sealed-bid senior auction.</span><br />
<br />
<sup>1</sup> Not all kinds of sealed-bid auctions give the item to the highest bidder, and not all kinds of sealed-bid auctions require that each bidder places only one bid. For all examples here, the highest bidder wins. Interested parties might read about <a href="http://en.wikipedia.org/wiki/Unique_bid_auction">unique bid auctions</a>.<br />
<br />
<br />
<sup>2</sup> Actually, it may be maximized or minimized. A more thorough person would check the second derivative to determine whether he found a local maximum or a local minimum. This is an exercise left to the reader.Ben Li-Sauerwinehttp://www.blogger.com/profile/00531994213807228431noreply@blogger.com0tag:blogger.com,1999:blog-3869604260061416788.post-26327766436607392592014-11-11T22:33:00.001-08:002014-11-11T22:33:36.269-08:00Wedding Photos<div class="separator" style="clear: both; text-align: center;">
<a href="https://2.bp.blogspot.com/-3x70-n5RdHg/VGLf-PU_7wI/AAAAAAAAIPM/_utuyKj-S-U/s1600/rings_cropped.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" src="https://2.bp.blogspot.com/-3x70-n5RdHg/VGLf-PU_7wI/AAAAAAAAIPM/_utuyKj-S-U/s200/rings_cropped.jpg" width="200" /></a></div>
<a href="http://joshuaalbanese.com/">Josh</a>, our wedding photographer, recently sent us our wedding photos and we're really excited about them. I looked at roughly a hundred photographers when we were planning our wedding as I like to think I have high standards for photography, and I separated them into four groups: "People who picked up a camera and decided that they too make money at weddings," "People with a decent understanding of photography but who don't know how to shoot weddings," "People who understand photography and who know what shots people want taken at weddings," and "Artists." Of about 100 photographers, there were three that I considered artists--people who understand photography, understand weddings, and who have an eye for a shot that looks natural and beautiful. One of them was booked for our weekend a year in advance, and of the other two Simiao preferred Josh. If you are looking for a wedding photographer, I couldn't recommend him more highly. He was even willing to work with us to create a package that was exactly what we needed, and I think the quality of his work speaks for itself. I've posted some favorite shots here, and if you want to see the rest of them you can look at the watermarked photos in <a href="https://drive.google.com/folderview?id=0B67qmvk4E9ZzeTZuRHhMYW5nb1U&usp=sharing">my Google drive</a>. Please feel free to share or repost the watermarked photos. If you want an un-watermarked photo suitable for printing, let me know and I will grant you access to the printable photos.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://2.bp.blogspot.com/-0JxfXQmH7OQ/VGL7D4iYnPI/AAAAAAAAIPc/nZda4vpIoHk/s1600/0039_JAP_SB.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="265" src="https://2.bp.blogspot.com/-0JxfXQmH7OQ/VGL7D4iYnPI/AAAAAAAAIPc/nZda4vpIoHk/s400/0039_JAP_SB.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">This was actually the first moment I saw Simiao in her wedding dress.</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://3.bp.blogspot.com/-98Vekezdzi8/VGL8AmVn7hI/AAAAAAAAIPk/YF2IVI4vIuc/s1600/0254_JAP_SB.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="266" src="https://3.bp.blogspot.com/-98Vekezdzi8/VGL8AmVn7hI/AAAAAAAAIPk/YF2IVI4vIuc/s400/0254_JAP_SB.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Our extremely silly wedding party.</td></tr>
</tbody></table>
<br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://3.bp.blogspot.com/-qMLskjULjp0/VGL8mKjZJKI/AAAAAAAAIPs/Mq3GvNZzLWg/s1600/0308_JAP_SB.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="266" src="https://3.bp.blogspot.com/-qMLskjULjp0/VGL8mKjZJKI/AAAAAAAAIPs/Mq3GvNZzLWg/s400/0308_JAP_SB.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The big moment--we were both doing our best to keep it together.</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjR3RNfW-ICnU3MmRgaTZCTtZ_v2swkc7B5KvMyWAb6720cVYOaAwn6LX68q_gwhm3w8YIOVk6jLXaeEDZqP9v6gg9qCZL8dmGyUOX8-zG-M_zWE4NznLerSX5pe4dtYV504RABaCZMDnU/s1600/0346_JAP_SB.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjR3RNfW-ICnU3MmRgaTZCTtZ_v2swkc7B5KvMyWAb6720cVYOaAwn6LX68q_gwhm3w8YIOVk6jLXaeEDZqP9v6gg9qCZL8dmGyUOX8-zG-M_zWE4NznLerSX5pe4dtYV504RABaCZMDnU/s400/0346_JAP_SB.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Cocktail hour in the Founder's room.</td></tr>
</tbody></table>
<br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjS7F2nB2NN9OGGdywAqfT3R7KYcbXFc2jXz1ognsanJkPrPjV7yEU0GUzGKFIWGXLTuYfRmjYA0Um23Z82Sp_-nx5LIcZVN6r0B2i9WWChwSUDztLUpwEVjeD0K0kw5RhTvJ6WcjGvZf0/s1600/0481_JAP_SB.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="210" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjS7F2nB2NN9OGGdywAqfT3R7KYcbXFc2jXz1ognsanJkPrPjV7yEU0GUzGKFIWGXLTuYfRmjYA0Um23Z82Sp_-nx5LIcZVN6r0B2i9WWChwSUDztLUpwEVjeD0K0kw5RhTvJ6WcjGvZf0/s400/0481_JAP_SB.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The festivities went on until midnight.</td></tr>
</tbody></table>
<div>
<br /></div>
<div>
Please feel free to download, share, and enjoy <a href="https://drive.google.com/folderview?id=0B67qmvk4E9ZzeTZuRHhMYW5nb1U&usp=sharing">the entire collection</a>. If you'd like a printable, un-watermarked original of one, let me know and I will give you access to those.</div>
Ben Li-Sauerwinehttp://www.blogger.com/profile/00531994213807228431noreply@blogger.com0tag:blogger.com,1999:blog-3869604260061416788.post-25643137807961766382014-10-13T22:19:00.001-07:002014-10-13T22:19:25.304-07:00I Am Now Married<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLvJ5EA6dRvuIgGeh9TEOxumJ7K1JoLRxK1J1LVcdh4apNYnms0mGgtw_kl-gqdZ2qWyMFfEzmiO8Q8bI_LYnDUhzcXnMPx1Fp9bPL547EceQ0XkinBRTn6E1HNg4h1DOimmqtPfZ0oD0/s1600/IMG_2538.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLvJ5EA6dRvuIgGeh9TEOxumJ7K1JoLRxK1J1LVcdh4apNYnms0mGgtw_kl-gqdZ2qWyMFfEzmiO8Q8bI_LYnDUhzcXnMPx1Fp9bPL547EceQ0XkinBRTn6E1HNg4h1DOimmqtPfZ0oD0/s1600/IMG_2538.jpg" height="200" width="200" /></a></div>
I apologize for the radio silence over the last several months! I have been working on a few projects that have been more time consuming than originally expected, but when they're ready I promise that it'll be worth the wait.<br />
<br />
First, in May I moved to Chicago to be with Simiao, who matched to Northwestern for Emergency Medicine. As I prepared to move, I realized that most of the stuff I owned was worn out, so I threw out nearly everything that I couldn't mail or fit in my car and left Seattle on the very path that I drove in on two and a half years earlier. I also necessarily changed teams at Google because, naturally, I also had to change offices.<br />
<br />
Moving into a new city and a new apartment with no stuff presents a new issue. It took us nearly a month to assemble the trappings of a normal life. A bed, a couch, a dinner table, a television. These aren't things you think a lot about until you realize that you don't own one, and so when we could finally come home, relax, and actually feel like we were at home it felt like an achievement. It was an achievement that we didn't have much time to savor because following the move we were now far behind schedule on planning our wedding. Thinking about it now, it's actually kind of amazing (and a credit to Simiao's awesome family who helped us along the way) that it all came together as well as it did.<br />
<br />
Our wedding on Saturday was wonderful. It was small, personal, and the Morton Arboretum is a beautiful venue. It meant a lot to us that we could have a place that felt private and natural, and that didn't give any acknowledgement to a religion which neither of us subscribe to. It was everything that I ever wanted in a wedding and I can't wait to share the photos with you when they're ready.<br />
<br />
For now, I have two treats for you. First, our vows. Simiao's were so sweet that I can still barely read them without tearing up. In fact, it seemed like everyone present could barely hold it together.<br />
<br />
Simiao:<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><i>I vow to pursue patience, compromise, and reciprocity every day.</i></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><i>I vow to take pride in who we are, individually and together.</i></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><i>I vow to support you in times of trouble.</i></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><i>I vow to honor and respect you for all that you are and will become.</i></span></div>
<span id="docs-internal-guid-0d1096e1-0cfc-9a5b-778a-b082ff109656"><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"><i>Above all, I vow to give you my love freely and unconditionally, for all the days of our lives.</i></span></span><br />
<br />
Myself:<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><i>I vow to treat you with honor, love and dignity.</i></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><i>I vow to use life's challenges to edify our relationship.</i></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><i>I vow to protect you with all of my strength.</i></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><i>I vow to inspire your trust.</i></span></div>
<span id="docs-internal-guid-0d1096e1-0cfc-cbda-140e-388d548e04a0"><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"><i>Likewise, I vow to give you my love freely and unconditionally, for all the days of our lives.</i></span></span><br />
<span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"><i><br /></i></span></span>
Second, we got our engagement photos! I've placed a few favorites here, and the rest of the watermarked ones can be found publicly <a href="https://drive.google.com/folderview?id=0B67qmvk4E9ZzRkR0QzNJUDVhMHM&usp=sharing">in my Google drive here</a> (feel free to share these on social media if you like). If you'd like access to the printable ones to print a photo for your personal use (you may not share them on social media), please <a href="https://drive.google.com/folderview?id=0B67qmvk4E9Zzb0I1NDI3M1FmaEE&usp=sharing">request access here</a>.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-c6EIC9qriLY/VDyxgeXITCI/AAAAAAAAGAo/vAoybbFTFz0/s1600/0052_Chicago_engagement_Photography_SB.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-c6EIC9qriLY/VDyxgeXITCI/AAAAAAAAGAo/vAoybbFTFz0/s1600/0052_Chicago_engagement_Photography_SB.jpg" height="426" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-O5xeL204zbc/VDyxlnqcM1I/AAAAAAAAGAw/xyEUlyGuF1U/s1600/0071_Chicago_engagement_Photography_SB.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-O5xeL204zbc/VDyxlnqcM1I/AAAAAAAAGAw/xyEUlyGuF1U/s1600/0071_Chicago_engagement_Photography_SB.jpg" height="426" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/--Y2n_2axaz4/VDyxqnPQG1I/AAAAAAAAGA4/3R6rmB1JElc/s1600/0163_Chicago_engagement_Photography_SB.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/--Y2n_2axaz4/VDyxqnPQG1I/AAAAAAAAGA4/3R6rmB1JElc/s1600/0163_Chicago_engagement_Photography_SB.jpg" height="426" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-J8vQyykBviE/VDyxuhzH8OI/AAAAAAAAGBA/MvTP8bs0NeU/s1600/0174_Chicago_engagement_Photography_SB.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-J8vQyykBviE/VDyxuhzH8OI/AAAAAAAAGBA/MvTP8bs0NeU/s1600/0174_Chicago_engagement_Photography_SB.jpg" height="426" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-2RJwIdEh2uw/VDyx87n_nSI/AAAAAAAAGBQ/nbLr5KFERzU/s1600/0181_Chicago_engagement_Photography_SB.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-2RJwIdEh2uw/VDyx87n_nSI/AAAAAAAAGBQ/nbLr5KFERzU/s1600/0181_Chicago_engagement_Photography_SB.jpg" height="640" width="426" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />Ben Li-Sauerwinehttp://www.blogger.com/profile/00531994213807228431noreply@blogger.com0tag:blogger.com,1999:blog-3869604260061416788.post-66649335586858225832014-04-07T23:11:00.001-07:002014-04-07T23:11:20.472-07:00Time Again<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEoDCGo09CFXAfupJTtouJ5zHKxvUbEmaLKkx9GOJTN_aU2Z3qG8nBeDi3ZqJPQigpPey4iDY0jWsCwpiKKMR45Ov90Eua51xE3WUK6QK68x1eY1QmbNiD2ZJiv_7k6iG0yoryWro35-Q/s1600/photo+3.JPG" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEoDCGo09CFXAfupJTtouJ5zHKxvUbEmaLKkx9GOJTN_aU2Z3qG8nBeDi3ZqJPQigpPey4iDY0jWsCwpiKKMR45Ov90Eua51xE3WUK6QK68x1eY1QmbNiD2ZJiv_7k6iG0yoryWro35-Q/s1600/photo+3.JPG" height="200" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">A <a href="http://en.wikipedia.org/wiki/Aeolidia_papillosa">Shaggy Mouse Nudibranch</a> found in<br />tide pools at Discovery Park in Seattle.</td></tr>
</tbody></table>
We recently picked up two more pinhole cameras that had been sitting around Seattle all winter long. One spent about 9 months on the roof of an apartment building in Wallingford, and another spent about 3 months behind a sealed-up military housing unit at Discovery Park. Both pieces of photo paper came out remarkably wet and sticky, but with intact photos. It was interesting that these cameras which used a much smaller aperture than the previous ones were burned red with the exposure instead of the violet or black of the previous cameras, and it's unclear whether this is due to the lower level of exposure to the sun or the extreme dampness of the photo paper due to the elements. Curiously, these negatives also required much less correction using color curves than previous exposures. One lesson that has proved useful in selecting sites for the pinhole cameras is that the subject should be as strongly backlit as possible. In the case of the abandoned military housing, we selected a site where the pinhole camera would frequently fall directly in the shadow of the subject, which made for a beautiful shot.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-QyX-cWTIVUk/U0OSC4gS3rI/AAAAAAAADdM/WBoe-hb7ojU/s1600/IMG1-processed.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-QyX-cWTIVUk/U0OSC4gS3rI/AAAAAAAADdM/WBoe-hb7ojU/s1600/IMG1-processed.jpg" height="640" width="465" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Pinhole exposure lasting roughly 9 months on the roof of an apartment building in Wallingford. Exposed July 2013-April 2014.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8N6he7ldZNZVbx7fOWp6PqxLZS6omP16bviYirEpbKFH8-NOW21_pRlEvYpBUOz9nGV6a8NSysxY53Rc-WSyr4TRPcNNuhNWdv_yjRIonP7F34TrlJLeioLpSKgTQIF1KBOm2hpQlJtA/s1600/IMG2-processed.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8N6he7ldZNZVbx7fOWp6PqxLZS6omP16bviYirEpbKFH8-NOW21_pRlEvYpBUOz9nGV6a8NSysxY53Rc-WSyr4TRPcNNuhNWdv_yjRIonP7F34TrlJLeioLpSKgTQIF1KBOm2hpQlJtA/s1600/IMG2-processed.jpg" height="512" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Pinhole exposure from Jan 25, 2014 until April 5, 2014. Boarded-up military housing at Discovery Park.</td></tr>
</tbody></table>
<br />
<br />
<br />
<br />Ben Li-Sauerwinehttp://www.blogger.com/profile/00531994213807228431noreply@blogger.com0tag:blogger.com,1999:blog-3869604260061416788.post-52780767549378379872014-04-05T00:18:00.002-07:002014-04-05T11:17:51.683-07:00Transmutation<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-o4TvRGbMPmk/Uz-p0yteUtI/AAAAAAAADbk/513sVBtneJI/s1600/IMG_9410.JPG" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-o4TvRGbMPmk/Uz-p0yteUtI/AAAAAAAADbk/513sVBtneJI/s1600/IMG_9410.JPG" height="200" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">What's left of the old Hanford high school.</td></tr>
</tbody></table>
Ever since I moved to Seattle, I had always wanted to go tour the Hanford Nuclear Reservation. Even as the military used the Hanford site to transmute Uranium into Plutonium, they transmuted a gorgeous desert landscape into a terribly contaminated mess. It's hard to imagine anyone having such disrespect for the landscape today, but back then contaminated water was actually piped directly into the Columbia river and sometimes outright dumped into the desert. Waste that would be toxic for 10,000 years was pumped into tanks designed to last 50. The American and Washington state taxpayer is paying the price for this cleanup today, but the tour guides will tell you that it is likely that parts of the reservation may have to be controlled and monitored for the foreseeable future. That said, the B reactor is a marvel of engineering that is very much worth your time to come out and see and perhaps the best historical site tour I've been on since the <a href="http://www.titanmissilemuseum.org/">Titan Missile Museum</a>. You can make reservations online at their website, <a href="http://hanford.gov/">hanford.gov</a>.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-_UyYoVpVLYU/Uz-rGpgpxkI/AAAAAAAADbw/nrge3X5ljII/s1600/IMG_9388.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-_UyYoVpVLYU/Uz-rGpgpxkI/AAAAAAAADbw/nrge3X5ljII/s1600/IMG_9388.JPG" height="213" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">These cylinders were loaded with Uranium slugs while the reactor was in operation. Every month, the reactor was shut down and the slugs were removed and sent for processing at a nearby facility where Plutonium could be extracted. The B reactor did not produce any electricity, only plutonium. The waste hot water was piped to cooling ponds and ultimately back to the river.</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-YROYotnqKQs/Uz-r1GBpH4I/AAAAAAAADb4/HkZ3pqu_rpk/s1600/IMG_9395.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-YROYotnqKQs/Uz-r1GBpH4I/AAAAAAAADb4/HkZ3pqu_rpk/s1600/IMG_9395.JPG" height="213" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The B reactor staff was well prepared for the event of a radioactive zombie attack.</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-YdahE7rKLPw/Uz-sD3zJyII/AAAAAAAADcA/OgAIQ7s6WA4/s1600/IMG_9396.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-YdahE7rKLPw/Uz-sD3zJyII/AAAAAAAADcA/OgAIQ7s6WA4/s1600/IMG_9396.JPG" height="213" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Systems in the reactor were either remarkably high-tech or remarkably low-tech. In the case that power to the horizontal control rods was lost, giant buckets of stones would be dropped onto a cylinder of hydraulic fluid, pushing the control rods into the safe shut-down position.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-owJ5wyouLao/Uz-scmFDDGI/AAAAAAAADcI/qC69l58EX6U/s1600/IMG_9404.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://4.bp.blogspot.com/-owJ5wyouLao/Uz-scmFDDGI/AAAAAAAADcI/qC69l58EX6U/s1600/IMG_9404.JPG" height="320" width="213" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">A final backup plan was stored in the control room office space. No, the backup plan was not keys to a rocket car or the phone number to the President. It was the one thing they were sure to need in case of a meltdown.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-tRuGrovRslk/Uz-swoYwcvI/AAAAAAAADcQ/tJj3Bwiuy5o/s1600/IMG_9408.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-tRuGrovRslk/Uz-swoYwcvI/AAAAAAAADcQ/tJj3Bwiuy5o/s1600/IMG_9408.JPG" height="320" width="213" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">"SCRAM" is a term originating from the early days of nuclear reactors, when the safety back-up plan was "Single Control Rod Axe Man." In these early reactors, a single control rod was positioned above the reactor suspended by a rope. In the event that the reactor went out of control, Single Control Rod Axe Man would cut the rope and drop the control rod into the reactor and stop the reactor. In the B reactor, there were vertical control rods suspended above the reactor that could be dropped into place in case the horizontal control rods be rendered inoperable and for historical reasons this was known as SCRAMming the reactor. So, yeah: Simiao and Theo should just go ahead and mash those buttons.</td></tr>
</tbody></table>
<div>
<br /></div>
Ben Li-Sauerwinehttp://www.blogger.com/profile/00531994213807228431noreply@blogger.com0tag:blogger.com,1999:blog-3869604260061416788.post-65907953069369721052014-02-20T00:33:00.002-08:002014-02-20T00:33:49.679-08:00What is the Best Hearthstone Deck Composition?<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-cvxzcVJ6_6E/UwKfuGSjuZI/AAAAAAAADFw/wLY-s43-g_4/s1600/Hearthstone.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-cvxzcVJ6_6E/UwKfuGSjuZI/AAAAAAAADFw/wLY-s43-g_4/s1600/Hearthstone.jpg" height="200" width="200" /></a></div>
A friend recently introduced me to <a href="http://us.battle.net/hearthstone/en/">Hearthstone</a>, an online collectible card game made by Blizzard. The rules are described in detail at the link above, but the general idea is that you spend some resources ('mana crystals') to use cards in your hand with the goal of defeating your opponent by doing 30 damage to them.<br />
<br />
Like many collectible card games, there are two major elements to Hearthstone's strategy. First, you must design a deck of 30 cards which you believe will give you the best opportunities to thwart your opponent. Second, you must play the hand you actually draw wisely in order to best take advantage of the opportunities presented to you during the game. <br />
<br />
This post focuses on the former phase. In particular, I want to know what the distribution of casting costs (in mana crystals) of the cards in my deck should be in order to make maximum use of the resources available to me. <b>If you are not interested in my methodology, you should skip to the results section below.</b><br />
<br />
<b><u>The Model of Hearthstone</u></b><br />
<b><br /></b>
Hearthstone is a complicated game. There are numerous synergies between cards that would make you want to play them together, and there are equally many situations where you might not want to play them at all based on the cards your opponent has played. <b>I start with a simple assumption: the player who uses the most mana crystals will tend to win. </b>This isn't strictly true, but it's easy to see that the player who has used more of his resources will probably be better off more often than not. <br />
<br />
It's immediately clear that there's a flaw in my model: the cards in a player's hand have a non-zero value just for being there! There are cards with zero casting cost, and they are undeniably useful in real play. So, how much is a card in your hand worth? <br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-xRsBE-54bpw/UwLxxJshUGI/AAAAAAAADGA/e_ZNWewSdoM/s1600/184px-Arcane_Intellect(489).png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://4.bp.blogspot.com/-xRsBE-54bpw/UwLxxJshUGI/AAAAAAAADGA/e_ZNWewSdoM/s1600/184px-Arcane_Intellect(489).png" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figure 1: Arcane Intellect card. Card and artwork is copyrighted by Blizzard, and is used here for non-profit educational purposes only.</td></tr>
</tbody></table>
<br />
Figure 1 shows a card called Arcane Intellect. It costs 3 mana crystals to use, and it allows you to draw two cards. However, when you use Arcane Intellect the card itself is used up. I am now left with a simple equation:<br />
<br />
<div style="text-align: center;">
3 mana crystals + value of 1 card = value of 2 cards</div>
<br />
Solving for the value of 1 card, I see that<b> a card in my hand is worth 3 mana crystals</b>.<br />
<br />
Finally,<b> I assume that the game is balanced.</b> That is, each card's usefulness is roughly equal to its casting cost in mana crystals plus the value of 1 card in my hand.<br />
<div style="text-align: center;">
<br /></div>
<center>
<table border="1" style="text-align: center;">
<tbody>
<tr><th>Action</th><th>Usefulness in Mana Crystals</th></tr>
<tr><td>Character Ability</td><td>2</td></tr>
<tr><td>Cost 0 Card</td><td>3</td></tr>
<tr><td>Cost 1 Card</td><td>4</td></tr>
<tr><td>Cost 2 Card</td><td>5</td></tr>
<tr><td>Cost X Card</td><td>3+X</td></tr>
</tbody></table>
</center>
<br />
<u><b>The Greedy AI</b></u><br />
<u><b><br /></b></u>
The <a href="http://en.wikipedia.org/wiki/Artificial_intelligence">AI</a> that I use to model plays with my deck is <a href="http://en.wikipedia.org/wiki/Greedy_algorithm">greedy</a>. Given the turn T that I wish to win at, it will try to maximize the total usefulness of cards and abilities played at that turn. Thus, I can design an early-game win deck that attempts to win at turn 8, or a late-game deck that attempts to win later, around turn 17. <br />
<br />
Note that my AI plays with complete disregard for the opponent or the opponent's plays, and it does not know or care about what card it is playing beyond its casting cost. It is not possible for my AI to win or lose--the opponent in the simulation never does anything. My AI greedily seeks to maximize the usefulness of the cards played at every turn.<br />
<br />
My AI always goes first. At the beginning of the game when all or part of the hand can be re-drawn, it tries to minimize the casting cost of cards in its hand. The AI thus discards all cards whose casting cost is greater than the expectation value of the cost of cards remaining in the deck.<br />
<br />
Each turn, the AI draws exactly one card. I assume that it never draws any additional cards due to spells like Arcane Intellect in Figure 1. If it does, then the value of the card drawn is represented by that card's usefulness in mana crystals (in the case of Arcane Intellect, the usefulness is 6 as shown in the table above). Then, the AI will play the combination of cards and abilities that maximizes the total usefulness of cards played this turn. If multiple combinations have the same usefulness, the combination that leaves the AI with the largest hand size is chosen. This is identical to the <a href="http://en.wikipedia.org/wiki/Knapsack_problem">knapsack problem</a> where the items are the set of cards in the player's hand plus the character's innate ability, the weights are the cost in mana crystals, the backpack is the player's current pool of mana crystals, and the values are the usefulness from the table above.<br />
<br />
For example, if the AI had 3 mana crystals and it had a cost 1, 2 and 3 card in its hand, it would play the cost 1 and cost 2 cards for a usefulness of 9. A player in an actual game might find that it is actually more useful to play the cost 3 card, or to use the character's innate, cost-2 ability.<br />
<br />
At turn T, the AI reports the total utility achieved in this simulated game. This varies from simulation to simulation and the average is reported from a large number of simulations.<br />
<br />
<b><u>The Deck Designer</u></b><br />
<br />
To design the deck with the highest chance of winning at turn T, the deck designer starts with 30 random cards with casting costs from 0 to 8 mana crystals. The designer does not care specifically what cards these are, only their cost in mana crystals. The AI is run on this deck composition a large number of times, and the average usefulness at turn T is reported. <br />
<br />
Next, the <a href="http://en.wikipedia.org/wiki/Gradient_descent">gradient descent algorithm</a> is run by taking a card out of the deck and replacing it with a card with a different casting cost for each possible combination of removed card and inserted card costs in mana crystals. If any of the modified decks has a better usefulness than the original, then gradient descent is applied again on the modified deck. If none of the modified decks has a better usefulness, then we have reached a local maximum of utility and this composition is saved as a candidate best deck.<br />
<br />
The deck designer is run a large number of times, and the mana cost distribution with the best average utility is reported as the best overall composition. Both the deck designer and the results of the simulated games are <a href="http://en.wikipedia.org/wiki/Nondeterministic_algorithm">non-deterministic</a>, so it's possible that a better deck exists than the result reported by the deck designer.<br />
<br />
<b><u>Results</u></b><br />
<b><br /></b>
I had the deck designer optimize for several different compositions: an 8-turn quick kill composition, an 11-turn mid-game kill composition, a 14-turn late-game composition, and a 17-turn ultra-late game composition. These were the best deck compositions according to my model, but when using these as a guideline in designing your deck, please keep in mind that the heuristic model should certainly come second to the actual synergies between your cards. If you don't have exactly the same number of cards of each casting cost as the ideal composition, don't sweat it. The error bars on the predicted strength are large enough that a difference of a few cards here or there is not going to make a noticeable difference.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-VPXKulZZTpw/UwW4qD946II/AAAAAAAADGo/T1dReMEw_LY/s1600/dist.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-VPXKulZZTpw/UwW4qD946II/AAAAAAAADGo/T1dReMEw_LY/s1600/dist.png" height="494" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figure 2: Simulated optimal deck compositions in mana crystals for decks designed to win at particular turns. </td></tr>
</tbody></table>
<br />
Figure 2 shows the best simulated deck compositions. Again, these compositions should be used as a flexible guideline as the synergies between the actual cards in your deck are going to make a much more significant difference than a slight deviation from the optimal casting cost distribution. It seems that for all decks, the cost-3 and cost-4 cards are the most important workhorses. A deck designed for an 8-turn kill has over half of the cards in the deck of 30 with casting cost 3 and a sprinkling of cards from cost 0 to 5. On the other hand, a deck designed for a 17-turn kill has only one cost-2 and cost-3 card, with roughly equal parts cost-4 to cost-7+ cards.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-07B_5U87EnQ/UwW56ICVLsI/AAAAAAAADG0/KPMVgC56i9E/s1600/power.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-07B_5U87EnQ/UwW56ICVLsI/AAAAAAAADG0/KPMVgC56i9E/s1600/power.png" height="494" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figure 3: Total usefulness versus turn for the four optimal deck compositions shown in Figure 2. Note that decks that take an earlier lead pay a price for that agility in the late game.</td></tr>
</tbody></table>
<br />
Obviously, a deck loaded with cost-3 cards like the 8-turn kill deck is going to pay a price in the late game. Figure 3 shows this tradeoff between early-game strength and late-game strength. The 8-turn kill deck gains a sharp advantage early on, then fizzles. After turn 10, it's at a huge strength disadvantage compared to the other decks. On the other hand, the 11 and 14-turn kill decks strike a better balance between early game strength and late game staying power. Given that the 17-turn kill deck has only a slight advantage over the 14-turn kill deck at turn 20, I don't believe it would be worth designing a deck that is to win this late in the game.<br />
<br />
<b><u>Conclusions</u></b><br />
<b><u><br /></u></b>
Since running these simulations, I've changed my deck compositions to strive for an 8-turn kill. This has been enormously successful for me in practice. By choosing cards that harmonize well and selecting a deck composition with a high chance of getting these cards into play before my opponent can react, I've realized a substantial improvement in win rate. <br />
<br />
I would recommend that the reader starts out with the 8-turn or 11-turn kill compositions depending on the desired play style. The 14-turn composition may work best for a deck whose concept is to simply survive in the early game and to outgun the opponent in the late game.Ben Li-Sauerwinehttp://www.blogger.com/profile/00531994213807228431noreply@blogger.com0tag:blogger.com,1999:blog-3869604260061416788.post-87247058876880707612014-02-09T23:19:00.001-08:002014-02-10T23:40:14.289-08:00What Is the Most Underrated DotA 2 Team?<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-b3iLsF5jPkI/UqgSHtSyqWI/AAAAAAAABfE/dpbAtw5DrBk/s1600/bunny.jpeg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-b3iLsF5jPkI/UqgSHtSyqWI/AAAAAAAABfE/dpbAtw5DrBk/s200/bunny.jpeg" height="200" width="200" /></a></div>
My <a href="http://sauerwine.blogspot.com/2013/06/even-more-betting-strategies-at-dota-2.html">previous</a> <a href="http://sauerwine.blogspot.com/2013/05/betting-strategies-at-dota-2-lounge.html">posts</a> about betting at the <a href="http://www.dota2lounge.com/">DotA 2 Lounge</a> have been enormously popular. There have been over 1000 games since my last post, and I decided to revisit the vastly expanded data set. I have previously made the scripts available to anyone wishing to perform these analyses themselves.<br />
<br />
First, a moment to talk about <a href="http://en.wikipedia.org/wiki/Parimutuel_betting">parimutuel betting</a>. The DotA 2 Lounge runs a parimutuel betting scheme. Suppose that there are two teams playing and a better bets on the winning team. That player's payout, assuming no house take, is simply given by the value of the total pool times the fraction of the pool in favor of the winning team that was bet by the player.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-EwubpQ3DUjw/UqgYBZJpubI/AAAAAAAABfU/NNsASB4Qzqk/s1600/render.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-EwubpQ3DUjw/UqgYBZJpubI/AAAAAAAABfU/NNsASB4Qzqk/s320/render.png" height="47" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
It's noteworthy that a successful gambler is not so much betting for the winning team as to bet for the team that maximizes their expected winnings. Let's take a look at an example to demonstrate this.<br />
<br />
<center>
<table border="1">
<tbody>
<tr><td><b>Team</b></td><td><b>Team A</b></td><td><b>Team B</b></td></tr>
<tr><td>% of Bets</td><td>10%</td><td>90%</td></tr>
<tr><td>True Chance of Winning</td><td>25%</td><td>75%</td></tr>
</tbody></table>
</center>
<br />
In this example, I have two teams playing, Team A and Team B. 90% of the bets are in favor of Team B. This means that if Team A wins, then the payout will be 9-to-1. The important piece of information here is the true chance of winning. In the real world, this is certainly not known exactly so I have made it up for this example. <br />
<br />
The expected return on investment for a bet on Team A is then 0.25 / 0.1 = 2.5. The expected payout for a bet on Team B per unit bet is 0.75 / 0.9 = 0.83. Therefore, a smart better will bet on the underdog in this case. A bet on Team B is actually more likely to lose money than to gain it. <br />
<br />
The two important variables here are the proportion of bets on each team, which is given to you at the DotA 2 Lounge. <b>You should</b> <b>bet as late as possible</b> so that you can get the best possible information on who the other gamblers are betting on. Next, you should estimate the chances of each team winning. <b>Bet on the team that you believe has a higher chance of winning than the proportion of bets shown.</b> If you believe that the chances of each team winning are identical to the proportion of bets, then which team you bet on is irrelevant.<br />
<br />
Parimutuel betting with no house take is a zero-sum game. If the gamblers are good at appraising each team's chances of winning, then it is irrelevant which team you bet on. This is the second figure I have shown in each of my previous studies. Previously, I found that the crowd was very good at this: random betting neither had a significant profit or loss. This still appears to be the case.<br />
<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-dKOp9VttAwg/UvhnCWgEzzI/AAAAAAAADCU/QLl47Q7fVzE/s1600/trials-rare.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-dKOp9VttAwg/UvhnCWgEzzI/AAAAAAAADCU/QLl47Q7fVzE/s1600/trials-rare.png" height="494" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figure 1: Random betting strategy at the DotA 2 lounge in the first 1637 (1414 of them were bettable) games. Average 48 rares lost. Standard deviation 39.6. Zero (the break even point) is within 2 standard deviations of the mean, so I conclude that the random betting strategy is neither a winning nor a losing one, and that the crowd is still rational.</td></tr>
</tbody></table>
<br />
Now I'd like to know what the most overrated and underrated teams are. In order to determine this, I will use the following method: For each team that played at least 10 games at the DotA 2 Lounge, I will propose that I bet one rare on them per game and record the payout. Then, I will simulate 10,000 trials of random betting only on the set of games that this team played. I will use these simulated random bets to determine the mean and standard deviation of the payouts in games played by each team. The <a href="http://en.wikipedia.org/wiki/Standard_score">standard score</a> of each team will be equal to:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtTKrqfX4IWgTQnSP62ik62LjJi1qp-qQ-uxb0eBNF6g4e6OL5Il5NbQ8-kPWAuOoTfG2D8_B_8NyIhIDTviiIoqh5gLbTGyeUfSpzmWqR9zeKTU73lyq8jRFFIPaxCmD2E15WI-Zhnoo/s1600/CodeCogsEqn.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtTKrqfX4IWgTQnSP62ik62LjJi1qp-qQ-uxb0eBNF6g4e6OL5Il5NbQ8-kPWAuOoTfG2D8_B_8NyIhIDTviiIoqh5gLbTGyeUfSpzmWqR9zeKTU73lyq8jRFFIPaxCmD2E15WI-Zhnoo/s1600/CodeCogsEqn.png" height="35" width="640" /></a></div>
<br />
Standard scores over 2 or below -2 will be considered significant enough to call a team "underrated" or "overrated", respectively. All other standard scores will be considered statistically insignificant, and will not be reported.<br />
<br />
<table border="0"><tbody>
<tr><td><table border="1">
<tbody>
<tr><td colspan="2" style="white-space: nowrap;"><b>Most Underrated Teams</b></td></tr>
<tr><td><b>Team</b></td><td><b>Score</b></td></tr>
<tr><td>Alliance</td><td>15.0561</td></tr>
<tr><td>Na'Vi</td><td>8.79236</td></tr>
<tr><td>LGD.cn</td><td>8.74577</td></tr>
<tr><td>DK</td><td>8.02724</td></tr>
<tr><td>VG</td><td>5.32555</td></tr>
<tr><td>TongFu</td><td>5.19414</td></tr>
<tr><td>Kaipi</td><td>4.9593</td></tr>
<tr><td>Speed</td><td>4.7966</td></tr>
<tr><td>iG</td><td>4.08545</td></tr>
<tr><td>Fnatic.eu</td><td>3.77795</td></tr>
<tr><td>Liquid</td><td>3.57337</td></tr>
<tr><td>Orange</td><td>3.37028</td></tr>
<tr><td>Sigma.int</td><td>3.25397</td></tr>
<tr><td>Mski</td><td>3.15417</td></tr>
<tr><td>MiTH</td><td>2.91098</td></tr>
<tr><td>Empire</td><td>2.55101</td></tr>
<tr><td>mouz</td><td>2.24567</td></tr>
<tr><td>FD</td><td>2.20341</td></tr>
</tbody></table>
<br />
<table border="1">
<tbody>
<tr><td colspan="2" style="white-space: nowrap;"><b>Most Overrated Teams</b></td></tr>
<tr><td><b>Team</b></td><td><b>Score</b></td></tr>
<tr><td>WPCA</td><td>-3.60975</td></tr>
<tr><td>RS</td><td>-3.36541</td></tr>
<tr><td>aL</td><td>-2.24014</td></tr>
<tr><td>MUFC</td><td>-2.12442</td></tr>
</tbody></table>
</td><td valign="top">Remarkably, many popular teams scored so well over time that I was actually unable to simulate a scenario where random betting did better than just betting in their favor every time in 10,000 trials. Alliance, Na'Vi, LGD.cn, and DK in particular seem to be very underrated.<br />
<br />
The only significantly overrated teams at the DotA 2 Lounge were WPCA, RS, aL and MUFC. Remarkably, WPCA never won a match, so random betting always did at least as well as betting on them! These teams are all quite overrated, so next time you see them playing, you might consider betting for the opposition.<br />
<br />
Note that all of this is based on historical data and does not guarantee future results. If based on this data everyone starts betting for Alliance then Alliance may soon be one of the most overrated teams! Or, if aL picks up some awesome new players, it may not be at all fair or accurate to base their future performance on their past failure to deliver.<br />
<br />
Remember, like I said above: parimutuel betting is all about deciding whether the crowd has predicted the correct probabilities of winning, and betting against the crowd favorite is a good idea in any situation where you think that the crowd favorite's actual chance of winning is less than the proportion of bets in its favor. <br />
<br />
Good luck with your bets!</td></tr>
</tbody></table>
<br />Ben Li-Sauerwinehttp://www.blogger.com/profile/00531994213807228431noreply@blogger.com7tag:blogger.com,1999:blog-3869604260061416788.post-38069905996255220472014-01-18T16:53:00.002-08:002014-01-18T17:02:50.768-08:00Stories from Hawaii<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-LNKnh6kM_-M/UtsSguUW-HI/AAAAAAAAC_4/2_EJINg82EY/s1600/Gecko.JPG" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="http://4.bp.blogspot.com/-LNKnh6kM_-M/UtsSguUW-HI/AAAAAAAAC_4/2_EJINg82EY/s1600/Gecko.JPG" height="200" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">A <a href="http://en.wikipedia.org/wiki/Gold_dust_day_gecko">gold dust day gecko</a> we rescued<br />
from the window in our bathroom.</td></tr>
</tbody></table>
Simiao and I spent Christmas in Hawaii, which we found was a welcome reprieve from the frigid weather in the North. When we were planning our vacation, there was a brief debate between whether we should stay in a hotel or use <a href="https://www.airbnb.com/">airbnb</a> for lodging and ultimately decided on the latter. It turns out that this was the right decision.<br />
<br />
On the first day of our trip when we visited Ko Olina, we discussed the song Cheeseburger in Paradise. I think that staying in a hotel is akin to going to a different world just to try more of the same. So many tourists claim that they want authenticity, but end up travelling to far off lands only to seek out the very same options available to them at home. Our host family made it possible for us to experience Hawaii in a way that we never could have at a hotel. Think, Ono Hawaiian Food instead of Alan Wong's, a real family holiday party instead of a carefully choreographed Luau for tourists, and poke from Tanioka's on the beach instead of a burger on Waikiki. <br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr>
<td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh875VdpOdbxhLmQykHV82LhjlIlvxmVqav4CKVKLP7jcFhed_Wdu9m1egcHcJQEnfMvjNwcUGFFS_al8LnV9yh3suDFji6rKK5Kfx-S7i5V6pnj9rP8ZO1jmZRthI0luJmxmqCfMcrJBI/s1600/IMG_1749.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh875VdpOdbxhLmQykHV82LhjlIlvxmVqav4CKVKLP7jcFhed_Wdu9m1egcHcJQEnfMvjNwcUGFFS_al8LnV9yh3suDFji6rKK5Kfx-S7i5V6pnj9rP8ZO1jmZRthI0luJmxmqCfMcrJBI/s1600/IMG_1749.jpg" height="200" width="150" /></a>
</td>
<td style="text-align: center;"><a href="http://1.bp.blogspot.com/-4YK0Q4a4_Qc/UtsWQY4SW-I/AAAAAAAADAM/Au9Ij0hKnGk/s1600/IMG_1750.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-4YK0Q4a4_Qc/UtsWQY4SW-I/AAAAAAAADAM/Au9Ij0hKnGk/s1600/IMG_1750.jpg" height="200" width="150" /></a>
</td>
<td style="text-align: center;"><a href="http://1.bp.blogspot.com/-Uyw1Z5O5WQ4/UtsWV6OlAiI/AAAAAAAADAU/KcsIrWYPFns/s1600/IMG_1751.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-Uyw1Z5O5WQ4/UtsWV6OlAiI/AAAAAAAADAU/KcsIrWYPFns/s1600/IMG_1751.jpg" height="200" width="150" /></a>
</td>
</tr>
<tr>
<td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsrAaOSTqsRYFtruSfE3BDLK93se6D0rn7y_RAeeXDl1kHZIJuV-Ut7qb6DYWSzawkuLuBy1waS5G46aqNRzBFALYNbHc3JG5WENvxPuCVYRtzgq97OCPTgJKVRQa5rwlqlqkh5Hw6n5o/s1600/IMG_1753.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsrAaOSTqsRYFtruSfE3BDLK93se6D0rn7y_RAeeXDl1kHZIJuV-Ut7qb6DYWSzawkuLuBy1waS5G46aqNRzBFALYNbHc3JG5WENvxPuCVYRtzgq97OCPTgJKVRQa5rwlqlqkh5Hw6n5o/s1600/IMG_1753.jpg" height="200" width="150" /></a>
</td>
<td style="text-align: center;"><a href="http://3.bp.blogspot.com/-HDLNB-soWO4/UtsWl7ZZsiI/AAAAAAAADAk/ufpewnMfK94/s1600/IMG_1754.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-HDLNB-soWO4/UtsWl7ZZsiI/AAAAAAAADAk/ufpewnMfK94/s1600/IMG_1754.jpg" height="200" width="150" /></a>
</td>
<td style="text-align: center;"><a href="http://2.bp.blogspot.com/-GFNtzSafvqE/UtsWrJwEi1I/AAAAAAAADAs/oM5pB47YeKQ/s1600/IMG_1758.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-GFNtzSafvqE/UtsWrJwEi1I/AAAAAAAADAs/oM5pB47YeKQ/s1600/IMG_1758.jpg" height="200" width="150" /></a>
</td>
</tr>
<tr><td class="tr-caption" colspan="3" style="text-align: center;">How to catch a gecko that has found its way into your bathroom. The process was somewhat complicated by the gecko's persistent refusal to cooperate and Simiao shrieking, "I divorce myself from this! I am not responsible for anything that happens!"</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-ikS2WqTtOmw/UtseYJuDwcI/AAAAAAAADA8/8M_DCMU-9No/s1600/Hawaii+014.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-ikS2WqTtOmw/UtseYJuDwcI/AAAAAAAADA8/8M_DCMU-9No/s1600/Hawaii+014.JPG" height="213" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Simiao walking on the rocks near Ko Olina.</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-_YvCxRFlCQQ/UtsenKVHG7I/AAAAAAAADBI/FCvLccATEV8/s1600/Hawaii+139.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-_YvCxRFlCQQ/UtsenKVHG7I/AAAAAAAADBI/FCvLccATEV8/s1600/Hawaii+139.JPG" height="213" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Turbulent water near Koko Head Park.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-tYcKQ42Zhuo/Utsg7GtjlQI/AAAAAAAADBQ/lo9s9eKezzc/s1600/IMG_1732.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://4.bp.blogspot.com/-tYcKQ42Zhuo/Utsg7GtjlQI/AAAAAAAADBQ/lo9s9eKezzc/s1600/IMG_1732.jpg" height="320" width="240" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Myself with our hosts' dog, Peanut.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-82MoKP5ETM0/UtshBvy991I/AAAAAAAADBY/vqETFBNKLyU/s1600/IMG_1837.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-82MoKP5ETM0/UtshBvy991I/AAAAAAAADBY/vqETFBNKLyU/s1600/IMG_1837.jpg" height="320" width="240" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Hawaiian Monk Seals littered the beaches.</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-rzRLndfWXfk/UtshLtU_x5I/AAAAAAAADBg/cWjvvhLsvq8/s1600/IMG_2082.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-rzRLndfWXfk/UtshLtU_x5I/AAAAAAAADBg/cWjvvhLsvq8/s1600/IMG_2082.JPG" height="201" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Panorama of Hanauma Bay. The bay had remarkably beautiful and clear snorkeling in the morning but was milky with silt from people playing in the sand by noon.</td></tr>
</tbody></table>
<br />
<div class="separator" style="clear: both; text-align: center;">
<object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="https://ytimg.googleusercontent.com/vi/RoUHuUNtq_o/0.jpg" height="266" width="320"><param name="movie" value="https://www.youtube.com/v/RoUHuUNtq_o?version=3&f=user_uploads&c=google-webdrive-0&app=youtube_gdata" /><param name="bgcolor" value="#FFFFFF" /><param name="allowFullScreen" value="true" /><embed width="320" height="266" src="https://www.youtube.com/v/RoUHuUNtq_o?version=3&f=user_uploads&c=google-webdrive-0&app=youtube_gdata" type="application/x-shockwave-flash" allowfullscreen="true"></embed></object></div>
<div style="text-align: center;">
Snorkeling with the sea turtles. Video taken with Simiao's iPhone in a waterproof case.</div>
Ben Li-Sauerwinehttp://www.blogger.com/profile/00531994213807228431noreply@blogger.com1tag:blogger.com,1999:blog-3869604260061416788.post-38832207164607691832013-12-01T19:17:00.003-08:002013-12-01T19:17:36.610-08:00Truly Tricky Graduate Physics Problems<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-nyAFcC3fUQQ/Upv1I9__1LI/AAAAAAAABb8/TUXlDK2fTWs/s1600/scale.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" src="http://2.bp.blogspot.com/-nyAFcC3fUQQ/Upv1I9__1LI/AAAAAAAABb8/TUXlDK2fTWs/s200/scale.jpg" width="200" /></a></div>
For a long time, my <a href="http://sauerwine.blogspot.com/2012/01/bens-physics-problem-archive.html">collection of Physics problems</a> has been one of the largest draws on my website. Now, many of my favorite graduate Physics problems are available in an e-book from Bitingduck Press, <a href="http://sauerwine.blogspot.com/2012/01/bens-physics-problem-archive.html">Truly Tricky Graduate Physics Problems</a>. <br />
<br />
The solutions that have previously been available here are still available for free, and always will be. I find them helpful as a reference and wanted them to be available to others as well. The solutions in the book include my own favorite problems as well as new problems from the other authors, Jay Nadeau and Leila Cohen, and are written in a format that can easily be cut-and-pasted into your favorite computer algebra system. <br />
<br />
If you've found my Physics problem collection helpful in preparing for your qualifying exams, you may want to check out the e-book as well for more challenging Physics problems to help you prepare.Ben Li-Sauerwinehttp://www.blogger.com/profile/00531994213807228431noreply@blogger.com0tag:blogger.com,1999:blog-3869604260061416788.post-33764034974173158802013-11-17T02:48:00.002-08:002013-11-17T02:50:07.149-08:00Pinhole Picture from Arizona<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-Qd5aw1bZNpo/UoibvnOxIXI/AAAAAAAABbY/Ilfu-DoaCMc/s1600/sq.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" src="http://1.bp.blogspot.com/-Qd5aw1bZNpo/UoibvnOxIXI/AAAAAAAABbY/Ilfu-DoaCMc/s200/sq.jpg" width="200" /></a></div>
Last January, I hid 5 pinhole cameras in the desert near Phoenix, AZ with the goal of taking some stunning pinhole photographs, taking advantage of the bright desert sun and the reflective desert sand. In order to ensure that they wouldn't be found, we pulled over at a random place along N. Bush Highway, walked about 50 feet in the desert, and plastic tied the cameras to stumps or desert flora. <br />
<br />
I still think it was a pretty solid plan, but there were a few flaws. First, the desert in Arizona gets so hot that even the photo paper doesn't want to deal with it. It looks like after only a month or two of hot days, the photo paper curled up in the oven-like can and completely stopped exposing. Second, my estimation of how much light reflects off the sand was pretty far off. The parts of the image that looked at sand were just dark and indistinct. The simple fact is that the sun is so bright that everything else may as well be black. Third, it turns out that the desert there must see more pedestrian traffic than I expected. One of my cameras was totally destroyed, and one had been torn open and the photo paper taken out. <br />
<br />
The one shot that came out all right was less than ideal. I had placed the can horizontally and facing East on the theory that I would get reflections of the sunrise off of the desert sand, and that the sunrises over Four Peaks would give a striking horizon. I guess it sort of worked, except that the desert was nothing distinct and Four Peaks was partially obscured by some desert plants.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-_mvDypO4l90/Uoiei1l9ZmI/AAAAAAAABbk/3nl4koW33x0/s1600/IMG_0003t.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="508" src="http://1.bp.blogspot.com/-_mvDypO4l90/Uoiei1l9ZmI/AAAAAAAABbk/3nl4koW33x0/s640/IMG_0003t.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Sunrise over Four Peaks in Arizona. Thanks to the Christoph family for helping me to place and retrieve this photo! Placed Jan. 5, 2013, retrieved Nov. 9, 2013. Film curled up in the can, so it was not exposing for much of that time.</td></tr>
</tbody></table>
<br />Ben Li-Sauerwinehttp://www.blogger.com/profile/00531994213807228431noreply@blogger.com0tag:blogger.com,1999:blog-3869604260061416788.post-82509285401342577142013-11-11T23:45:00.000-08:002013-11-12T23:24:05.796-08:00Diminishing Returns in the Game of Go<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-jsvRA6xamTU/UloalmepjeI/AAAAAAAABVg/wcv_fpUv6Tc/s1600/Go-skeleton.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" src="http://4.bp.blogspot.com/-jsvRA6xamTU/UloalmepjeI/AAAAAAAABVg/wcv_fpUv6Tc/s200/Go-skeleton.jpg" width="200" /></a></div>
We've been playing a lot of <a href="http://en.wikipedia.org/wiki/Go_(game)">Go</a> at work lately. Sometimes my mind wanders as I play, and I see parallels to life in the board positions. Arguments, negotiations, trades, consensus, squabbling, greed and fear. <br />
<br />
The goal of Go is to surround as much territory using your stones as possible. So, if at all possible, players should try to place stones in such a way as to grab the most area first, and then leave small amounts of area, just a few points, for last. The game ends either when one player surrenders or when both players feel that the remaining moves are worth zero points or less. I wonder: what does the rate of diminishing returns look like in Go? How much is the first move worth versus the second? The tenth? the hundredth? Knowing this will help me understand when it might be worth it to walk away from a battle versus to keep fighting it at each stage of the game. <br />
<br />
As a secondary goal, I'd like to evaluate <a href="http://en.wikipedia.org/wiki/Komidashi">komi</a>. Komi is an amount of points granted to the white player to offset the disadvantage of going second. Ideally, the komi should be set such that if both players played <a href="http://erikvanderwerf.tengen.nl/5x5/5x5solved.html">perfectly</a>, then black's score would exactly equal white's score. If Go is to be a fair game, then if I assigned each move <i>m</i> a point value V(<i>m</i>) and that black and white took turns making M moves in a game without passing, I would expect that<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-yhygcGTOYAE/UlojwU-PiKI/AAAAAAAABV4/7iiFV3Nbd60/s1600/png.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="80" src="http://1.bp.blogspot.com/-yhygcGTOYAE/UlojwU-PiKI/AAAAAAAABV4/7iiFV3Nbd60/s320/png.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Equation 1: Calculation of komi using V(m), the point value of the m-th move in a game of Go. M is the number of moves in an ideal, perfect game, and it is assumed that no player pass during play.</td></tr>
</tbody></table>
<br />
I will use <a href="http://www.gnu.org/software/gnugo/">GNU Go</a> and the <a href="http://www.gnu.org/software/gnugo/gnugo_19.html#SEC192">Go Text Protocol</a> to evaluate a <a href="http://homepages.cwi.nl/~aeb/go/games/index.html">freely available</a> <a href="http://homepages.cwi.nl/~aeb/go/games/index.html">collection of Go games from Andries Brouwer</a>, and also to generate a set of computer games where GNU Go plays itself. After each move, I will ask GNU Go to run evaluate_score and see how the score has changed from the previous move. I posit that this difference is an estimate for V(<i>m</i>) in the equation above.<br />
<br />
I used <a href="https://docs.google.com/file/d/0B67qmvk4E9ZzSnFXeWpCeVFHV1k/edit?usp=sharing">this python script</a> to generate the simulated games. I then produced a box and whisker plot for the calculated V(<i>m</i>) for each move using the following bash commands:<br />
<br />
<table border="1"><tbody>
<tr><td><code>
# Get all deltas.<br />
cat all-sims | awk '{print $2, $3}' > generated-files/delta-vs-move</code><br />
<code><br /></code>
<code># Produce box and whisker plots for each move.<br />
cat generated-files/delta-vs-move | sort -k 1 -gk 2 | awk 'BEGIN {n=0;l=1} ($1==l) {a[n]=$2;n+=1} ($1!=l) {print l, a[int((n-1)/2)], a[int(3*(n-1)/4)], a[int((n-1)/4)], a[n-1], a[0];n=1;l=$1;a[0]=$2} END {print l, a[int((n-1)/2)], a[int(3*(n-1)/4)], a[int((n-1)/4)], a[n-1], a[0]}' > generated-files/simulated-box-and-whisker
</code></td></tr>
</tbody></table>
<br />
Plotting using xmgrace tells a pretty cool story:<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXxO26u7ZWlKvdpwR8c2CtgV_PoYtssTOAZ_H_JsFnZz-KiY3B5yditwV0f1K391GgDSfaRhHaAO_-daKNWlXARzcippPIwKkiD-nydZyeeDeTesYuyUlu4VaYnDYVF4PEzs_wHEyUqxU/s1600/simulated-full-bnw.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="498" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXxO26u7ZWlKvdpwR8c2CtgV_PoYtssTOAZ_H_JsFnZz-KiY3B5yditwV0f1K391GgDSfaRhHaAO_-daKNWlXARzcippPIwKkiD-nydZyeeDeTesYuyUlu4VaYnDYVF4PEzs_wHEyUqxU/s640/simulated-full-bnw.png" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figure 1: Value of moves in go V(<i>m</i>) calculated using 5000 games simulated by GNU Go on a 19 by 19 board. Score estimates come from GNU Go's built in estimate_score function.</td></tr>
</tbody></table>
There are several important messages to take from Figure 1. First, as demonstrated by the narrow interquartile range shown in blue, that typical moves in Go have a value that is closely related to the move number. Second, we see that Go is also a game of tactics where particular tactical situations can be responsible for wild fluctuations in the score. Very good tactical moves account for the extreme high move values, and very poor moves account for the extreme low move values. This plot also underscores the point of my study: when it is a good idea to simply walk away from a battle and play elsewhere. Clearly, if I believe that a battle is worth 20 or more points, I should always fight it according to this plot. Below that, the story becomes more interesting.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-fnYO-EBVXaY/UmDTbZvauaI/AAAAAAAABWk/athd9TzC4cE/s1600/simulated-iqr-bnw.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="498" src="http://4.bp.blogspot.com/-fnYO-EBVXaY/UmDTbZvauaI/AAAAAAAABWk/athd9TzC4cE/s640/simulated-iqr-bnw.png" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figure 2: This is identical to Figure 1, but rescaled and with the whiskers removed from the box and whisker plot. Note that the IQRs did not include moves with values less than zero, and nothing is hidden below the x-axis.</td></tr>
</tbody></table>
<br />
Figure 2 shows a different view of the simulated data in Figure 1. The interquartile range shows the values of typical moves in Go. The median value of the first move of the game is 10.4 points. The median value of the tenth is 7.3, the fiftieth is 4.9, the hundredth is 2.8, and the hundred-fiftieth is 1.3. These figures give me an idea of the immediate value of sente, or when it may be worthwhile to simply ignore the opponent's last move and play elsewhere. <br />
<br />
Next, I wonder if Equation 1 allows me to reconstruct Komi. A simple command line allows me to perform the calculation:<br />
<br />
<table border="1"><tbody>
<tr><td><code>
cat simulated-box-and-whisker | awk '{print $4}' | awk 'BEGIN {t=0} (NR % 2 == 0) {t -= $1} (NR % 2 == 1) {t += $1} END {print t}'</code><br />
<code><br />
-0.3
</code></td></tr>
</tbody></table>
<br />
This estimate is not even close to GNU Go's default Komi, 5.5. This reveals a limitation of my study: while most moves' values fall in a narrow interquartile range, no game is composed entirely of typical moves shown in Figure 2. Victory lies not in these average moves, but instead in the long tail of outliers visible in Figure 1 (green extremes).<br />
<br />
Now let's try this experiment again with 5000 human games. I will start with the empty board, then after each turn ask GNU Go to evaluate the new value of the board. The difference between the previous board value and the next will be called the value of each move.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-IrCRT6fb9hw/Un7Dw5dQgOI/AAAAAAAABZ4/RKCbrgXse9I/s1600/pro-full-bnw.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="498" src="http://4.bp.blogspot.com/-IrCRT6fb9hw/Un7Dw5dQgOI/AAAAAAAABZ4/RKCbrgXse9I/s640/pro-full-bnw.png" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td class="tr-caption" style="font-size: 12.727272033691406px;">Figure 3: Value of moves in go V(m) calculated using even human games by GNU Go on a 19 by 19 board. Score estimates come from GNU Go's built in estimate_score function.</td></tr>
</tbody></table>
</td></tr>
</tbody></table>
Figure 3 looks vaguely reminiscent of Figure 1, but with a glaring difference: the value of the moves in the mid-game actually seems to be greater than the value of the early game moves! Let's take a closer look at this by focusing on the interquartile range.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-py171TYn32o/Un7EG8OOTOI/AAAAAAAABaA/5TEOkWNS0js/s1600/pro-iqr-bnw.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="498" src="http://4.bp.blogspot.com/-py171TYn32o/Un7EG8OOTOI/AAAAAAAABaA/5TEOkWNS0js/s640/pro-iqr-bnw.png" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figure 4: This is identical to Figure 3, but rescaled and with the whiskers removed from the box and whisker plot. Note that the IQRs did not include moves with values less than zero, and nothing is hidden below the x-axis.</td></tr>
</tbody></table>
<br />
Comparing Figure 4 to Figure 2, it becomes clear that there is something profoundly different between the human games and the AI games. The GNU Go-predicted point value of moves remains high, around 10 stones on average, out to the hundredth move. Further, the interquartile range is much broader and skewed towards more valuable moves. So, what's going on here?<br />
<br />
First, consider that most of the human games end in resignation. None of the GNU Go games end in resignation. So, what do human players do when they feel that they are losing lost that GNU Go does not? They try a hail Mary. They make an exceptionally risky move that, while likely to fail, may put them back in the game. If this risk fails, a human player will probably resign. <br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-p1W09jGWefA/Un7Lz8OrlTI/AAAAAAAABaQ/KL4UVyJYEUo/s1600/length-of-games.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="498" src="http://1.bp.blogspot.com/-p1W09jGWefA/Un7Lz8OrlTI/AAAAAAAABaQ/KL4UVyJYEUo/s640/length-of-games.png" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figure 5: Human games tend to be shorter than GNU Go games, because GNU Go never resigns. Before resigning, humans tend to make a big gamble that, should it succeed, is worth a significant number of points. If aliens came to this planet and wanted to understand the difference between humans and computers, this would tell them all that they need to know.</td></tr>
</tbody></table>
<br />
Figure 5 shows us that human games tend to be shorter than GNU Go games due to resignation, and taken together with figures 3 and 4 we see that the losing player tends to make big gambles that are worth a lot of points if they succeed. AI players, on the other hand, cannot transcend their heuristic algorithm. They will make the move that they see as most profitable every time, whether they are ahead or behind. <br />
<br />
Finally, I want to discuss exactly what the value of a move means. Above, I have posited that the value of a move is the point value, in stones. But, what if you don't care about points, and only care about winning or losing by any number of points? The one point that puts you slightly ahead of your opponent, then, is worth more than 50 points that still leave you behind. <br />
<br />
This is a difference between the <a href="http://pachi.or.cz/">Pachi</a> algorithm and GNU Go. GNU Go is concerned about values in stones, and Pachi is concerned about probability of winning. Pachi, in fact, will resign if it cannot find any scenario in which it will win. Pachi's Monte Carlo algorithm was a huge breakthrough in computer Go, but its skill on a 19 by 19 board is still a far cry from professional play. A fun experiment is to use the sgf-analyze.pl script included with Pachi to track probability of winning through a game, and as such to identify the major plays and blunders of a game. <br />
<br />
Pachi supposedly plays at a 2d level on <a href="http://www.gokgs.com/">KGS</a>, which means that it is likely to have a hard time analyzing games by players at a higher level than 2d. <br />
<br />
Out of curiosity, I tried runing sgf-analyze on a 9d game annotated by <a href="http://gogameguru.com/go-commentary-park-junghwan-vs-shi-yue-2013-samsung-cup/">GoGameGuru</a>. I ran <b>1 million simulations per move</b> using the <a href="http://pachi.or.cz/pat/"><b>extra pattern files</b></a>, and ran analyze-sgf once for black and once for white. The output of sgf-analyze looks something like this:<br />
<br />
<center>
<table border="1"><tbody>
<tr><td><code>
2, W, D16, C12, 0.52<br />
4, W, D3, M17, 0.52<br />
6, W, P3, R9, 0.52<br />
</code>
<br />
<code>...</code></td></tr>
</tbody></table>
<span style="font-size: x-small;">
Sample output from Pachi's sgf-analyze.pl script.
</span></center>
<center>
<br /></center>
<center>
<table border="1"><tbody>
<tr><td><code><span style="font-size: x-small;">
./sgf-analyze.pl game.sgf B -t =1000000 threads=4 -d 0 dynkomi=none > analysis-B</span></code><br />
<code><span style="font-size: x-small;">./sgf-analyze.pl game.sgf W -t =1000000 threads=4 -d 0 dynkomi=none > analysis-W</span></code><br />
<code><span style="font-size: x-small;">tail -n +2 analysis-B | tr -d "," | awk '($3 == $4) {print $1, $5}' > B-agree</span></code><br />
<code><span style="font-size: x-small;">tail -n +2 analysis-B | tr -d "," | awk '($3 != $4) {print $1, $5}' > B-disagree</span></code><br />
<code><span style="font-size: x-small;">tail -n +2 analysis-W | tr -d "," | awk '($3 == $4) {print $1, 1 - $5}' > W-agree</span></code><br />
<code><span style="font-size: x-small;">tail -n +2 analysis-W | tr -d "," | awk '($3 != $4) {print $1, 1 - $5}' > W-disagree</span></code><br />
<code><span style="font-size: x-small;">xmgrace -nxy B-agree B-disagree W-agree W-disagree</span></code></td></tr>
</tbody></table>
</center>
<center>
<span style="font-size: x-small;">The output from sgf-analyze is easy to work with. I used a procedure like this to generate the beautiful plot in Figure 6.</span></center>
<center>
<br /></center>
<center>
</center>
The first column is the move, the second column is the player color, the third is the move actually played, the fourth is the suggested move by Pachi, and the fifth column is the probability (according to Pachi) of this player winning assuming that he plays the recommended move. There is no doubt that these 9d players are much better than Pachi, so I'll assume that their moves are at least as good as the recommended one, and that this probability equals their probability of winning at the end of this move.
<br />
<br />
<br />
Like GNU Go, Pachi is only as good as its heuristic algorithm, and if it can't see as far ahead in the game as the professionals can, then the probability it predicts will not be illuminating. Indeed, comparing the GoGameGuru's notes on which moves were brilliant and which were mistakes to Pachi's did not yield any noticeable correlation. In fact, Pachi seemed to think that black resigned when he was in fact coming back!<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-0s7PTZqPVtk/UoHY0buggFI/AAAAAAAABa4/KsVQA1UoLk0/s1600/junghwan-vs-yue.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="498" src="http://3.bp.blogspot.com/-0s7PTZqPVtk/UoHY0buggFI/AAAAAAAABa4/KsVQA1UoLk0/s640/junghwan-vs-yue.png" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figure 6: Pachi analysis of <a href="http://gogameguru.com/go-commentary-park-junghwan-vs-shi-yue-2013-samsung-cup/">Junghwan vs. Yue</a>. Major predicted turning points in the game are noted. For instance, from moves 123 to about 182, white was pulling ahead. After move 182, black was coming back in the game according to Pachi, but resigned at the end of move 238. Compare this to the analysis given at GoGameGuru. Pachi was run with 1 million simulations per move and using the extra pattern files.</td></tr>
</tbody></table>
Pachi's analysis of the 9d game is understandably flawed, as it is not as strong as these players. Still, the analysis by Pachi shows an important point: the value of a move depends greatly on your definition of value. If you care about expected point value then, indeed, an early game move is much more valuable than a late game move. On the other hand, if you care about winning or losing then the game can certainly come down to a matter of a few points, and those few points can make a world of difference regardless of when they are secured. The professional game analyzed in Figure 6 changed hands no fewer than three times: twice in the mid-game, and once again at the end. If I had a lot of spare processor cycles, it would be interesting to perform this analysis with Pachi on a large number of games and explore the distribution of points where the lead player changes hands. <br />
<br />
This analysis may have raised more questions than answers, but I did learn a few things about computer Go and human nature:<br />
<ul>
<li>No AI can transcend its heuristics. The AI will relentlessly play the move it sees as most profitable at every turn, whereas human players who know they are behind will tend to take a gamble to try to get back into the game, then resign if it fails.</li>
<li>Whether or not there are diminishing returns in Go depends on your definition of value: if you consider value as the number of points secured per move, then the first dozen moves of the game are worth about 10 points apiece, and any move after the 200th is worth perhaps one. If you consider the value of a move as whether or not you can win the game with it, that could happen at any time.</li>
<li>Komi does not appear in the plot of diminishing returns. While <b>all</b> games tend to fall within a few points of the value curve, <b>no</b> game is composed entirely of average moves.</li>
</ul>
<div>
Thanks to Andrew Jackson and Chris Gaiteri for illuminating conversations on this topic!</div>
Ben Li-Sauerwinehttp://www.blogger.com/profile/00531994213807228431noreply@blogger.com0