<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>future &#8211; Henry Poon&#039;s Blog</title>
	<atom:link href="https://blog.henrypoon.com/blog/tag/future/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.henrypoon.com</link>
	<description></description>
	<lastBuildDate>Mon, 03 Oct 2022 04:09:34 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
<site xmlns="com-wordpress:feed-additions:1">83044199</site>	<item>
		<title>Tel Aviv and the Dead Sea</title>
		<link>https://blog.henrypoon.com/blog/2020/03/21/tel-aviv-and-the-dead-sea/</link>
					<comments>https://blog.henrypoon.com/blog/2020/03/21/tel-aviv-and-the-dead-sea/#respond</comments>
		
		<dc:creator><![CDATA[hp]]></dc:creator>
		<pubDate>Sun, 22 Mar 2020 04:23:07 +0000</pubDate>
				<category><![CDATA[asia]]></category>
		<category><![CDATA[food]]></category>
		<category><![CDATA[middle east]]></category>
		<category><![CDATA[Appetizers]]></category>
		<category><![CDATA[Arab cuisine]]></category>
		<category><![CDATA[beach]]></category>
		<category><![CDATA[Beef]]></category>
		<category><![CDATA[Checkpoints]]></category>
		<category><![CDATA[COM]]></category>
		<category><![CDATA[Cuisine]]></category>
		<category><![CDATA[D]]></category>
		<category><![CDATA[EAR]]></category>
		<category><![CDATA[Egyptian cuisine]]></category>
		<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Find]]></category>
		<category><![CDATA[Food and drink]]></category>
		<category><![CDATA[future]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[Health]]></category>
		<category><![CDATA[Hummus]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[IME]]></category>
		<category><![CDATA[ise]]></category>
		<category><![CDATA[It]]></category>
		<category><![CDATA[Jordan]]></category>
		<category><![CDATA[Levantine cuisine]]></category>
		<category><![CDATA[Over]]></category>
		<category><![CDATA[Pho]]></category>
		<category><![CDATA[Port]]></category>
		<category><![CDATA[Sauce]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[spices]]></category>
		<category><![CDATA[STR]]></category>
		<category><![CDATA[Tel Aviv]]></category>
		<category><![CDATA[Thou]]></category>
		<category><![CDATA[Time]]></category>
		<category><![CDATA[Vegan cuisine]]></category>
		<category><![CDATA[Week]]></category>
		<guid isPermaLink="false">https://blog.henrypoon.com/?p=5322</guid>

					<description><![CDATA[Once we crossed the border back into Israel, we headed for the Dead Sea, a lake with so much salt content that it&#8217;s practically impossible to sink, and we ended the day in Tel Aviv, a large, populous city on the Mediterranean coast. The Dead Sea It&#8217;s known as the Dead Sea because there isn&#8217;t [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Once we crossed the border back into Israel, we headed for the Dead Sea, a lake with so much salt content that it&#8217;s practically impossible to sink, and we ended the day in Tel Aviv, a large, populous city on the Mediterranean coast.</p>



<h2 class="wp-block-heading">The Dead Sea</h2>



<p class="wp-block-paragraph">It&#8217;s known as the Dead Sea because there isn&#8217;t any macroscopic aquatic life in the lake due to the high levels of salt in the water.  The high levels of salt make it super easy to float in the water &#8211; it&#8217;s literally impossible to sink.  It was kind of tough to hang out in the water though &#8211; February is not a good time of year for lounging in the water.</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipOHHb6kH0Vk4NSm5N4qMfk7PVelN1EqnxtB6anys0Tc22yAsO0LT7MytR7rENKq6A/photo/AF1QipOXbOaX6E5u8OQeaAL4NRXI6uWrQwqSjE5-34Co?key=bm4wM3NtV1B4ODFoM3hyRGVBSmd2WlpIeUMxTElB" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh3.googleusercontent.com/bGxCUSZ53OBJWa4677iAMBtFfTCp-pBcAAhcjDC6E1VnTUQMX4ihML77YNaawATiQ-fqAZsVR93tL0sF2iZfw38mCB6qwQooI3MGsgqSfroi1PAPdjwzm9oygvaU_D6w3YknIGEtom5wr7pXK9C9X-8yrIgbm57pzGauA_AEgemafHbywQgXx97IurPEUBzuCfq6JHkY9qZQmrM8OIwetQ54rdo4vaYahV4GjtY7drEh2u3HAEwZbpVAByCDiXOouSeSFiCvw6caNPnOXX8u6wQuI8hW2T4KTyf58XRB70_lX6S8F8Ewjfp1rMw4lyZj8pJBRoxtAOoabNMJ2wP-afss4PtyjCCU_5ihrnb0z7fLExWIRg36Efp26rmi0gdx2vsKkwPuMYoS_vFISGQlVIDXIagUXuFlRY7eRjs-4s3xW1NXgWRuJGmUyDkLLmGP2rtrlILPSsPrrnfzdTFRAjfRvTVFGORC-S3uaWschwpzxmIgjPwT5Ta3YUShcRR6z7Z-DaTPVB_vObc5t7nDZsYm0aI7Pq3m-QVVdIet_WRzR5EOR4RCQo04mNtPo7hIBnx3Jbof9qLMkaagLJ9YcVXV8IFfmX_UqITLFlsMiBul6IBHkaDcbFkvEZa5e9EzVgXIa2bFCABUQtHrPJabt2U7F8Vk9IRlIyaX3e9C97wBFii4ujX0uDyBzK4NNVfl8BLww00yVeWxruFGCPggMy_25tSRQs2K6p0cMiXvUSnj20qkumhqm-Co=w1436-h808-no" alt=""/></a></figure>



<p class="wp-block-paragraph">The Dead Sea is located between Israel, Jordan and the West Bank.  Theoretically, one could swim from one side to the other without worrying about drowning, but it is a lengthy 15km swim.  Not something I&#8217;d try, and besides, there&#8217;s probably patrols that would stop people from doing that.</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipOHHb6kH0Vk4NSm5N4qMfk7PVelN1EqnxtB6anys0Tc22yAsO0LT7MytR7rENKq6A/photo/AF1QipOY-5XyxIS_0utIgQhI3pJ7wfBmtXyDsrG1aymj?key=bm4wM3NtV1B4ODFoM3hyRGVBSmd2WlpIeUMxTElB" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh3.googleusercontent.com/X29uTOp_sL694xGpcsHaQ2JhpW6PqAVrStTpH118cS3Rvz6y9rVJ_RurY8uI7KXo6Cp11Ql954-ZQam9hXtkbA9IMTdntaZ-oRE_f80d3WPWWxlTIkQE587NciOfwkH9huYh5hvD2FvM_tQ7Ywz0tNRfyRWIXNiNvpKuHoloMzrUqoCr457hys9c6qETRSnfiUwHNoIYbyeuuUsfXRvTWSB9bRGpngbN5vIa52puv7aXhIxKDyPgW27h92YYqYN1_9_bHl82S6h5-k_J2ENPWpXpB2y5wfw88Yq_RQ98DCXoVtdz0r7tzDc-atJi2d__BwnnttelLjTWVTC_j15VTkZk2BYTXYhiSLNhmpza7OomKZiC57Q0pP4TmZrrT0dkl--WeOv8ac-gtxx3zDH90A2tmUgdof5kA1df603x8W45s-xTd26QK9YKigKzrIpCNgCRtG62JGNRU686VfwXgAlUw6TnzwCut8hP5mdh_3UTTYW8nBlaCzjALXDyHovvmyNI-xSvSGjaRNZ_AxmEvy9ieKIjXHVSgy9C8vAW3RKaInjwpSYHtj0ofsyJOhgyJIN-bcLvRbB3GOlVEc_osSsvMd74z_2XbdoY5oAZabA5m6QlHtYHfHereESNtszY-3l6lK6sOYg6xEJpaYBmPPvmttwjaZH6g4UqfmOZQ4zq-85xupzG67Hs9f7-mHa1BaI6IFjoAin0OfwV2V1t8RNP5raQ9aXChytNRx-wOQbI1XsHSEsN12S0=w1436-h808-no" alt=""/></a></figure>



<p class="wp-block-paragraph">The mud here supposedly has health benefits because it has an abundance of certain minerals.  We saw people spread the mud all over themselves to reap the benefits of the mud.  I tried a little bit on my hands and arms, but the mud just dried out my skin a lot &#8211; yeah not doing that again&#8230;</p>



<h2 class="wp-block-heading">Tel Aviv</h2>



<p class="wp-block-paragraph">From the Dead Sea our tour took us to Tel Aviv.  What took me by surprise was how much of a beach city it was!</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipMJMQZC901_5L6E926HywmcV6X7NIlc5mkDP67kqkLqmiyBpQpoB7y6SVCjggDKrQ/photo/AF1QipOSw6O1YJfR6Ew04BTY_3y0WJf3fLTO2iZb3_SY?key=cnlTVXN0Nm1sNm1Ka1NrZm1KS0pNNEh5eTNPaXJn" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh3.googleusercontent.com/jE8cMqaNhtQnYX3r3kGnymHXLV_R_oOpiFViOjxGxNZlhdWnBHkCJtsFwBN3Z51gm2UWA32zIfB6JGW-GnTGepnZS7xqTbuqA1wdytCPh8dYduxFiWFHrq_SJEUM0tj_VGxPmpdFxTOitMEW-tXcYrl1NPGVRDS0UMl9LwwFSOjUeVYnmfgccvHvG2jPzG3qiL7U68dsCChgyxhWhqdJ5h_Bw3LrKd-r1aFATOoW2d2e_vE8kWRCaqE1PGfhfFIcJFY8OCQ_V-Wwi19ugpWSLdAqpYbiu60Yvvj2MIWLxGtey8zVNatLyl3_dSdKXWghY_AMiINmk8PMBDRxUvgO3oH5BqRvELV8h5zqNeALjK5urIAk74XVtHp6ZN9ZxfSNqgR_tPg2no6jgI_YJXL2Q8InM5USQVzYcR8XLVvWDgJkW_217M6ygArjC5GXg0CKgxB5sC8fJylcGpCmbzKOoVrOXt2-JWtSUgR4VR_FeYjsXFXf-J-eoiUFL8dkWjcRSrqrFzUUrnNnfVuhgOmyGsqsI7hn76vwzC3rVryw2W-ER7IiwoxR0iEVE41VirEWJwTiCttpU7X5zAsH2TgleurhTLBpBEk-GmzUO-gSoOfRjdG0j3TdAq0h0EVqA6R9c55BJ4wfv0RpIHLcjtuglDu_R-qNYsFUni2AQs38swsEYWl0a5ykCEis3DH76xdacEssO5-b-13OcHO6TlBSJMDD5Q0c2Ej_o7CwRJIemSemkhq6g4dZcjDu=w1436-h808-no" alt=""/></a></figure>



<p class="wp-block-paragraph">We spent our day in Tel Aviv on the &#8220;Shabbat&#8221;, the Jewish day of rest, so a lot of places were closed.  But we did find some nice meals though!</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipMJMQZC901_5L6E926HywmcV6X7NIlc5mkDP67kqkLqmiyBpQpoB7y6SVCjggDKrQ/photo/AF1QipOAeIJQkqbwsW56rIBFMp74fFxjrx3DkKmmmsw6?key=cnlTVXN0Nm1sNm1Ka1NrZm1KS0pNNEh5eTNPaXJn" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh3.googleusercontent.com/oOP2nZijpVKEUgro5vaDtBQFL6FcV6Ch0DuDn1vqV4m1JbtG8lS-OT0RRdIIKt7L9hIN1dDTvzWCsStYRHdHGlqDXre95b3Cvugxr0NAZSgUiK-LupBF3ICY-2urV4IEmVyEVaPhxFCzGBmB0ggoYQHNyk3wSzfLCR_kcBYoXE9IFMrbkxtY8_VkUsVB4r9R2MIpNy0DaTZAjtLTWaEhWs2ezALMZPNGGwfBfAuuNbE90GTX3ei9YvmLINoWaylsuCWOCheRG7lK3fj0FiJfGBrmMU2EpmCEbsbGHDKDyDHwjCoB8XIfpIiNdDDdW4UzdwX7c9EYA8ZDfzyYV5euBVEDK-TJGunkayFreyWe13gyIpBo27ZKMfzwiqH_VHuHIVv0lW3VhJmXyM7EZw0Wcke7aMEQFdnxhne9BFc5PdInrskuor9fOUcXlYTvm0rLt1OJWZ7RFfUoFZlSjnedu75RwUnVUku88S1yxtFRnqyPjq3K-GEZ1Zr142leR_YB1-xL5_m6RUFQaIwgcWcKE-OF0Pu7YRWUd-FTmpaQOTTGO76YE6e1MsoyGj08oWybHbCkaUp71MXZlL3HVL9qsGeJjHhhsYQY_jQemgptsHB2RwNMITE6uS3vT1oYap7hFlaK266VPYpG7ZCadjnrsfI27TGUuKNdLSEF5eD4aVo7t5lS2MtuL5ZOv1Fba5vYtIXn0oGBzGYMUpv64hSAD6wf9-S6Kd8OqNLnNKf8he3U9uEKbGjZnGvN=w1436-h808-no" alt=""/></a></figure>



<p class="wp-block-paragraph">This is shakshouka, dish of eggs poached in tomato sauce, olive oil and spices.  It tastes really similar to tomato sauce, but the poached egg makes everything so much better!</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipMJMQZC901_5L6E926HywmcV6X7NIlc5mkDP67kqkLqmiyBpQpoB7y6SVCjggDKrQ/photo/AF1QipMwwz7lHvTuSxo5myJ9SFKmmNnn7J6WsCh4KZb8?key=cnlTVXN0Nm1sNm1Ka1NrZm1KS0pNNEh5eTNPaXJn" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh3.googleusercontent.com/NVV63DQMrJWLLhApSPIpNbaTWhPWvFVNj9bhpQhRk9LPjG8pOOeWLUKmxMuX0MUVnwXQIpLcGwJ10Go1I5p51tvjrTWHdteRQp6y8D9ik02CH3_qpoNVjpndFC5mjuqwyd7Uro1bLt9JjrHUDi28Ucmbces1PUjHp_wAECEIFKT6Dzg4U8Upb-FLlHnZUOPlBqsxfmxDvpFGqoluz-Fz5jtvbXqo_QroNLNJ-0RcvGljuRTscZzrYgD-skMXbFlv_-rlg9tP9PDUrIs-pM5KmbvRP_IbYt9h2UAgdxL3mCpISKbi_Y7IUVjQDAqfhafkil7JyfNazhDB6d6g4NYlcbA3Iz3Iee2gmZbqPqg9fvZpJOzrqUkFBMtMgvyZpKp97Yao8qZP2A8yBDKJfHSG-jC5RzhIAtJeOmblmnHifET2ZJQPbdNtBgKI_LE96DnV305kMBrn_cyPslPRijlPpgHBdM8qziRYdac_OvJdgwPf_7VLu_ejhsNbbRUiFFJxrDAbHbv8H-Usv8CtG3MJG5P1n5X9KYgTeHZ5MjU3wVTk1MZ11lrb85t9Hx8YyZ1GiH_lV__a0whozsEu2tUqdTC1paSFWxhl_tTuZhAlQh0sVpB9OI8Dd71q_cmVyevTGN_rhnhLV3428l_Ck4t446F0uuQiABs_BJIUkQAOl4GIx9LeHAjOghM0v6F6SW47v7IhMYtfojY-6C7gXqKKPIrm6V0SPWBo_viyfkXFnoLYBvs0yp7cedZw=w1436-h808-no" alt=""/></a></figure>



<p class="wp-block-paragraph">This is a beef tagine, a dish originating from North Africa, but it&#8217;s also common in Israel.  The name tagine is cooked using a special pot of the same name.  Tagines come in many varieties, but they are often savoury stews served with couscous and other vegetables.</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipMJMQZC901_5L6E926HywmcV6X7NIlc5mkDP67kqkLqmiyBpQpoB7y6SVCjggDKrQ/photo/AF1QipNYTHVesJBfVfzqfOE5RrfjZFH_PN21m-Gnutug?key=cnlTVXN0Nm1sNm1Ka1NrZm1KS0pNNEh5eTNPaXJn" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh3.googleusercontent.com/Jvyh1-T-C2ZrrYvd_rC1QrpjdymtGSvzlj8-46lYMGsEeA97HkDLwd-kwRhoyO0yEX5xEoD-qQ0WalbrrjGT9mSjmrz-Y8mBr5oiN9K_ZiJb6wc899bg2dfltkBDodyvbcKZbb99-IsB6MSSTw1jH5LujWLRvyHMz7J9DGcBq-euNkEK3Ohkd3shHegVQQQf9f8IpJ0aiWRhjTawJE91WsuB8MKUp_QPGHTW_0Y5YUcCQef2BhMylRboW3Lph0DxT7OwTp1zs3sRjipM28mkiamUSwSFbhmCABtcU57KIMU2fnKjH3T57HoUo6iZ0zy1toC-46Jec44xtLCd-ReDhyUUrUOxs2rdba86wGLkCLrvSiSanPeLOF5suLf9TRO33AKpcb0DCPhGkykMFiyvEEoQjeRjmZ-n_xa7n2wvEPKXwN2yfxKRvmtxR1skxG37hPH61kJ_ED02ttJSsMADiZNV-_u9pB-P_3HqZofBlGaAFL79jTMS5x6WzouUnNYb90-M6Vx-QIM8UGPt5-834cR_y-3O0K2bgOVZXo66LE9md275pUjH2OlpqZOIQRA9VnHmGqj870Fwm1ob7xDXXh9wsQGGhjt0eRWbNANl3tGQiiqo7Oo0dErpGBl1x9vEYBx-HTB8PzS8vDKV1T3fnSBM3SzQQl7WDGVajyT5VLqNFJWds3HR-7s1LCCjMSbw6gdNKkmElURkcFh0HbFkbskKj8xbngWrMMdTk2-SKQwl2TF2Qh7rOc6E=w1436-h808-no" alt=""/></a></figure>



<p class="wp-block-paragraph">And of course, there&#8217;s hummus!  It&#8217;s savoury dish made from cooked, mashed chickpeas blended with other aromatics.  The place we went to advertised itself as &#8220;the second best hummus in Tel Aviv&#8221;.  So&#8230; what&#8217;s the first best hummus in Tel Aviv?  I still don&#8217;t know the answer, but maybe it&#8217;s the one that&#8217;s homemade in a local&#8217;s home?  This is literally the best hummus I&#8217;ve ever had, and I&#8217;ll compare all the hummus I eat in the future to this one.</p>



<p class="wp-block-paragraph">That&#8217;s pretty much it for Tel Aviv and the Dead Sea &#8211; and our two-week trip!  We headed to the airport three hours early (Ben Gurion Airport is notorious for having really strict security).  There were multiple checkpoints and at one point, a member of the airport security staff asked us to follow him and as we walked he asked us some questions and let us go.  The staff checked every nook and cranny of our bags and all of the electronics we had on us before letting us go.  From there, we began our journey home.</p>



<p class="wp-block-paragraph">Photos: <a href="https://photos.google.com/share/AF1QipMJMQZC901_5L6E926HywmcV6X7NIlc5mkDP67kqkLqmiyBpQpoB7y6SVCjggDKrQ?key=cnlTVXN0Nm1sNm1Ka1NrZm1KS0pNNEh5eTNPaXJn" target="_blank" rel="noreferrer noopener" aria-label="Tel Aviv (opens in a new tab)">Tel Aviv</a>, and the <a href="https://photos.google.com/share/AF1QipOHHb6kH0Vk4NSm5N4qMfk7PVelN1EqnxtB6anys0Tc22yAsO0LT7MytR7rENKq6A?key=bm4wM3NtV1B4ODFoM3hyRGVBSmd2WlpIeUMxTElB" target="_blank" rel="noreferrer noopener" aria-label="Dead Sea (opens in a new tab)">Dead Sea</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.henrypoon.com/blog/2020/03/21/tel-aviv-and-the-dead-sea/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5322</post-id>	</item>
		<item>
		<title>European road trip – day 8 – Cologne, and Düsseldorf</title>
		<link>https://blog.henrypoon.com/blog/2020/03/14/european-road-trip-day-8-cologne-and-dusseldorf/</link>
					<comments>https://blog.henrypoon.com/blog/2020/03/14/european-road-trip-day-8-cologne-and-dusseldorf/#respond</comments>
		
		<dc:creator><![CDATA[hp]]></dc:creator>
		<pubDate>Sat, 14 Mar 2020 08:46:34 +0000</pubDate>
				<category><![CDATA[europe]]></category>
		<category><![CDATA[food]]></category>
		<category><![CDATA[9]]></category>
		<category><![CDATA[Bavaria]]></category>
		<category><![CDATA[beer]]></category>
		<category><![CDATA[carnival]]></category>
		<category><![CDATA[Chocolate]]></category>
		<category><![CDATA[Cola]]></category>
		<category><![CDATA[Cologne]]></category>
		<category><![CDATA[Colognian dialect]]></category>
		<category><![CDATA[COM]]></category>
		<category><![CDATA[Culture]]></category>
		<category><![CDATA[D]]></category>
		<category><![CDATA[Dime]]></category>
		<category><![CDATA[Drinks]]></category>
		<category><![CDATA[Drive]]></category>
		<category><![CDATA[Düsseldorf]]></category>
		<category><![CDATA[EAR]]></category>
		<category><![CDATA[Engineering]]></category>
		<category><![CDATA[Euro]]></category>
		<category><![CDATA[Europe]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Find]]></category>
		<category><![CDATA[Food and drink]]></category>
		<category><![CDATA[Foods]]></category>
		<category><![CDATA[future]]></category>
		<category><![CDATA[German]]></category>
		<category><![CDATA[Germany]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[IME]]></category>
		<category><![CDATA[In Germany]]></category>
		<category><![CDATA[ise]]></category>
		<category><![CDATA[It]]></category>
		<category><![CDATA[Kölsch]]></category>
		<category><![CDATA[Mass]]></category>
		<category><![CDATA[Mech]]></category>
		<category><![CDATA[Mecha]]></category>
		<category><![CDATA[Mind]]></category>
		<category><![CDATA[Museum]]></category>
		<category><![CDATA[North Rhine-Westphalia]]></category>
		<category><![CDATA[Outside]]></category>
		<category><![CDATA[Over]]></category>
		<category><![CDATA[Rhineland]]></category>
		<category><![CDATA[Ripuarian language]]></category>
		<category><![CDATA[Run]]></category>
		<category><![CDATA[Safe]]></category>
		<category><![CDATA[Speed]]></category>
		<category><![CDATA[States of Germany]]></category>
		<category><![CDATA[STR]]></category>
		<category><![CDATA[The Go]]></category>
		<category><![CDATA[Thou]]></category>
		<category><![CDATA[Time]]></category>
		<category><![CDATA[UNC]]></category>
		<category><![CDATA[When We]]></category>
		<category><![CDATA[Words]]></category>
		<category><![CDATA[Z]]></category>
		<guid isPermaLink="false">https://blog.henrypoon.com/?p=5083</guid>

					<description><![CDATA[Today was a pretty chill day: just Cologne and Düsseldorf. The nice thing about the autobahn is that the speed limit is unlimited! Literally you could drive the car at over 200 km/h and nobody would care. I accelerated up to 218 km/h or so, but at some point the steering wheel shakes a lot, [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Today was a pretty chill day: just Cologne and Düsseldorf.  The nice thing about the autobahn is that the speed limit is unlimited!  Literally you could drive the car at over 200 km/h and nobody would care.  I accelerated up to 218 km/h or so, but at some point the steering wheel shakes a lot, and as the speed increases, the more I feel I would lose control of the car at any moment.  It&#8217;s kind of fun, but not that safe at all.</p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" fetchpriority="high" decoding="async" width="1225" height="689" src="https://i0.wp.com/blog.henrypoon.com/wp-content/uploads/2020/03/Road_Trip_Day8.png?resize=1225%2C689&#038;ssl=1" alt="" class="wp-image-5088" srcset="https://i0.wp.com/blog.henrypoon.com/wp-content/uploads/2020/03/Road_Trip_Day8.png?w=1225&amp;ssl=1 1225w, https://i0.wp.com/blog.henrypoon.com/wp-content/uploads/2020/03/Road_Trip_Day8.png?resize=300%2C169&amp;ssl=1 300w, https://i0.wp.com/blog.henrypoon.com/wp-content/uploads/2020/03/Road_Trip_Day8.png?resize=1024%2C576&amp;ssl=1 1024w, https://i0.wp.com/blog.henrypoon.com/wp-content/uploads/2020/03/Road_Trip_Day8.png?resize=150%2C84&amp;ssl=1 150w, https://i0.wp.com/blog.henrypoon.com/wp-content/uploads/2020/03/Road_Trip_Day8.png?resize=768%2C432&amp;ssl=1 768w, https://i0.wp.com/blog.henrypoon.com/wp-content/uploads/2020/03/Road_Trip_Day8.png?resize=171%2C96&amp;ssl=1 171w" sizes="(max-width: 1225px) 100vw, 1225px" /></figure>



<h2 class="wp-block-heading">Cologne (Köln)</h2>



<p class="wp-block-paragraph">Last time I went to Cologne, I celebrated the Carnival and didn&#8217;t really see or do anything else.  This time, I spent a half day checking out the chocolate museum and have a few beers.</p>



<p class="wp-block-paragraph">The museum chronicles the history of chocolate, from the cultivation of the cocoa bean, to the industrial machines that produce the chocolate.  Visitors can even order their own custom chocolate bar!  They pick the kind of chocolate (white, dark, etc.) and can choose a multitude of condiments too.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="Cologne chocolate museum pick and place machine" width="1280" height="720" src="https://www.youtube.com/embed/gwxhPN9vWkg?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p class="wp-block-paragraph">I honestly was more impressed with the industrial chocolate making machinery more than the chocolate itself.  As a graduate of mechatronics engineering, I can certainly appreciate the engineering behind these machines.  The movements of each component is precisely controlled to perfectly pick up and drop pieces of chocolate or to pour liquid chocolate into molds, and the subsequently release them.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="Cologne chocolate museum conveyor belt" width="1280" height="720" src="https://www.youtube.com/embed/NyRZJi-dQZg?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p class="wp-block-paragraph">Afterward, we met up with a friend of mine who decided to move to Germany from America.  He was so interested in Germany that he earned his C1 level in the Goethe Insitut examinations (it&#8217;s one level below native speaker), and when talking to him, I could always tell his future was in Germany.  He found a job working at Deloitte and his German is so good that he doesn&#8217;t even speak English at work!  Even I can&#8217;t do that with my German.</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPyCuIawLQsPQYUS_r8GGatvIcZ27f81sqwdFnj6WbIA0UiiPq7tGEkx5oQhA8zSQ/photo/AF1QipNDp207cYNIiyds6fVJCxnBwKbfu8_QiMReBZ-i?key=VFpmUXFPelRZTEFyOWM5NzdPT1NMVElHUGFFZDRB" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh3.googleusercontent.com/i0cudrvW8P_lPLjDAki1G6TMz9MNjNNCYEfmPD8ZoOzyHRspnzkxNV5YQfZFAY-RrQbyH_Pr_CFrepFeTMIwMxHi81rcq0vs4LrEviKFwv5Aa7DvVXCoMdRsJDc31RVGtgqW6KA4R7BUbr-Xyexs9Iqo4Y977RhylfN2NCNC8gEa1Rz8jK10sQr1cqCJuWD8KW6695NvHQnt4GFOVB5N9Vl9RqubL7CP0vJ29oznJKM0HyL0mANKb-ZgwWEUx-qvQql0QASvQx7z0_w1l8-7JpMRoAQnUs7fsDC-hTWpPH_NZhXfF1Lq-0jSL4vwTGW3RJlGK_ak6wp37j5HXGwJyfRE_HmFeR7bf_663GMLoY4MVcAdhA2NdSwGgbn1dWfRSiS8nYYHF5pxgyn4MrfTYbJIeBHdBeRj4zi6I8YeFaPSHpM2rW1macFp4dPhwVV-iTEHptoJ-7GVVSBnSevjnwRCtHwdD-olG0Cwgtzi7sPzux_yVQXTlM0eI-TuTqZPkcQJ5VSbpP-jcPEybO4gmSHSYIEBirsnqVkPD7C1-vPG3R2vtgb_iggewIUcrfuLUEGWWcROJjpXz68tKF1BP8KpzQ0IqFF0Qz-RNmxQn_NaOyHErtuGAnKTzQirawBbNF2iMopEqEZ4IC6yoae7g0gPynu81M_PkfjSaaZsPUdo7Ag-Gei8OXvupzMy5UtO8lszAVZXXLS6ouEIPDtR7RA6m-s5ksRU8l0hlPnyAnp5TGwQ6A=w1680-h945-no" alt=""/></a></figure>



<p class="wp-block-paragraph">Next up: the bar.  You can&#8217;t go to Cologne and not try the local brew, Kölsch.  Germans outside of Cologne assert that Kölsch shouldn&#8217;t be considered a real beer, and honestly, I find it to be just okay.  It&#8217;s not great and not terrible.  A unique part of the Cologne pub culture is that if the waiter sees you with an empty glass, he will automatically serve you another one, regardless of whether you want one or not.  The sign that you&#8217;re done is to put a coaster over the glass.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://photos.google.com/share/AF1QipPyCuIawLQsPQYUS_r8GGatvIcZ27f81sqwdFnj6WbIA0UiiPq7tGEkx5oQhA8zSQ/photo/AF1QipM_rJoA0EK4NkunCfpQc7JXY5jl_yDjH071Aqtf?key=VFpmUXFPelRZTEFyOWM5NzdPT1NMVElHUGFFZDRB" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh3.googleusercontent.com/XkHoDkWaXfcf9FM3E-_qUGUJSYflcNUIykOHARNURNl_LGiMAAobZGKnybRRlQqhkPPQQm7zXsAdnfp-ByHtRYvhEZHIdDC_itR7kOv-HY1UCJymmNGmuRTVU2woTUJ7nmWR0m0MLb2YCH8FuRkuBBGMay2xoELz4twinOucSk_XmjekuHBcrSAy35tu1XIN4RJnekVwhTODC7bGi2SC5OpCyMBIgnP0M3q2Mox2gDPkLHuPSOdmDhrTb-clZmV6Z2kNhDGatFFdk-CSgZUcHCzMrvPWbVbvRN16u3VOH8CNbpjTBzE_qLtSSbZgOY9oAhhuymqW-8dUu9Feu1iO7yo_EVATvySsWUj3TSXBHrdTop_eQnBzxrsOxbyI0TVIwOzkEgJTduIHZ7W6J_ptdYEJvedAiUHiXdP0aBowuJEUOBEyvdylnWC3u0xEox_NDJ1k39297EEhq7anYZFUDbIbJrkEhk8I2YcHBEbjoWYhXpQmwUQ-_ry9mPKZjKut2MLlxKx39dnVN0a0oOC1EQVTknEf7sspU--DqaSXScbOf3zsQ_wwKprzvTVm9p-nzOTnu_2SZJL6ULWkOpUaM4BWY4bv7W4l3y_r4j7gyK9YcniY1Spdmvq8qS0vEnCfDUEzY5Ep4rf3AQMd0bKH71kQ0fw3JK9JCsvZX8NF_1lnDivevyChO_khTCqI5CJMEpRcHFvXmB3LzIZhCRhdnVjNggDTIxcCVFZJdoiPXNonazp9iA=w533-h946-no" alt=""/></a></figure>
</div>


<p class="wp-block-paragraph">We walked around town a bit and went to probably the biggest landmark in town: the Cologne Cathedral.  This Cathedral is the second tallest church in Europe (the first is in Ulm, also in Germany), with a height of 157m.  It&#8217;s hard to imagine the size, but most of the buildings in Cologne aren&#8217;t very tall so this building appears to tower over the skyline.</p>



<h2 class="wp-block-heading">Düsseldorf</h2>



<p class="wp-block-paragraph">Next, we drove to Düsseldorf.  All we did there was walk a bit around town, but the streets just kind of look like other cities nearby, like Cologne, except Cologne has a giant cathedral to look at.  We did come across a small celebration in the street though.  I&#8217;m not completely sure, but I think it&#8217;s for the <a href="https://blog.henrypoon.com/blog/2011/03/08/germanys-cultural-centers-costume-crazy-carnival-in-cologne/" target="_blank" rel="noreferrer noopener" aria-label="massive Carnival celebration (opens in a new tab)">massive Carnival celebration</a> that was gonna happen in late February.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="Düsseldorf celebration (Carnival?)" width="1280" height="720" src="https://www.youtube.com/embed/1Hh1imLMK9c?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p class="wp-block-paragraph">The fun started later that night though.  We were looking to get some dinner and went to a local pub.  It was Friday night and the place was packed &#8211; so you can be pretty sure this place is good.  Normally, you&#8217;d just walk in and sit at any free table &#8211; there&#8217;s nobody to show you to your seat like in America.  There was nothing free anywhere.</p>



<p class="wp-block-paragraph">A group of Germans signaled to us that we could join them and they&#8217;d make space for us.  I politely told them that it was okay and we could wait, but they started shifting over so we ended up joining them.  We chatted with them over drinks and they turned out to be super fun people!</p>



<p class="wp-block-paragraph">A older couple were having beers with their son in law and his friend until we joined (they were drunk already when we showed up).  They were so happy to chat with us and kept telling us how awesome we were for visiting Düsseldorf.  One guy kept telling us in his German accent how &#8220;North Rhine-Westphalia is the most open-minded place in all of Germany&#8221;, how he grew up in Bavaria near Allgäu, but can never go back there because Düsseldorf is just so amazing, and that we should live here permanently.</p>



<p class="wp-block-paragraph">Germans when they&#8217;re drunk, really like speaking English.  One of them kept getting stuck on words and he&#8217;d ask their friends what the word was in English.  I&#8217;d translate the words for him each time and eventually one of their friends literally just told him, &#8220;don&#8217;t ask us, ask him! He knows all the words!&#8221;  They were super impressed by my German and it&#8217;s a pretty great feeling to know that my German is good enough to have these conversations with locals.  </p>



<p class="wp-block-paragraph">My friend on the other hand, could more or less understand what was being said, even though he couldn&#8217;t speak the words.  In fact, he had a bit of trouble with his pronunciation, to the point that not a single server in any pub we visited in Germany understood him when he tried to order a Radler.  This bar was no exception either, and I couldn&#8217;t help myself but laugh at his misfortune <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p class="wp-block-paragraph">As we left, we jokingly said we&#8217;d meet again at the same place and same time to have beers together again.  I gotta say that most Germans I&#8217;ve met have been pretty cool.</p>



<p class="wp-block-paragraph">That&#8217;s all for now!</p>



<ul class="wp-block-list"><li><a rel="noreferrer noopener" aria-label="Cologne (opens in a new tab)" href="https://photos.google.com/share/AF1QipPyCuIawLQsPQYUS_r8GGatvIcZ27f81sqwdFnj6WbIA0UiiPq7tGEkx5oQhA8zSQ?key=VFpmUXFPelRZTEFyOWM5NzdPT1NMVElHUGFFZDRB" target="_blank">Cologne</a></li><li><a href="https://photos.google.com/share/AF1QipPfIYaLcGJjWwZHyjScZOPTAhn96PIAE2XET2JreAOoAEKHjzjzqaZSx-oAF4HhOw?key=YktrUzAwLUxhS1hEeUJrb3pEUlJ2ajA4bUJmYnp3" target="_blank" rel="noreferrer noopener" aria-label="Düsseldorf (opens in a new tab)">Düsseldorf</a><br></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.henrypoon.com/blog/2020/03/14/european-road-trip-day-8-cologne-and-dusseldorf/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5083</post-id>	</item>
		<item>
		<title>European road trip – day 3 – the Maginot Line, and Verdun</title>
		<link>https://blog.henrypoon.com/blog/2020/03/08/european-road-trip-day-3-verdun-and-the-maginot-line/</link>
					<comments>https://blog.henrypoon.com/blog/2020/03/08/european-road-trip-day-3-verdun-and-the-maginot-line/#respond</comments>
		
		<dc:creator><![CDATA[hp]]></dc:creator>
		<pubDate>Sun, 08 Mar 2020 09:26:29 +0000</pubDate>
				<category><![CDATA[europe]]></category>
		<category><![CDATA[APT]]></category>
		<category><![CDATA[Battle of France]]></category>
		<category><![CDATA[Battle of Verdun]]></category>
		<category><![CDATA[bunkers]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[COM]]></category>
		<category><![CDATA[Const]]></category>
		<category><![CDATA[craters]]></category>
		<category><![CDATA[D]]></category>
		<category><![CDATA[douaumont ossuary]]></category>
		<category><![CDATA[Drive]]></category>
		<category><![CDATA[driving]]></category>
		<category><![CDATA[dunkirk]]></category>
		<category><![CDATA[EAR]]></category>
		<category><![CDATA[Euro]]></category>
		<category><![CDATA[Europe]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[first world war]]></category>
		<category><![CDATA[Force]]></category>
		<category><![CDATA[fort douaumont]]></category>
		<category><![CDATA[Fortifications]]></category>
		<category><![CDATA[Fortified Sector of Montmédy]]></category>
		<category><![CDATA[france]]></category>
		<category><![CDATA[Franco]]></category>
		<category><![CDATA[future]]></category>
		<category><![CDATA[German]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[great war]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[IME]]></category>
		<category><![CDATA[It]]></category>
		<category><![CDATA[Italy]]></category>
		<category><![CDATA[Lie]]></category>
		<category><![CDATA[Luxembourg]]></category>
		<category><![CDATA[maginot line]]></category>
		<category><![CDATA[Military]]></category>
		<category><![CDATA[Museum]]></category>
		<category><![CDATA[Ouvrage La Ferté]]></category>
		<category><![CDATA[Ouvrage La Salmagne]]></category>
		<category><![CDATA[Over]]></category>
		<category><![CDATA[PATH]]></category>
		<category><![CDATA[Plan]]></category>
		<category><![CDATA[Port]]></category>
		<category><![CDATA[rain]]></category>
		<category><![CDATA[STR]]></category>
		<category><![CDATA[strasbourg]]></category>
		<category><![CDATA[Struct]]></category>
		<category><![CDATA[Sunday]]></category>
		<category><![CDATA[Thou]]></category>
		<category><![CDATA[Time]]></category>
		<category><![CDATA[verdun]]></category>
		<category><![CDATA[When We]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[World War I]]></category>
		<category><![CDATA[World War II]]></category>
		<category><![CDATA[Z]]></category>
		<guid isPermaLink="false">https://blog.henrypoon.com/?p=4880</guid>

					<description><![CDATA[Our third day of the trip landed on a Sunday, which meant most businesses would be closed, so this made it a good day to do most of our driving. Today we would drive from Dunkirk in the north of France, visit the Maginot Line and Verdun in between, and then end in Strasbourg, in [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Our third day of the trip landed on a Sunday, which meant most businesses would be closed, so this made it a good day to do most of our driving.  Today we would drive from Dunkirk in the north of France, visit the Maginot Line and Verdun in between, and then end in Strasbourg, in eastern France, 600 km away.</p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1200" height="675" src="https://i0.wp.com/blog.henrypoon.com/wp-content/uploads/2020/03/Road_Trip_Day3.png?resize=1200%2C675&#038;ssl=1" alt="" class="wp-image-4918" srcset="https://i0.wp.com/blog.henrypoon.com/wp-content/uploads/2020/03/Road_Trip_Day3.png?w=1200&amp;ssl=1 1200w, https://i0.wp.com/blog.henrypoon.com/wp-content/uploads/2020/03/Road_Trip_Day3.png?resize=300%2C169&amp;ssl=1 300w, https://i0.wp.com/blog.henrypoon.com/wp-content/uploads/2020/03/Road_Trip_Day3.png?resize=1024%2C576&amp;ssl=1 1024w, https://i0.wp.com/blog.henrypoon.com/wp-content/uploads/2020/03/Road_Trip_Day3.png?resize=150%2C84&amp;ssl=1 150w, https://i0.wp.com/blog.henrypoon.com/wp-content/uploads/2020/03/Road_Trip_Day3.png?resize=768%2C432&amp;ssl=1 768w, https://i0.wp.com/blog.henrypoon.com/wp-content/uploads/2020/03/Road_Trip_Day3.png?resize=171%2C96&amp;ssl=1 171w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></figure>



<p class="wp-block-paragraph">Originally, we had planned on visiting Sedan too.  This was where the Germans made their initial breakthrough into France that eventually led to the French surrender.  We intended to go to the Museum of the Last Cartridge, the local museum there, thinking that it was about the World War II battle, but actually it was about the Battle of Bazeilles during the Franco Prussian War (which I had never heard of before).  In the end, we didn&#8217;t have time for it anyway so it was okay that we didn&#8217;t go.</p>



<h2 class="wp-block-heading">The Maginot Line</h2>



<p class="wp-block-paragraph">Not far from Sedan, was a preserved portion of the Maginot Line in northeastern France, known as the Ouvrage La Ferté.  The Maginot Line was a series of defensive fortifications stretching along the French border from Luxembourg to Italy built after World War I to protect France from a future German invasion.  The location at the Ouvrage La Ferté saw the heaviest fighting during the Battle of France in World War II.  It eventually was overwhelmed by German forces and its entire garrison was killed.</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPylgM8Qw6H9r2brCeAiFKgFgYb80tvL3VMzt8-jw-SYrNyXWOsV2HwzTSnCFl_-A/photo/AF1QipM1KdpBEWj7M1mRcq9Nqc9apNkqh8m2qTwBB7UK?key=OXJHaUdVMWx4eXRSQjNZX1VpOXJZY1UzR2E2OVdB" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh3.googleusercontent.com/f5QHP0vxFxASsYi3jxcrvcWN3QAdufmCLKMqPeoaKBEqkaVJEOtOuYSferoDfj3wY3x0nxarxg9T8RDNy-JKLcGbqNMR0__S4AvlgW1bEqyEbAqEKuvXsup5XWw-dpVE-Rp6_MV7mhNeMVjouREs77buf0S-j2v-Q4GFXcekM_E-7C9r6EEa9NiJyWfIXq6D_xAFdTSfVKH_KiX93d_boRTl01CAczqxR33b3nfpb1Z9Twlaopv_sYsQ0QOsezy2HGKFYQiNfU-b-Fn0AYpf5H9b5PrUGsyGT6T-ENIzytbDa4oV5EzxGgmEQVJZPIf_3sLx0J1Q5CA549LReOk6poobrtBOWM0TS3eyCmA8NbcJ--QLGPBAWsvSrRaM-5jg0dNO_X8sdUMEjcV3ZkYDcra014FoDstmnSgj9ICKL-zakm967vC-Q3yyVRgqKXsgtFFmoRXS_2zJry6DF3PdQ5Hyt7TOGKG6qZle7zdSi0STbU6mM9LiFZcfcBeL0fT27EQ-s8JZzlYFaNmVtTnnu1y-XSxiEoCkNsTKmYvy9GKoarXlYKhcVOarVut80VQFPbZxI2zyVnfzLOtHpHU-cv9_NNSted2x7Jxz9Q6Jwa9W6sJGI1cvP8Mhz8u7Ej3sYlTbwoXNbP2Ll6lCGDBWoiFMcsIksKLo3OvSrbxNVisMSQGrCGO1QT6RzqWx2Y6IdeezYzNZpjOznLWrUz53uU3k9fmE65V_zGcysEZDpLBmVXbqrw=w1320-h743-no" alt=""/></a></figure>



<p class="wp-block-paragraph">It&#8217;s exterior still shows the damage from the battle and grass has grown over the craters that were once there.  It is possible to tour the inside of the bunker, but it is only available to large group tours.</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPylgM8Qw6H9r2brCeAiFKgFgYb80tvL3VMzt8-jw-SYrNyXWOsV2HwzTSnCFl_-A/photo/AF1QipMT_iH5yV5hYFpYqcunbbXdyAugAPVfo_LKuar1?key=OXJHaUdVMWx4eXRSQjNZX1VpOXJZY1UzR2E2OVdB" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh3.googleusercontent.com/XyGnaNXqYHbVOQbFevreEFBhISiIQURqVaqfjMPcm9AeL2BVtVtiZys9Oe40gaSQb0lEMqKq8Kw7OWTTGrHoJNUH6jR-lZQ5gSwaRjk-HwaWNHQQyfzRphYSyR_RtBej8kYtZUSVpNY2K6G3vQOLOsOC9-aY_L5eXZJUqZU09-3B-C-RrzSmgvd9SIPhovKDQXUy-WZAjnzrBJycsCWabfJ3rmGZnNqFGIgcMV73MICMREJwdutDZlbwd7KSuas2ODxIu3CzjILolLepEa_d5FmgPyQnxntvyXinjkszO8VB5Lylnwim83a6a_RO7IJ54e60GrXDO_H_4v-mmzSXbjf0KFxmfsDpTkPED_7iOgLPkU7MXvT13OuSpXmFJkXR0Zann6aybl5xQdiqbrKCPNlyVcEXRP54xrpaayNo151AC231dZrCWmgOrPo3lz7cpmp5n0kw2QKo_ZXAUVadIvl7Xku3TyGc391DjgOlA04A1yK60P3QJwrf6953qkmGjRAWeqzcAnS371GDnEFPnBfFXDahoTcOb6zvYM2OqCzMma64Qnhqgriu2EJ-0xXcGBuNfMPphh0_uLUxJVfBHtULM5Jz5If55w9-_XzxDrBJy9_7aFxCcp3ySYwShepeN-NSnSEBXSVDTsYPQoMFa7Y2epwDsQjUsOV5U155yMIrYVK83mdfMO-xy1XhXCgVDdSf8yJ0FPzBF-MVTVb0kuHdlBVLbWIS8iC8qXVABix2NGv3qw=w1320-h743-no" alt=""/></a></figure>



<p class="wp-block-paragraph">Driving through the area, it&#8217;s pretty common to still see bunkers on the side of the road.</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPylgM8Qw6H9r2brCeAiFKgFgYb80tvL3VMzt8-jw-SYrNyXWOsV2HwzTSnCFl_-A/photo/AF1QipPUL9Js7f3OezBx6XGH04UEkVCzFAOhDrlf1jmG?key=OXJHaUdVMWx4eXRSQjNZX1VpOXJZY1UzR2E2OVdB" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh3.googleusercontent.com/W6hFkyHYJjLrfux8CbG6aftH-GZ0vbe7Q7qSjSZdlqZh3Nm5W4k8_3poK3G6cga5Njk4n8k8uQieW4aacZDtmHkKr9Kqm-7YJngHPbdnDrLPcLpt9f-0vNsWtjKcEM0WTY4odLknO3pDsbLskEO4axCkE6pLBo3GMl4AFMqsWMB6jMVvVq9y2Gak_c6pVPZEATFVE5nDlXEEdo1DnJz_X6nBI4kpOQyQgkpSiIRjhtivPGSEGbQujV-X0tdoutDPIP1nTPb2m3nWmnU0kNU1bw5wunHQdoYE0MlJj-6cSw7fubfBoCRqwY0yCyhmulk_mLbm3Nc-jOuuiZdyvifUHLW81ASNTdlFkVBkuvTrG-9hXSEGGZVjSzQNEat1jm4wDOVyikK-hfWyNmfUT_OOqhshDjLwtlLmuhBM9VPw4FB2NlPbyMFXLyLhd_TFl1AsbN83334uNZ2dcWZt1584AcDfkEQwS9My9wP9T5Rd2yuzpPKQP3ovrua8wnsMK18iUBFTda6uPrbjQzRanPii2CRli7AErmAZqVBpg0GDNo5g21HKXjVBH-vqm3U8Qhzq5hvIO58jEVr87TlEkF454i9N-cPiM7NND8YsFCSOU8cjZTvrdNQCfZ9kMAjaqyj5TTsdHTzMMCRcATAw3b2v2iORCPYe526x7mJjz7DNr1TXOawrRDEaFbPrwxfcxlkCYvV60EUF3pWXAFMKxr0zA-bxYHFgKqfqXB2tzAwkcv-p83p3oA=w1320-h743-no" alt=""/></a></figure>



<p class="wp-block-paragraph">The Ouvrage La Ferté is in a pretty remote location, which makes sense considering it&#8217;s a defensive fortification, and because of the rain the night before, we ended up driving on some flooded roads, and even narrow farm roads that even Google Maps didn&#8217;t have a name for.</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPylgM8Qw6H9r2brCeAiFKgFgYb80tvL3VMzt8-jw-SYrNyXWOsV2HwzTSnCFl_-A/photo/AF1QipMa-vWy1hKgHD2zFcg1weilka4yFlmOv9yEf6P8?key=OXJHaUdVMWx4eXRSQjNZX1VpOXJZY1UzR2E2OVdB" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh3.googleusercontent.com/97e6V-auM1OHQNgylz-XlPMdm1mVQS62VEHIzwXqvceRRZnWMHNbmgE5bOdegAM2_60IzrUjz7e00f4v1om6cTHrNyZIZcarNlFfcFF_zibGzkpT8YivnRqnXCcWAEP9m2anN0Ejhgubc3xfmrGeh2PV5gTD59ewFR0OIO5P2O0NLRDITPUKooEjdCj1VAzG0ehJwxvEu2uPKes_zZd6jQdhmlXX_3lFzl45oCzv2FyS-J997TixnRF-7a3rGOdnPIoDbSuo-gY2ryKfakTY54-q2PH7hC8kPPCKfXr2kMu6mX4XSYqQnI-SsV-hXVibUN5JAdSN_BBPrT1fkWKdwMmWAd5xh2KfDwb61YSVNMnmOxkWdlZEcj5wzdSSCesMbuzeDxeEb5YMq7R4rRLlkbLQkirEea78CJk-VeZiRCUHS0LsF81j4ayJJWDlTPKRtG-Q4NlBFKV22zKbIJcVXHB2b1YVv0i6M10-PSi3tZ171T8wvqmEsq7XVFD3yLFUoXB0SKw4M0AlvMzt-8AP8c_zLdSHfzD856NZsl4YnyGEjcYT930ucGkSn4ViPBtt-ADLJr7PwxDanLHoNRyuBv7D79N3Or8TfUnzNR4Y2sZ7mjCSMocbkkJ5CAYJLfQR_cp9MHlRUAs8IxFHWHnkoz4BhJeNAMNNYkpzYuA4SwT2Nt4n6Ze6xngghVyskQv-yu3D64rshoA9z7ECG7sXkewFEMvT_qMJO_YXuJJAdcqN8yU7Vw=w1320-h743-no" alt=""/></a></figure>



<h2 class="wp-block-heading">Verdun</h2>



<p class="wp-block-paragraph">From Ouvrage La Ferté, we drove to Verdun.  Verdun was the site of another major battle in World War I, and to remember the fallen soldiers, a memorial containing their skeletal remains was constructed.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://photos.google.com/share/AF1QipMyNFP4NHo-xVcS6cB3UpzazPs5ovuKcoJSTH26KQGNVCNKW2M8RaHJQHLhrvPdrA/photo/AF1QipMjXazYuQTFcxAQ0VhN6aRxCVinAS2wx2y-f2AM?key=bC03OWFWc0xidG5POXo3elRqUXFoSTZ0QlF3RGNn" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh3.googleusercontent.com/o-p4M9F9TrYS7BmOM6nQiOIZq-cgvCqwQGuLm4fDT5aPEiBoiLW-tz2yk24EDdpSfPbmwcnLqhBFL6_mv8w5YHN1rRfV3ahzzb0xLyO3FTbn6U2LJNtX6gym0HXfUS4LnC2qyo3rvA1Xqnrerj1X1c5c80oHr7iHubCQeSUH-7N9r0Tbg3TYuXFGK83LW6wPG1hzdIAFKWRHTQXIXpYfQ_sVDjoeY9fneneUttjbbwtGoiU_8IJoc57iKXIVt4VoolFMYYaAtX0BUKBLsBugss-eIyYbN6MVFZry79G7s4CYy3jcs1tN__gYtqSeFkM4WCmWMiZTCiCOkINhCw-qu0TZSSW-896FLhhRBp4NDzLw9lMkCM_UXEeighbgNMreM93OckJMNbIHub1XGa9H7LBg5KJ2JN0N4yEj1hC7kFDQWpsAbFqou76Bg4PtQ2tDrnSm56qqOLbxC7azkym_nzu2d__ehM5Otha3fogd3l7R5uGuxVeXyM7JGNEW700A_6GMyPiRe7OHlYY7f7dahCFRDonEnPz5hqi-_75gNG2srKoA8tPagBCNaJAZ8_x77PpgGABAU_5xwoqNxK_qye2Lst4yJTfF7SEdmAVkyEeDRiNOt0jebdwfd5tWh7flTgJZuXeMk81IUuLxOOr7bGHI40XQQeWmFaRNZwBo1IjgQi4zN80VUeKVQ5mdKJoC_O4TwPgXf1FcVB-A8PJ911HNMCk1eNMa5APGJEh0r2Z5tcj34g=w533-h946-no" alt=""/></a></figure>
</div>


<p class="wp-block-paragraph">Unbeknownst to us, the ossuary was actually closed when we arrived, so we never got to go inside.  We could only peek through the windows and see was a blurry view of stacks of bones.  In front of the monument lies a military cemetery.</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipMyNFP4NHo-xVcS6cB3UpzazPs5ovuKcoJSTH26KQGNVCNKW2M8RaHJQHLhrvPdrA/photo/AF1QipM25F0h6FZJtpmLGuil6fJbXv8RlY6GBYqmzm2H?key=bC03OWFWc0xidG5POXo3elRqUXFoSTZ0QlF3RGNn" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh3.googleusercontent.com/CqFecwKKM1PJnKJD2dYe5l-g1ruNDQpSmPUGCOO0e6rBT7WIAByq3UXxNlNVPB13J29wyV4YCP5Jw9LYjh5ta9Ti6Sd29ySJl-moCUjJKhmnTbwhGxwZ8W7NWsJHQ5a9D6Jgf6fBpIyVmGfxX8WmXdBuM25K0x9QdVsZhm1OWY47gLH4Sbx85URyUD1L0G6EAEiQR78fYSmubhIUsIBEK6-j-5koDj99TrBRtgOB5AK6VvIpivq786athWNPRDbFwoASvprVNuytP-FeSGhsSpkcti2EUaNWVMuqhdqtAqLp1xDamqlIU8gTIQDQgLBfh0jxp34ddo8e7StHUiCy0edxQoeyFqn_eNiCKfN6sWnWqJ0PVOQYupUHzElQOc-11URW0jwT4bZgCShKwaCAz8LXX_6NxG6tcuKFXY7cccYqdfl_I-9Fo9iHkae65eps2QcTjP-69jprB6Wpr-8QH7_rvva3vORx8Z7gdsWeVsXRLwAO2gK1K2zWY_kSf6uhC0OIH-of9IcB3nHBCtUK9cSjRb_UvPssXQ3RIveuJri9JegNwRggQhbSo3hfKFEV_J5bLITV0M6lxN351Ejz0V0T1LrTzWmQ6BJAu1zjrIqUF6QFOBKLmN_NzQxgvWXx45R2k2AhZkxlIo0TQnK8hYwSphfsFGaXTfKT8QKHDgbdE3eWN4xF3H2Fxu6WfFb4IjHcFGLVttIamo8t6KCqQt3FYdre-cw7ioMxFBvJj-cEuKufaQ=w1320-h743-no" alt=""/></a></figure>



<p class="wp-block-paragraph">Nearby the ossuary is the actual fort that played a role in the Battle of Verdun.  The fort fell to the Germans without a fight since the French had abandoned the fort thinking that the fort would have been ineffective against the heavy artillery that the Germans were using.  Eventually, the fort was recaptured.</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipMyNFP4NHo-xVcS6cB3UpzazPs5ovuKcoJSTH26KQGNVCNKW2M8RaHJQHLhrvPdrA/photo/AF1QipMzXBegkP0USCNH1J20es2kSm3wAptGjZoGpWDo?key=bC03OWFWc0xidG5POXo3elRqUXFoSTZ0QlF3RGNn" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh3.googleusercontent.com/QQDSsP0wwenR2ZMi_xzAfwbYZR3hkj7ojFyBUAVGJzNyKVDG0Otssmy7NlFlIngKw3ie_lTTEKRac4Q3kxpPWaZdynCrynTU97ehEfPznbbYQQMpkyP4-zG2kLfwKEkX2rUEuLiRZzvCQh2xnhUkfdNIehLV7c9McWaydH19mk3E3qWLzPFp-CgV37UVGMX08VoD9TP_HkpygcFuBHVHnQPLn9iPzGC2xJVtriA8VE5rX9kX9LL__1vWSM8aWH9IA69_mCtvBNkdAbiA9t6Js1OiCrTx6Gg-A3Womey3gvvoZmiZUBRuCVFuazBuXsXKyGJ1mEVdRuRtfCGTsRkqXmAR-1_86eHCQ0ObfJ32ewHdA27abAuvJGxHVCL0REnGW0kfCHB7Al-1mMJnVZsEfX73qEUgI7GjGJtGmBXnjPaIyXhjAZY0_imculmAUFT-UxWtlgHt3SnVr-ivUNIgogbvMEoCuqoIzV1G0FNb8sWs2zbuhEEBPkfQt25QT5pJCHdQmIWiKRLTF_8a4kJ81Pn3CYpnjgc33xCMyKl1zmzgvNUc6aOxzsSF3pao-Xf7rFUKdI9q298oibAiXN5SX2x9pR3hw_14Zx9jwrur4dXHVKXgunRcOFBSIRsDgusjXiWjNQTlxbkNmkG1k-Q-QJ_XgFbP3GTxuNcF-na7k5Fk-Aa2gyPNFkSH1Pti0Z5S1TPfQHitXyjzZxSIjV4rtxrG0oH4tzzIDsehz-K_N73xKbiEEw=w1320-h743-no" alt=""/></a></figure>



<p class="wp-block-paragraph">The road leading up to the fort was interesting too because some of the old trenches were preserved.  The zig zag of the trenches can still be seen.  Its purpose was to ensure that shrapnel exploding inside the trench would be contained.  A straight trench would have allowed a clear path for the shrapnel to fly through more of the trench.</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipMyNFP4NHo-xVcS6cB3UpzazPs5ovuKcoJSTH26KQGNVCNKW2M8RaHJQHLhrvPdrA/photo/AF1QipMAxss0nTp9ZNL0LIBFPTcB_smaLGoUhwj8VYjy?key=bC03OWFWc0xidG5POXo3elRqUXFoSTZ0QlF3RGNn" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh3.googleusercontent.com/X9k_NHiYJ_Lr6dW2nzt1HmP84VDwmxb5z2Dm5iTyJDFaKDt_MrZePijd0dpiE_jO_0d9Z4wGKLW5P60t2eBIzpP4tOxzUqLu4sM8IbWMMB7PPvk0OtAmTCbFdND34_Fqvr26UJH8-lM7_6iAgrnqYeKXNhcP5ctrrB_k7bBnY26JTQSzFumfr9aUA76U5ZIpmZrtF2nwt_w1zxqbYzKY0AYFVn-v5cEWwNt-vGyBFushI6O_2rULc4GRULi5C6yBl6quQsdbTLkH0NdRWeAhL_9Cpv3CMr52IWSiaSAfD9ZA4BeYMOTt_f6QSOWf2Qy2Y0VfmRmTN8W4cwuh8tffejOR9F7RHO2G2y2m29Kqlm8dI4vHAF48a72cY_Ue1WJJZs_AWNJYdDrqJ_xPUlmgOlUWnuFEKmECK07eleYTUVJqYpzMAukc3gJRKJEBZ8L5bRHgKYplX8WH406qZqOpZLmf-SGLnbo4eIEMtg75oLog_ZdC-Mvm4yp18OxI1Rr3r5xmamekG3h9rSRnN6wYWk0JDQY-duxnSAvQfY9qOhNo-ZNGFGLbbmaM7s_Jx5SW2I63sgIvkCcnPjq3eq62DI97HJNShBrCuMMLxPs9Xouj8H4H96EqCLI1xVo0-Xgvdz4ZK5nx12G5Pmil85syUz5NyVfQfivYos5Y3kmQqGT0-bOVgPYdPb_Od04_SHtuQ9FrMKN0Lr3uFyKrEIW4rP37Z9_KYbex89NTLVLgZC_b8Bb6Wg=w1320-h743-no" alt=""/></a></figure>



<p class="wp-block-paragraph">From there we drove three and a half hours to Strasbourg, where we&#8217;d start our fourth day of our road trip.  That&#8217;s all for now!</p>



<ul class="wp-block-list"><li><a href="https://photos.google.com/share/AF1QipPylgM8Qw6H9r2brCeAiFKgFgYb80tvL3VMzt8-jw-SYrNyXWOsV2HwzTSnCFl_-A?key=OXJHaUdVMWx4eXRSQjNZX1VpOXJZY1UzR2E2OVdB" target="_blank" rel="noreferrer noopener" aria-label="Maginot Line (opens in a new tab)">Maginot Line</a></li><li><a href="https://photos.google.com/share/AF1QipMyNFP4NHo-xVcS6cB3UpzazPs5ovuKcoJSTH26KQGNVCNKW2M8RaHJQHLhrvPdrA?key=bC03OWFWc0xidG5POXo3elRqUXFoSTZ0QlF3RGNn" target="_blank" rel="noreferrer noopener" aria-label="Verdun (opens in a new tab)">Verdun</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.henrypoon.com/blog/2020/03/08/european-road-trip-day-3-verdun-and-the-maginot-line/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4880</post-id>	</item>
		<item>
		<title>Jenkins pipeline for Spring with beta and prod stages and deployment rollback</title>
		<link>https://blog.henrypoon.com/blog/2017/03/09/jenkins-pipeline-for-spring-with-beta-and-prod-stages-and-deployment-rollback/</link>
					<comments>https://blog.henrypoon.com/blog/2017/03/09/jenkins-pipeline-for-spring-with-beta-and-prod-stages-and-deployment-rollback/#respond</comments>
		
		<dc:creator><![CDATA[hp]]></dc:creator>
		<pubDate>Thu, 09 Mar 2017 08:04:51 +0000</pubDate>
				<category><![CDATA[computer stuff]]></category>
		<category><![CDATA[9]]></category>
		<category><![CDATA[Apache Ant]]></category>
		<category><![CDATA[Apache Maven]]></category>
		<category><![CDATA[Build automation]]></category>
		<category><![CDATA[Chan]]></category>
		<category><![CDATA[COM]]></category>
		<category><![CDATA[Compiling tools]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Const]]></category>
		<category><![CDATA[Continuous integration]]></category>
		<category><![CDATA[D]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Digital technology]]></category>
		<category><![CDATA[Download]]></category>
		<category><![CDATA[EAR]]></category>
		<category><![CDATA[future]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[groovy]]></category>
		<category><![CDATA[Hole]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[IME]]></category>
		<category><![CDATA[It]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Java enterprise platform]]></category>
		<category><![CDATA[Jenkins]]></category>
		<category><![CDATA[Levant]]></category>
		<category><![CDATA[Password]]></category>
		<category><![CDATA[PATH]]></category>
		<category><![CDATA[Plug]]></category>
		<category><![CDATA[Port]]></category>
		<category><![CDATA[Reference]]></category>
		<category><![CDATA[Rolling]]></category>
		<category><![CDATA[Run]]></category>
		<category><![CDATA[Scripting languages]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[STR]]></category>
		<category><![CDATA[Thou]]></category>
		<category><![CDATA[Time]]></category>
		<category><![CDATA[URL]]></category>
		<category><![CDATA[Variable]]></category>
		<category><![CDATA[Z]]></category>
		<category><![CDATA[Zip]]></category>
		<guid isPermaLink="false">https://blog.henrypoon.com/?p=2614</guid>

					<description><![CDATA[In the past couple of days, I&#8217;ve been experimenting a bit with the Jenkins pipeline plugin to create a code deployment pipeline with independent beta and prod stages for a Spring Boot app. I even managed to add rolling back a deployment in case a prod deployment fails! It took me a bit of time [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">In the past couple of days, I&#8217;ve been experimenting a bit with the <a href="https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Plugin" target="_blank" rel="noopener">Jenkins pipeline plugin</a> to create a code deployment pipeline with independent beta and prod stages for a Spring Boot app. I even managed to add rolling back a deployment in case a prod deployment fails! It took me a bit of time to Google my way through how to do everything, so I figure I just lay it all out here in case it helps other people do the same thing.</p>



<p class="wp-block-paragraph">The nice thing about all of this is that I can push a code change to git, and Jenkins can build it, run through all the tests and then deploy to production automatically.</p>



<h1 class="wp-block-heading">Layout of a pipeline script</h1>



<p class="wp-block-paragraph">Pipeline scripts are written in <a rel="noopener" href="http://www.groovy-lang.org/" target="_blank">Groovy</a>, which is a variant of Java. In general, a pipeline script is laid out like this:</p>



<pre class="wp-block-code"><code lang="python" class="language-python">node {
    def SOME_CONSTANT = "whatever"
    ...

    stage('some stage name like Build') {
        // Stuff to do as a part of this stage
    }

    stage('another stage') {
        // More stuff
    }

    ...
}</code></pre>



<p class="wp-block-paragraph">Each stage represents a stage in the pipeline (e.g. building, beta deployment, prod deployment etc.)</p>



<h1 class="wp-block-heading">Defining some constants</h1>



<p class="wp-block-paragraph">First, a list of constants can be defined that can be used throughout the pipeline so that if the pipeline script gets reused somewhere, only these constants have to be changed. I&#8217;m not aware of anything that lets me reuse a pipeline in Jenkins without copying and pasting the code somewhere else so for now I&#8217;ll have to live with copying and pasting.</p>



<p class="wp-block-paragraph">My project uses Maven so I got Jenkins to download its own copy of Maven that it can use to execute builds and have defined it as a constant. The name I&#8217;ve given it in the Jenkins Global Tool Configuration is &#8220;Maven 3.3.9&#8221; exactly. My project also uses Tomcat so there are some Tomcat specific things in there that may or may not be relevant to your use case.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">def MAVEN_HOME = tool 'Maven 3.3.9'
    def WORKSPACE = pwd()

    def PROJECT_NAME = "name-of-project"
    def WAR_PATH_RELATIVE = "App/target/${PROJECT_NAME}.war"
    def WAR_PATH_FULL = "${WORKSPACE}/${WAR_PATH_RELATIVE}"
    def TOMCAT_CTX_PATH_BETA = "Tomcat-context-path-for-the-beta-stage"
    def TOMCAT_CTX_PATH_PROD = "Tomcat-context-path-for-the-prod-stage"
    def GIT_REPO_URL = "URL-to-git-repo-ending-in-.git"</code></pre>



<h1 class="wp-block-heading">Preparation Stage</h1>



<p class="wp-block-paragraph">First, the code has to be retrieved from the repository before it gets built. Jenkins allows storing username/password pairs so that they can be referenced without having to write out the password in plaintext. Jenkins uses a &#8220;credential ID&#8221; for this.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">    stage('Preparation') {
        git branch: "master",
        credentialsId: "credentials-ID-stored-in-Jenkins-that-can-access-the-git-repo",
        url: "${GIT_REPO_URL}"
    }</code></pre>



<h1 class="wp-block-heading">Build Stage</h1>



<p class="wp-block-paragraph">Next, the code must be built and unit tested. &#8220;mvn clean install&#8221; will do just that (depending on what you want, you can always put in a different maven goal). The junit command is just there to take the resulting XML that gets generated during the build process and posts a graph of how many tests were run for each build.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">    stage('Build') {
        sh "'${MAVEN_HOME}/bin/mvn' clean install"
        junit '**/target/surefire-reports/TEST-*.xml'
    }
</code></pre>



<h1 class="wp-block-heading">Beta Stage</h1>



<p class="wp-block-paragraph">Once the build succeeds, you&#8217;ll want to deploy it to a beta environment, so integration tests can happen. The following happens at this stage:</p>



<ol class="wp-block-list"><li>Get the right credentials to get permissions to Tomcat</li><li>Call the deploy method to deploy the war file in Tomcat (more on that later)</li><li>If the deployment fails for whatever reason, print out the deployment log for debugging and fail the build</li><li>If the deployment succeeds, run the integration tests (the command to do this may differ based on use case)</li></ol>



<pre class="wp-block-code"><code lang="python" class="language-python">    stage('Beta') {
        withCredentials([[$class: 'UsernamePasswordMultiBinding',
            credentialsId: 'credential-id-for-tomcat',
            usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD']]) {
                // Password is available as an env variable, but will be masked 
                // if you try to print it out any which way
                def output = deploy(WAR_PATH_FULL, TOMCAT_CTX_PATH_BETA,
                        env.USERNAME, env.PASSWORD)
                if (output.contains("FAIL - Deployed application at context path " + 
                        "/${TOMCAT_CTX_PATH_BETA} but context failed to start")) {
                    echo "----- Beta deployment log -----"
                    echo output
                    echo "-------------------------------"
                    currentBuild.result = 'FAILURE'
                    error "Beta stage deployment failure"
                }
            }

        echo "Running integration tests"
        sh "'${MAVEN_HOME}/bin/mvn' -Dtest=*IT test"
        junit '**/target/surefire-reports/TEST-*.xml'
    }</code></pre>



<p class="wp-block-paragraph">The deploy method is what takes care of the actual deployment to Tomcat, which is how the Jenkins build tells Tomcat about the newly built war file. The deploy method is below (be sure to change the server IP and port). Alternatively, I could have built my project as an embedded jar file, but that has a different challenge in figuring out how to get Jenkins to tell the OS to execute the newly built jar file as a particular user.</p>



<ol class="wp-block-list"><li>Based on the Tomcat context path, decide whether a beta or production deployment is happening</li><li>Make a copy of the build war file and add .prod or .beta to the end of it so as to keep the original</li><li>Set the Spring profile to use on the newly copied war file (more on that later)</li><li>Call the curl command to do the actual deployment to Tomcat (more on that later)</li></ol>



<pre class="wp-block-code"><code lang="python" class="language-python">def deploy(warPathFull, tomcatCtxPath, username, password) {
    def envSuffix = ""
    def isBeta = tomcatCtxPath.contains("beta")
    if (isBeta) {
        envSuffix = "beta"
    } else {
        envSuffix = "prod"
    }
    sh script: "cp ${warPathFull} ${warPathFull}.${envSuffix}" 
    setSpringProfile(warPathFull, isBeta)
    def output = sh script: "curl --upload-file '${warPathFull}.${envSuffix}' " +
            "'http://${username}:${password}@localhost:8081/manager/text/deploy" + 
            "?path=/${tomcatCtxPath}&amp;update=true'", returnStdout: true
    return output
}</code></pre>



<p class="wp-block-paragraph">In the case of my project, I&#8217;m building a single war file that does not have a Spring profile (beta/prod) defined. This means that I have to manually define this before I deploy the app to Tomcat since there are some things that differ between beta and prod like database URL&#8217;s. To do this, I wrote a method that opens the war file like a zip (jar/war files are zip files) and adds a line to my application.properties to define a Spring profile.</p>



<p class="wp-block-paragraph">Admittedly, doing this zip file manipulation seems kind of hacky. Alternatively, I could have defined my build such that I had a separate beta build and a prod build to avoid modifying the zip file, but the drawback is that I&#8217;d then have to build my code twice.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">def setSpringProfile(warPathFull, isBeta) {
    def zipFileFullPath = warPathFull + "." + (isBeta ? "beta" : "prod")
    def zipIn = new File(zipFileFullPath)
    def zip = new ZipFile(zipIn)
    def zipTemp = File.createTempFile("temp_${System.nanoTime()}", 'zip')
    zipTemp.deleteOnExit()
    def zos = new ZipOutputStream(new FileOutputStream(zipTemp))
    def toModify = "WEB-INF/classes/application.properties"

    for(e in zip.entries()) {
        if(!e.name.equalsIgnoreCase(toModify)) {
            zos.putNextEntry(e)
            zos &lt;&lt; zip.getInputStream(e).bytes
        } else {
            zos.putNextEntry(new ZipEntry(toModify))
            zos &lt;&lt; zip.getInputStream(e).bytes
            zos &lt;&lt; ("\nspring.profiles.active=" + (isBeta ? "beta" : "prod")).bytes
        }
        zos.closeEntry()
    }

    zos.close()
    zipIn.delete()
    zipTemp.renameTo(zipIn)
}</code></pre>



<p class="wp-block-paragraph">A curl command to Tomcat is what actually does the deployment. To deploy a file to Tomcat, do the following below. This will deploy the war file to Tomcat and instantly run it, thus it will be accessible at the given context path.</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">curl --upload-file 'path-to-war-file' http://username:password@server-address:port/manager/text/deploy?path=/tomcat-context-path&amp;update=true</code></pre>



<h1 class="wp-block-heading">Prod Stage</h1>



<p class="wp-block-paragraph">The same kind of stuff happens in the prod stage as in the beta stage with a few exceptions. The following happens at this stage:</p>



<ol class="wp-block-list"><li>Get the right credentials to get permissions to Tomcat</li><li>Call the deploy method to deploy the war file in Tomcat (except this time it is prod)</li><li>If the deployment fails for whatever reason, print out the deployment log for debugging and roll back the deployment</li><li>If the deployment succeeds, save the build files, and then the pipeline is finished. Alternatively, smoke tests can be run at this point, but I did not implement this in my project</li></ol>



<p class="wp-block-paragraph">Rollback is important because if the deployment fails, you don&#8217;t want to be stuck with a broken environment. Since build artifacts are saved on successful deployments, these same artifacts can be brought back if future deployments fail. This means they can be redeployed so that the code can be fixed before another deployment happens.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">    stage('Prod') {
        withCredentials([[$class: 'UsernamePasswordMultiBinding',
            credentialsId: 'credential-id-for-tomcat',
            usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD']]) {
                // Password is available as an env variable, but will be masked 
                // if you try to print it out any which way
                def output = deploy(WAR_PATH_FULL, TOMCAT_CTX_PATH_PROD, env.USERNAME, env.PASSWORD)
                if (output.contains("FAIL - Deployed application at context path " + 
                        "/${TOMCAT_CTX_PATH_PROD} but context failed to start")) {
                    echo "Prod stage deployment failure, rolling back deployment"
                    echo "----- Prod deployment log -----"
                    echo output
                    echo "-------------------------------"
                    step([$class: 'CopyArtifact',
                            filter: "${WAR_PATH_RELATIVE}",
                            fingerprintArtifacts: true,
                            projectName: "${PROJECT_NAME}",
                            target: "${WAR_PATH_RELATIVE}.rollback"])
                    deploy(WAR_PATH_FULL + ".rollback/" + WAR_PATH_RELATIVE,
                            TOMCAT_CTX_PATH_PROD, env.USERNAME, env.PASSWORD)
                    currentBuild.result = 'FAILURE'
                    error "Prod deployment rolled back"
                } else {
                    archiveArtifacts artifacts: "${WAR_PATH_RELATIVE}*", fingerprint: true
                }
            }
    }
</code></pre>



<p class="wp-block-paragraph">At the end you get to have something like this:</p>


<div class="wp-block-image">
<figure class="aligncenter"><img data-recalc-dims="1" loading="lazy" decoding="async" width="600" height="882" src="https://i0.wp.com/blog.henrypoon.com/wp-content/uploads/2017/03/JenkinsPipeline.png?resize=600%2C882&#038;ssl=1" alt="" class="wp-image-2638"/></figure>
</div>


<p class="wp-block-paragraph">That pretty much sums up the whole Jenkins pipeline that I&#8217;ve been using lately for Spring projects!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.henrypoon.com/blog/2017/03/09/jenkins-pipeline-for-spring-with-beta-and-prod-stages-and-deployment-rollback/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2614</post-id>	</item>
		<item>
		<title>Universal Studios Japan</title>
		<link>https://blog.henrypoon.com/blog/2014/07/25/universal-studios-japan/</link>
					<comments>https://blog.henrypoon.com/blog/2014/07/25/universal-studios-japan/#respond</comments>
		
		<dc:creator><![CDATA[hp]]></dc:creator>
		<pubDate>Sat, 26 Jul 2014 01:24:45 +0000</pubDate>
				<category><![CDATA[asia]]></category>
		<category><![CDATA[Alley]]></category>
		<category><![CDATA[Amusement parks]]></category>
		<category><![CDATA[APT]]></category>
		<category><![CDATA[back to the future]]></category>
		<category><![CDATA[COM]]></category>
		<category><![CDATA[cyberdyne systems]]></category>
		<category><![CDATA[D]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Dia]]></category>
		<category><![CDATA[Drive]]></category>
		<category><![CDATA[EAR]]></category>
		<category><![CDATA[Films]]></category>
		<category><![CDATA[Films using computer-generated imagery]]></category>
		<category><![CDATA[fish]]></category>
		<category><![CDATA[fond memories]]></category>
		<category><![CDATA[future]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[Gun]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[IME]]></category>
		<category><![CDATA[IOS]]></category>
		<category><![CDATA[It]]></category>
		<category><![CDATA[Japan]]></category>
		<category><![CDATA[jaws]]></category>
		<category><![CDATA[jurassic park]]></category>
		<category><![CDATA[Light]]></category>
		<category><![CDATA[Link]]></category>
		<category><![CDATA[osaka]]></category>
		<category><![CDATA[Outside]]></category>
		<category><![CDATA[Pho]]></category>
		<category><![CDATA[Recreation]]></category>
		<category><![CDATA[shark]]></category>
		<category><![CDATA[snoopy]]></category>
		<category><![CDATA[STR]]></category>
		<category><![CDATA[terminator]]></category>
		<category><![CDATA[Thou]]></category>
		<category><![CDATA[Time]]></category>
		<category><![CDATA[Trac]]></category>
		<category><![CDATA[Travel]]></category>
		<category><![CDATA[tuna]]></category>
		<category><![CDATA[universal studios]]></category>
		<category><![CDATA[universal studios japan]]></category>
		<category><![CDATA[USJ]]></category>
		<guid isPermaLink="false">http://henrypoon.mooo.com/blog/universal-studios-japan</guid>

					<description><![CDATA[The last time I went to Universal Studios was in California when I was 12. It was nice coming back years later and seeing the same rides that I had such fond memories of as a child. Even though this one is in Osaka, it felt like it took the best rides from the one [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">The last time I went to Universal Studios was in California when I was 12. It was nice coming back years later and seeing the same rides that I had such fond memories of as a child. Even though this one is in Osaka, it felt like it took the best rides from the one in California (at least from 10 years ago) and put them in Japan. <span style="color: red;">Warning: lot&#8217;s of spoilers for the rides!</span></p>



<p class="wp-block-paragraph">Back to the Future is definitely one of my favourite movies and since USJ had this ride there, I had to go (even if I saw it as a kid). It was a motion simulator ride where everyone sat in a Delorean that shook as the car traveled through time to places like Hill Valley in 2015 and eras like the time of the dinosaurs. Unfortunately, the dialogue was all in Japanese!</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://photos.google.com/share/AF1QipOz2Z3O9tarZmBXLL56hAnpMDc0kdOnivFLZt8EE6G-7GmxjL-xu6805YUaGCa0HA/photo/AF1QipMAG76YYGwVXxnbhUw_7kPb0A2ug8DppwXzeZUo?key=alVEVDhPT1RSVXlEb1k5WDBSaGR0MG0tUkJUTjlR" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh4.googleusercontent.com/Uet6Rxns7--k_-4x3FdvRQ879OLgs2u2wPNAPjE1pkgu=w1358-h591-no" alt=""/></a></figure>
</div>


<p class="wp-block-paragraph">The Delorean outside the ride definitely attracted a lot of attention too.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://photos.google.com/share/AF1QipOz2Z3O9tarZmBXLL56hAnpMDc0kdOnivFLZt8EE6G-7GmxjL-xu6805YUaGCa0HA/photo/AF1QipNyQiT5QrIb1YNfNdf2UzIGfNznqiVxUcJCEAQv?key=alVEVDhPT1RSVXlEb1k5WDBSaGR0MG0tUkJUTjlR" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh4.googleusercontent.com/jr6Kn9fj9m9PGj2xGI1XoF_aTHybPN-UI0Yb9rTCbo_c=w1358-h574-no" alt=""/></a></figure>
</div>


<p class="wp-block-paragraph">Parts of the park was designed to look like an American city, but with one big difference: the streets are much cleaner in Japan. Part of this pseudo-American town was a recreation of Fisherman&#8217;s Wharf in San Francisco.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://photos.google.com/share/AF1QipOz2Z3O9tarZmBXLL56hAnpMDc0kdOnivFLZt8EE6G-7GmxjL-xu6805YUaGCa0HA/photo/AF1QipOvZwitu8TO5fr3xyv7RCPHMIg4Li34qpmxAy-K?key=alVEVDhPT1RSVXlEb1k5WDBSaGR0MG0tUkJUTjlR" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh4.googleusercontent.com/S2mpbWkHA1XaxN-xV7dw8JHr31BsIx0YKCvkMcFCbONP=w1358-h764-no" alt=""/></a></figure>
</div>


<p class="wp-block-paragraph">The big gate into Jurassic park with the vegetation was a really nice touch too.</p>



<figure class="wp-block-image"><a href="https://photos.google.com/share/AF1QipOz2Z3O9tarZmBXLL56hAnpMDc0kdOnivFLZt8EE6G-7GmxjL-xu6805YUaGCa0HA/photo/AF1QipPcvBqNg18nby2rI72yXeNfy5i8OwIgEq_mMQ0L?key=alVEVDhPT1RSVXlEb1k5WDBSaGR0MG0tUkJUTjlR" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh5.googleusercontent.com/4V7vdruZrNmvoiXuM3i_MLp2aw4PnBIZEQT9dVqepG07=w1358-h521-no" alt=""/></a></figure>



<p class="wp-block-paragraph">They really did a good job in making people feel like they were actually there &#8211; complete with a 10,000V electric fence, a broken jeep and raptors.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://photos.google.com/share/AF1QipOz2Z3O9tarZmBXLL56hAnpMDc0kdOnivFLZt8EE6G-7GmxjL-xu6805YUaGCa0HA/photo/AF1QipMkXAsVU5l3xeD_G_Jc755goxzmxANgxH7zNwzD?key=alVEVDhPT1RSVXlEb1k5WDBSaGR0MG0tUkJUTjlR" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh5.googleusercontent.com/KQmHVozt6haJ67i1Wd5leD0G-aRNHfFR_-W4T9Ice2NN=w1357-h599-no" alt=""/></a></figure>
</div>


<p class="wp-block-paragraph">The Jurassic Park ride was really awesome too. As the roller coaster passes the destroyed gate and electric fence, dinosaurs begin to appear, and they are screaming and roaring. The acid spraying dinosaurs spray water at the visitors, and of course at the end, the almighty T-Rex appears as the roller coaster goes through a steep drop into the water, making a huge splash. I was soaked at the end of the ride.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://photos.google.com/share/AF1QipOz2Z3O9tarZmBXLL56hAnpMDc0kdOnivFLZt8EE6G-7GmxjL-xu6805YUaGCa0HA/photo/AF1QipOe1zhsjY3qYL1PF_jsCNjMsJ_znlxguUwXsmwf?key=alVEVDhPT1RSVXlEb1k5WDBSaGR0MG0tUkJUTjlR" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh6.googleusercontent.com/GJB9nb2vEYubrsmYYScZrlj_pb8910QhaIa2xchO3PCw=w1358-h645-no" alt=""/></a></figure>
</div>


<p class="wp-block-paragraph">I forgot how awesome Terminator 3D was when I was a kid. It was cool to see Terminators at the side of the theatre light up and start shooting things. Even cooler was when the screen showed Arnold riding a motorcycle and then having a real motorcycle come out of the screen and appear on stage fighting another actor playing T-1000.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://photos.google.com/share/AF1QipOz2Z3O9tarZmBXLL56hAnpMDc0kdOnivFLZt8EE6G-7GmxjL-xu6805YUaGCa0HA/photo/AF1QipNBstM8wWKj_EjnYWHBRQ-0UQASGSVeLlGYQy9r?key=alVEVDhPT1RSVXlEb1k5WDBSaGR0MG0tUkJUTjlR" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh3.googleusercontent.com/tOd78Y-y-HiVrc_GaPoAAj_6kOKNIZCJ86xmqwCeJaRS=w1358-h687-no" alt=""/></a></figure>
</div>


<p class="has-text-align-center wp-block-paragraph"></p>



<p class="wp-block-paragraph">At the Jaws ride, naturally there&#8217;d be a large shark on display right outside of it. The ride took visitors on a boat ride as the shark attacks. The boat driver, wielding a shotgun, begins to defend the passengers. Lots of splashing, with a fiery ending.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://photos.google.com/share/AF1QipOz2Z3O9tarZmBXLL56hAnpMDc0kdOnivFLZt8EE6G-7GmxjL-xu6805YUaGCa0HA/photo/AF1QipMS78uJzgNhqUoz3JukaEM9tJ1DjuyQ8Q_b4o2a?key=alVEVDhPT1RSVXlEb1k5WDBSaGR0MG0tUkJUTjlR" target="_blank" rel="noreferrer noopener"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh6.googleusercontent.com/-f5WawLJrN9w/U7blEVvXKVI/AAAAAAAAVvU/k1L_Q8YgKyk/w620-h826-no/IMG_0733.JPG?w=1280&#038;ssl=1" alt=""/></a></figure>
</div>


<p class="wp-block-paragraph">Because it is Japan, there has to be cute stuff and that is Snoopy. There aren&#8217;t many things cooler than flying Snoopy&#8217;s.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://photos.google.com/share/AF1QipOz2Z3O9tarZmBXLL56hAnpMDc0kdOnivFLZt8EE6G-7GmxjL-xu6805YUaGCa0HA/photo/AF1QipPE0Iib0OWIE4PRkfOxu_mbiItj4Dme18OTWUKX?key=alVEVDhPT1RSVXlEb1k5WDBSaGR0MG0tUkJUTjlR" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh3.googleusercontent.com/uorFk50TyCL5KvoV2Ads9_EEHp0W8kWoQNZo04Z-VGiZ=w1358-h586-no" alt=""/></a></figure>
</div>


<p class="wp-block-paragraph">If people like old school American-style diners, they have that here too!</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://photos.google.com/share/AF1QipOz2Z3O9tarZmBXLL56hAnpMDc0kdOnivFLZt8EE6G-7GmxjL-xu6805YUaGCa0HA/photo/AF1QipO6p2nanZpgaBAC83yFE8E4F0DmEY1BYZefcKVC?key=alVEVDhPT1RSVXlEb1k5WDBSaGR0MG0tUkJUTjlR" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh3.googleusercontent.com/K4ZX07pRykelhcjPeng16rItUs039BVZcSqFf5RTknY6=w1357-h619-no" alt=""/></a></figure>
</div>


<p class="wp-block-paragraph">Definitely worth a visit if one is willing to spend 7000 yen. I certainly enjoyed reliving the same things I saw when I was a kid as an adult and it gave me quite a huge feeling of nostalgia.</p>



<p class="wp-block-paragraph">Links to more photos: <a href="https://photos.google.com/share/AF1QipOz2Z3O9tarZmBXLL56hAnpMDc0kdOnivFLZt8EE6G-7GmxjL-xu6805YUaGCa0HA?key=alVEVDhPT1RSVXlEb1k5WDBSaGR0MG0tUkJUTjlR" target="_blank" rel="noreferrer noopener">here</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.henrypoon.com/blog/2014/07/25/universal-studios-japan/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1889</post-id>	</item>
		<item>
		<title>Hiroshima</title>
		<link>https://blog.henrypoon.com/blog/2014/07/22/hiroshima/</link>
					<comments>https://blog.henrypoon.com/blog/2014/07/22/hiroshima/#respond</comments>
		
		<dc:creator><![CDATA[hp]]></dc:creator>
		<pubDate>Wed, 23 Jul 2014 02:59:34 +0000</pubDate>
				<category><![CDATA[asia]]></category>
		<category><![CDATA[9]]></category>
		<category><![CDATA[atomic bomb]]></category>
		<category><![CDATA[Atomic bombings of Hiroshima and Nagasaki]]></category>
		<category><![CDATA[Chan]]></category>
		<category><![CDATA[children's memorial]]></category>
		<category><![CDATA[Children's Peace Monument]]></category>
		<category><![CDATA[COM]]></category>
		<category><![CDATA[D]]></category>
		<category><![CDATA[EAR]]></category>
		<category><![CDATA[future]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[Gran]]></category>
		<category><![CDATA[Hibakusha]]></category>
		<category><![CDATA[hiroshima]]></category>
		<category><![CDATA[Hiroshima Peace Memorial Park]]></category>
		<category><![CDATA[Hiroshima Prefecture]]></category>
		<category><![CDATA[Human]]></category>
		<category><![CDATA[IME]]></category>
		<category><![CDATA[It]]></category>
		<category><![CDATA[Japan]]></category>
		<category><![CDATA[Link]]></category>
		<category><![CDATA[Meat]]></category>
		<category><![CDATA[Mind]]></category>
		<category><![CDATA[Museum]]></category>
		<category><![CDATA[Noodle]]></category>
		<category><![CDATA[noodles]]></category>
		<category><![CDATA[nuclear non-proliferation]]></category>
		<category><![CDATA[Nuclear weapon]]></category>
		<category><![CDATA[okonomiyaki]]></category>
		<category><![CDATA[origami cranes]]></category>
		<category><![CDATA[Over]]></category>
		<category><![CDATA[Pancake]]></category>
		<category><![CDATA[peace flame]]></category>
		<category><![CDATA[peace memorial]]></category>
		<category><![CDATA[Pho]]></category>
		<category><![CDATA[Prefectures of Japan]]></category>
		<category><![CDATA[rain]]></category>
		<category><![CDATA[Sadako]]></category>
		<category><![CDATA[sadako sasaki]]></category>
		<category><![CDATA[Soba]]></category>
		<category><![CDATA[STR]]></category>
		<category><![CDATA[Struct]]></category>
		<category><![CDATA[Time]]></category>
		<guid isPermaLink="false">http://henrypoon.mooo.com/blog/hiroshima</guid>

					<description><![CDATA[Hiroshima is a city in Japan that is probably most well known for the reason that it was destroyed by an atomic bomb in 1945. I had two reasons for visiting Hiroshima: the first was to visit the Hiroshima Peace Memorial and the second was to eat Okonomiyaki. Okonomiyaki (お好み焼き) is a sort-of pancake that [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Hiroshima is a city in Japan that is probably most well known for the reason that it was destroyed by an atomic bomb in 1945. I had two reasons for visiting Hiroshima: the first was to visit the Hiroshima Peace Memorial and the second was to eat Okonomiyaki.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://photos.google.com/share/AF1QipOaQegYckmR0TJvEFZ2aTbt3Op91Yf_GaVwI7-J_FEd3XvvM6qE68_7lI3TVkcmNQ/photo/AF1QipNMVg1JpJDJGudDGEQbtf5O8XWvZ3UkNf9vjPM9?key=TElHZXplcjBtaHpCM1d1UG1aZzlfdTQ1NG13d3d3" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh6.googleusercontent.com/0APoqY0OkImnXop5T5iCGo8VluGgtLuz8PFwoYmnf12e=w720-h405-no" alt=""/></a></figure>
</div>


<p class="wp-block-paragraph">Okonomiyaki (お好み焼き) is a sort-of pancake that is made with batter, soba noodles, cabbage, meat, mayo, and really anything that people want in it. The &#8220;okonomi&#8221; part of the word means &#8220;whatever you like&#8221;, and &#8220;yaki&#8221; means &#8220;grilled&#8221;. This was at a place called Micchan (みっちゃん), which is one of Hiroshima&#8217;s most famous okonomiyaki chains, but my friend who has lived in Hiroshima for a bit told me that there were definitely better places to eat Okonomiyaki.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://photos.google.com/share/AF1QipOaQegYckmR0TJvEFZ2aTbt3Op91Yf_GaVwI7-J_FEd3XvvM6qE68_7lI3TVkcmNQ/photo/AF1QipOXla1S4lN2kGUpKD-xws2zn_Ym9dPG0HHyfMBi?key=TElHZXplcjBtaHpCM1d1UG1aZzlfdTQ1NG13d3d3" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh6.googleusercontent.com/ZOLap6hFjjKoh1jXbfB0fOWW_obWIhU9qtPyCgCW6LEz=w1358-h764-no" alt=""/></a></figure>
</div>


<p class="wp-block-paragraph">We visited the Atomic Bomb Dome (原爆ドーム), which is a building that symbolically represents the destruction of the atomic bomb. When the bomb exploded in the sky over the city, over 70,000 people died instantly. Some buildings managed to remain standing, and this was one of them. On one hand, it is a sad reminder of the history&#8217;s tragic past, and on the other hand, it speaks of the horrors of the use of atomic weapons. It was quite rainy that day, which added to the depressing effect of the history of the tragedy.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://photos.google.com/share/AF1QipOaQegYckmR0TJvEFZ2aTbt3Op91Yf_GaVwI7-J_FEd3XvvM6qE68_7lI3TVkcmNQ/photo/AF1QipMo0zzNUGQ3X_lIJhPwjWawDGfgadmGYoz6ot4T?key=TElHZXplcjBtaHpCM1d1UG1aZzlfdTQ1NG13d3d3" target="_blank" rel="noreferrer noopener"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh3.googleusercontent.com/-Bhe4vU7t_7Y/U7a_potjKkI/AAAAAAAAXvA/U5_3diAOVbs/w1358-h764-no/IMG_0256.JPG?w=1280&#038;ssl=1" alt=""/></a></figure>
</div>


<p class="wp-block-paragraph">At the Children&#8217;s Peace Monument, there is a statue of a little girl holding up an origami crane. It commemorates a Sadako Sasaki, who was two years old at the time when the bomb dropped. Before her death from Leukemia at the age of 12, she folded 1,000 origami cranes, which according to an ancient Japanese legend, would grant her one wish. On the day we visited, a large group of people gathered around the statue reciting something together, presumably, the story of Sadako Sasaki.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://photos.google.com/share/AF1QipOaQegYckmR0TJvEFZ2aTbt3Op91Yf_GaVwI7-J_FEd3XvvM6qE68_7lI3TVkcmNQ/photo/AF1QipN-Q1to2b9fZ3LWaDmM2wn3ZSdjFQKfKe1Wbd6V?key=TElHZXplcjBtaHpCM1d1UG1aZzlfdTQ1NG13d3d3" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh5.googleusercontent.com/uj_Nvj0etap5vp_J69TQjohbBKN0luh18ZCAIXQ7hVMN=w1358-h764-no" alt=""/></a></figure>
</div>


<p class="wp-block-paragraph">Behind the statue are display cases full of origami cranes.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://photos.google.com/share/AF1QipOaQegYckmR0TJvEFZ2aTbt3Op91Yf_GaVwI7-J_FEd3XvvM6qE68_7lI3TVkcmNQ/photo/AF1QipMVqWmykFEdkgdLO0xHNw4FZw5CfMg-FdJO89w_?key=TElHZXplcjBtaHpCM1d1UG1aZzlfdTQ1NG13d3d3" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh5.googleusercontent.com/ejpozxESwV-Rl2AbT2eJA0HneEWmlrAvwit2Az3ipVut=w1358-h764-no" alt=""/></a></figure>
</div>


<p class="wp-block-paragraph">Another monument, the Peace Flame, has been lit since 1964 and will continue being lit until the world is free from nuclear weapons.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://photos.google.com/share/AF1QipOaQegYckmR0TJvEFZ2aTbt3Op91Yf_GaVwI7-J_FEd3XvvM6qE68_7lI3TVkcmNQ/photo/AF1QipORTB30u-fUq_8yQ7bmQg259aPaE5324HegVIXI?key=TElHZXplcjBtaHpCM1d1UG1aZzlfdTQ1NG13d3d3" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh6.googleusercontent.com/X42r4BhNkpSJ5ZwVz7XZA-8JgCNu663xcqUEUzQ2IbKt=w1358-h764-no" alt=""/></a></figure>
</div>


<p class="wp-block-paragraph">At the Peace Memorial Museum, a quote reads:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>War is the work of man<br>War is destruction of human life<br>War is death<br>To remember the past is to commit oneself to the future<br>To remember Hiroshima is to abhor nuclear war<br>To remember Hiroshima is to commit oneself to peace</p></blockquote>



<p class="wp-block-paragraph">The purpose of the museum is to tell the story of Hiroshima, so that the same thing does not happen again anywhere else in the world. One of the artifacts at the museum is a simple watch, but it is stuck at the time 8:15, which is the time of the detonation.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://photos.google.com/share/AF1QipOaQegYckmR0TJvEFZ2aTbt3Op91Yf_GaVwI7-J_FEd3XvvM6qE68_7lI3TVkcmNQ/photo/AF1QipNJAwOE8JvKqFpTzabLRAaWXc762MOzLIJAL2Rd?key=TElHZXplcjBtaHpCM1d1UG1aZzlfdTQ1NG13d3d3" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh5.googleusercontent.com/VIpQJDIt9-6iaG3gml8OVaOVaXkaC6c5U2-POC_IeKkR=w1357-h764-no" alt=""/></a></figure>
</div>


<p class="wp-block-paragraph">This scale model shows the magnitude of the destruction. The red ball represents the location where the bomb exploded.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://photos.google.com/share/AF1QipOaQegYckmR0TJvEFZ2aTbt3Op91Yf_GaVwI7-J_FEd3XvvM6qE68_7lI3TVkcmNQ/photo/AF1QipNeGa_9Z3kvww3FQhZzhOgB11KtBIlu2RFKe-8N?key=TElHZXplcjBtaHpCM1d1UG1aZzlfdTQ1NG13d3d3" target="_blank" rel="noreferrer noopener"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh5.googleusercontent.com/-2MxHfLqdMME/U7bAvYgqpSI/AAAAAAAAXvw/wcGN0f1_8vQ/w1358-h764-no/IMG_0270.JPG?w=1280&#038;ssl=1" alt=""/></a></figure>
</div>


<p class="wp-block-paragraph">As a plea to end the use of nuclear weapons, every mayor of Hiroshima sends a letter of protest to the country that performs any nuclear testing. There is definitely still more work to be done before this goal is reached.</p>



<p class="wp-block-paragraph">Link to photos: <a href="https://photos.google.com/share/AF1QipOaQegYckmR0TJvEFZ2aTbt3Op91Yf_GaVwI7-J_FEd3XvvM6qE68_7lI3TVkcmNQ?key=TElHZXplcjBtaHpCM1d1UG1aZzlfdTQ1NG13d3d3" target="_blank" rel="noreferrer noopener">here</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.henrypoon.com/blog/2014/07/22/hiroshima/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1883</post-id>	</item>
		<item>
		<title>Tokyo</title>
		<link>https://blog.henrypoon.com/blog/2014/07/19/tokyo/</link>
					<comments>https://blog.henrypoon.com/blog/2014/07/19/tokyo/#respond</comments>
		
		<dc:creator><![CDATA[hp]]></dc:creator>
		<pubDate>Sat, 19 Jul 2014 22:17:44 +0000</pubDate>
				<category><![CDATA[asia]]></category>
		<category><![CDATA[akihabara]]></category>
		<category><![CDATA[akihabara radio hall]]></category>
		<category><![CDATA[Amusement parks]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[androids]]></category>
		<category><![CDATA[Anime]]></category>
		<category><![CDATA[Arcade games]]></category>
		<category><![CDATA[asakusa]]></category>
		<category><![CDATA[asimo]]></category>
		<category><![CDATA[Bakumatsu]]></category>
		<category><![CDATA[Battleship]]></category>
		<category><![CDATA[cars]]></category>
		<category><![CDATA[Chan]]></category>
		<category><![CDATA[China]]></category>
		<category><![CDATA[COM]]></category>
		<category><![CDATA[Companies]]></category>
		<category><![CDATA[D]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Dia]]></category>
		<category><![CDATA[EAR]]></category>
		<category><![CDATA[Entertainment]]></category>
		<category><![CDATA[Euro]]></category>
		<category><![CDATA[Europe]]></category>
		<category><![CDATA[Final]]></category>
		<category><![CDATA[food]]></category>
		<category><![CDATA[future]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[Government]]></category>
		<category><![CDATA[gundam]]></category>
		<category><![CDATA[Home computer games]]></category>
		<category><![CDATA[Human]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[IME]]></category>
		<category><![CDATA[ise]]></category>
		<category><![CDATA[It]]></category>
		<category><![CDATA[Japan]]></category>
		<category><![CDATA[japanese war history]]></category>
		<category><![CDATA[jr rail]]></category>
		<category><![CDATA[korea]]></category>
		<category><![CDATA[Lego]]></category>
		<category><![CDATA[Light]]></category>
		<category><![CDATA[Link]]></category>
		<category><![CDATA[lots of people]]></category>
		<category><![CDATA[Miraikan]]></category>
		<category><![CDATA[mirakan]]></category>
		<category><![CDATA[Museum]]></category>
		<category><![CDATA[Museums]]></category>
		<category><![CDATA[nintendo]]></category>
		<category><![CDATA[odaiba]]></category>
		<category><![CDATA[Opera]]></category>
		<category><![CDATA[Over]]></category>
		<category><![CDATA[Pho]]></category>
		<category><![CDATA[pikachu]]></category>
		<category><![CDATA[Plan]]></category>
		<category><![CDATA[pokemon]]></category>
		<category><![CDATA[Port]]></category>
		<category><![CDATA[rainbow bridge]]></category>
		<category><![CDATA[Robot]]></category>
		<category><![CDATA[robot restaurant]]></category>
		<category><![CDATA[robots]]></category>
		<category><![CDATA[Run]]></category>
		<category><![CDATA[Sensō-ji]]></category>
		<category><![CDATA[sensoji]]></category>
		<category><![CDATA[shibuya]]></category>
		<category><![CDATA[shibya crossing]]></category>
		<category><![CDATA[shinjuku]]></category>
		<category><![CDATA[shinto]]></category>
		<category><![CDATA[Ships]]></category>
		<category><![CDATA[Shopping]]></category>
		<category><![CDATA[shrine]]></category>
		<category><![CDATA[Sino-Japanese War]]></category>
		<category><![CDATA[skytree]]></category>
		<category><![CDATA[Statue of Liberty]]></category>
		<category><![CDATA[STR]]></category>
		<category><![CDATA[Struct]]></category>
		<category><![CDATA[taito]]></category>
		<category><![CDATA[Tank]]></category>
		<category><![CDATA[tanks]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Temple]]></category>
		<category><![CDATA[terminator]]></category>
		<category><![CDATA[tetris]]></category>
		<category><![CDATA[tgm3]]></category>
		<category><![CDATA[The Go]]></category>
		<category><![CDATA[Time]]></category>
		<category><![CDATA[Tokyo]]></category>
		<category><![CDATA[Tokyo Bay]]></category>
		<category><![CDATA[tokyo metro]]></category>
		<category><![CDATA[Trac]]></category>
		<category><![CDATA[Video games]]></category>
		<category><![CDATA[Vol]]></category>
		<category><![CDATA[yasukuni shrine]]></category>
		<category><![CDATA[yushukan]]></category>
		<category><![CDATA[Z]]></category>
		<guid isPermaLink="false">http://henrypoon.mooo.com/blog/tokyo</guid>

					<description><![CDATA[Never before have I ever been to a city with so many people. There are so many things to do here too. For example, there&#8217;s a lot of good food, shopping, entertainment, technology &#8211; pretty much everything. I&#8217;ll do my best to sum up the places that I visited and the stuff really stuck out [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Never before have I ever been to a city with so many people. There are so many things to do here too. For example, there&#8217;s a lot of good food, shopping, entertainment, technology &#8211; pretty much everything. I&#8217;ll do my best to sum up the places that I visited and the stuff really stuck out to me here.</p>



<h1 class="wp-block-heading">Let&#8217;s Cross The Street&#8230; Diagonally!</h1>



<p class="wp-block-paragraph">This is no surprise really. There are lots of people in Tokyo. The crazy thing is that at the Shibuya crossing, the lights for cars can be red at the same time for all directions, and allows pedestrians to cross the intersection in any direction they want.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://photos.google.com/share/AF1QipPRxsil_YSbaoJdurZwzrOznS1RNqmKfhpyJ2BpV4oXKvijEhnTeIm8PV6cB17-Vw/photo/AF1QipNKkXPoBBjKKGlK_XVWPpxwOYaBvTVku81LzVFj?key=YUQ1endKdjZ2VWRsUUdWT3REQ29aNVNjWm4wNFd3" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh4.googleusercontent.com/lEYXC6Cy_KuVMUEyceEMPfVy0lbK4QCeYbC-_IvkOSwk=w1358-h764-no" alt=""/></a></figure>
</div>


<p class="has-text-align-center wp-block-paragraph"></p>



<h1 class="wp-block-heading">Their Metro System Is Complicated</h1>



<p class="wp-block-paragraph">That picture there shows only the metro lines operated by the JR Railway Company. There is another set that is run by other companies such as the Tokyo Metro Company. Route planning apps save the day!</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://photos.google.com/share/AF1QipPRxsil_YSbaoJdurZwzrOznS1RNqmKfhpyJ2BpV4oXKvijEhnTeIm8PV6cB17-Vw/photo/AF1QipOATMjEUtWZv2tVhAhlRk4Q826f9LuFVWoaSmhF?key=YUQ1endKdjZ2VWRsUUdWT3REQ29aNVNjWm4wNFd3" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh3.googleusercontent.com/ek_FVDmvlXZhg-qP4QNTyzWBW2F1s_0cc2NoBQNLrejI=w1358-h764-no" alt=""/></a></figure>
</div>


<p class="has-text-align-center wp-block-paragraph"></p>



<h1 class="wp-block-heading">Nintendo Is Big Around Here</h1>



<p class="wp-block-paragraph">Akihabara has many shops that sell used gaming consoles like Gameboys, Super Nintendos, and N64&#8217;s. They even sell tons of used games for them too. I managed to pick up a used copy of Tetris DS before I left.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://photos.google.com/share/AF1QipMKyn09_D6Pg1pbZ8TkvbwGxC35ZBOz-6AKgrfOBaVqPdwOwKXC4ISu6PDEHzVk6g/photo/AF1QipP6xS7KDF5q9bwE6uWamjjwMqpbp_lHht-WKHpo?key=dWQxcUtkdE1zclNlX1ZnNFBUdEhwMGpKWXc4ekFR" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh3.googleusercontent.com/oUcHnTQQClP4xFlQu4tD7iWhzO_qu1gUVvbhpvviHWtr=w1358-h764-no" alt=""/></a></figure>
</div>


<p class="has-text-align-center wp-block-paragraph"></p>



<h1 class="wp-block-heading">I Finally Played TGM3 at the Arcade</h1>



<p class="wp-block-paragraph">TGM3 is a Japanese variation of Tetris that is designed to be very very hard (see <a href="https://www.youtube.com/watch?v=YWZHhjQQtxQ" target="_blank" rel="noreferrer noopener">this</a>). The video starts getting crazy at about 3 minutes and becomes completely insane at about 5:08. Ever since playing lots of Tetris during my undergrad and learning about this game, I finally got the chance to play this at the arcade and not on an emulator. This was at HEY (Hirose Entertainment Yard) in Akihabara.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://photos.google.com/share/AF1QipMKyn09_D6Pg1pbZ8TkvbwGxC35ZBOz-6AKgrfOBaVqPdwOwKXC4ISu6PDEHzVk6g/photo/AF1QipPDABjibXnDDrvDR17zMgjDCppY8fd6R7fV2kjm?key=dWQxcUtkdE1zclNlX1ZnNFBUdEhwMGpKWXc4ekFR" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh3.googleusercontent.com/-iojuW1eO-2BVAGEPK8GYvqsmdeqpy8E16i8GAoV6MTS=w1358-h764-no" alt=""/></a></figure>
</div>


<p class="has-text-align-center wp-block-paragraph"></p>



<h1 class="wp-block-heading">People Still Like Pokemon</h1>



<p class="wp-block-paragraph">I don&#8217;t think kids today in North America still watch Pokemon, but in Japan it&#8217;s still popular &#8211; popular enough for Pokemon themed stores.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://photos.google.com/share/AF1QipPRxsil_YSbaoJdurZwzrOznS1RNqmKfhpyJ2BpV4oXKvijEhnTeIm8PV6cB17-Vw/photo/AF1QipMLONLDoqOLUZ9uLqSkPh4cZWxk_kdHAI7qadvK?key=YUQ1endKdjZ2VWRsUUdWT3REQ29aNVNjWm4wNFd3" target="_blank" rel="noreferrer noopener"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh6.googleusercontent.com/-EqzzQNOxRRQ/U7ZJQn9QdeI/AAAAAAAAXiQ/YedX19_t_FI/w1358-h764-no/IMG_0188.JPG?w=1280&#038;ssl=1" alt=""/></a></figure>
</div>


<p class="has-text-align-center wp-block-paragraph"></p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://photos.google.com/share/AF1QipPRxsil_YSbaoJdurZwzrOznS1RNqmKfhpyJ2BpV4oXKvijEhnTeIm8PV6cB17-Vw/photo/AF1QipMHD_Qt2NsEIYvDUkqxq0upMYQsEQxUaINqb3SQ?key=YUQ1endKdjZ2VWRsUUdWT3REQ29aNVNjWm4wNFd3" target="_blank" rel="noreferrer noopener"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh5.googleusercontent.com/-Vu0cLYDQJ8w/U7ZI2YqyYNI/AAAAAAAAXiI/9s5td6BTlFM/w1358-h764-no/IMG_0179.JPG?w=1280&#038;ssl=1" alt=""/></a></figure>
</div>


<p class="has-text-align-center wp-block-paragraph"></p>



<h1 class="wp-block-heading">Japanese War History</h1>



<p class="wp-block-paragraph">Yasukuni Shrine is a shrine that commemorates those who died serving the Empire of Japan. Some of these commemorated people happen to be considered war criminals, where 14 of them are A-Class war criminals, which makes this place quite controversial. It was reported that Shinzo Abe, as the Prime Minister of Japan, visited this shrine, which angered the governments of China and Korea. Near the shrine itself, there is a museum that chronicles Japanese war history, known as the Yushukan, where visitors can see various relics and artifacts from the different wars that Japan has been involved in.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://photos.google.com/share/AF1QipP-TpXGF7L4aHRKY-yVuJLM3VYqc5ma2tca57ABJBveGhrAuQT6VWwCHV8dWkuqew/photo/AF1QipMuEXG4jbDUc8gufQB7rU15bxO8Qkn5qTN3Mjyk?key=aG1VUGJPd2xKakxrR1ZEQVlRMmhRLUE1eGtJMGtR" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh4.googleusercontent.com/rVoPWaF37tfqCGtRa3yVVKSUhGt4BOSG3oq27kJ5Iqtn=w1358-h764-no" alt=""/></a></figure>
</div>


<p class="has-text-align-center wp-block-paragraph"></p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://photos.google.com/share/AF1QipP-TpXGF7L4aHRKY-yVuJLM3VYqc5ma2tca57ABJBveGhrAuQT6VWwCHV8dWkuqew/photo/AF1QipN0O98NkBKSG3B8F8sMPa1ZYhRKgbJ0QcPhqglq?key=aG1VUGJPd2xKakxrR1ZEQVlRMmhRLUE1eGtJMGtR" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh3.googleusercontent.com/zzzUa5WdSDGNPnMN9OfPO-PtAEiOLCJKB0wrOfBylvd0=w1358-h764-no" alt=""/></a></figure>
</div>


<p class="has-text-align-center wp-block-paragraph"></p>



<h1 class="wp-block-heading">The Future Is Here</h1>



<p class="wp-block-paragraph">The Miraikan, also known as the National Museum of Emerging Science and Innovation, displays the latest cutting-edge technology from Japan. Asimo, the Honda Robot is one of the main attractions here, as well as the display of humanoid android robots (like the picture below).</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://photos.google.com/share/AF1QipOLCGYdwZar8BsEitiXIXeTs-xhbggs2X_LnvQYZ7cEpCJMr1FfXhT4uNRFozFSYw/photo/AF1QipObWvPsGNiqmyI-SI8eC2txcaTZSRukb7wzdGfx?key=dVE2M2xZV3FKNTk5WDdkaFd6cm1YU1pWYzZmLWJB" target="_blank" rel="noreferrer noopener"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh3.googleusercontent.com/-T3cVc5Mweoo/U7bZ69Ba2AI/AAAAAAAAXpU/DFUW3vlvQvA/w1358-h764-no/IMG_0797.JPG?w=1280&#038;ssl=1" alt=""/></a></figure>
</div>


<p class="has-text-align-center wp-block-paragraph"></p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://photos.google.com/share/AF1QipOLCGYdwZar8BsEitiXIXeTs-xhbggs2X_LnvQYZ7cEpCJMr1FfXhT4uNRFozFSYw/photo/AF1QipO-QD4pOdpGVClLFJ7aKIcO3XDiXIxqCc8fbCG3?key=dVE2M2xZV3FKNTk5WDdkaFd6cm1YU1pWYzZmLWJB" target="_blank" rel="noreferrer noopener"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh3.googleusercontent.com/-AYN29lHStRw/U7baDu9HkvI/AAAAAAAAXpc/WrPp84AFlAI/w1358-h764-no/IMG_0801.JPG?w=1280&#038;ssl=1" alt=""/></a></figure>
</div>


<p class="has-text-align-center wp-block-paragraph"></p>



<h1 class="wp-block-heading">Odaiba, A Less Busy Part of Tokyo</h1>



<p class="wp-block-paragraph">Odaiba is an artificial island in Tokyo Bay, and has lots of attractions like scenery, museums (like the Miraikan), shopping, and amusement parks (like Legoland and Joypolis).</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://photos.google.com/share/AF1QipOLCGYdwZar8BsEitiXIXeTs-xhbggs2X_LnvQYZ7cEpCJMr1FfXhT4uNRFozFSYw/photo/AF1QipNmgUPSa0z0EV5BJayr7qWGbIr3b0FtmSGxd_Yz?key=dVE2M2xZV3FKNTk5WDdkaFd6cm1YU1pWYzZmLWJB" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh4.googleusercontent.com/wsD91Vz-mAYL-3pgGZs02uzDJx6oZnYR1W5AVjVqUorq=w1358-h764-no" alt=""/></a></figure>
</div>


<p class="has-text-align-center wp-block-paragraph"></p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://photos.google.com/share/AF1QipOLCGYdwZar8BsEitiXIXeTs-xhbggs2X_LnvQYZ7cEpCJMr1FfXhT4uNRFozFSYw/photo/AF1QipPVBLMuTSTt5ZBIHje4wS2D7DaledYuAyCmFNCk?key=dVE2M2xZV3FKNTk5WDdkaFd6cm1YU1pWYzZmLWJB" target="_blank" rel="noreferrer noopener"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh6.googleusercontent.com/-hKXzr2mPetY/U7baVtQycYI/AAAAAAAAVb0/njadjN6RrKE/w620-h826-no/IMG_0807.JPG?w=1280&#038;ssl=1" alt=""/></a></figure>
</div>


<p class="has-text-align-center wp-block-paragraph"></p>



<h1 class="wp-block-heading">Lots of Temples and Shrines</h1>



<p class="wp-block-paragraph">Tokyo has no shortage of temples and shrines. The Sensoji Temple in Asakusa is among the famous ones. To me it is that Japan is to temples and shrines as Europe is to churches and cathedrals.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://photos.google.com/share/AF1QipPC8T6WPUvoUOGWrKvWxLfBTlwlL23LlYee6zs0HH-7yC9WOO25PV1Wb46FJI_b2A/photo/AF1QipNBgpiBQJxgDYWyGT5QEwpoAokWa8hLR615Kigh?key=ZnNsMGpZMlV0dVY4c1hhV0cwd20td1VZZlpuRVBB" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh4.googleusercontent.com/Qse2IxvWjTnHoD2ALyvDi0YM3IBn-vzsxKIAdhnjiem6=w1358-h764-no" alt=""/></a></figure>
</div>


<p class="has-text-align-center wp-block-paragraph"></p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://photos.google.com/share/AF1QipPC8T6WPUvoUOGWrKvWxLfBTlwlL23LlYee6zs0HH-7yC9WOO25PV1Wb46FJI_b2A/photo/AF1QipM8HaGrnkUg3CYdidDI6i4QXCEx67zmK3zeQz-N?key=ZnNsMGpZMlV0dVY4c1hhV0cwd20td1VZZlpuRVBB" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh6.googleusercontent.com/N2RiBz1owM3VT4l8Wm1VkQvJ2FdlKWD9X1Eqytu0fsm8=w1358-h764-no" alt=""/></a></figure>
</div>


<p class="has-text-align-center wp-block-paragraph"></p>



<h1 class="wp-block-heading">Scenery at High Places</h1>



<p class="wp-block-paragraph">Tokyo Skytree is the tallest structure in Japan and features an observation deck that allows visitors to see the surrounding area. I felt my ears popping as the elevator took me to the top because of the sheer height of the building. At the observation deck, there are touch screens that give information on various landmarks that can be seen. On a clear day, it is possible to see Mount Fuji from here.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://photos.google.com/share/AF1QipNx7kut35KPJVoAG2RfnJLMXhx3qDks2kofqy_nwsU4MxwJioBKvWUHLHGiEHBrag/photo/AF1QipORGpmnLdnEsI8yqLdbEPCsC6sftVeIXNtEiY7S?key=WHVldnVreTZJSWl0dUtubHU4eDY3eEJCQ0dPN3FB" target="_blank" rel="noreferrer noopener"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh5.googleusercontent.com/-6xdwb8b6PGM/U7bXRvGroSI/AAAAAAAAXoU/uxtDn5m8Bvs/w1358-h764-no/IMG_0525.JPG?w=1280&#038;ssl=1" alt=""/></a></figure>
</div>


<p class="has-text-align-center wp-block-paragraph"></p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://photos.google.com/share/AF1QipNx7kut35KPJVoAG2RfnJLMXhx3qDks2kofqy_nwsU4MxwJioBKvWUHLHGiEHBrag/photo/AF1QipPD-C5cCceia3OBnl8WQ2S-a217cYLq9je1_XFs?key=WHVldnVreTZJSWl0dUtubHU4eDY3eEJCQ0dPN3FB" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh5.googleusercontent.com/qCWpAeE1Nz7F8xIW-imyJoWp9USMuiZqfeXOul2w73ua=w1358-h764-no" alt=""/></a></figure>
</div>


<p class="has-text-align-center wp-block-paragraph"></p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://photos.google.com/share/AF1QipNx7kut35KPJVoAG2RfnJLMXhx3qDks2kofqy_nwsU4MxwJioBKvWUHLHGiEHBrag/photo/AF1QipMdbctbAzGQ62LDjEf9Dk3fwAFrs-NVqYEKOTRF?key=WHVldnVreTZJSWl0dUtubHU4eDY3eEJCQ0dPN3FB" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh3.googleusercontent.com/LCLH4Ljy3qnDSLbr-WqHG6xepwCzH-KfWS6bEfe3U3jK=w1358-h764-no" alt=""/></a></figure>
</div>


<p class="has-text-align-center wp-block-paragraph"></p>



<h1 class="wp-block-heading">For Collectors of Figurines</h1>



<p class="wp-block-paragraph">The Akihabara Radio Hall has a collection of stores with lots and lots of figurines from various anime series. Other stores even sell models of tanks, battleships, etc. There was one in particular that sold giant models from blockbuster Hollywood movies like Robocop, Batman, and Terminator. Would have liked to take a better picture, but they had a strict no photography policy.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://photos.google.com/share/AF1QipMKyn09_D6Pg1pbZ8TkvbwGxC35ZBOz-6AKgrfOBaVqPdwOwKXC4ISu6PDEHzVk6g/photo/AF1QipOiLf3G5Gj9aXKc7mM2KVN32Ycd66a1WJlWe03n?key=dWQxcUtkdE1zclNlX1ZnNFBUdEhwMGpKWXc4ekFR" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh3.googleusercontent.com/x-6o8TVkcCtwAc2mNu8Y_qmLBuCCnm1EgrQOJVL1OfwK=w1358-h764-no" alt=""/></a></figure>
</div>


<p class="has-text-align-center wp-block-paragraph"></p>



<h1 class="wp-block-heading">WTF</h1>



<p class="wp-block-paragraph">It&#8217;s true. Japan has lots of weird stuff. That picture below is for a place called the Robot Restaurant. It&#8217;s hard to explain. It&#8217;s better to watch <a href="https://www.youtube.com/watch?v=V04eZypASi4" target="_blank" rel="noreferrer noopener">this</a> (it starts off pretty weird and just gets weirder).</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://photos.google.com/share/AF1QipPRxsil_YSbaoJdurZwzrOznS1RNqmKfhpyJ2BpV4oXKvijEhnTeIm8PV6cB17-Vw/photo/AF1QipM-6BEzsqDwlkUOq-Ssr2GwUChkCWFVPBbHNX7r?key=YUQ1endKdjZ2VWRsUUdWT3REQ29aNVNjWm4wNFd3" target="_blank" rel="noreferrer noopener"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh3.googleusercontent.com/-wN_by6LrZno/U7a3Uz9G8kI/AAAAAAAAXig/E7dWgsywNG8/w1358-h764-no/IMG_0195.JPG?w=1280&#038;ssl=1" alt=""/></a></figure>
</div>


<p class="has-text-align-center wp-block-paragraph"></p>



<p class="wp-block-paragraph">Links to more photos:</p>



<ul class="wp-block-list"><li><a href="https://photos.google.com/share/AF1QipPRxsil_YSbaoJdurZwzrOznS1RNqmKfhpyJ2BpV4oXKvijEhnTeIm8PV6cB17-Vw?key=YUQ1endKdjZ2VWRsUUdWT3REQ29aNVNjWm4wNFd3" target="_blank" rel="noreferrer noopener">Tokyo</a></li><li><a href="https://photos.google.com/share/AF1QipMKyn09_D6Pg1pbZ8TkvbwGxC35ZBOz-6AKgrfOBaVqPdwOwKXC4ISu6PDEHzVk6g?key=dWQxcUtkdE1zclNlX1ZnNFBUdEhwMGpKWXc4ekFR" target="_blank" rel="noreferrer noopener">Akihabara</a></li><li><a href="https://photos.google.com/share/AF1QipPC8T6WPUvoUOGWrKvWxLfBTlwlL23LlYee6zs0HH-7yC9WOO25PV1Wb46FJI_b2A?key=ZnNsMGpZMlV0dVY4c1hhV0cwd20td1VZZlpuRVBB" target="_blank" rel="noreferrer noopener">Asakusa</a></li><li><a href="https://photos.google.com/share/AF1QipP-TpXGF7L4aHRKY-yVuJLM3VYqc5ma2tca57ABJBveGhrAuQT6VWwCHV8dWkuqew?key=aG1VUGJPd2xKakxrR1ZEQVlRMmhRLUE1eGtJMGtR" target="_blank" rel="noreferrer noopener">Yasukuni Shrine</a></li><li><a href="https://photos.google.com/share/AF1QipOLCGYdwZar8BsEitiXIXeTs-xhbggs2X_LnvQYZ7cEpCJMr1FfXhT4uNRFozFSYw?key=dVE2M2xZV3FKNTk5WDdkaFd6cm1YU1pWYzZmLWJB" target="_blank" rel="noreferrer noopener">Odaiba</a></li><li><a href="https://photos.google.com/share/AF1QipNx7kut35KPJVoAG2RfnJLMXhx3qDks2kofqy_nwsU4MxwJioBKvWUHLHGiEHBrag?key=WHVldnVreTZJSWl0dUtubHU4eDY3eEJCQ0dPN3FB" target="_blank" rel="noreferrer noopener">Tokyo Skytree</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.henrypoon.com/blog/2014/07/19/tokyo/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1874</post-id>	</item>
		<item>
		<title>Gyeongbokgung Palace</title>
		<link>https://blog.henrypoon.com/blog/2014/07/09/gyeongbokgung-palace/</link>
					<comments>https://blog.henrypoon.com/blog/2014/07/09/gyeongbokgung-palace/#respond</comments>
		
		<dc:creator><![CDATA[hp]]></dc:creator>
		<pubDate>Thu, 10 Jul 2014 05:04:58 +0000</pubDate>
				<category><![CDATA[asia]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[Asian architecture]]></category>
		<category><![CDATA[Buildings and structures in Seoul]]></category>
		<category><![CDATA[COM]]></category>
		<category><![CDATA[Const]]></category>
		<category><![CDATA[Construction]]></category>
		<category><![CDATA[D]]></category>
		<category><![CDATA[EAR]]></category>
		<category><![CDATA[East Asia]]></category>
		<category><![CDATA[future]]></category>
		<category><![CDATA[Geography of Asia]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[God]]></category>
		<category><![CDATA[Gun]]></category>
		<category><![CDATA[Gyeongbokgung]]></category>
		<category><![CDATA[Gyeongbokgung Palace]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[It]]></category>
		<category><![CDATA[Japan]]></category>
		<category><![CDATA[Jongno District]]></category>
		<category><![CDATA[korea]]></category>
		<category><![CDATA[Korean]]></category>
		<category><![CDATA[Korean architecture]]></category>
		<category><![CDATA[Language]]></category>
		<category><![CDATA[Link]]></category>
		<category><![CDATA[Museum]]></category>
		<category><![CDATA[Namsangol Hanok Village]]></category>
		<category><![CDATA[National Folk Museum]]></category>
		<category><![CDATA[pagoda]]></category>
		<category><![CDATA[Palace]]></category>
		<category><![CDATA[palace grounds]]></category>
		<category><![CDATA[Pho]]></category>
		<category><![CDATA[Seoul]]></category>
		<category><![CDATA[STR]]></category>
		<category><![CDATA[Struct]]></category>
		<category><![CDATA[style architecture]]></category>
		<category><![CDATA[Travel]]></category>
		<guid isPermaLink="false">http://henrypoon.mooo.com/blog/gyeongbokgung-palace</guid>

					<description><![CDATA[Gyeongbokgung is the royal palace in Seoul and is a popular tourist destination. Within the modern metropolis of Seoul, this is one of the few places where people can see lots of beautiful Asian style architecture and scenery. The one purpose to come here would be to simply admire the old-style architecture. The area is [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Gyeongbokgung is the royal palace in Seoul and is a popular tourist destination. Within the modern metropolis of Seoul, this is one of the few places where people can see lots of beautiful Asian style architecture and scenery.</p>



<p class="wp-block-paragraph">The one purpose to come here would be to simply admire the old-style architecture. The area is quite big and we ended up spending about 2 and a half hours here. Apparently, only part of the palace grounds have been reconstructed since the Japanese occupation, so in the future, there are definitely going to be more to see here.</p>



<p class="wp-block-paragraph">Upon entering the palace grounds, people are greeted by one of the main gates to the palace. The banner uses Chinese characters rather than Korean since in the past there was wide use of Chinese characters in the Korean language.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://photos.google.com/share/AF1QipMBMAzKrQvOS8XDI30OUPWCPFNRMaFYIPMDQUIdzh_OgbfsgeFAq0RYgaAwfniupQ/photo/AF1QipP3lZnQrEkU_Of_GBiFDQCEac6v2H_GDPoAHYpq?key=WFpuSi1XNFhDMWFPY0k2U3hTdzNmZHp0SGI4ZFR3" target="_blank" rel="noreferrer noopener"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh5.googleusercontent.com/-jp62PZL7T9Q/U7ZFa0GkV7I/AAAAAAAAXTk/zprb5af36a0/w1358-h764-no/IMG_0124.JPG?w=1280&#038;ssl=1" alt=""/></a></figure>
</div>


<p class="has-text-align-center wp-block-paragraph"></p>



<p class="wp-block-paragraph">The pond with the pavilion was definitely the most beautiful location on the entire palace grounds.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://photos.google.com/share/AF1QipMBMAzKrQvOS8XDI30OUPWCPFNRMaFYIPMDQUIdzh_OgbfsgeFAq0RYgaAwfniupQ/photo/AF1QipMDNu0nLWWTXjslZ3ELaDq6bkTVu2hNml6dlpu8?key=WFpuSi1XNFhDMWFPY0k2U3hTdzNmZHp0SGI4ZFR3" target="_blank" rel="noreferrer noopener"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh4.googleusercontent.com/-AVE5YxjbxdI/U7ZG-Z0Tp-I/AAAAAAAAXUE/WOYMUt57dTI/w1358-h764-no/IMG_0140.JPG?w=1280&#038;ssl=1" alt=""/></a></figure>
</div>


<p class="has-text-align-center wp-block-paragraph"></p>



<p class="wp-block-paragraph">The pagoda is also another impressive piece of traditional architecture. The construction has a Chinese feel to me, but I am definitely not an expert in Asian architecture. The National Folk Museum of Korea is also located here, and visitors are able to learn about the history of how the Korean people lived back then.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://photos.google.com/share/AF1QipMBMAzKrQvOS8XDI30OUPWCPFNRMaFYIPMDQUIdzh_OgbfsgeFAq0RYgaAwfniupQ/photo/AF1QipPdnHw-9iTzSBJBhByyMGv7dZ8_hG98Q51s_dmP?key=WFpuSi1XNFhDMWFPY0k2U3hTdzNmZHp0SGI4ZFR3" target="_blank" rel="noreferrer noopener"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh6.googleusercontent.com/-WaRQOAFQdkA/U7ZG0w7xt3I/AAAAAAAAXUM/5ljUGpzifkE/w1358-h764-no/IMG_0138.JPG?w=1280&#038;ssl=1" alt=""/></a></figure>
</div>


<p class="has-text-align-center wp-block-paragraph"></p>



<p class="wp-block-paragraph">Those who enjoy nice walks around beautiful architecture and scenery should definitely come visit this place when travelling in Seoul.</p>



<p class="wp-block-paragraph">Link to more photos: <a href="https://photos.google.com/share/AF1QipMBMAzKrQvOS8XDI30OUPWCPFNRMaFYIPMDQUIdzh_OgbfsgeFAq0RYgaAwfniupQ?key=WFpuSi1XNFhDMWFPY0k2U3hTdzNmZHp0SGI4ZFR3" target="_blank" rel="noreferrer noopener">here</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.henrypoon.com/blog/2014/07/09/gyeongbokgung-palace/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1862</post-id>	</item>
		<item>
		<title>Proof of the Farthest-in-Future Optimal Caching Algorithm</title>
		<link>https://blog.henrypoon.com/blog/2014/02/02/proof-of-the-farthest-in-future-optimal-caching-algorithm/</link>
					<comments>https://blog.henrypoon.com/blog/2014/02/02/proof-of-the-farthest-in-future-optimal-caching-algorithm/#comments</comments>
		
		<dc:creator><![CDATA[hp]]></dc:creator>
		<pubDate>Sun, 02 Feb 2014 23:19:13 +0000</pubDate>
				<category><![CDATA[computer stuff]]></category>
		<category><![CDATA[All That]]></category>
		<category><![CDATA[Cache]]></category>
		<category><![CDATA[Cache replacement policies]]></category>
		<category><![CDATA[Chan]]></category>
		<category><![CDATA[COM]]></category>
		<category><![CDATA[Comment]]></category>
		<category><![CDATA[Computer]]></category>
		<category><![CDATA[Computer architecture]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Contents]]></category>
		<category><![CDATA[CPU cache]]></category>
		<category><![CDATA[D]]></category>
		<category><![CDATA[Digital technology]]></category>
		<category><![CDATA[EAR]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[farthest-first]]></category>
		<category><![CDATA[future]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[greedy algorithms]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[IME]]></category>
		<category><![CDATA[IOS]]></category>
		<category><![CDATA[It]]></category>
		<category><![CDATA[optimal caching]]></category>
		<category><![CDATA[Outside]]></category>
		<category><![CDATA[Port]]></category>
		<category><![CDATA[Thou]]></category>
		<category><![CDATA[Time]]></category>
		<category><![CDATA[tuna]]></category>
		<category><![CDATA[Z]]></category>
		<guid isPermaLink="false">http://henrypoon.mooo.com/blog/proof-of-the-farthest-in-future-optimal-caching-algorithm</guid>

					<description><![CDATA[This topic came up in one of my lectures and I found it a little challenging to understand the proof so I thought I&#8217;d write it down as best as I could explain it so that I could understand it better and possibly help other people understand it better. &#160;Feel free to comment/ask questions/correct me, [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>This topic came up in one of my lectures and I found it a little challenging to understand the proof so I thought I&#8217;d write it down as best as I could explain it so that I could understand it better and possibly help other people understand it better. &nbsp;Feel free to comment/ask questions/correct me, etc.</p>
<p>In a computer, there are various methods of storing information. &nbsp;Information can be stored in the processor cache, RAM, hard disk, etc. &nbsp;It can be faster to request information from a storage medium that is smaller. &nbsp;However, this smaller storage medium cannot fit all the possible information that can be requested. &nbsp;So the idea is to insert a portion of the data into the faster, smaller medium (the <strong>cache</strong>) and the rest into the slower, larger medium (<strong>main memory)</strong>.</p>
<p>If a request is made and the data is not available in the faster, smaller medium first, then the data will be read from the slower, larger medium &#8211; this is what is known as a <strong>cache miss</strong>.</p>
<p>Given that all the data cannot possibly live in the cache, there must be a way to minimize the amount of times that the data must be read from the main memory.</p>
<h1>Optimal Caching &#8211; Farthest-in-Future</h1>
<h2>The Algorithm</h2>
<p>The idea is that there is an algorithm that minimizes the amount of cache misses that occur for a set of requests. &nbsp;The <em>Farthest-in-Future Algorithm&nbsp;</em>evicts the item in the cache that is not requested until the farthest in the future. &nbsp;For example, given the following cache with items &#8220;a&#8221; through &#8220;f&#8221;.</p>
<table>
<tbody>
<tr>
<td>Cache Items</td>
<td>a b c d e f</td>
</tr>
<tr>
<td>Future Queries</td>
<td>g a b c e d a b b f</td>
</tr>
</tbody>
</table>
<p><span style="line-height:1.5em;">It is clear that &#8220;g&#8221; does not exist in the set of cache items and so when &#8220;g&#8221; is requested, a cache miss will result. An item will be evicted because &#8220;g&#8221; is not in the cache. &nbsp;According to the </span><em style="line-height:1.5em;">Farthest-in-Future Algorithm</em><span style="line-height:1.5em;">, element &#8220;f&#8221; will be evicted since it is the one that will be used furthest in the future.</span></p>
<h2>Definitions</h2>
<p><strong>Cache Miss</strong> &#8211; Occurs when it is necessary to bring in an item from the main memory into the cache</p>
<p><strong>Schedule</strong>&nbsp;&#8211; A list that contains, for each, request, which item is brought into the cache, and which item is evicted</p>
<p><strong>Reduced Schedule</strong> &#8211; a schedule that only brings in an item when there is a request for that item &#8211; so a non-reduced schedule would bring an item into the cache outside of a request for that item</p>
<h2>Theorem</h2>
<p>To be shown:</p>
<blockquote><p><em>Farthest-in-Future</em> is the optimal algorithm that minimizes the number of cache misses.</p></blockquote>
<p>To prove this, let&#8217;s say there is a schedule SFF&nbsp;that follows the&nbsp;<em>Farthest-in-Future Algorithm</em>&nbsp;and that there is a schedule optimal S<sup><em></sup>&nbsp;that has a minimum number of cache misses. It can be shown that it is possible to transform&nbsp;S<sup></em></sup>&nbsp;into SFF&nbsp;by performing a series of evictions without increasing the number of cache misses. &nbsp;Since&nbsp;S<sup>*</sup>&nbsp;is already optimal, and the number of cache misses did not increase, then SFF&nbsp;must be optimal.</p>
<p>To perform one transformation, the statement below can be used. &nbsp;Right now, it isn&#8217;t all that clear why this is necessary, but it should become clearer further on.</p>
<blockquote><p>Let S&nbsp;be a reduced schedule that is the same as SFF&nbsp;for the first j requests, then there is a reduced schedule S&#8217;&nbsp;that is the same as SFF&nbsp;for the first j+1 requests, and incurs no more misses than S</p></blockquote>
<h2>Proof</h2>
<p>Let&#8217;s say the cache at the start looks like this. &nbsp;S and SFF&nbsp;have the exact same contents (this is what was defined in the previous section).</p>
<table>
<tbody>
<tr>
<td>S</td>
<td>a b c d</td>
</tr>
<tr>
<td>SFF</td>
<td>a b c d</td>
</tr>
</tbody>
</table>
<p><span style="line-height:1.5em;">Given a schedule S, it can be shown that any request can be made, and the resulting schedule would be equal to the ideal algorithm and does not increase the number of cache misses. &nbsp;Essentially, we want S = S&#8217; = SFF&nbsp;after a request is made and that the number of cache misses have not increased. &nbsp;If this can be shown for all different scenarios that items are requested, then&nbsp;</span><em style="line-height:1.5em;">Farthest-in-Future</em><span style="line-height:1.5em;"> is the ideal algorithm.</span></p>
<h3>Case 1: Item Is Already in the Cache</h3>
<p>Now let&#8217;s say the next item to be requested is item &#8220;d&#8221;. &nbsp;It is clear that this item exists in both caches and no evictions are necessary. &nbsp;Since no evictions are necessary, SFF&nbsp;does not change. &nbsp;It was specified in a prior section that there is a schedule S&#8217; that equals SFF, which incurs no more misses than S.</p>
<table>
<tbody>
<tr>
<td>SFF</td>
<td>a b c d</td>
<td>Read&nbsp;d</td>
</tr>
<tr>
<td>S</td>
<td>a b c d</td>
<td>Read&nbsp;d</td>
</tr>
<tr>
<td>S&#8217;</td>
<td>a b c d</td>
<td>Read&nbsp;d</td>
</tr>
</tbody>
</table>
<p>Here, S = S&#8217; because no changes had to be made to the cache and there were no cache misses. &nbsp;After the request for item &#8220;d&#8221;, S = S&#8217;, each with zero cache misses, which is a valid outcome.</p>
<h3>Case 2: Item Is Not in the Cache, S and SFF&nbsp;Evict the Same Item</h3>
<p>Let&#8217;s say the next item to be requested is item &#8220;e&#8221;. &nbsp;Neither cache has this item, so an eviction will have to be made. &nbsp;Let&#8217;s also say SFF&nbsp;and S both choose to evict item &#8220;a&#8221; to make room for &#8220;e&#8221;. &nbsp;It was specified in a prior section that there is a schedule S&#8217; that equals SFF, which incurs no more misses than S.</p>
<table>
<tbody>
<tr>
<td>SFF</td>
<td>b c d e</td>
<td>Evict a; Read e</td>
</tr>
<tr>
<td>S</td>
<td>b c d e</td>
<td>Evict a; Read e</td>
</tr>
<tr>
<td>S&#8217;</td>
<td>b c d e</td>
<td>Evict a; Read e</td>
</tr>
</tbody>
</table>
<p>Here S = S&#8217; because S and SFF&nbsp;both evicted the same item. &nbsp;Both S and S&#8217; each have one cache miss (no increase relative to one another), which is a valid outcome.</p>
<h3>Case 3: Item Is Not in the Cache, S and SFF&nbsp;Each Evict A Different Item</h3>
<p>This is where the proof can become more confusing (as if it isn&#8217;t already). &nbsp;Let&#8217;s say the next item to be requested is &#8220;e&#8221;. &nbsp;Let&#8217;s also say that the ideal algorithm, SFF, evicts &#8220;a&#8221; and S evicts &#8220;b&#8221;.&nbsp;It was specified in a prior section that there is a schedule S&#8217; that equals SFF, which incurs no more misses than S. This means that in order to get S&#8217; = SFF, S&#8217; should evict &#8220;a&#8221; in order to match with SFF.</p>
<table>
<tbody>
<tr>
<td>SFF</td>
<td>b c d e</td>
<td>Evict a; Insert&nbsp;e</td>
</tr>
<tr>
<td>S</td>
<td>a c d e</td>
<td>Evict b; Insert&nbsp;e</td>
</tr>
<tr>
<td>S&#8217;</td>
<td>b c d e</td>
<td>Evict a; Insert&nbsp;e</td>
</tr>
</tbody>
</table>
<p>Here, S does not agree with&nbsp;S&#8217; = SFF. &nbsp;Essentially, these two schedules behave the same, so long as future requests do not request items &#8220;a&#8221; or &#8220;b&#8221;. &nbsp;This shows that there is a schedule S&#8217; that equals SFF, but it is not known whether or not S&#8217; has no more cache misses than S, since &#8220;a&#8221; or &#8220;b&#8221; can be requested in the future, which can determine whether S or S&#8217; has more cache misses. &nbsp;From this point onward, S and S&#8217; behave the same until one of the following happens:</p>
<h4>Case 3a: Item Is in SFF, But Not S; S Evicts &#8220;a&#8221;</h4>
<p>Let&#8217;s say eventually item &#8220;b&#8221; gets requested. &nbsp;In this case, S&#8217; and SFF do not need to change. &nbsp;All S has to do is evict &#8220;a&#8221; to make room for &#8220;b&#8221;. &nbsp;In this case, S has two total cache misses (from request &#8220;e&#8221; and &#8220;b&#8221;), while SFF and S&#8217; each have only one cache miss, thus fulfilling the cache miss requirement.</p>
<table>
<tbody>
<tr>
<td>SFF</td>
<td>b c d e</td>
<td>Insert&nbsp;b</td>
</tr>
<tr>
<td>S</td>
<td>b c d e</td>
<td>Evict a; Insert&nbsp;b</td>
</tr>
<tr>
<td>S&#8217;</td>
<td>b c d e</td>
<td>Insert&nbsp;b</td>
</tr>
</tbody>
</table>
<h4>Case 3b: Item Is Neither in SFF Nor S</h4>
<p>Let&#8217;s say eventually item &#8220;f&#8221; gets requested. &nbsp;S&#8217;, SFF, and S all need to make an eviction. S&#8217; and SFF can evict &#8220;b&#8221; to make room for &#8220;f&#8221;, and S can evict &#8220;a&#8221; to make room for &#8220;f&#8221;. &nbsp;In this case, each schedule as two cache misses, thus fulfilling the cache miss requirement.</p>
<table>
<tbody>
<tr>
<td>SFF</td>
<td>c d e f</td>
<td>Evict b; Insert&nbsp;f</td>
</tr>
<tr>
<td>S</td>
<td>c d e f</td>
<td>Evict a; Insert&nbsp;f</td>
</tr>
<tr>
<td>S&#8217;</td>
<td>c d e f</td>
<td>Evict b; Insert&nbsp;f</td>
</tr>
</tbody>
</table>
<h4>Case 3c: Item Is in SFF, But Not S; S Evicts Item Not Equal to &#8220;a&#8221;</h4>
<p>Let&#8217;s say eventually item &#8220;b&#8221; gets requested and S evicts an item that isn&#8217;t &#8220;a&#8221;, say &#8220;c&#8221;. &nbsp;Now, SFF and S&#8217; both already have &#8220;b&#8221; in the cache. &nbsp;In order to synchronize S and S&#8217; to make them comparable to see how many cache misses each have, S&#8217; and SFF will evict &#8220;c&#8221; to make room for &#8220;a&#8221;.</p>
<table>
<tbody>
<tr>
<td>SFF</td>
<td>a b d e</td>
<td>Evict c; Insert a</td>
</tr>
<tr>
<td>S</td>
<td>a b d e</td>
<td>Evict c; Insert&nbsp;b</td>
</tr>
<tr>
<td>S&#8217;</td>
<td>a b d e</td>
<td>Evict c; Insert&nbsp;a</td>
</tr>
</tbody>
</table>
<p>Since &#8220;a&#8221; is being brought into the cache without a request for &#8220;a&#8221;, this makes S&#8217; and SFF no longer a reduced schedule. &nbsp;However, the proof calls for S&#8217; and SFF being a reduced schedule. &nbsp;Fortunately, it is possible to transform an unreduced schedule into a reduced one. &nbsp;In this case, each schedule has two cache misses, thus fulfilling the cache miss requirement.</p>
<h4>Case 3d: Item Is Not in SFF, But in S</h4>
<p>The only item that is in S and not SFF is item &#8220;a&#8221;. &nbsp;SFF had evicted it initially at the beginning of Case 3. &nbsp;Since SFF had evicted it, it must have been the item that would be requested furthest into the future. &nbsp;Therefore, it is not possible for item &#8220;a&#8221; to be requested before other items.</p>
<p>&nbsp;</p>
<p>After going through all possible eviction decisions that the schedules can do, it was shown that for each scenario, there was indeed a schedule S&#8217; = SFF, where the cache misses incurred in S&#8217; no more than S.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.henrypoon.com/blog/2014/02/02/proof-of-the-farthest-in-future-optimal-caching-algorithm/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1799</post-id>	</item>
		<item>
		<title>RoboCup 2013 in Eindhoven</title>
		<link>https://blog.henrypoon.com/blog/2013/09/15/robocup-2013-in-eindhoven/</link>
					<comments>https://blog.henrypoon.com/blog/2013/09/15/robocup-2013-in-eindhoven/#respond</comments>
		
		<dc:creator><![CDATA[hp]]></dc:creator>
		<pubDate>Sun, 15 Sep 2013 23:20:59 +0000</pubDate>
				<category><![CDATA[engineering]]></category>
		<category><![CDATA[europe]]></category>
		<category><![CDATA[9]]></category>
		<category><![CDATA[Artificial intelligence]]></category>
		<category><![CDATA[Chan]]></category>
		<category><![CDATA[China]]></category>
		<category><![CDATA[COM]]></category>
		<category><![CDATA[Competition]]></category>
		<category><![CDATA[Contents]]></category>
		<category><![CDATA[D]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Dia]]></category>
		<category><![CDATA[Drive]]></category>
		<category><![CDATA[EAR]]></category>
		<category><![CDATA[Eindhoven]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Final]]></category>
		<category><![CDATA[Flag]]></category>
		<category><![CDATA[Force]]></category>
		<category><![CDATA[future]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[German]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[Hail]]></category>
		<category><![CDATA[Hole]]></category>
		<category><![CDATA[IME]]></category>
		<category><![CDATA[international robotics competition]]></category>
		<category><![CDATA[IranOpen]]></category>
		<category><![CDATA[ise]]></category>
		<category><![CDATA[It]]></category>
		<category><![CDATA[Japan]]></category>
		<category><![CDATA[Lag]]></category>
		<category><![CDATA[Link]]></category>
		<category><![CDATA[Lost]]></category>
		<category><![CDATA[Mech]]></category>
		<category><![CDATA[Mecha]]></category>
		<category><![CDATA[Mexico]]></category>
		<category><![CDATA[Mexico City]]></category>
		<category><![CDATA[Net]]></category>
		<category><![CDATA[netherlands]]></category>
		<category><![CDATA[osaka]]></category>
		<category><![CDATA[Over]]></category>
		<category><![CDATA[Pho]]></category>
		<category><![CDATA[Port]]></category>
		<category><![CDATA[RoboCup]]></category>
		<category><![CDATA[RoboCup 2013]]></category>
		<category><![CDATA[RoboCup Junior]]></category>
		<category><![CDATA[Robot]]></category>
		<category><![CDATA[Robotics]]></category>
		<category><![CDATA[robotics research]]></category>
		<category><![CDATA[robots]]></category>
		<category><![CDATA[Soccer robot]]></category>
		<category><![CDATA[soccer robots]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[STR]]></category>
		<category><![CDATA[Team]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[thailand]]></category>
		<category><![CDATA[Thou]]></category>
		<category><![CDATA[thunder]]></category>
		<category><![CDATA[Time]]></category>
		<category><![CDATA[tuna]]></category>
		<category><![CDATA[When We]]></category>
		<category><![CDATA[Z]]></category>
		<category><![CDATA[Zhejiang]]></category>
		<category><![CDATA[Zhejiang University]]></category>
		<guid isPermaLink="false">http://henrypoon.mooo.com/blog/robocup-2013-in-eindhoven</guid>

					<description><![CDATA[After a year of hard work redesigning our soccer robots, it was time to take them to the real competition. &#160;Last year, the team went to Mexico City, but this year, we went to Eindhoven, Netherlands to compete. The event was so well known, that even the queen of the Netherlands paid a visit to [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">After a year of hard work redesigning our soccer robots, it was time to take them to the real competition. &nbsp;Last year, <a title="RoboCup Mexico City&nbsp;2012" href="http://henrypoon.wordpress.com/2012/06/29/robocup-mexico-city-2012/" target="_blank" rel="noopener noreferrer">the team went to Mexico City</a>, but this year, we went to Eindhoven, Netherlands to compete. The event was so well known, that even the queen of the Netherlands paid a visit to the competition!</p>



<p class="wp-block-paragraph">We had spent a whole year upgrading everything. &nbsp;I designed a new ball kicking system that was more durable, more maintenance free, and more powerful than the year before. &nbsp;The other mechanical systems were more robust as well. &nbsp;The electrical system also had a huge upgrade. &nbsp;Burning and smoking electrical boards were a thing of the past! &nbsp;We have never had a design this robust &#8211; ever!</p>



<h1 class="wp-block-heading">What is RoboCup?</h1>



<p class="wp-block-paragraph">For those who don&#8217;t know what <a class="zem_slink" title="RoboCup" rel="wikipedia noopener noreferrer" href="http://en.wikipedia.org/wiki/RoboCup" target="_blank">RoboCup</a> is, RoboCup is an international robotics competition aimed to further robotics research.  Their long-term goal is to have robots beat the World Cup Soccer team winners by 2050. There are various leagues within RoboCup, such as in robotic soccer (where we participate), home care, rescue, simulation, etc.  Our team, the <a href="https://www.ubcthunderbots.ca/" target="_blank" rel="noreferrer noopener">UBC Thunderbots</a>, compete in the small-size soccer league, which is probably has the fastest game play of all the different leagues.  The robots are generally cylinders with a diameter of about 18 cm and a height of 15 cm.  They can move at around 4 m/s and kick a golf ball at 8 m/s.</p>



<p class="wp-block-paragraph">One of the other leagues, the Standard Platform League competes with standardized robots for all teams and the key difference between each is the software that is written for the robots.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://picasaweb.google.com/117972094293741244551/RoboCup2013InEindhoven#5897889774823068050" target="_blank" rel="noreferrer noopener"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh6.googleusercontent.com/-f9iHrNYteSk/UdmDgHi80ZI/AAAAAAAASl4/TXCHk6Cuw4w/s1280/IMG_9527.JPG?w=1280&#038;ssl=1" alt=""/></a></figure>
</div>


<p class="has-text-align-center wp-block-paragraph"></p>



<p class="wp-block-paragraph">Another league, the mid-size league in RoboCup Soccer competes with robots that are about a 1/3 of the size of a person. The game isn&#8217;t as quick as the small-size league game and they play with a real soccer ball instead of a golf ball. During the competition, it gathered quite the crowd too.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://photos.google.com/share/AF1QipPQy3HF14n_7e4t5FnrpwU8OmgGpubbqgwwy3lj8bW-iQn7Pi-at_hGE0ZSyiWbtQ/photo/AF1QipPicgMB6khCwODYfneHn0qV6zk5XCoCSeHjO5gJ?key=WFRoNDZ3MkJzcFNzTFdhYXJIUjZKZUpLcHZab2J3" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh3.googleusercontent.com/AfP-d2gBpKo8XYAtwDxg17An-Zy2pcZpZvKAsKO94MMr=w1358-h468-no" alt=""/></a></figure>
</div>


<p class="has-text-align-center wp-block-paragraph"></p>



<h1 class="wp-block-heading">Preparing for the Games</h1>



<p class="wp-block-paragraph">Most teams arrived at the venue when it opened to get to work right away. Everybody wanted their robots in tip-top shape. Our team did the same. Even though our robots were ready mechanically and electrically, the key game changer was seeing which team had better artificial intelligence for their robots. Whenever got time to test on the field, we took advantage of it to make sure our <a class="zem_slink" title="Artificial intelligence" href="http://en.wikipedia.org/wiki/Artificial_intelligence" target="_blank" rel="wikipedia noopener noreferrer">AI</a> was working well too.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://picasaweb.google.com/117972094293741244551/RoboCup2013InEindhoven#5897889762368981026" target="_blank" rel="noreferrer noopener"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh5.googleusercontent.com/-Pfo2qbeJ3ck/UdmDfZJqiCI/AAAAAAAASlk/FO2OpIKjpGc/s1024/IMG_9526.JPG?w=1280&#038;ssl=1" alt=""/></a></figure>
</div>


<p class="has-text-align-center wp-block-paragraph"></p>



<h1 class="wp-block-heading">Round Robin</h1>



<p class="wp-block-paragraph">In the round robin stage, each team gets four games against other teams in their bracket. Each bracket is made up of five teams and the skill level is spread out based on the rankings of the previous year.</p>



<p class="wp-block-paragraph">We lost our first two games against a team called KIKS from the Toyota National College of Technology in Japan, and a team called STOx&#8217;s from the Universidad Santo Tomás in Colombia. In both of those games, we were simply outplayed because the other team had better software than we did. At the end of the game against the Japanese team, I spoke a bit of my horrible Japanese to them and they were super surprised and impressed that I knew a bit of Japanese!</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://picasaweb.google.com/117972094293741244551/RoboCup2013InEindhoven#5897889856120226418" target="_blank" rel="noreferrer noopener"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh6.googleusercontent.com/-X_KPZ2d8Qq4/UdmDk2ZtAnI/AAAAAAAASmo/L-7dqyE9Mq8/s1280/IMG_9536.JPG?w=1280&#038;ssl=1" alt=""/></a></figure>
</div>


<p class="has-text-align-center wp-block-paragraph"></p>



<p class="wp-block-paragraph">Because our robots were finished not long before the competition began, the software team did not get a chance to test the code that was written, and so we found out the problems during the competition. Our robots were never able to drive up to a ball and take possession of it. The robots somehow always missed the ball. When the robot had the ball, it didn&#8217;t know what to do with it. It sat there holding onto the ball doing nothing. This was so frustrating for our team and even more so for the software team who wished they had more time to test.</p>



<p class="wp-block-paragraph">We won our next two games against two lower tier teams. One is called RoboFEI, from the Centro Universitário da FEI in Brazil, and a team called RFC Cambridge from Harvard and MIT. It&#8217;s nice to be able to say that we beat a team from these two ivy league schools. Looks good when we look for sponsors too!</p>



<h1 class="wp-block-heading">Lucky Loser Round</h1>



<p class="wp-block-paragraph">Because we had a 2-2 record during the group stage, we played a fifth game, the so-called Lucky Loser Round, to see if we could qualify for the quarter finals. Our match up was against a team called ODENS from the Osaka Electro-Communication University in Japan. &nbsp;The game was so close that there was a dispute about the rules and whether what our team did was legitimate. Because our robots were not able to move up to a ball and shoot it at the net during the shootout, the referee introduced a workaround that the other team disputed.</p>



<p class="wp-block-paragraph">Our referee&#8217;s native tongue was Portuguese, we spoke English, and the other team spoke Japanese. I didn&#8217;t know enough Japanese to translate. Eventually, members from other teams like the Thai and Chinese team came to help with the dispute. During the discussion that took about an hour, I heard people speak English, Japanese, Portuguese, Thai, Japanese, and Mandarin all at the same time. It seemed like nobody had the full picture of what was happening and how to resolve it.</p>



<p class="wp-block-paragraph">The dispute was resolved when both teams agreed to a specific workaround that made it possible for our robots to do shootouts. &nbsp;The game ended with a shootout and we lost on the very last shot of the shootout unfortunately. We almost made it to 8th place. &nbsp;Still, achieving 9th place out of 22 teams was the best that the team has ever done before.</p>



<h1 class="wp-block-heading">The Competition Ends</h1>



<p class="wp-block-paragraph">Skuba, from Kasetsart University in Thailand, had won the competition for four years in a row since 2009, but this year they had a surprising finish that was not even the top 4. &nbsp;The second place team, ZJUNlict from Zhejiang University in China had beat them early in the quarterfinals. &nbsp;ZJUNlict&#8217;s strongest opponent this year was CMDragons, from Carnegie Mellon University in USA. &nbsp;In the final round, they were tied for the entire game and the game went to shootouts where CMDragons lost by one goal. &nbsp;ZJUNlict had made first place in the RoboCup 2013 in the Small Size League.</p>



<p class="wp-block-paragraph">As the competition came to a close, we said goodbye to the people on other teams that we met and as a parting gift from the German team ER-Force, they gave us a German flag with the names of all their team members signed onto it, with the message, &#8220;for our amazing friends, the Thunderbots, from team ER-Force&#8221;.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://picasaweb.google.com/117972094293741244551/RoboCup2013InEindhoven#5897890317693068290" target="_blank" rel="noreferrer noopener"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh3.googleusercontent.com/-8Z9e5g3BJsI/UdmD_t5PpAI/AAAAAAAAQE0/7GlmXRLS8jk/s512/IMG_9593.JPG?w=1280&#038;ssl=1" alt=""/></a></figure>
</div>


<p class="has-text-align-center wp-block-paragraph"></p>



<p class="wp-block-paragraph">I realized now that the competition is over, I probably wouldn&#8217;t be going to competitions in the future because I&#8217;ve graduated from university. It made me feel a little bit sad that I couldn&#8217;t compete anymore, but at least I can still help out the team wherever they need it.</p>



<p class="wp-block-paragraph">Link to photo album <a href="https://picasaweb.google.com/117972094293741244551/RoboCup2013InEindhoven#" target="_blank" rel="noopener noreferrer">here</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.henrypoon.com/blog/2013/09/15/robocup-2013-in-eindhoven/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1749</post-id>	</item>
	</channel>
</rss>
