<?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>ypres &#8211; Henry Poon&#039;s Blog</title>
	<atom:link href="https://blog.henrypoon.com/blog/tag/ypres/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.henrypoon.com</link>
	<description></description>
	<lastBuildDate>Mon, 03 Oct 2022 05:10:23 +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>European road trip – day 2 – Oosterscheldekering, Ypres, and Dunkirk</title>
		<link>https://blog.henrypoon.com/blog/2020/03/07/european-road-trip-day-2-oosterscheldekering-ypres-and-dunkirk/</link>
					<comments>https://blog.henrypoon.com/blog/2020/03/07/european-road-trip-day-2-oosterscheldekering-ypres-and-dunkirk/#respond</comments>
		
		<dc:creator><![CDATA[hp]]></dc:creator>
		<pubDate>Sun, 08 Mar 2020 03:22:13 +0000</pubDate>
				<category><![CDATA[engineering]]></category>
		<category><![CDATA[europe]]></category>
		<category><![CDATA[bal du chat noir]]></category>
		<category><![CDATA[Battle of France]]></category>
		<category><![CDATA[Battlefield]]></category>
		<category><![CDATA[belgium]]></category>
		<category><![CDATA[black cat ball]]></category>
		<category><![CDATA[carnival]]></category>
		<category><![CDATA[Cologne]]></category>
		<category><![CDATA[COM]]></category>
		<category><![CDATA[Countries]]></category>
		<category><![CDATA[D]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Dia]]></category>
		<category><![CDATA[driving]]></category>
		<category><![CDATA[dunkirk]]></category>
		<category><![CDATA[Dutch language]]></category>
		<category><![CDATA[EAR]]></category>
		<category><![CDATA[eastern scheldt]]></category>
		<category><![CDATA[Euro]]></category>
		<category><![CDATA[Europe]]></category>
		<category><![CDATA[Final]]></category>
		<category><![CDATA[first world war]]></category>
		<category><![CDATA[Force]]></category>
		<category><![CDATA[france]]></category>
		<category><![CDATA[Geography of Belgium]]></category>
		<category><![CDATA[German]]></category>
		<category><![CDATA[Germany]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[great war]]></category>
		<category><![CDATA[Hole]]></category>
		<category><![CDATA[In France]]></category>
		<category><![CDATA[It]]></category>
		<category><![CDATA[Lie]]></category>
		<category><![CDATA[Museum]]></category>
		<category><![CDATA[Net]]></category>
		<category><![CDATA[netherlands]]></category>
		<category><![CDATA[oosterscheldekering]]></category>
		<category><![CDATA[Opera]]></category>
		<category><![CDATA[Over]]></category>
		<category><![CDATA[Port]]></category>
		<category><![CDATA[Speed]]></category>
		<category><![CDATA[Storm]]></category>
		<category><![CDATA[STR]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[United Kingdom]]></category>
		<category><![CDATA[Urge]]></category>
		<category><![CDATA[Wiki]]></category>
		<category><![CDATA[Wikipedia]]></category>
		<category><![CDATA[wind turbines]]></category>
		<category><![CDATA[World War I]]></category>
		<category><![CDATA[World War II]]></category>
		<category><![CDATA[Writing]]></category>
		<category><![CDATA[YouTube]]></category>
		<category><![CDATA[ypres]]></category>
		<guid isPermaLink="false">https://blog.henrypoon.com/?p=4866</guid>

					<description><![CDATA[The nice thing about driving in Belgium and the Netherlands is that the road quality is super good. There were hardly any potholes anywhere and the speed limits are higher than what I&#8217;m used to. The speed limit on most highways is 130 km/h in the Netherlands and is 120 km/h in Belgium, while where [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">The nice thing about driving in Belgium and the Netherlands is that the road quality is super good.  There were hardly any potholes anywhere and the speed limits are higher than what I&#8217;m used to.  The speed limit on most highways is 130 km/h in the Netherlands and is 120 km/h in Belgium, while where I am it&#8217;s 112 km/h (70 mph).  The signage is super clear, albeit in Dutch/Flemish/French depending on where we were.  Also, having a decent base in German and French vocabulary allowed me to guess the meanings on road signs, which was nice. </p>



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



<p class="wp-block-paragraph">Our second day takes us to Oosterscheldekering, Ypres, and Dunkirk.</p>



<h2 class="wp-block-heading">Oosterscheldekering (Eastern Scheldt storm surge barrier)</h2>



<p class="wp-block-paragraph">We began our day two heading back into the Netherlands, to a network of storm surge barriers, designed to protect the Netherlands from flooding.  Large sets of doors can open and close to control the water flow coming in from the ocean.  They&#8217;re important because most of the Netherlands sits a few metres above sea level or lower, and thus are prone to flooding. </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="Oosterscheldekering" width="1280" height="720" src="https://www.youtube.com/embed/28LxAcynF8Y?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">As we drove in the area of Oosterscheldekering, we encountered a lot of windmills spinning noticeably in the wind.  And I wondered where all the old traditional windmills went, as in the ones with a tower made of brick with four rectangular fan blades .  Netherlands has a stereotype of having a lot of them.  We barely saw any of them and then it occurred to me that most of them were probably upgraded to use modern technology.</p>



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



<p class="wp-block-paragraph">Our next destination, Ypres, is known for the many battles that occurred there during the First World War, where the Germans introduced chemical weapons in the battlefield in the form of poison gas.  During the course of the war, the town was destroyed, mostly by artillery fire.</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPdQfgJH63a783DNAzB1UMRs9eRv2ZLaYc-C8gVoQmHrtLElma5Pydyf4leBOEXBw/photo/AF1QipMQCSxpy8mt9paq_KZX9JnaXPg1FQ5OK1ND8aWo?key=ZUViTU1qWWN0bmxwZlpPUXpvQkRvVVFsZFYwQTZB" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh3.googleusercontent.com/la1pEdzxNsjNq_5-mzf58PUIFpTlmOWN4cGJvfXCH7TlIdBooN6DJCZ-euUgGb2bWr6Acy3ie3lTwHtWsuE6Uw0A9ZNZGwFDHkkboyl7DzgsUii8MVhz8NPaHUin6xtOCWYLxT6O6c75rK9zvCnSzvW3wrgaFVoM3sxumOXipU9dpsFzKADsYN1jyUv7wbW0aqNmJPRQ1lbf1gBSYMcflFt_BfepCebop7E6TFcLNiA_mkPRog9iLc3br0eF7Hqx8TjP_rNQmk9pwKqzTp6BKShDbizzw4qohZLup34OXrP0s_kU6mjQ-Sg1oUjQoTTlt1L0p-BFvIKmrelFwK57H6TJS-DjSAoqrVBureTdYqTVqZPXBHMb5-zLhvvqzdSORX_LUrXEo8Go_OQhfysjnFQmpg5neDwPmfhkCjP9aDjWIxutBkSqQQ25SbUI9lUJ7KqLBbozWnsTaiIQFPZgwT_3kPBZqoR0FO2vItEEN-pn1F6euFyuJpewzBpWjIbdOdNld3u2UGJtwdxxtjrA-8PUJtQaFnfFp0Kx98HYTbnyE2bIY1rpNv_NF9rNbKUsrmtc-8cmoNHsXbZduHjtegAm1jXDp9G8gvHOefYd8WzUFwZoxtFB6Nz62GPquAYFafmjYJEZ1SPE7UUiFlqZpmWlf9TIYW_spjCePPVNhSVwi54ERqZmfpkNzHvaXrnPfBLPKaJuO91sevE2KYY6aBNlyHO7KLxzjzNbWv1MZXMHfl8wKg=w1320-h743-no" alt=""/></a></figure>



<p class="wp-block-paragraph">The town was rebuilt after the war using German war reparations, with the main square following the original design as closely as possible.  The In Flanders&#8217; Fields Museum (the big building in the above picture) is a museum dedicated to the First World War.</p>



<h2 class="wp-block-heading">Dunkerque (Dunkirk)</h2>



<p class="wp-block-paragraph">Our final destination for the day was the French port city of Dunkirk, known for the role it played during the evacuation of Allied forces from France.  The Germans had achieved a breakthrough in France and had surrounded the bulk of Allied forces around Dunkirk.  The German airforce was tasked to destroy these forces, so that the Germany army could conserve its ground forces for other operations, but the Germans failed to destroy the Allied forces and over 338000 soldiers were successfully evacuated to Britain.</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPTPqwaY3LnXeU4ZVmq1gSmsCvqBMixpJNIwJI2CvS9tcnSvPjdXxJkBcpylfA4oQ/photo/AF1QipNWCPL-oXd68oyinNaRXyEilxdszbXzZtEP7rZm?key=emdXRkVDM2xYV0NzYTl5Q3phcHRuVGVlN0RsbXln" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh3.googleusercontent.com/OhPYoMzFqx_avvbRI24V-DFeSAVCfG9H6NsmJ8_tE-RUiRngTepWZwMhONAjTEytXhgE3BwFERJc-eEBY1xZ5IekFNWs-42dkCxH_2-iO2ynv6mJjvM34_g9fyitOFIrgEdizWshodnyKO256-vL5rrOjECk225AygHyj-C5cW-_ggCCD5fOvtFPTu2oYXPNV_eT8hh7Qgb3ccT5YShyH-vtvJrxaYW7QNdllzjWgkBmYbUJPwdDVv62QeDIz2d1PfB64cSY2sRyalXYdlkTOANjBxkvMv0buWVrSFgW9E7Kl7BrwwUyeScvoQJti0nNmPgi6Z3eBC2DJIqhowVm_5q0azcBwxIdjVJyDagWcAbCEt-RxxkGV8TufaPgy6k_ELZRquLrJ7bXBHJ_jIaadTYn7DfjVEgB-FsG1hREVbQgfiRDWB9-cxAKPam-htEasItYf9-WC13lvEgEGi35_rZIy3bU_DAwCnZ3phpvDF6fm-kndtvZDnzv95AyuzFoUlbaSjpiEoQ-nybHzTTBSC9RHbVOYYzw74mg-I6qkHPLasG_y_UMFGaelNsKcYSSIh9A7Ww-aDwkoY2WFIdTRlh7LkdCDKDnCeDe_ZV66SsWTHDsImw9O4hPJkhZS-rL_al3oT52lf7RysVxAVmBqt5jTN11jTqxkvK0i4C-cs5ce4gdQ8vtllNtHeBFCE8U6kaaFKttTokb_oYx8JHvI89OCiV51XkPu1TcztQdZD80Z7LWOA=w1320-h743-no" alt=""/></a></figure>



<p class="wp-block-paragraph">That night, the locals were having a festival, called the &#8220;Bal du Chat Noir&#8221;, probably loosely translated as &#8220;The Black Cat Ball&#8221;.  It&#8217;s so obscure that as of this writing, an English Wikipedia article for this festival doesn&#8217;t even exist.  The French Wikipedia describes it as a festival to celebrate the opening of the carnival season (i.e. the Christian Carnival), and that it&#8217;s local to Dunkirk.</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPTPqwaY3LnXeU4ZVmq1gSmsCvqBMixpJNIwJI2CvS9tcnSvPjdXxJkBcpylfA4oQ/photo/AF1QipPtJSr2h6yQsZpLawKw_GXtFsUcblpbAIYCWJys?key=emdXRkVDM2xYV0NzYTl5Q3phcHRuVGVlN0RsbXln" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh3.googleusercontent.com/HQoG0qB123jjBYaTfRInoOx3bINaHB1A7ppkrzPL-DCcsAnuDv6Q-uu13z4FYhGK5kFSzoCpLKpbBMcDQA4PQihoW1VFUnoxzU9890T13j24hFj__yJi3rCjXF8hbTUJK-Xk8BKD0uyH-IBMVpMTLAXHaQeuzbHv10MpkuTWsvxwoM_UkwsFaPQEYer3Ky89bAvjOEscXXlhmp1B7HEd4e4Mayj1DM7drnPwBRwUlIauGQtpjctMJwEJLivMXwH9A2Mm7XWskr3s6gIW6kkq0xR9x1-7zwkpyLeO8CWqMGwla0o96r9hu-VV-YT9Q840nPFPsle7SflYaBdfhu93OjADY3C7WlScqX3CYLnxuMWr2BrPIkNUm02mb9GYTpVJYmNfKZiKrB_msnZ5lssMSVMVR8zIyw8U0fLzTy54lWJLw-uZszgiSUItlnOYEd22eg12mwSx-qY3jippIbVl2wOA10VfCv2MJC_pbTjpeCsPNC7QvdyqJDjyI_eKWBzKiTsvMJ93okaftThlBR4fK38cr7nFjlrP6u5kMdJvoViF9vZBoz49VB2pAG9MCc-281ZvLNmmf8cwimhyWye-46WdRzKWqGmhlocnS30rhSDhSMXEb1HDfyx82XINtU4UX_MOYDWdzuYu_uacMHg50vp7lx2HFz8wKvR0mGa_6pwmrlN3g7N-rSO4FLBcVkL66eAQSKkTmbOLRS6Q4073Kc4_TyZG96X0r0byJB7oPx7guvkbTw=w1320-h743-no" alt=""/></a></figure>



<p class="wp-block-paragraph">From what I can tell, it&#8217;s kind of like the Carnival in Cologne, where people party in the streets dressed up in costumes.  There&#8217;s no shortage of reasons for people to party!</p>



<p class="wp-block-paragraph">Stay tuned for day 3!</p>



<ul class="wp-block-list"><li><a href="https://photos.google.com/share/AF1QipOAVRY4rQ7_EMV3tGqFgkw0pbMU3vruoziFNV3SiMO1FgjKYkvbKWCmVbTZ_R4vdQ?key=NEd6TU9vMDlhbUVnTFZ4MW9BaW55dnB5aTRvbzl3" target="_blank" rel="noreferrer noopener" aria-label="Oosterscheldekering  (opens in a new tab)">Oosterscheldekering</a></li><li><a href="https://photos.google.com/share/AF1QipPdQfgJH63a783DNAzB1UMRs9eRv2ZLaYc-C8gVoQmHrtLElma5Pydyf4leBOEXBw?key=ZUViTU1qWWN0bmxwZlpPUXpvQkRvVVFsZFYwQTZB" target="_blank" rel="noreferrer noopener" aria-label="Ypres (opens in a new tab)">Ypres</a></li><li><a href="https://photos.google.com/share/AF1QipPTPqwaY3LnXeU4ZVmq1gSmsCvqBMixpJNIwJI2CvS9tcnSvPjdXxJkBcpylfA4oQ?key=emdXRkVDM2xYV0NzYTl5Q3phcHRuVGVlN0RsbXln" target="_blank" rel="noreferrer noopener" aria-label="Dunkirk (opens in a new tab)">Dunkirk</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.henrypoon.com/blog/2020/03/07/european-road-trip-day-2-oosterscheldekering-ypres-and-dunkirk/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4866</post-id>	</item>
		<item>
		<title>European road trip &#8211; day 1 &#8211; The Hague, Rotterdam, Baarle-Hertog, and Antwerp</title>
		<link>https://blog.henrypoon.com/blog/2020/03/07/european-road-trip-day-1-the-hague-rotterdam-baarle-hertog-antwerp/</link>
					<comments>https://blog.henrypoon.com/blog/2020/03/07/european-road-trip-day-1-the-hague-rotterdam-baarle-hertog-antwerp/#respond</comments>
		
		<dc:creator><![CDATA[hp]]></dc:creator>
		<pubDate>Sat, 07 Mar 2020 09:01:03 +0000</pubDate>
				<category><![CDATA[europe]]></category>
		<category><![CDATA[food]]></category>
		<category><![CDATA[Amsterdam]]></category>
		<category><![CDATA[antwerp]]></category>
		<category><![CDATA[antwerpen]]></category>
		<category><![CDATA[APT]]></category>
		<category><![CDATA[Baarle]]></category>
		<category><![CDATA[baarle-hertog]]></category>
		<category><![CDATA[baarle-nassau]]></category>
		<category><![CDATA[belgium]]></category>
		<category><![CDATA[Belgium–Netherlands border]]></category>
		<category><![CDATA[Borders]]></category>
		<category><![CDATA[cars]]></category>
		<category><![CDATA[cheese]]></category>
		<category><![CDATA[COM]]></category>
		<category><![CDATA[cooking]]></category>
		<category><![CDATA[Countries]]></category>
		<category><![CDATA[cured meat]]></category>
		<category><![CDATA[D]]></category>
		<category><![CDATA[den haag]]></category>
		<category><![CDATA[Dime]]></category>
		<category><![CDATA[dunkirk]]></category>
		<category><![CDATA[EAR]]></category>
		<category><![CDATA[Enclaves and exclaves]]></category>
		<category><![CDATA[Euro]]></category>
		<category><![CDATA[Europe]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[fish]]></category>
		<category><![CDATA[Foods]]></category>
		<category><![CDATA[Geography of the Netherlands]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[herring]]></category>
		<category><![CDATA[herring sandwich]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[IME]]></category>
		<category><![CDATA[international court of justice]]></category>
		<category><![CDATA[It]]></category>
		<category><![CDATA[Lego]]></category>
		<category><![CDATA[Lie]]></category>
		<category><![CDATA[madurodam]]></category>
		<category><![CDATA[Meat]]></category>
		<category><![CDATA[Nassau]]></category>
		<category><![CDATA[Nature]]></category>
		<category><![CDATA[Net]]></category>
		<category><![CDATA[netherlands]]></category>
		<category><![CDATA[old town]]></category>
		<category><![CDATA[Old Town Square]]></category>
		<category><![CDATA[oosterscheldekering]]></category>
		<category><![CDATA[Palace]]></category>
		<category><![CDATA[Petra]]></category>
		<category><![CDATA[Pho]]></category>
		<category><![CDATA[Plan]]></category>
		<category><![CDATA[Political geography]]></category>
		<category><![CDATA[rain]]></category>
		<category><![CDATA[rotterdam]]></category>
		<category><![CDATA[sashimi]]></category>
		<category><![CDATA[spices]]></category>
		<category><![CDATA[STR]]></category>
		<category><![CDATA[Street food]]></category>
		<category><![CDATA[stroopwafel]]></category>
		<category><![CDATA[the hague]]></category>
		<category><![CDATA[Thou]]></category>
		<category><![CDATA[Time]]></category>
		<category><![CDATA[Travel]]></category>
		<category><![CDATA[Twin cities]]></category>
		<category><![CDATA[UNC]]></category>
		<category><![CDATA[Vol]]></category>
		<category><![CDATA[Week]]></category>
		<category><![CDATA[ypres]]></category>
		<category><![CDATA[Yugoslavia]]></category>
		<category><![CDATA[Z]]></category>
		<guid isPermaLink="false">https://blog.henrypoon.com/?p=4843</guid>

					<description><![CDATA[I am convinced that the best way to explore Europe is by car. Having a car allows you to stay on a schedule that YOU define, you aren&#8217;t bound by any plane or train schedules, and you can go to the places less travelled &#8211; it&#8217;s the ultimate flexibility. Our journey starts in the Netherlands [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">I am convinced that the best way to explore Europe is by car.  Having a car allows you to stay on a schedule that YOU define, you aren&#8217;t bound by any plane or train schedules, and you can go to the places less travelled &#8211; it&#8217;s the ultimate flexibility.  Our journey starts in the Netherlands and will go through six more countries in the span of a week &#8211; something very difficult to without a car.  Our first day takes us to The Hague, Rotterdam, Baarle-Hertog, and Antwerp.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1460" height="821" src="https://i0.wp.com/blog.henrypoon.com/wp-content/uploads/2020/03/Road_Trip_Day1.png?fit=768%2C432&amp;ssl=1" alt="" class="wp-image-4885" srcset="https://i0.wp.com/blog.henrypoon.com/wp-content/uploads/2020/03/Road_Trip_Day1.png?w=1460&amp;ssl=1 1460w, https://i0.wp.com/blog.henrypoon.com/wp-content/uploads/2020/03/Road_Trip_Day1.png?resize=300%2C169&amp;ssl=1 300w, https://i0.wp.com/blog.henrypoon.com/wp-content/uploads/2020/03/Road_Trip_Day1.png?resize=1024%2C576&amp;ssl=1 1024w, https://i0.wp.com/blog.henrypoon.com/wp-content/uploads/2020/03/Road_Trip_Day1.png?resize=150%2C84&amp;ssl=1 150w, https://i0.wp.com/blog.henrypoon.com/wp-content/uploads/2020/03/Road_Trip_Day1.png?resize=768%2C432&amp;ssl=1 768w, https://i0.wp.com/blog.henrypoon.com/wp-content/uploads/2020/03/Road_Trip_Day1.png?resize=171%2C96&amp;ssl=1 171w" sizes="(max-width: 1280px) 100vw, 1280px" /></figure>



<h2 class="wp-block-heading">The Hague (Den Haag)</h2>



<p class="wp-block-paragraph">The first stop is The Hague in the Netherlands.  It&#8217;s the home of the International Court of Justice (pictured above).  This is the international court that resolves international disputes that the UN is involved in.  It was involved in well known cases such as the International Criminal Tribunal for Rwanda to judge the perpetrators of the Rwandan genocide, and the International Criminal Tribunal for the former Yugoslavia to judge the perpetrators of crimes committed during the internal struggles in Yugoslavia that eventually led to its dissolution.</p>



<p class="wp-block-paragraph">For lunch, we searched around for something to eat and we could try some herring since that&#8217;s a popular dish in the Netherlands.  We found a street food stall near us not far from where we were and proceeded to go inside and order.  One problem though&#8230; the entire menu was in Dutch and there was no English to be found anywhere.  We stood there looking confused for a moment, before I piped up and simply asked the staff (knowing that the Netherlands has a very high degree of English literacy) what we should order.  He simply replied, &#8220;herring sandwich!&#8221;.  It&#8217;s raw herring preserved in a brine in a sandwich along with condiments such as raw onions and pickles.  It&#8217;s got a nice fishy freshness to it (like sashimi), but a saltier and more sour flavour because of the brine.  This is going to be one of those foods that I&#8217;ll crave once I leave and can&#8217;t get anywhere else.</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPyph1rOBZeYDsVCHEhzsCdEdkOQ_zU8mRL7bLADFnj87DRU5kuuCHTynzVsFk1tQ/photo/AF1QipMWlBMRNjtAzCFx1RMv9XjAg56p7DiXsoi-io9u?key=UThkRDAwTjVUWDIyNnZMVHF0WUgwQU5MZ3F1T2VR" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh3.googleusercontent.com/ZdWIwaBuCpZUsyXIH9B8IdcAE0m_rZm4l32fPb6v7C1UkgwDY4-fj_gJV2PqUgXI8Yz4LRaeLJEI19zv_zHdM6UdjYscDsRup8wr3_MiYR_GhnaR_8T84q-cZOuCo5ai2VAvEsv8V5yYXbtaS18Ym6tozoDGTuabhQL_gDVylCgL1QT3vNYyWugjtmT0a_Xw9VnVeg33Hniy8wl-5wCp4uo9nzN6sZpYpxyfpPn2V2_DnzdPfMYr6T-z02tQWlLFu_z8itPybJeuPG9JEDmBfdkLKMGQ9Nb_q3QfIKEdw7-jTUnxe8hcfN1rUPtToRsT146gBHuJ9QZ9sPOxNHsJicxDRTZwAhAY86khyBsiGraHGtB19vtlAr2DJrcogFCXj2LqjIo5jhU8bYYkWnCvzQBcAQ5f95T2J-T2hly8ZRs8JSiofqxRsLnso6jes-PJvf4u43ohHfpd68r-CusIOs3n1YY4WJJ6-4rrh6YaqTv-0RYJvAsf_K8YdrxFv1hwabq-6TtiY-TtS5D9aP0fZ7RZqU2tJbDyCPpUa7UoSTWubeY-o2NKMCsKT-wCpIAZi_RcRiR3li0Ceg8fNn_vP53rnvXghVV_eU9f98YeTMJEAJJoLXiU6hpAR9FOChpoYF_q7owFzQzP8KJBWy7qwQrIXesUpozeajYccMlPbfd0JCCsdTtkQYJWPf6-7YgAufKP1RObXTaMmb-IZiNdv0eKcOYGaOhu5ngekYtKoylJbermOg=w1320-h743-no" alt=""/></a></figure>



<p class="wp-block-paragraph">Another cool place to visit in The Hague is the Madurodam &#8211; it&#8217;s a park built purely on minatures.  Imagine famous landmarks in the Netherlands, like the canals of Amsterdam, old town city squares, and palaces, but in miniature form!  As a fan of Lego, I can definitely appreciate looking at miniatures!</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPyph1rOBZeYDsVCHEhzsCdEdkOQ_zU8mRL7bLADFnj87DRU5kuuCHTynzVsFk1tQ/photo/AF1QipMaM970AHXfpTYDplJz-trw1YRI4oKA72PWyY7W?key=UThkRDAwTjVUWDIyNnZMVHF0WUgwQU5MZ3F1T2VR" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh3.googleusercontent.com/dlRDDWts-zS-h_8bGKPL6wXo25Xb7yZjSya4ZEIf6XUZA9QBCPzPPNveNG0CNfiRwP-E2b14NcaHrXozVH5a-TM0iwt5xMeWroVuhYX907jOKJUWNE1tyk8pM83clpbcBOok1cSqfGVaMpq0HRSr74ErJ3Eqr_faprlXzrZrl779Z1qTcxbnoVK2IIArXOm6JA5sfMa5Q54TIqfCayI5KHwsjBa6ZzzO_aAgQntoGv6uysbXFS35buRQx0BxUOud6pf-Xj_xhVTZl34piziRzTOzJLjbszoY9E6CmsmLpQjjBX2sHBMfIM8BObTL6-_UJ3r5o-rbWLt0DvcU3xWzSWYP_JC7m8gzVEtxJkZqIz5HUwkBfsM85Otx2bnQJ3-KVCQaiU9cfoMb-QmOkJeHRuNrUSbqQPsHSDdI6FPiFXl7yxvb7kWh0-cdX7DlY9X3Psn8gTG9E9izJgIuXDYY9hZIWh_qhMPQzWPIWk_nFIzMDmud7UEbqIxQ3ypIydCyRHSSsS8-ziO9BkP8FwMrfBLAv7me1aWsQCmKhxNSSgIE9IdWg49XGnkIVLkFqBK9x-PDVq2U1ZeK13fUqYncw93E6g-XJ0gxgqF-Jb-iIxzAOR8zu-n3Fuesl6Tu8FNbzVOLSLCJrdPCm6kPqAiOQH8pTTXiBAPyKeYgOTd5xDDADpMN8wVNCNDggu8joRCCFQfAEkzWOGacIZFqLSWBV4mYWG2EZY61caq6vL5nqwuo35qPhQ=w1320-h743-no" alt=""/></a></figure>



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



<p class="wp-block-paragraph">Next, we drove to Rotterdam in the Netherlands and stopped by the Market Hall for more food (I&#8217;m always down to eat).  This time, we had yet another Dutch speciality: the stroopwafel.  It&#8217;s hard to say no to two thin crispy wafers with gooey caramel in between.</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipOH1Yw9vyAd0tPVU-ibmC_3CSDT6SyzoIIOtWQ6C_z9NvFnPWU0xa6UGHc2jqImOg/photo/AF1QipOvGq-1RUdel1HuV7Il8GpXgCVJGc_aSJb7DJ6L?key=WWV5bnlzbzRfSm5jb19yQk5La0ROcTMzMkxMR1dn" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh3.googleusercontent.com/i2oUqV1ZUgx5LfiItsrOdRUVkEqrSvsObx2EeopBcxhMRY5WZuKlDOkM50uSm7iqjCZdy-uijFi8-aGpWB3qmMmHIa0B2Ob-DOFc2BSpgxw2tI2JOHCkUra12v19jh5j2peh-e30qFy3CJCylAiICmLEE4LtGCEcey7HUOuS2h8J5sZRhpvVdOp3Mx3btBkfGwyTgNhOEaio57he1bYZMWGULcwN9uzauPKsjOcAigU6q6Ub4nL1ZTfh6ZUc7bZjy__fZdZLGCLwU59GEEKGGuinAn6M_RAGicbKB-tNRw9Fp0GM8odJ8xV05YPR1ayXN9DMfwrs1s2iYobokN9rlMbZLAqcIo48bYxpZEp-ZPBNEDU2Wvx_gfV5-s4EyHUD0O_3K3_YmP67VSWnlaMkDnBvMQNzZ0JaiV5Vje6ZjY0XRZr3cc0V9SWuAJEwLtGnS9f7OfuWaOGAb-5t4l1IaW3gYZ_dajmdDMQ8BZiK0VdbsjjArE13V_e1Jvy8Ko1kheGZU2MSmLpnFU0pHvufTZiYgR_sfUJa-_HuxxbmKM6HARSMY7T0gxF7hM6yp6876xe8lJmW0OsruqmAR5ARf81V_iRs32aBLRWsIxQ_zGRLjX8wGLZo7Dsottc2AjbsnP8fkhU6pbw1fhMvefayUHhPQ7p6b3qBYPf55amBsa6DTOi4WKxWFMTxWU0B222p_39xv4BdP7YVwHTEk2AfGpB9AqceQEu0h9s0oo7r1loJaz8nPQ=w1320-h742-no" alt=""/></a></figure>



<p class="wp-block-paragraph">And because I really enjoy eating protein, I couldn&#8217;t resist trying some cured meat.  I think this is more of a Spanish thing as opposed to Dutch thing though.  I found the flavour way too salty for my tastes (and I use a lot of salt when cooking), but I&#8217;m not sure what it&#8217;s supposed to taste like.</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipOH1Yw9vyAd0tPVU-ibmC_3CSDT6SyzoIIOtWQ6C_z9NvFnPWU0xa6UGHc2jqImOg/photo/AF1QipM29ZWJ9d_v_In0xEyi_IgvyHQO2Z0SvYUcZLif?key=WWV5bnlzbzRfSm5jb19yQk5La0ROcTMzMkxMR1dn" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh3.googleusercontent.com/W2HvCTzqJJC7SyQ2igFYcjRlPkBOGh7z4UV4XHP6bi0-H_eRairIkkglsFTPdqAR352NTUFFaQ_NRJj7J3qUkyEnnoGH43NPnku41rYNctUTY9kr24tNoM9b80JilK9AFD6jbvbQzHIJ7kHsVO3wt2DYvG79V-uxMmam9eoJQyrS4up8-xGg2ilrOL6HrXL1lNeBfH4g4erlOJUoTsxlPsWP_-xBgqUqMhv-CL237xTbHpFlKbIxK0-LI_mAL0zb__llyxZZ5jKRXBbsfcVgI5x1imUenQ-FCQjyBLcp6VqlbB6rJxUJR3nXXsJUriXnEj8pWw0utIKZzvlGVoDH1CBjwrxr1fEzyjh9wHVCsclXBwLSaxyDITaYAJQyrHrtZ76n8L-h_UbfBMlGPzdUHJ1tY22IvvxJZyJcwtU4nXeyrx-8Q4KL_9CWy6MTPcHpEEqq8nuQGVl264wdm7pVa1XiCNy8yUc3_zfkl865h-8yq7oqXyU9zMNm_Qf9koqS5Rl6TYmbI2Z6XveYe8ts7TuU59lv-xVUGKka_xIfyqgRxJ6zoagemuCxr3QFiU-gvk47upK8Y4HjtIbhbf3k4ylTWLonZwcUGdCq5FhGvlE8dhZbHvGuk_aqaK6TZ1kcYviGWOY4x1O5LsTqdjawZm0EqvLuRkl158wxadZ0TmvxHaSIeZjTcoA4f7vmKzWxNeADBUlwNO2AJq6nWDwJQ28n0-YYw90ZFTkrm1bTG_B9OlPWFQ=w1320-h743-no" alt=""/></a></figure>



<p class="wp-block-paragraph">The market hall also has a nice selection of spices &#8211; kind of apt considering their colonial past trading spice and other goods in the Dutch East Indies.</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipOH1Yw9vyAd0tPVU-ibmC_3CSDT6SyzoIIOtWQ6C_z9NvFnPWU0xa6UGHc2jqImOg/photo/AF1QipOXpruD4s5LDbiffZUfz67uY5zDN2JLlnFPU6Oe?key=WWV5bnlzbzRfSm5jb19yQk5La0ROcTMzMkxMR1dn" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh3.googleusercontent.com/NlEz_32tVlhQlnMOmCYj-oP8VcM_ji1gAnMNuBpSDJTV_DOwLy1lGCf7aUA8BYKrWF9tZ2Ngs66PYn1VADfkZg95O0jvpRiZfgbYrVfEq0hvJE1G3IThonn9aXo5nKGcRl8MBwxj034KFQxbMJ-IuOobYuqrc3H20jtPuXe-7U3bKg57ip0gCuOUMbtH4a3bvW7ZO-40WH5OvT7MGIG_kemsQ3itc-GmU8aF1L9VB-PGKIiZ_WM9hNNvCDFC_4SWEng3n6PdeBLnaQBeH742TXgf6FxDjeQfr1FmOGpHV7euMDAgr8KF7seuRru1hDGqFJw0ZrFcyaGZOBOTr1hnhxCLYu5Yockd2GZZI8kK8yhTN-25gaYvcy5EgasjGB3h9MJ_7F7zsgpwKqj0lsL2Q43GahX2VWBBcs_UpZtxZjBxvM1tklB_RTAuFo-dBjrwcPO8IszBWu9VjXxA1Ps6oIgoWVxBovmgBFLrRJ5zAd_MaxNOtP9ok7O0YaQwa8Gz14JZ0BrpPMqY4OotoZqR9kxiT-AyrFHJaNZDXq7sb1gaAiZFviVdAZ8RTTRSzw_cNf-19LnFSrOXQKev10TVmde_sYjZKuIPmudKKQ_g1jQR-C0OxF8Z2R8WkvLMd0NaVN1OfZ0PL-EpIbB1gYyONSQEOAB8t2F0RCKSuug_un5NJZm92-zBFmcRdqVddJBmHVsdPdl7JYi83zCbgI4gcrShmU7VtQvZrHuzBk1yEXQPUqIXTw=w1320-h743-no" alt=""/></a></figure>



<p class="wp-block-paragraph">And of course cheese!  It&#8217;s so nice to see all the wheels of cheese, in all these different colours and sizes.</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipOH1Yw9vyAd0tPVU-ibmC_3CSDT6SyzoIIOtWQ6C_z9NvFnPWU0xa6UGHc2jqImOg/photo/AF1QipNqRmJPz7m6BHaQC7Y_qBisw0VP0rZj-YP_1jql?key=WWV5bnlzbzRfSm5jb19yQk5La0ROcTMzMkxMR1dn" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh3.googleusercontent.com/IHJTz5eKoVmUqJRc3PIUFxzWvsAJm8vmrc-TDidRksmFPSC2pkoHo4hhraH0-pUhG5Mjn2krI9fJUNLlfJTfymCphAEa5vFMpuPAOcY6gdOE4HE00zJdHZEjzL4vTH7x2oOAk-12XLtnKRgbYHX-4fAqiDigBfGNQql4XYxJmGp49NGKADYgK9uFjCS6IdSiHzXp4qThOJ2RRg8JJhSo2iM3NlHcZXJ3Bkrw9juaT0idAa8IWjqDWTjsT7SFk6Jk4Wxt6mGpjvLHl-YtGa_oeYX30rfiKSeM2-Xj6wRopLdYcEmFD9j6gSgygvjGSerh59AanXnHiFkBK8G9X5TRJp01BXfHOxFAsaRloIvUAKaSG6Iemfi3UZynl9YxzZ_lOYRkdHqO3s7tVlc62xpk8o8-lvdxTsg3-tweMY6Er2NJnkO_q8SJLyGa1RLQDDQDY6KPSzSZI0fF8jZyxASpbxvLJppODC9kjs2oB0n9fc0NiM_uf7Tcki57rT8CCGo4vuG-dQnX1aJGNkezMWNE6Z0gg_hnC7BbiBdi2bDOJayYxcqtTZA5RuUWlYKC3pB_ZnKerm6-ogCniOHCTrXqbZjiVEvPGjJqRNVO3Aar3ofKlwbzjS0052YpkquMsGAcaRqQOhcKdcriB7y0Rzo4kX1XnOGh8ZuoRAVDe8T_kPtKb5W7I-xbEN37t0xDN9OX8u6RLGcoyxp0R-D4bRDrrSulOtUEDJFR6CrPZWVgHaoF2rUJcQ=w1320-h743-no" alt=""/></a></figure>



<h2 class="wp-block-heading">Baarle-Hertog / Baarle-Nassau</h2>



<p class="wp-block-paragraph">After leaving Rotterdam, we headed towards Belgium &#8211; well kind of.  The cool thing about Baarle-Hertog / Baarle-Nassau is that a border between Belgium and the Netherlands cuts right through the town in seemingly random spots.  You could just be walking down the street along the main avenue of the town and randomly end up in the Netherlands, then in Belgium, and then back again.</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPmfqTMBL458s7ETrZDERChHcGzGAUKnHs7otUH086Kde9-2ky_tCTF8tHYBPXE8Q/photo/AF1QipPwtnk4Z3mRcw8iJ7hpg8d_58qMT0OsqmBnDtJm?key=YW9aTkhqU29FR24wNWZoNW1pWV83aWk3a2VESGRB" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh3.googleusercontent.com/BEZfN4qL1q5zxtYl62FEnwRyPHXPfyAnDzjRRh4cwVy_COphQERYNQlYYHGj_WMuh0Rw296-D4pskOsWtEQydkrU8z29MNGvJGSB6ox_U_mBPPufUEUS1EB7vU6rK1zundCC10eUuE1ZNhmoMWgmJHihcfGfPaHnUT2iP56spUU7A_LjvblRowmHNDO_vKA3QwIPuyM7pd-LCf4maihXSycnWZdFytl54Kkqeflz_tFxRAKYJRxkq4Nw5Ui69_UScdd5YXROFr8c98RuIudSa9F1KSyau9DgUJaH7FXvSBSAoXFFJXuz56PZok1LaboZT76jgp3akYmhkHfXnnvl0tJmoU8ngICosSbUIHXfxnIQeFmvGxARzUUnYAxvYNc2J6rluFb9zZF4Z_cAg-byNWMWkF90r0abnsXapjHGu1t7g-SydjRBYLnWZMdYSIxvzJ70wu_ay_usjSQQl0H9yiuCkmqjyMIDIrYF7MMO_G9WIiejmbmXlzYDkbepHWf53T0clpTkT88DCsjQUf0c8D6VCrY0eD4MyNcp4_sx9zOEr8oUgKMid3l6CV_7KJao4G6dKev2_XVu4htps_U07CEa7TBzGhDq-VizuxJnK64JVjF0yZQ_PXjTfRtp6DVr5LSyna4nqR8fLyrDLZ4IdDJSf0P08fHvrNUx7tZGMUXDY7v0qGRQCphTquoF6TSpHsnKdbU7IgvYARwXEdRE_mMIqFVkzJceQ2jPY2dnkiNHpFeluQ=w1320-h743-no" alt=""/></a></figure>



<p class="wp-block-paragraph">On our way out of the town, we noticed lane lines that we hadn&#8217;t seen before in North America.  At first, we didn&#8217;t know why the lines were painted like that, but upon closer analysis, the road is simply a road shared by both cars and bicycles and the red section shows where the bikes should be, and the grey area is the section where cars should be when passing a bicycle.  By allocating a space for the car to pass, the cars don&#8217;t get too close to the cyclists, thus reducing the risk of an accident.  How cool!</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPmfqTMBL458s7ETrZDERChHcGzGAUKnHs7otUH086Kde9-2ky_tCTF8tHYBPXE8Q/photo/AF1QipNZW1jnZxYN2EOlhmfGlaOyy8mTBkm2vMFcU3q-?key=YW9aTkhqU29FR24wNWZoNW1pWV83aWk3a2VESGRB" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh3.googleusercontent.com/vJd0Un-ZDSRKM7z0XpZPsx61703F3ZEXrXsapRjeUHvMUl5mbrt6HhXQHyFqQ1hr-UdcIMDpWOt6lMUyqBX2rNOZyyoH2RD2Jc7ajOoXTUwEh51-L6o1GsNifb7oiHjHKJw1MJZt05GlTgWCzpLc4yWkbQlJj91XVyGrGRkM5Sh_IslN-pfq7n7AbmWaFi_g5eG2Zh1P08dKuSL60AJeY9a-PTn1k0RWWGg2kwbDjokDDnxQOpxBDpaSVFxiptHCAuv8UCKOrsR-r7PFbA9w4DMdXeeFNudokhT6bvo6zAGn-WsN7Ph7ayTqrjTlONBnR_Eb7ANfyPsTIFmIW-f3FrKzXpXYgP99iBMypOF_noI0mBaBKeJPfnpbQFIDkY6sKGXNFQQPR5VSgT_-nmqtAzK6Q1X4PY4aEr_jC3ECO1ywYqrWA4SV_TG0pkRIa-oBLNV_jdMAVO6ASdHS5Eg1TFyysiYrRAIaM1IQiDEatrYF4FMneVGTFaNxyjN_KjqhLqbGzmRpfrMEnK3wixR8nlMZw8Dc5yM2kTKPg8_I5WMb1YhRy9101u_XcDpz1hI8l2Mtk0obM9jAsf-SnQj3UsGE_8IADGcPMYqO0M1Wxcm4i-GytP7EJ8fndh__iCla_vSjtNpAlut9FXVz-j9HCnVnc_AGvemibJH04gVFaLW6L_u9muJFMUT4faLoYqMrKAgRetusEtg-PalU3HSzjc30fJLVM0KnFUtEVSiFiNrbkMQBBg=w1320-h743-no" alt=""/></a></figure>



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



<p class="wp-block-paragraph">Soon, we were fully in Belgium in the city of Antwerp and took a stroll in the old town square.  The buildings here look pretty Belgian because of the way the roof inclines &#8211; it&#8217;s as if there are little steps as opposed to a smooth incline (so-called stepped gables).</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipP38KA-KqaEaraSg5wIrnnydu3iYoTKpFBMix62mdxMxNObltEb8m5Ki2EYTnOllA/photo/AF1QipOWeDPTN8Xyk96RlS1Ubp8ketPuMq9iwxbE6vpg?key=czZ3RFltUE9YQUNGNDFMZEJMQldDNWs2NTJVQVN3" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://lh3.googleusercontent.com/a2dgAn_O-fvtcF9X-LcY5tJ3VoTqwkB3MAaBu3pJR5mBcb7Sm2Knk0tEcyZygyQ8_2ofzOsnWPpsfeFiCXUT5H4mj5RbYZ2F7D7n0tHutrtKb1loIXmuXzA6T6ADnVkqrkIdhT_Lk0ytkB0DZniotTJTPKYLuTkKIonNY69Y-8i55YvrH2BDDBAGsHN3KOg1cC_uNUH47e4KWznAO7XPtybgsOf-d07_Sph8Tim4_FnWvFdZcOPhtPGcj662wonv6ABUfCIAR0hN_shJFvGYEj2_GDPv5uJISrWRtgf5QJ1Bm49v5l0AfFrh8nho6Q9cRmMZqJMFpfyOBWwRVeQUWhjDoRNde4DJYBgJAdisM89niJBa6OJM82RiC6ZL8ktdzohyJOJWFEf0IYkiDYc3OlWpCP2DkrGCnbYOxpCqq7dpgSRycjTn9RKzKD1jQZxjQEdGJm1AlA56dOE_BESSljVXTJASuymV1f7kDgHg-8F1KSJiTwheHVNfD21cuuIlnWpGNIjf-vmu6LOiCa2M6uFJI6Idia1PEOEyxIYLJyEsu86V1r2_6TISvFfd2lzQ4rKGkANa5HklhannmQfQNE4rKR69eq5BFiOvvOdlk4nMpPu5NN9RGaOkuzDmf3IrXcQn1QZBgvDK3qnUI2IKI9EnrBFAY7SqLim9ZBsQC_usAHGqF4hdlVS4Hs_hesfJkgBQsjTqp4srcs7RZ1AZilAM8QuAatVaT4ylheRGUjCwUCpdSg=w1320-h743-no" alt=""/></a></figure>



<p class="wp-block-paragraph">This concludes our successful first day of the trip!  On day two, we will travel to Oosterscheldekering, Ypres, and Dunkirk.</p>



<p class="wp-block-paragraph">Photos</p>



<ul class="wp-block-list"><li><a rel="noreferrer noopener" aria-label="The Hague (opens in a new tab)" href="https://photos.app.goo.gl/JbpticPnPqJsCJ4R7" target="_blank">The Hague</a></li><li><a href="https://photos.google.com/share/AF1QipOH1Yw9vyAd0tPVU-ibmC_3CSDT6SyzoIIOtWQ6C_z9NvFnPWU0xa6UGHc2jqImOg?key=WWV5bnlzbzRfSm5jb19yQk5La0ROcTMzMkxMR1dn" target="_blank" rel="noreferrer noopener" aria-label="Rotterdam (opens in a new tab)">Rotterdam</a></li><li><a href="https://photos.google.com/share/AF1QipPmfqTMBL458s7ETrZDERChHcGzGAUKnHs7otUH086Kde9-2ky_tCTF8tHYBPXE8Q?key=YW9aTkhqU29FR24wNWZoNW1pWV83aWk3a2VESGRB" target="_blank" rel="noreferrer noopener" aria-label="Baarle-Hertog (opens in a new tab)">Baarle-Hertog</a></li><li><a rel="noreferrer noopener" aria-label="Antwerp (opens in a new tab)" href="https://photos.google.com/share/AF1QipP38KA-KqaEaraSg5wIrnnydu3iYoTKpFBMix62mdxMxNObltEb8m5Ki2EYTnOllA?key=czZ3RFltUE9YQUNGNDFMZEJMQldDNWs2NTJVQVN3" target="_blank">Antwerp</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.henrypoon.com/blog/2020/03/07/european-road-trip-day-1-the-hague-rotterdam-baarle-hertog-antwerp/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4843</post-id>	</item>
		<item>
		<title>Installing Seafile with Docker and Apache 2</title>
		<link>https://blog.henrypoon.com/blog/2019/06/12/installing-seafile-with-docker-and-apache-2/</link>
					<comments>https://blog.henrypoon.com/blog/2019/06/12/installing-seafile-with-docker-and-apache-2/#respond</comments>
		
		<dc:creator><![CDATA[hp]]></dc:creator>
		<pubDate>Wed, 12 Jun 2019 07:12:42 +0000</pubDate>
				<category><![CDATA[computer stuff]]></category>
		<category><![CDATA[engineering]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[9]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[apache 2]]></category>
		<category><![CDATA[Apache HTTP Server]]></category>
		<category><![CDATA[Bash]]></category>
		<category><![CDATA[Chan]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[cloud storage]]></category>
		<category><![CDATA[COM]]></category>
		<category><![CDATA[D]]></category>
		<category><![CDATA[Dia]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Download]]></category>
		<category><![CDATA[DROPBOX]]></category>
		<category><![CDATA[EAR]]></category>
		<category><![CDATA[Email]]></category>
		<category><![CDATA[File sharing]]></category>
		<category><![CDATA[Free software]]></category>
		<category><![CDATA[Gmail]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[Gran]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[IOS]]></category>
		<category><![CDATA[It]]></category>
		<category><![CDATA[Lie]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Matt]]></category>
		<category><![CDATA[Nap]]></category>
		<category><![CDATA[Net]]></category>
		<category><![CDATA[Opera]]></category>
		<category><![CDATA[OS-level virtualisation]]></category>
		<category><![CDATA[Page]]></category>
		<category><![CDATA[Password]]></category>
		<category><![CDATA[PATH]]></category>
		<category><![CDATA[Port]]></category>
		<category><![CDATA[Reference]]></category>
		<category><![CDATA[Run]]></category>
		<category><![CDATA[seafile]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[System software]]></category>
		<category><![CDATA[Systemd]]></category>
		<category><![CDATA[Thou]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[URL]]></category>
		<category><![CDATA[USR]]></category>
		<category><![CDATA[ypres]]></category>
		<category><![CDATA[Z]]></category>
		<guid isPermaLink="false">https://blog.henrypoon.com/?p=3509</guid>

					<description><![CDATA[Seafile is an open source file sharing software that allows its users to setup their own cloud storage at home. Think Dropbox, but self-hosted. This post is about deploying an instance of Seafile using Docker on a non-standard port (i.e. not 80 and 443). The reason to deploy the app on a non-standard port is [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><a rel="noreferrer noopener" aria-label="Seafile (opens in a new tab)" href="https://www.seafile.com" target="_blank">Seafile</a> is an open source file sharing software that allows its users to setup their own cloud storage at home.  Think Dropbox, but self-hosted.</p>



<p class="wp-block-paragraph">This post is about deploying an instance of Seafile using Docker on a non-standard port (i.e. not 80 and 443).  The reason to deploy the app on a non-standard port is usually because there is already another webserver running on that port (in my case Apache 2).  In such scenarios, it is necessary to set up a reverse proxy so the Seafile port can be exposed by Apache on ports 80/443.  Under typical circumstances, deploying Seafile on a standard port would mean that the app would host itself without the need for Apache 2 at all.  This post also assumes Ubuntu 16.04 as the operating system, but in theory should apply to other Linux OS&#8217;s.</p>



<p class="has-text-align-left wp-block-paragraph">The process can be split into multiple parts:</p>



<ol class="wp-block-list"><li>Setup Docker</li><li>Deploy Seafile</li><li>Configure Apache 2</li><li>Setup systemd</li><li>Setup e-mail (optional)</li><li>Backing up the image</li><li>Troubleshooting</li></ol>



<h2 class="wp-block-heading">Setup Docker</h2>



<p class="wp-block-paragraph">This guide won&#8217;t go into depth on how to setup Docker, but rather the setup guide and more information about what Docker is can be found here: <a rel="noreferrer noopener" aria-label="https://docs.docker.com/get-started/ (opens in a new tab)" href="https://docs.docker.com/get-started/" target="_blank">https://docs.docker.com/get-started/</a></p>



<h2 class="wp-block-heading">Deploy Seafile</h2>



<p class="wp-block-paragraph">The key page in the Seafile documentation for deploying Seafile within Docker can be found here: <a href="https://github.com/haiwen/seafile-docker" target="_blank" rel="noreferrer noopener">https://github.com/haiwen/seafile-docker</a>.  The command I used is as follows:</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">docker run -d --name seafile \
  -e SEAFILE_SERVER_HOSTNAME=seafile.example.com \
  -e SEAFILE_ADMIN_EMAIL=me@example.com \
  -e SEAFILE_ADMIN_PASSWORD=a_very_secret_password \
  -v /opt/seafile-data:/shared \
  -p 8000:80 \
  seafileltd/seafile:latest</code></pre>



<p class="wp-block-paragraph">I recommend setting up Seafile with an actual secret password because it&#8217;s not easy to change once it&#8217;s set up.</p>



<p class="wp-block-paragraph">Note that the port argument shows 8000:80.  It means that Docker will use the host port 8000 and the container will use port 80 &#8211; meaning that using Docker will interpret requests from my host OS on port 8000 as requests on port 80 in the container.  8000 was used on my setup because port 80 was already used. </p>



<p class="wp-block-paragraph">Once the command is executed, the necessary files will be downloaded and the container will start and will be accessible on port 8000.</p>



<p class="wp-block-paragraph">There is also an option to setup Seafile with an SSL cert from <a rel="noreferrer noopener" aria-label="Let's Encrypt (opens in a new tab)" href="https://letsencrypt.org/" target="_blank">Let&#8217;s Encrypt</a>, but I didn&#8217;t do this because I already had a cert that I wanted to reuse.</p>



<p class="wp-block-paragraph">Once the server is up, navigate to <a href="#">https://seafile.example.com/sys/settings/</a> and change SERVICE_URL and FILE_SERVER_URL to match your domain name.</p>



<h2 class="wp-block-heading">Configure Apache 2</h2>



<p class="wp-block-paragraph">Adding a reverse proxy on Apache 2 will allow Apache 2 to route requests to port 8000, which will go to port 80 in the container.  The main reference for this section is this: <a href="https://manual.seafile.com/deploy/deploy_with_apache/" target="_blank" rel="noreferrer noopener">https://manual.seafile.com/deploy/deploy_with_apache/</a>.  This is done by adding a new site to Apache 2.  The following configuration assumes that a LetsEncrypt SSL certificate is used.</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">cd /etc/apache2/sites-available
sudo nano seafile.conf</code></pre>



<pre class="wp-block-code"><code lang="apacheconf" class="language-apacheconf">&lt;IfModule mod_ssl.c&gt;
&lt;VirtualHost *:443&gt;
    ServerName seafile.example.com
    ServerAdmin me@example.com

    RewriteEngine On

    # ModSecurity does not process requests.  There is a hard limit of 1 GB
    # with ModSecurity.
    SecRuleEngine Off

    # Whitelist internal IPs for mod_evasive
    DOSWhitelist 192.168.1.*

    &lt;Location /media&gt;
        Require all granted
    &lt;/Location&gt;

    # Stuff for seafile server
    ProxyPass /seafhttp http://127.0.0.1:8082
    ProxyPassReverse /seafhttp http://127.0.0.1:8082
    RewriteRule ^/seafhttp - [QSA,L]

    # Stuff for seahub
    SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
    ProxyPreserveHost On
    ProxyPass / http://127.0.0.1:8000/
    ProxyPassReverse / http://127.0.0.1:8000/

    ErrorLog ${APACHE_LOG_DIR}/seafile_error.log
    CustomLog ${APACHE_LOG_DIR}/seafile_access.log combined

    Include /etc/letsencrypt/options-ssl-apache.conf

    SSLCertificateFile /path/to/cert/file.pem
    SSLCertificateKeyFile /path/to/cert/key/file.pem
&lt;/VirtualHost&gt;
&lt;/IfModule&gt;
</code></pre>



<p class="wp-block-paragraph">I&#8217;ve added my local domain to the whitelist so that mod_evasive doesn&#8217;t think my local host is a threat.</p>



<p class="wp-block-paragraph">There are two sets of ProxyPass and ProxyPassReverse lines.  The reason for this is that Seafile is split up into Seahub and Seafile, where one uses port 8082 (by default), while the other uses 8000.  These two lines are essentially what allows Apache to read requests from port 443 and pass them on to the container.</p>



<p class="wp-block-paragraph">Once the file is saved, execute the following</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">sudo a2ensite seafile.conf
sudo service apache2 reload</code></pre>



<p class="wp-block-paragraph">Navigating to the site at the Apache 2 defined port should now load Seafile without having to go to port 8000.</p>



<h2 class="wp-block-heading">Setup systemd</h2>



<p class="wp-block-paragraph">systemd allows the Docker container to be started up on boot, and be controlled like this:</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">sudo service seafile start/stop/restart</code></pre>



<p class="wp-block-paragraph">The configuration is as follows:</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">sudo nano /etc/systemd/system/seafile.service</code></pre>



<pre class="wp-block-code"><code lang="properties" class="language-properties">[Unit]
Description=Seafile Server
After=network.target mysql.service

[Service]
Type=oneshot
ExecStart=/usr/bin/docker container start seafile
ExecStop=/usr/bin/docker container stop seafile
ExecReload=/usr/bin/docker container restart seafile
RemainAfterExit=yes
User=root
Group=root

[Install]
WantedBy=multi-user.target</code></pre>



<p class="wp-block-paragraph">Once the configuration is saved, shut off the existing running instance of Seafile and then let systemd start it up for you.</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">sudo systemctl daemon-reload
sudo service seafile start</code></pre>



<p class="wp-block-paragraph">At this point, Seafile should start automatically on boot, with Apache 2 doing a reverse proxy to the true Seafile port.</p>



<h2 class="wp-block-heading">Setup e-mail (optional)</h2>



<p class="wp-block-paragraph">Optionally, Seafile can be configured to send e-mails.  The reference is here: <a href="https://manual.seafile.com/config/sending_email/" target="_blank" rel="noreferrer noopener">https://manual.seafile.com/config/sending_email/</a>.  The config file should be under:</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">/opt/seafile-data/seafile/conf/seahub_settings.py</code></pre>



<p class="wp-block-paragraph">I happen to be using Gmail SMTP, so at the end of the file I&#8217;ve added</p>



<pre class="wp-block-code"><code lang="properties" class="language-properties">EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'me@example.com'
EMAIL_HOST_PASSWORD = 'password'
EMAIL_PORT = 587
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
SERVER_EMAIL = EMAIL_HOST_USER</code></pre>



<h2 class="wp-block-heading">Backing up the image</h2>



<p class="wp-block-paragraph">After setting everything up, you&#8217;ll probably want to backup the Docker image.  First, print out the list of running containers</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">sudo docker ps</code></pre>



<p class="wp-block-paragraph">Then take a snapshot of the current running state:</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">docker commit -p &lt;container ID&gt; &lt;whatever you want to call this snapshot&gt;</code></pre>



<p class="wp-block-paragraph">Running this command lists all the images and should show this newly saved image:</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">sudo docker images</code></pre>



<p class="wp-block-paragraph">I don&#8217;t have a private docker repository, so I saved the image to the disk and backed up the file by doing the below.  Just make sure to actually move the image to an actual backup location.</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">sudo docker save -o &lt;whatever path you want&gt;/&lt;filename&gt;.tar &lt;the name used earlier&gt;</code></pre>



<p class="wp-block-paragraph">The image should be backed up now.  To restore the image, it&#8217;s a matter of running this:</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">sudo docker load -i &lt;path to the backup file&gt;</code></pre>



<p class="wp-block-paragraph">Listing the images as above should show that the image was successfully loaded.  Running this starts it back up again.</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">sudo docker run &lt;container name&gt;</code></pre>



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



<p class="wp-block-paragraph">Seafile logs can be helpful if it doesn&#8217;t start up correctly.  These can be found at:</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">/opt/seafile-data/logs/seafile</code></pre>



<p class="wp-block-paragraph">There may be a need to ssh into the Docker container.  The command for that is:</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">sudo docker exec -it seafile /bin/bash</code></pre>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.henrypoon.com/blog/2019/06/12/installing-seafile-with-docker-and-apache-2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3509</post-id>	</item>
		<item>
		<title>Parliament of Canada Tour</title>
		<link>https://blog.henrypoon.com/blog/2012/07/17/parliament-of-canada-tour/</link>
					<comments>https://blog.henrypoon.com/blog/2012/07/17/parliament-of-canada-tour/#respond</comments>
		
		<dc:creator><![CDATA[hp]]></dc:creator>
		<pubDate>Wed, 18 Jul 2012 02:01:59 +0000</pubDate>
				<category><![CDATA[north america]]></category>
		<category><![CDATA[9]]></category>
		<category><![CDATA[Canada]]></category>
		<category><![CDATA[Castle]]></category>
		<category><![CDATA[Chan]]></category>
		<category><![CDATA[COM]]></category>
		<category><![CDATA[Const]]></category>
		<category><![CDATA[Construction]]></category>
		<category><![CDATA[D]]></category>
		<category><![CDATA[Dia]]></category>
		<category><![CDATA[EAR]]></category>
		<category><![CDATA[Euro]]></category>
		<category><![CDATA[Europe]]></category>
		<category><![CDATA[first world war]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[Government]]></category>
		<category><![CDATA[Government of Canada]]></category>
		<category><![CDATA[Hole]]></category>
		<category><![CDATA[House of Commons of Canada]]></category>
		<category><![CDATA[IME]]></category>
		<category><![CDATA[It]]></category>
		<category><![CDATA[John McCrae]]></category>
		<category><![CDATA[Legislatures]]></category>
		<category><![CDATA[Library of Parliament]]></category>
		<category><![CDATA[Lost]]></category>
		<category><![CDATA[Mind]]></category>
		<category><![CDATA[Ottawa]]></category>
		<category><![CDATA[Over]]></category>
		<category><![CDATA[Page]]></category>
		<category><![CDATA[Parliament]]></category>
		<category><![CDATA[Parliament Hill]]></category>
		<category><![CDATA[Parliament of Canada]]></category>
		<category><![CDATA[Peace Tower]]></category>
		<category><![CDATA[Pho]]></category>
		<category><![CDATA[Political systems]]></category>
		<category><![CDATA[RAR]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Senate of Canada]]></category>
		<category><![CDATA[Sleep]]></category>
		<category><![CDATA[STR]]></category>
		<category><![CDATA[Struct]]></category>
		<category><![CDATA[The Go]]></category>
		<category><![CDATA[Thou]]></category>
		<category><![CDATA[Thousand Islands]]></category>
		<category><![CDATA[Time]]></category>
		<category><![CDATA[UNC]]></category>
		<category><![CDATA[United States Senate]]></category>
		<category><![CDATA[Vol]]></category>
		<category><![CDATA[War memorial]]></category>
		<category><![CDATA[Westminster system]]></category>
		<category><![CDATA[World War I]]></category>
		<category><![CDATA[ypres]]></category>
		<guid isPermaLink="false">http://henrypoon.mooo.com/blog/parliament-of-canada-tour</guid>

					<description><![CDATA[With a good night&#8217;s sleep (unlike the day before), we went back to Parliament Hill for the tour of the Parliament building.  We got the 11:20 tour, so there was some time to see other things in the mean time.  It just so happened that the Changing of the Guard show was on.  This time, [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">With a good night&#8217;s sleep (unlike <a rel="noreferrer noopener" href="http://henrypoon.wordpress.com/2012/07/16/canada-day-at-the-capital/" target="_blank">the day before</a>), we went back to Parliament Hill for the tour of the Parliament building.  We got the 11:20 tour, so there was some time to see other things in the mean time.  It just so happened that the <a class="zem_slink" title="Guard Mounting" rel="wikipedia noopener noreferrer" href="http://en.wikipedia.org/wiki/Guard_Mounting" target="_blank">Changing of the Guard</a> show was on.  This time, there were less people, so we actually got to see something.</p>



<h1 class="wp-block-heading">Changing of the Guard</h1>



<p class="wp-block-paragraph">The guards marched from the National Defense Headquarters to Parliament Hill (about 1.2 km). &nbsp;The guards marched wearing their uniforms in some 30 degree Celsius weather. &nbsp;Up close, sweat on their face could be seen dripping down. &nbsp;They marched in playing their instruments. &nbsp;The soldiers went in formation and each soldier&#8217;s attire was inspected to ensure that they were each fit to stand guard. &nbsp;This process took about 30-45 minutes. &nbsp;It was cool seeing these guards dressed up in this kind of uniform. &nbsp;I didn&#8217;t even know Canada had these.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://picasaweb.google.com/117972094293741244551/Ottawa#5762601169612118562" target="_blank" rel="noopener noreferrer"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh3.googleusercontent.com/-1fBv6haje4k/T_jfO3D7GiI/AAAAAAAAJGM/_fX11lXtJYE/s1024/IMG_6830.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">Peace Tower</h1>



<p class="wp-block-paragraph">After the show, we went up to the Peace Tower, the clock tower in front of the building. &nbsp;At the top, we could see pretty much all of the Ottawa-Gatineau area. &nbsp;Ottawa has a quite even balance of trees, buildings, and water. &nbsp;I don&#8217;t really know how to define it, but the view just seems more interesting that just seeing endless buildings. &nbsp;I suppose having some green and blue makes the picture more appealing to the eye. &nbsp;Bridges across the river adds a nice touch. &nbsp;There also aren&#8217;t a lot of tall builds either, which definitely helps in keeping the view clear.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://picasaweb.google.com/117972094293741244551/Ottawa#5762601231693022018" target="_blank" rel="noopener noreferrer"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh4.googleusercontent.com/-esql0Ecj8BM/T_jfSeVKg0I/AAAAAAAAJG0/Zfm_G0sl-zk/s1024/IMG_6835.JPG?w=1280&#038;ssl=1" alt=""/></a></figure>
</div>

<div class="wp-block-image">
<figure class="aligncenter"><a href="https://picasaweb.google.com/117972094293741244551/Ottawa#5762601263369781874" target="_blank" rel="noopener noreferrer"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh5.googleusercontent.com/-C3cnZT5g4-c/T_jfUUVfgnI/AAAAAAAAJHM/DkFSi7Y_EFY/s1024/IMG_6838.JPG?w=1280&#038;ssl=1" alt=""/></a></figure>
</div>


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



<p class="has-text-align-left wp-block-paragraph">Originally, we wouldn&#8217;t have been able to go up the Peace Tower and come back in time for the tour, but my cousin said that when the tour group comes in, they would have to pass through security. &nbsp;We had already done that to go up the Peace Tower, and so after we came down the tower, we stayed in the secured area and met up with the tour group once they came in through security.</p>



<h1 class="wp-block-heading">The Memorial Chamber</h1>



<p class="wp-block-paragraph">Just below the Peace Tower was the Memorial Chamber. &nbsp;In this chamber, there is a war memorial. &nbsp;The significance of this one is that there is a book that has the list of names 66 655 Canadians who lost their lives during the First World War. &nbsp;A second book was also added for the Second World War. &nbsp;Every day at 11am, coinciding with the time that the First World War ended, a page is turned. &nbsp;This allows for each page in the book to appear at least once during the whole year.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://picasaweb.google.com/117972094293741244551/Ottawa#5762601278492851922" target="_blank" rel="noopener noreferrer"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh4.googleusercontent.com/-eXuCdKCp7gg/T_jfVMrHPtI/AAAAAAAAJHU/9T1TnjCA0RE/s1024/IMG_6839.JPG?w=1280&#038;ssl=1" alt=""/></a></figure>
</div>


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



<p class="has-text-align-left wp-block-paragraph">Inscribed on the walls in this chamber is the famous poem In Flanders Fields by <a class="zem_slink" title="John McCrae" href="http://en.wikipedia.org/wiki/John_McCrae" target="_blank" rel="wikipedia noopener noreferrer">John McCrae</a> along with the locations where battles occurred such as Ypres, Passchendaele, Cambrai, Somme, among others.</p>



<h1 class="wp-block-heading">The House of Commons</h1>



<p class="wp-block-paragraph">The House of Commons is where the elected <a class="zem_slink" title="Member of Parliament" href="http://en.wikipedia.org/wiki/Member_of_Parliament" target="_blank" rel="wikipedia noopener noreferrer">Members of Parliament</a> go whenever there is a meeting. &nbsp;This is where major government&nbsp;legislation&nbsp;is introduced. &nbsp;Whenever there is a meeting, this is the chance for all the elected members representing their political parties get the chance to debate topics such as how government money should be spent. &nbsp;At the top of the room, there are additional seats for any spectators for whenever parliament is in session.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://picasaweb.google.com/117972094293741244551/Ottawa#5762601322677801794" target="_blank" rel="noopener noreferrer"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh4.googleusercontent.com/-xtJc266HNDA/T_jfXxRoE0I/AAAAAAAAJH8/i_5sleifCog/s1024/IMG_6844.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">Library of Parliament</h1>



<p class="wp-block-paragraph">In terms of old libraries, this one is probably as old as it gets in Canada. &nbsp;This is a key information source for the Canadian Parliament. &nbsp;Occasionally, MP&#8217;s will come here to do research on various subjects. &nbsp;In 1916, there was a fire that burned down the parliament except this room. &nbsp;Therefore, this is the oldest part of the entire building (constructed in 1876). &nbsp;Naturally, architectural style used in this building is a lot different that the newer part of the building.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://picasaweb.google.com/117972094293741244551/Ottawa#5762601359228008786" target="_blank" rel="noopener noreferrer"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh3.googleusercontent.com/-0KBcByJUjB0/T_jfZ5b3-VI/AAAAAAAAJIU/ZEKIBsVM46o/s720/IMG_6847.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">The Senate</h1>



<p class="wp-block-paragraph">The Senate meet in a separate location within the parliament. &nbsp;Here, senators examine bills proposed by the Government. &nbsp; When the senate is in session, senators debate the bills and bills must pass the senate in order to become a law. &nbsp;A special thing to note about this room is that because reconstruction of the parliament building began in 1916, the general mood of the population was that they were sick of war. &nbsp;Therefore, much of the artwork in the room revolves around this. &nbsp;Paintings of the war hang above the seats in the senate. &nbsp;They are a constant reminder of the horrors of war.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://picasaweb.google.com/117972094293741244551/Ottawa#5762601414337710658" target="_blank" rel="noopener noreferrer"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh4.googleusercontent.com/-C7oqMzG9Kfc/T_jfdGvDSkI/AAAAAAAAJI8/GcSti_2mvRE/s1024/IMG_6852.JPG?w=1280&#038;ssl=1" alt=""/></a></figure>
</div>

<div class="wp-block-image">
<figure class="aligncenter"><a href="https://picasaweb.google.com/117972094293741244551/Ottawa#5762601422155280402" target="_blank" rel="noopener noreferrer"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh4.googleusercontent.com/-_oa9qQiyE1A/T_jfdj258BI/AAAAAAAAJJE/WtS6rfL91Ac/s1024/IMG_6853.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">Next Destination&#8230;Thousand Islands!</h1>



<p class="wp-block-paragraph">After the tour, we had lunch and then we made our way to a place called <a rel="noreferrer noopener" href="http://henrypoon.wordpress.com/2012/07/18/gananoque-rib-fest-and-boat-tour-of-thousand-islands/" target="_blank">Thousand Islands</a> for a boat tour.  I heard that there was an actual castle on one of those islands.  I didn&#8217;t even know Canada had actual castles.  I always though castles were a European thing.</p>



<p class="wp-block-paragraph">More photos <a href="https://photos.google.com/share/AF1QipNc2rapZrZzQRQMQ3TDhBizcPXqa6gqeFxkUgoAuagGMaQXh4_0Wu4uwHcUYSXeCA?key=c3hmQjZjUVhQVkZRSmkxUlp3cjZTYUlXQ3J2dGRR" data-type="URL" data-id="https://photos.google.com/share/AF1QipNc2rapZrZzQRQMQ3TDhBizcPXqa6gqeFxkUgoAuagGMaQXh4_0Wu4uwHcUYSXeCA?key=c3hmQjZjUVhQVkZRSmkxUlp3cjZTYUlXQ3J2dGRR" target="_blank" rel="noreferrer noopener">here</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.henrypoon.com/blog/2012/07/17/parliament-of-canada-tour/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1496</post-id>	</item>
		<item>
		<title>Description of C++ Keywords</title>
		<link>https://blog.henrypoon.com/blog/2010/01/18/description-of-c-keywords/</link>
					<comments>https://blog.henrypoon.com/blog/2010/01/18/description-of-c-keywords/#comments</comments>
		
		<dc:creator><![CDATA[hp]]></dc:creator>
		<pubDate>Tue, 19 Jan 2010 04:44:44 +0000</pubDate>
				<category><![CDATA[computer stuff]]></category>
		<category><![CDATA[9]]></category>
		<category><![CDATA[Assembly language]]></category>
		<category><![CDATA[British Columbia]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[C++ classes]]></category>
		<category><![CDATA[Chan]]></category>
		<category><![CDATA[COM]]></category>
		<category><![CDATA[Compilers]]></category>
		<category><![CDATA[Computer languages]]></category>
		<category><![CDATA[Const]]></category>
		<category><![CDATA[D]]></category>
		<category><![CDATA[Data types]]></category>
		<category><![CDATA[Dia]]></category>
		<category><![CDATA[EAR]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[IME]]></category>
		<category><![CDATA[ise]]></category>
		<category><![CDATA[It]]></category>
		<category><![CDATA[Language]]></category>
		<category><![CDATA[Lie]]></category>
		<category><![CDATA[Monday]]></category>
		<category><![CDATA[Nature]]></category>
		<category><![CDATA[Object]]></category>
		<category><![CDATA[Opera]]></category>
		<category><![CDATA[Outside]]></category>
		<category><![CDATA[Over]]></category>
		<category><![CDATA[Parameter]]></category>
		<category><![CDATA[Port]]></category>
		<category><![CDATA[Programming languages]]></category>
		<category><![CDATA[RAR]]></category>
		<category><![CDATA[Reference]]></category>
		<category><![CDATA[Run]]></category>
		<category><![CDATA[Scope]]></category>
		<category><![CDATA[Sizeof]]></category>
		<category><![CDATA[Speed]]></category>
		<category><![CDATA[STR]]></category>
		<category><![CDATA[Struct]]></category>
		<category><![CDATA[Sunday]]></category>
		<category><![CDATA[Template]]></category>
		<category><![CDATA[Thou]]></category>
		<category><![CDATA[Time]]></category>
		<category><![CDATA[Typedef]]></category>
		<category><![CDATA[Typename]]></category>
		<category><![CDATA[UNC]]></category>
		<category><![CDATA[University of British Columbia]]></category>
		<category><![CDATA[Variable]]></category>
		<category><![CDATA[Virtual function]]></category>
		<category><![CDATA[Vol]]></category>
		<category><![CDATA[Week]]></category>
		<category><![CDATA[Words]]></category>
		<category><![CDATA[ypres]]></category>
		<category><![CDATA[Z]]></category>
		<guid isPermaLink="false">http://henrypoon.mooo.com/blog/description-of-c-keywords</guid>

					<description><![CDATA[Source: The University of British Columbia asm (seldom used) Used to insert assembly language commands directly into the code. This function is very tricky to use even for professional programmers and can cause portability issues. asm(&#8220;instruction&#8221;); auto Used to declare local variables but is purely optional. auto int i = 5; The previous declaration thus [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Source: The University of British Columbia</p>
<p><strong><code>asm</code></strong> (seldom used)</p>
<ul>
<li>Used to insert assembly language commands directly into the code. This function      is very tricky to use even for professional programmers and can cause portability      issues.<br />
<blockquote><p>asm(&#8220;instruction&#8221;);</p></blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="auto"></a>auto</code></strong></p>
<ul>
<li>Used to declare local variables but is purely optional.<br />
<blockquote><p>auto int i = 5;</p></blockquote>
<p>The previous declaration thus has identical meaning to the following declaration.</p>
<blockquote><p>int i = 5;</p></blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="bool"></a>bool</code></strong> (C++ only)</p>
<ul>
<li>Used to declare a Boolean logic variable; a variable that can have the value      true or false. This variable type      is normally 8 bits (1 byte) long.<br />
<blockquote><p>bool t = true;</p></blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="break"></a>break</code></strong></p>
<ul>
<li>Used to break out of a loop independant of the loop condition. Also, used      to finish a switch statement, keeping the program from      &#8220;falling through&#8221; to the next case in the code.<br />
<blockquote>
<pre>while(x &lt; 100)
{
    if(x &lt; 0)
         break;
    cout &lt;&lt; x &lt;&lt; endl;
    x++;
}
</pre>
</blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="case"></a>case</code></strong></p>
<ul>
<li>Used as a label to declare a single test in a switch statement.<br />
<blockquote>
<pre>case 1: command1;
        command2;
        break;
</pre>
</blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="catch"></a>catch</code></strong> (C++ only)</p>
<ul>
<li>Used to handle exceptions generated by a throw statement.<br />
<blockquote>
<pre>catch(const char* e)
{
    //handle exception
}
</pre>
</blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="char"></a>char</code></strong></p>
<ul>
<li>Used to declare character variables. This variable type is normally 8 bits      (1 byte) long.<br />
<blockquote><p>char c = &#8216;h&#8217;;</p></blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="class"></a>class</code></strong> (C++ only)</p>
<ul>
<li>Used to define a new class. Members of the class are private by default unless listed under the protected or public labels.<br />
<blockquote>
<pre>class class-name : inheritance-list
{
    public:
        public-members-list;
    protected:
        protected-members-list;
    private:
        private-members-list;
} object-list;
</pre>
</blockquote>
<ul>
<li>class-name is the name of the class that is being created.</li>
<li>inheritance-list is the optional list of classes inherited by the new          class.</li>
<li>public-members-list is the list of public members          of the class.</li>
<li>protected-members-list is the list of protected members of the class.</li>
<li>private-members-list is the list of private members          of the class.</li>
<li>object-list is an optional list used to immediately instantiate 1 or          more instances of the class.</li>
</ul>
<blockquote>
<pre>class Date
{
public:
    void display();

private:
    int day;
    int month;
    int year;
}
</pre>
</blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="const"></a>const</code></strong> (C++ only)</p>
<ul>
<li>Used to tell the compiler that a certain object should not be modified once      it has been initialized.<br />
<blockquote><p>const int i = 5;</p></blockquote>
</li>
<li>Used to declare a pointer so that the value of the pointer (the memory     location to which it points)     <span style="text-decoration:underline;">can</span> be modified, but the data in the memory location <span style="text-decoration:underline;">cannot</span> be changed.<br />
<blockquote><p>const int* j = new int(3);</p></blockquote>
</li>
<li>Used to declare a pointer so the that value of the pointer (the memory     location to which it points)     <span style="text-decoration:underline;">cannot</span> be modified, but the data in that memory location <span style="text-decoration:underline;">can</span> be changed.<br />
<blockquote><p>int* const j = new int(3);</p></blockquote>
</li>
<li>Used to declare a member function that does not modify the object&#8217;s state,      meaning that it should be used for methods like print so that data in the     object cannot      be changed accidentally. If and attempt is made     to modify the object in any way, a compilation error will be triggered.<br />
<blockquote><p>void print(bool verbose) const;</p></blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="const_cast"></a>const_cast</code></strong> (C++ only, seldom used)</p>
<ul>
<li>Used to remove the const protection on a variable as      long as the original variable was not declared as a const.      The target type must be the same as the original type.<br />
<blockquote><p>const_cast&lt;target_type&gt; (object);</p></blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="continue"></a>continue</code></strong></p>
<ul>
<li>Used to jump to the next iteration of a loop. The following example will      print out all of the numbers from 1 to 20 except for 10.<br />
<blockquote>
<pre>for(int i = 0; i &lt; 21; i++)
{
    if(i == 10)
        continue;
    cout &lt;&lt; i &lt;&lt; endl;
}
</pre>
</blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="default"></a>default</code></strong></p>
<ul>
<li>Used as a label to declare the default case of a switch statement.<br />
<blockquote>
<pre>case 1:  command1;
         command2;
         break;

default: command1;
         command2;
         break;
</pre>
</blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="delete"></a>delete</code></strong> (C++ only)</p>
<ul>
<li>Used to free memory allocated for a pointer back to the heap. The argument      should have been allocated through a call to new. To delete      an array, use the following form of delete: delete[]<br />
<blockquote>
<pre>delete p;
delete[] pArray;</pre>
</blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="do"></a>do</code></strong></p>
<ul>
<li>Used to create a loop that is executed at least once. The terminating condition      is tested at the end of the loop.<br />
<blockquote>
<pre>do
{
    cout &lt;&lt; "hello worldn";
    i++;
} while(i &lt; 5)
</pre>
</blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="double"></a>double</code></strong></p>
<ul>
<li>Used to declare a double-precision floating-point type variable. This variable      type is normally 64 bits (8 bytes) long.<br />
<blockquote><p>double d = 12.55;</p></blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="dynamic_cast"></a>dynamic_cast</code></strong> (C++ only, seldom used)</p>
<ul>
<li>Used to cast from one type to another with a check performed at runtime.      If the cast types are incompatible, NULL is returned.<br />
<blockquote><p>dynamic_cast&lt;target_type&gt; (object);</p></blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="else"></a>else</code></strong></p>
<ul>
<li>Used for an alternative condition in an if statement.<br />
<blockquote>
<pre>if(i == 1)
{
    // do something
}
else
{
    // do something else
}
</pre>
</blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="enum"></a>enum</code></strong></p>
<ul>
<li>Used to define an enumerated type. Each of the names in the name-list are      given a distinct value. This should be used in place of defining variables      using &#8220;magic numbers&#8221; (eg. int Monday = 0, int Tuesday = 1, etc).<br />
<blockquote>
<pre>enum name {name-list};</pre>
</blockquote>
<ul>
<li>name is the name of the enumerated type that was created</li>
<li>name-list is the list of names of the elements</li>
</ul>
<blockquote>
<pre>enum weekdays {Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday};</pre>
</blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="explicit"></a>explicit</code></strong> (C++ only)</p>
<ul>
<li>Used to make sure that a constructoor is only used for the creation of new      values and not used for the implicit conversion between two different types.      It will only be be used if the initialization exactly matches the call to      that constructor. This keyword is only needed with one-argument constructors.<br />
<blockquote>
<pre>class vector
{
    ...
    explicit vector(int v);
    ...
}
</pre>
</blockquote>
<p>Using this keyword, some mysterious errors can be caught by the compiler like      the following:</p>
<blockquote>
<pre>vector&lt;int&gt; v(10);
v = 5; // error, meant to write v[0] = 5
</pre>
</blockquote>
<p>The problem in this code if the explicit keyword was not specified is that      the v = 5 statement would invoke the constructor, creating a new vector of      size 5 and destroying the old one.</li>
</ul>
<hr>
<p><strong><code><a name="export"></a>export</code></strong> (C++ only, seldom used)</p>
<ul>
<li>Used to export a template to other modules. Most compilers require template      definitions to be explicitly specified in the header file since the Comeau      C++ compiler seems to be the only compiler that supports this keyword.<br />
<blockquote>
<pre>// In MyTemplateFunction.h
template
void myTemplateFunction(const T &amp;t1);

// In MyTemplateFunction.cpp
export template
void myTemplateFunction(const T &amp;t1)
{
    ...
}
</pre>
</blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="extern"></a>extern</code></strong></p>
<ul>
<li>Used to inform the compiler of variables and functions that are defined      outside of the current scope or module. Variables defined as extern will not      have space allocated for them since they are defined elsewhere.<br />
<blockquote><p>extern char* message;</p></blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="false"></a>false</code></strong> (C++ only)</p>
<ul>
<li>Used to represent the Boolean value false.<br />
<blockquote><p>bool b = false;</p></blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="float"></a>float</code></strong></p>
<ul>
<li>Used to declare a single-precision floating-point type variable. This variable&lt;br&gt;      type is normally 32 bits (4 bytes) long.<br />
<blockquote><p>float f = 3.5;</p></blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="for"></a>for</code></strong></p>
<ul>
<li>Used to create a loop that is meant to initialize, test and update a variable.<br />
<blockquote>
<pre>for(int i = 0; i &lt; 10; i++)
{
    cout &lt;&lt; "i is " &lt;&lt; i &lt;&lt; endl;
}
</pre>
</blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="friend"></a>friend</code></strong> (C++ only)</p>
<ul>
<li>Used to allow another class or function to have access      to the private features of that class.<br />
<blockquote>
<pre>friend void print(bool verbose);
friend class Vector;</pre>
</blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="goto"></a>goto</code></strong> (seldom used)</p>
<ul>
<li>Used to jump to another location in a function specified by a label. This      is generally considered harmful and should not be used unless necessary.<br />
<blockquote>
<pre>goto labelA;
...
labelA:</pre>
</blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="if"></a>if</code></strong></p>
<ul>
<li>Used to create a conditional branch statement so that different code can      be executed under different conditions. The conditions are evaluated in the      order that they appear in the code.<br />
<blockquote>
<pre>if (i &lt; 0)
{
    cout &lt;&lt; "i is negative";
}
else if(i == 0)
{
    cout &lt;&lt; "i is 0n";
}
else
{
    cout &lt;&lt; "i is posativen";
}
</pre>
</blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="inline"></a>inline</code></strong> (C++ only)</p>
<ul>
<li>Used to tell the compiler that the function an its body are inserted into      the calling code meaning that it has to expand the function in-place instead      of just insert a call to the function. Functions that have static data, loops, switches or recursive calls cannot be inlined.<br />
<blockquote>
<pre>inline int test(int A)
{
    ...
}
</pre>
</blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="int"></a>int</code></strong></p>
<ul>
<li>Used to declare an integer type variable. This variable type is normally        32 bits (4 bytes) long.<br />
<blockquote><p>int i = 3;</p></blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="long"></a>long</code></strong></p>
<ul>
<li>Used as a data type modifier for the int and double types to indicate that      they may have more bytes then the type has available. This variable type is      normally 32 or 64 bits (4 or 8 bytes) long.<br />
<blockquote><p>long int i = 100000;</p></blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="mutable"></a>mutable</code></strong> (C++ only)</p>
<ul>
<li>Used to specify that it is a data field that can be modified even if another      part of the data is declared const.</li>
</ul>
<hr>
<p><strong><code><a name="namespace"></a>namespace</code></strong> (C++ only)</p>
<ul>
<li>Used to create a new scope. Once created, the namespace must be refered      to either directly or with the using keyword.<br />
<blockquote>
<pre>   namespace CartoonNameSpace
    {
        int HomersAge;

        void incrementHomersAge()
        {
            HomersAge++;
        }
    }
    int main() {
        ...
        CartoonNameSpace::HomersAge = 39;
        CartoonNameSpace::incrementHomersAge();
        cout &lt;&lt; CartoonNameSpace::HomersAge &lt;&lt; endl;
        ...
    }
</pre>
</blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="new"></a>new</code></strong> (C++ only)</p>
<ul>
<li>Used to allocate a new block of memory for the given type from the heap,      and return a pointer to that block of memory. Allocating arrays can be done      by providing the size of the array in square brackets.<br />
<blockquote>
<pre>pointer = new type;
pointer = new type( initializer );
pointer = new type[size];</pre>
</blockquote>
<ul>
<li>pointer is a pointer to the type that you want to allocate the memory          for</li>
<li>type is the type of the item that is to be stored in the memory that          is allocated</li>
<li>initializer is the optional information for the constructor</li>
<li>size is the size of the array to create</li>
</ul>
</li>
</ul>
<hr>
<p><strong><code><a name="operator"></a>operator</code></strong> (C++ only)</p>
<ul>
<li>Used to specify that you are overloading an operator.<br />
<blockquote>
<pre>   return-type class-name::operator#(parameter-list)
    {
        ...
    }
</pre>
</blockquote>
<ul>
<li>return-type is the return type for the function</li>
<li>class-name is the name of the class that the operator is a part of.          If it is not part of a class, this can be left out along with the &#8216;<strong>::</strong>&#8216;<strong>.</strong></li>
<li># is the operator that is to be overloaded, such as &#8216;++&#8217;. You cannot          overload the #, ##, ., :, .*, or ? tokens.</li>
<li>parameter-list is the list of parameters that the operator will take.          For unary operators, parameter-list should be empty, and for binary operators,          parameter-list should contain the operand on the right side of the operator          (the operand on the left side is passed as this).</li>
</ul>
</li>
<li>There are special conventions for some operators, such as the unary       ++ and &#8212; operators.
<ul>
<li> The unary ++ operator has both prefix (<code>++object</code> and postfix (<code>object++</code>) versions.</li>
<li>
<blockquote>
<pre>   return-type class-name::operator++()
    {
        ...
    }
</pre>
</blockquote>
<p>overloads the prefix version (the value returned is the        value of the object <span style="text-decoration:underline;">after</span> it is incremented, so this        is also known as the pre-increment version because the        increment takes place <span style="text-decoration:underline;">before</span> the value is returned). There is        no parameter specified because ++ is a unary operator.</li>
<li>
<blockquote>
<pre>   return-type class-name::operator++( int )
    {
        ...
    }
</pre>
</blockquote>
<p>overloads the postfix version (the value returned is the        value of the object <span style="text-decoration:underline;">before</span> it is incremented, so this        is also known as the post-increment version because the        increment takes place <span style="text-decoration:underline;">after</span> the value is returned). The parameter        <code>int</code> is not really a parameter (++ is still a unary        operator) but is there soley to differentiate the prefix and        postfix versions.</li>
</ul>
</li>
</ul>
<hr>
<p><strong><code><a name="private"></a>private</code></strong> (C++ only)</p>
<ul>
<li>Used within a class declaration to specify features of that class that can      only be accessed by itself and its friends.<br />
<blockquote>
<pre>class Date
{
public:
    void display();

private:
    int day;
    int month;
    int year;
}</pre>
</blockquote>
</li>
<li>Used to inherit a base class privately, which causes all public and protected members of the base class to become      private members of the derived class.<br />
<blockquote>
<pre>class AlarmClock : private Clock
{
public:
    void display();

}</pre>
</blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="protected"></a>protected</code></strong> (C++ only)</p>
<ul>
<li>Used within a class declaration to specify features of that class that are      private to its own class, but can be inherited by a      derived class.<br />
<blockquote>
<pre>class Date
{
public:
    void display();
protected:
    int day;
    int month;
    int year;
}</pre>
</blockquote>
</li>
<li>Used to inherit a base class, which causes all public and protected members of the base class to become      protected members of the derived class.<br />
<blockquote>
<pre>class AlarmClock : protected Clock
{
public:
    void display()
}</pre>
</blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="public"></a>public</code></strong> (C++ only)</p>
<ul>
<li>Used within a class declaration to specify features of that class that are      accessable to everyone.<br />
<blockquote>
<pre>class Date
{
public:
    void display();
protected:
    int day;
    int month;
    int year;
}</pre>
</blockquote>
</li>
<li>Used to inherit a base class publically, which causes all public and protected members of the base class to become public and protected members of the derived class.<br />
<blockquote>
<pre>class AlarmClock : public Clock
{
public:
    void display()
}</pre>
</blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="register"></a>register</code></strong></p>
<ul>
<li>Used to reccommend that a varibale be placed into a processor register so      that it is optimized for speed but the compiler is not obliged to do so. This      keyword is rarely used anymore since compilers have become better than programmers      at optimizing code.</li>
</ul>
<hr>
<p><strong><code><a name="reinterpret_cast"></a>reinterpret_cast</code></strong> (C++ only), seldom used</p>
<ul>
<li>Used to change one data type in a non-portable way. It is normally used      to cast between incompatible pointer types.<br />
<blockquote><p>reinterpret_cast&lt;target_type&gt; (object);</p></blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="return"></a>return</code></strong></p>
<ul>
<li>Used to cause the execution to jump from the current function back to the      one that called it. An optional value can be returned but the function must      specify the type that it will return.<br />
<blockquote>
<pre>return;
return 5;</pre>
</blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="short"></a>short</code></strong></p>
<ul>
<li>Used as a data type modifier for the int type to indicate that there may      be less bytes then the type has available. This variable type is normally      16or 32bits (2 or 4bytes) long.<br />
<blockquote><p>short int i = 5;</p></blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="signed"></a>signed</code></strong></p>
<ul>
<li>Used to specify that the number type provided could potentially be negative,      so it must be stored in a different format. This is the default representation      that is chosen by most compilers if either signed or unsigned is not specified.<br />
<blockquote><p>signed int i = -12;</p></blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="sizeof"></a>sizeof</code></strong></p>
<ul>
<li>Used to return the size of the object (in bytes) that is passed to it.<br />
<blockquote>
<pre>int i = 5;
int size = sizeof( i );</pre>
</blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="static"></a>static</code></strong></p>
<ul>
<li>Used outside any function or class as a qualifier to a variable declaration      makes the scope of the variable the file in which the variable is declared,      and the extent is permanent (i.e., it is in the static segment).<br />
<blockquote><p>static int i;</p></blockquote>
</li>
<li>Used inside a function as a qualifier to a variable declaration makes the        scope of the variable the function in which the variable is declared, and        the extent is permanent (i.e., it is in the static segment).<br />
<blockquote>
<pre>void foo()
{
    static int i;
}</pre>
</blockquote>
</li>
<li>Used inside a class as a qualifier to a variable declaration makes the        scope of the variable the class in which the variable is declared, and the        extent is permanent (i.e., it is in the static segment).<br />
<blockquote>
<pre>class bar
{
    static int i;
}</pre>
</blockquote>
</li>
<li>Used outside any class as a qualifier to a function declaration makes the        scope of the function the file in which the function is declared. As with        all functions, the instructions for the function are in the code segment.<br />
<blockquote>
<pre>static void foo()
{
}</pre>
</blockquote>
</li>
<li>Used inside a class as a qualifier to a function (method) declaration makes        the scope of the function the class in which the function is declared (as        with all methods), and the instructions for the method are in the code       segment (as for all functions). What is different is that a static method       is invoked without requiring an object, using the qualifier syntax       <code>class::staticMethod( <em>parameters</em> )</code>, although it can       also be invoked on an object in the class in the usual way. Because no       object is associated with a static method, only static member variables       and other static member functions can be invoked by a static method.<br />
<blockquote>
<pre>class bar
{
    static void foo();
}</pre>
</blockquote>
<p><strong>Note:</strong> A method in a class cannot be both &#8220;static&#8221;        and &#8220;virtual&#8221;. The reason for this is       that virtual functions have to know the object to which they apply       (because of polymorphism) but static methods are not applied to an       object.</li>
</ul>
<hr>
<p><strong><code><a name="static_cast"></a>static_cast</code></strong> (C++ only, seldom used)</p>
<ul>
<li>Used for a normal conversion between types. No runtime checking is performed.<br />
<blockquote><p>static_cast&lt;target_type&gt; (object);</p></blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="struct"></a>struct</code></strong></p>
<ul>
<li>Used to create a structure like a class, but the members      are public by default instead of private.      In C, structs can only contain data, cannot have inheritance and cannot have      data with different visibilities.<br />
<blockquote>
<pre>struct struct-name : inheritance-list
{
        public-members-list;
    protected:
        protected-members-list;
    private:
        private-members-list;
} object-list;</pre>
</blockquote>
<ul>
<li>struct-name is the name of the struct that is being created.</li>
<li>inheritance-list is the optional list of structs inherited by the new          struct.</li>
<li>public-members-list is the list of public members          of the struct.</li>
<li>protected-members-list is the list of protected members of the struct.</li>
<li>private-members-list is the list of private members          of the struct.</li>
<li>object-list is an optional list used to immediately instantiate 1 or          more instances of the struct.</li>
</ul>
<blockquote>
<pre>struct Date
{
    int day;
    int month;
    int year;
}</pre>
</blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="switch"></a>switch</code></strong></p>
<ul>
<li>Used to test an expression of an integer value against many constant integer      values and is commonly used to replace large if()&#8230;else if()&#8230; statements.      Break statements are required between each case statement, otherwise execution will &#8220;fall-through&#8221; to the next case statement. The default case is optional. If provided,      it will match any case not explicitly covered by the preceding cases in the      switch statement.<br />
<blockquote>
<pre>char keystroke = getch();
switch( keystroke )
{
    case 'a':
    case 'b':
    case 'c':
    case 'd':
        KeyABCDPressed();
        break;
    case 'e':
        KeyEPressed();
        break;
    default:
        UnknownKeyPressed();
        break;
}
</pre>
</blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="template"></a>template</code></strong> (C++ only)</p>
<ul>
<li> Used to create generic functions and can operate on data without knowing      the nature of that data. They accomplish this by using a placeholder data-type      for which many other data types can be substituted.<br />
<blockquote>
<pre>template void genericSwap( X &amp;a, X &amp;b )
{
    X tmp;

    tmp = a;
    a = b;
    b = tmp;
}
</pre>
</blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="this"></a>this</code></strong> (C++ only)</p>
<ul>
<li>Used as a pointer to the current object. All member functions of a class have this pointer.<br />
<blockquote><p>this.print();</p></blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="throw"></a>throw</code></strong> (C++ only)</p>
<ul>
<li>Used together with try and catch statements to create an exception handling system. Throw is used to generate      an exception.<br />
<blockquote>
<pre>try
{
    cout &lt;&lt; "Before throwing exception"&lt;&lt; endl;
    throw 42;
    cout &lt;&lt; "Shouldn't ever see this"&lt;&lt; endl;
}
catch( int error )
{
    cout &lt;&lt; "Error: caught exception " &lt;&lt; error &lt;&lt; endl;
}
</pre>
</blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="true"></a>true</code></strong> (C++ only)</p>
<ul>
<li>Used to represent the Boolean value true.<br />
<blockquote><p>bool b = true;</p></blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="try"></a>try</code></strong> (C++ only)</p>
<ul>
<li>Used to attempt to execute exception-generating code.<br />
<blockquote>
<pre>try
{
    cout &lt;&lt; "Before throwing exception" &lt;&lt; endl;
    throw 42;
    cout &lt;&lt; "Shouldn't ever see this" &lt;&lt; endl;
}
catch( int error )
{
    cout &lt;&lt; "Error: caught exception " &lt;&lt; error &lt;&lt; endl;
}</pre>
</blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="typedef"></a>typedef</code></strong></p>
<ul>
<li>Used to create a new type from an existing type.<br />
<blockquote><p>typedef int seconds;</p></blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="typeid"></a>typeid</code></strong> (C++ only, seldom used)</p>
<ul>
<li>Used to get a reference to a type_info object that describes the object      it was passed.<br />
<blockquote><p>typeid(object);</p></blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="typename"></a>typename</code></strong> (C++ only)</p>
<ul>
<li>Used to describe an undefined type or in place of the class keyword in a      template declaration.</li>
</ul>
<hr>
<p><strong><code><a name="union"></a>union</code></strong></p>
<p>Used to create multiple data fields that will occupy the same memory location.</p>
<blockquote>
<pre>union Data
{
    int i;
    char c;
};
</pre>
</blockquote>
<hr>
<p><strong><code><a name="unsigned"></a>unsigned</code></strong></p>
<ul>
<li>Used to specify that the int or char provided can only be posative and can      therefore contain a larger number since there is no need to worry about representation      of negative numbers.<br />
<blockquote><p>signed int i = -12;</p></blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="using"></a>using</code></strong> (C++ only)</p>
<ul>
<li>Used to import a namespace into the current scope.<br />
<blockquote><p>using namespace std;</p></blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="virtual"></a>virtual</code></strong> (C++ only)</p>
<ul>
<li>Used to create virtual functions that can be overridden by derived functions.
<ul>
<li>A virtual function indicates that a function can be overridden in a          subclass, and that the overridden function will actually be used.</li>
<li>When a base object pointer points to a derived object that contains          a virual function, the decision about which version of that function to          call is based on the type of object pointed to by the pointer, and this          process happens at runtime.</li>
<li>A base object can point to different derived objects and have different          versions of the virual function run.</li>
</ul>
<blockquote><p>virtual void print();</p></blockquote>
</li>
<li>Used to create a <span style="text-decoration:underline;">pure virtual function</span> which is a virtual function that      <em> <strong>must</strong></em> be overriden by some derived class.<br />
<blockquote><p>virtual void print() = 0;</p></blockquote>
</li>
<li><strong>Note:</strong> A method in a class cannot be both &#8220;virtual&#8221;        and &#8220;static&#8221;.</li>
</ul>
<hr>
<p><strong><code><a name="void"></a>void</code></strong></p>
<ul>
<li>Used to denote functions that return no value.<br />
<blockquote>
<pre>void print()
{
    cout &lt;&lt; "printn";
}
</pre>
</blockquote>
</li>
<li> Used to create generic variables which can point to any type of data.<br />
<blockquote>
<pre>void *p = 5;
</pre>
</blockquote>
</li>
<li>Used to declare an empty parameter list.<br />
<blockquote>
<pre>void print( void )
{
    cout &lt;&lt; "printn";
}</pre>
</blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="volatile"></a>volatile</code></strong></p>
<ul>
<li>Used to inform the compiler that the variables value can change in unexpected      ways (i.e. through an interrupt), which could conflict with optimizations      that the compiler might perform, so therefore the compiler will not optimize      these variables.<br />
<blockquote><p>volatile Date d;</p></blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="wchar_t"></a>wchar_t</code></strong></p>
<ul>
<li>Used to declare a wide character variable. This variable type is normally      16 bits (2 bytes) long.<br />
<blockquote><p>wchar_t c = &#8216;c&#8217;;</p></blockquote>
</li>
</ul>
<hr>
<p><strong><code><a name="while"></a>while</code></strong></p>
<ul>
<li> Used as a looping construct that will evaluate a list of statements as      long as the condition is true. Note: if the condition      starts off as false, the list of statements will never      be executed. (You can use a do loop to guarantee that the      list of statements will be executed at least once.)<br />
<blockquote>
<pre>bool done = false;
while( !done )
{
    ProcessData();
    if( StopLooping() )
    {
        done = true;
    }
}</pre>
</blockquote>
</li>
</ul>
<hr>
<p>Copyright (C) 2000-2005, The University of British Columbia</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.henrypoon.com/blog/2010/01/18/description-of-c-keywords/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">201</post-id>	</item>
	</channel>
</rss>
