<?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>Plug &#8211; Henry Poon&#039;s Blog</title>
	<atom:link href="https://blog.henrypoon.com/blog/tag/plug/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.henrypoon.com</link>
	<description></description>
	<lastBuildDate>Mon, 03 Oct 2022 21:29:25 +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>Jenkins pipeline for Spring with beta and prod stages and deployment rollback</title>
		<link>https://blog.henrypoon.com/blog/2017/03/09/jenkins-pipeline-for-spring-with-beta-and-prod-stages-and-deployment-rollback/</link>
					<comments>https://blog.henrypoon.com/blog/2017/03/09/jenkins-pipeline-for-spring-with-beta-and-prod-stages-and-deployment-rollback/#respond</comments>
		
		<dc:creator><![CDATA[hp]]></dc:creator>
		<pubDate>Thu, 09 Mar 2017 08:04:51 +0000</pubDate>
				<category><![CDATA[computer stuff]]></category>
		<category><![CDATA[9]]></category>
		<category><![CDATA[Apache Ant]]></category>
		<category><![CDATA[Apache Maven]]></category>
		<category><![CDATA[Build automation]]></category>
		<category><![CDATA[Chan]]></category>
		<category><![CDATA[COM]]></category>
		<category><![CDATA[Compiling tools]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Const]]></category>
		<category><![CDATA[Continuous integration]]></category>
		<category><![CDATA[D]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Digital technology]]></category>
		<category><![CDATA[Download]]></category>
		<category><![CDATA[EAR]]></category>
		<category><![CDATA[future]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[groovy]]></category>
		<category><![CDATA[Hole]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[IME]]></category>
		<category><![CDATA[It]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Java enterprise platform]]></category>
		<category><![CDATA[Jenkins]]></category>
		<category><![CDATA[Levant]]></category>
		<category><![CDATA[Password]]></category>
		<category><![CDATA[PATH]]></category>
		<category><![CDATA[Plug]]></category>
		<category><![CDATA[Port]]></category>
		<category><![CDATA[Reference]]></category>
		<category><![CDATA[Rolling]]></category>
		<category><![CDATA[Run]]></category>
		<category><![CDATA[Scripting languages]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[STR]]></category>
		<category><![CDATA[Thou]]></category>
		<category><![CDATA[Time]]></category>
		<category><![CDATA[URL]]></category>
		<category><![CDATA[Variable]]></category>
		<category><![CDATA[Z]]></category>
		<category><![CDATA[Zip]]></category>
		<guid isPermaLink="false">https://blog.henrypoon.com/?p=2614</guid>

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



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



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



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



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

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

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

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



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



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



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



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



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

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



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



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



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



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



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



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



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



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



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



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

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



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



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



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



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



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



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

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

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



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



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



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



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



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



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



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



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


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


<p class="wp-block-paragraph">That pretty much sums up the whole Jenkins pipeline that I&#8217;ve been using lately for Spring projects!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.henrypoon.com/blog/2017/03/09/jenkins-pipeline-for-spring-with-beta-and-prod-stages-and-deployment-rollback/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2614</post-id>	</item>
		<item>
		<title>Moving an OS to another disk and still have it boot with Linux</title>
		<link>https://blog.henrypoon.com/blog/2016/01/28/moving-an-os-to-another-disk-and-still-have-it-boot-with-linux/</link>
					<comments>https://blog.henrypoon.com/blog/2016/01/28/moving-an-os-to-another-disk-and-still-have-it-boot-with-linux/#respond</comments>
		
		<dc:creator><![CDATA[hp]]></dc:creator>
		<pubDate>Fri, 29 Jan 2016 05:18:36 +0000</pubDate>
				<category><![CDATA[computer stuff]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Booting]]></category>
		<category><![CDATA[COM]]></category>
		<category><![CDATA[Contents]]></category>
		<category><![CDATA[D]]></category>
		<category><![CDATA[Device file]]></category>
		<category><![CDATA[Disk partitioning]]></category>
		<category><![CDATA[Disk partitions]]></category>
		<category><![CDATA[Drive]]></category>
		<category><![CDATA[Final]]></category>
		<category><![CDATA[GNU GRUB]]></category>
		<category><![CDATA[GNU Parted]]></category>
		<category><![CDATA[GParted]]></category>
		<category><![CDATA[IME]]></category>
		<category><![CDATA[It]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Multi-booting]]></category>
		<category><![CDATA[Net]]></category>
		<category><![CDATA[Operating systems]]></category>
		<category><![CDATA[Plug]]></category>
		<category><![CDATA[Run]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Solid-state drive]]></category>
		<category><![CDATA[System software]]></category>
		<category><![CDATA[Time]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Z]]></category>
		<guid isPermaLink="false">https://blog.henrypoon.com/?p=2194</guid>

					<description><![CDATA[For the longest time, I&#8217;ve had an 80 GB HDD running my Windows partition (dual-boot setup with Ubuntu on a SSD), but now I&#8217;ve finally upgraded the Windows partition to an SSD as well. I looked into how to clone my Windows partition onto the SSD, such that I can still boot the disk. I [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">For the longest time, I&#8217;ve had an 80 GB HDD running my Windows partition (dual-boot setup with Ubuntu on a SSD), but now I&#8217;ve finally upgraded the Windows partition to an SSD as well. I looked into how to clone my Windows partition onto the SSD, such that I can still boot the disk.</p>



<p class="wp-block-paragraph">I already have Ubuntu as my main OS, so copying the disk was easy using <a href="http://linux.die.net/man/1/dd" target="_blank" rel="noopener noreferrer">dd</a>, which allows copying all the contents of one disk to another. This works well when the new hard drive is greater than or the same size as the current hard drive (I upgraded from a 80GB HDD to a 128GB SSD).</p>



<p class="wp-block-paragraph">First I run this to see which disk I am copying from and to</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">fdisk -l</code></pre>



<p class="wp-block-paragraph">Then I run dd. If I am copying from /dev/sda to /dev/sda, then it&#8217;s:</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">dd if=/dev/sda of=/dev/sdb</code></pre>



<p class="wp-block-paragraph">But sometimes the disks don&#8217;t have the same size, so I used gparted to move/resize the partitions to make use of the extra space on the new disk. gparted complained that it might make my disk no bootable, but the disk was still bootable for me nonetheless. I didn&#8217;t even have to mess with any grub bootloader settings either. I simply unplugged the old disk, and left the new disk plugged in and booted into the new disk no problem.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.henrypoon.com/blog/2016/01/28/moving-an-os-to-another-disk-and-still-have-it-boot-with-linux/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2194</post-id>	</item>
		<item>
		<title>Migrating a WordPress blog from WordPress.com to WordPress.org</title>
		<link>https://blog.henrypoon.com/blog/2015/04/03/migrating-a-wordpress-blog-from-wordpress-com-to-wordpress-org/</link>
					<comments>https://blog.henrypoon.com/blog/2015/04/03/migrating-a-wordpress-blog-from-wordpress-com-to-wordpress-org/#respond</comments>
		
		<dc:creator><![CDATA[hp]]></dc:creator>
		<pubDate>Fri, 03 Apr 2015 20:44:57 +0000</pubDate>
				<category><![CDATA[computer stuff]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Blog software]]></category>
		<category><![CDATA[Chan]]></category>
		<category><![CDATA[COM]]></category>
		<category><![CDATA[D]]></category>
		<category><![CDATA[Digital media]]></category>
		<category><![CDATA[EAR]]></category>
		<category><![CDATA[followers]]></category>
		<category><![CDATA[Free software]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[IME]]></category>
		<category><![CDATA[Installation]]></category>
		<category><![CDATA[It]]></category>
		<category><![CDATA[Link]]></category>
		<category><![CDATA[Matt]]></category>
		<category><![CDATA[migration]]></category>
		<category><![CDATA[Net]]></category>
		<category><![CDATA[Over]]></category>
		<category><![CDATA[Plug]]></category>
		<category><![CDATA[Port]]></category>
		<category><![CDATA[Reference]]></category>
		<category><![CDATA[site stats]]></category>
		<category><![CDATA[STR]]></category>
		<category><![CDATA[Time]]></category>
		<category><![CDATA[tuna]]></category>
		<category><![CDATA[URL]]></category>
		<category><![CDATA[URL redirection]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordPress.com]]></category>
		<category><![CDATA[World Wide Web]]></category>
		<category><![CDATA[WP]]></category>
		<category><![CDATA[Z]]></category>
		<guid isPermaLink="false">https://www.henrypoon.com/blog/?p=2063</guid>

					<description><![CDATA[Since a few months ago, I migrated my blog from the previous free installation of WordPress that WordPress.com&#160;offered, to the self-hosted installation offered by WordPress.org&#160;(note that one is .org and the other is .com). &#160;Here are just a few of the key differences stated briefly: Self hosted installations allow greater control over what plugins the [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Since a few months ago, I migrated my blog from the previous free installation of WordPress that <a href="http://www.wordpress.com" target="_blank" rel="noopener noreferrer">WordPress.com</a>&nbsp;offered, to the self-hosted installation offered by <a href="http://www.wordpress.org" target="_blank" rel="noopener noreferrer">WordPress.org</a>&nbsp;(note that one is .org and the other is .com). &nbsp;Here are just a few of the key differences stated briefly:</p>
<ul>
<li>Self hosted installations allow greater control over what plugins the blog uses, what domain name to use, monetization, among other things</li>
<li>The cost is the added time required to tweak to do the setup and customisation</li>
</ul>
<p>After I chose to switch to the self-hosted installation, I faced the problem of having to migrate all of my content, site&nbsp;stats, and followers. &nbsp;I also had to set up proper URL redirection to the new website. &nbsp;Most of the guides I read did answer how to migrate content, and set up URL redirects, but it was not so clear as to how to migrate my site&nbsp;stats and followers.</p>
<h1>Content Migration</h1>
<p>For migrating content, the WordPress.com blog allows exporting blog content into a file to be imported into the new WordPress installation. &nbsp;Steps 1 to 3 in this guide illustrate the process:&nbsp;<a href="http://www.wpbeginner.com/wp-tutorials/how-to-properly-move-your-blog-from-wordpress-com-to-wordpress-org/" target="_blank" rel="noopener noreferrer">http://www.wpbeginner.com/wp-tutorials/how-to-properly-move-your-blog-from-wordpress-com-to-wordpress-org/</a></p>
<h1>Migrating Site&nbsp;Stats and Followers</h1>
<p>Migrating site stats and followers requires installing the <a href="https://wordpress.org/plugins/jetpack/" target="_blank" rel="noopener noreferrer">Jetpack</a>&nbsp;addon and linking it to the WordPress.com account (so that the self-hosted WP and the existing WP blog are connected). &nbsp;Afterward, a support thread has to be made on WordPress.com to ask WP staff to do the rest of the migration (there seems to be no other way). &nbsp;I found the information on how to do this at this site: <a href="http://wordpress.stackexchange.com/questions/161633/migrating-stats-from-wordpress-com-blog-to-self-hosted-wordpress-org-blog" target="_blank" rel="noopener noreferrer">http://wordpress.stackexchange.com/questions/161633/migrating-stats-from-wordpress-com-blog-to-self-hosted-wordpress-org-blog</a>. &nbsp;The post I made for my own site migration is <a href="https://en.forums.wordpress.com/topic/transferring-stats-and-subscribers-from-wordpresscom-to-self-hosted-wordpress?replies=8" target="_blank" rel="noopener noreferrer">here</a>.</p>
<h1>Setting Up URL Redirection</h1>
<p>This part costs money unfortunately. &nbsp;I paid ~$17 CAD for this so that my own URL would be redirected for the new one. &nbsp;If redirection isn&#8217;t required, then there is no need to buy anything. &nbsp;The setup is pretty straight forward. &nbsp;After buying the redirect, it is just a matter of setting the destination WordPress site to go to. &nbsp;Reference link here:&nbsp;<a href="https://en.support.wordpress.com/site-redirect/" target="_blank" rel="noopener noreferrer">https://en.support.wordpress.com/site-redirect/</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.henrypoon.com/blog/2015/04/03/migrating-a-wordpress-blog-from-wordpress-com-to-wordpress-org/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2063</post-id>	</item>
		<item>
		<title>Disabling Mouse Acceleration in Ubuntu</title>
		<link>https://blog.henrypoon.com/blog/2015/01/25/disabling-mouse-acceleration-in-ubuntu/</link>
					<comments>https://blog.henrypoon.com/blog/2015/01/25/disabling-mouse-acceleration-in-ubuntu/#comments</comments>
		
		<dc:creator><![CDATA[hp]]></dc:creator>
		<pubDate>Sun, 25 Jan 2015 08:31:32 +0000</pubDate>
				<category><![CDATA[computer stuff]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[AWK]]></category>
		<category><![CDATA[COM]]></category>
		<category><![CDATA[Computer]]></category>
		<category><![CDATA[Computer mice]]></category>
		<category><![CDATA[Computer mouse]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Counter-Strike]]></category>
		<category><![CDATA[D]]></category>
		<category><![CDATA[Digital technology]]></category>
		<category><![CDATA[DirectInput]]></category>
		<category><![CDATA[Gaming]]></category>
		<category><![CDATA[IME]]></category>
		<category><![CDATA[It]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mass]]></category>
		<category><![CDATA[mouse acceleration]]></category>
		<category><![CDATA[Plan]]></category>
		<category><![CDATA[Plug]]></category>
		<category><![CDATA[Programming languages]]></category>
		<category><![CDATA[Reference]]></category>
		<category><![CDATA[Run]]></category>
		<category><![CDATA[Sleep]]></category>
		<category><![CDATA[STR]]></category>
		<category><![CDATA[Time]]></category>
		<category><![CDATA[Trac]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[Windows]]></category>
		<guid isPermaLink="false">https://www.henrypoon.com/blog/?p=1955</guid>

					<description><![CDATA[I&#8217;ve been quite accustomed to disabling mouse acceleration on my Windows machine (thanks to playing massive amounts of Counter-Strike back in the day), but now that I&#8217;ve started to use Linux a bit more, I&#8217;ve found that disabling mouse acceleration was not as easy as in Windows. Script I&#8217;ve managed to produce a script to [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">I&#8217;ve been quite accustomed to disabling mouse acceleration on my Windows machine (thanks to playing massive amounts of Counter-Strike back in the day), but now that I&#8217;ve started to use Linux a bit more, I&#8217;ve found that disabling mouse acceleration was not as easy as in Windows.</p>



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



<p class="wp-block-paragraph">I&#8217;ve managed to produce a script to disable mouse acceleration (works for me on Ubuntu 14.04).  However, this script needs to be run every time the computer boots because the settings don&#8217;t stay.  Here is the script:</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">#wait for the desktop to settle
sleep 5

#gets the hardware id's of all mice plugged into the system
hardwareIds=$(xinput | grep -i mouse | awk '{print substr($(NF-3),4)}')

#turn off mouse acceleration
for i in $hardwareIds
do
xinput set-prop ${i} 'Device Accel Profile' -1
xinput set-prop ${i} 'Device Accel Velocity Scaling' 1
done</code></pre>



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



<p class="wp-block-paragraph">The script works by extracting the hardware id&#8217;s of the mice that are connected to the system and then applying properties to them that disable mouse acceleration for that device.  The extraction of the mouse hardware id&#8217;s are done with this:</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">#gets the hardware id's of all mice plugged into the system
hardwareIds=$(xinput | grep -i mouse | awk '{print substr($(NF-3),4)}')</code></pre>



<p class="wp-block-paragraph">Calling xinput in the Terminal will list all the connected input devices, which is grepped (case insensitively) for the word &#8220;mouse&#8221;, which gives something like this on my machine:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>⎜ ↳ Logitech G500s Laser Gaming Mouse id=14 [slave pointer (2)]<br>⎜ ↳ Logitech G500s Laser Gaming Mouse id=15 [slave pointer (2)]</p></blockquote>



<p class="wp-block-paragraph">The call to awk extracts the hardware id&nbsp;from those two lines (14, 15 in the above case) and stores them in an array that is iterated through when setting the mouse properties.</p>



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



<p class="wp-block-paragraph">This is the website that showed me how to disable mouse acceleration to begin with:&nbsp;<a href="http://ubuntuforums.org/showthread.php?t=1734400" target="_blank" rel="noopener noreferrer">http://ubuntuforums.org/showthread.php?t=1734400</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.henrypoon.com/blog/2015/01/25/disabling-mouse-acceleration-in-ubuntu/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1955</post-id>	</item>
		<item>
		<title>Normandy Part I</title>
		<link>https://blog.henrypoon.com/blog/2013/07/26/normandy-part-i/</link>
					<comments>https://blog.henrypoon.com/blog/2013/07/26/normandy-part-i/#respond</comments>
		
		<dc:creator><![CDATA[hp]]></dc:creator>
		<pubDate>Sat, 27 Jul 2013 04:27:11 +0000</pubDate>
				<category><![CDATA[europe]]></category>
		<category><![CDATA[Albums]]></category>
		<category><![CDATA[Atlantic Wall]]></category>
		<category><![CDATA[battle of normandy]]></category>
		<category><![CDATA[beach]]></category>
		<category><![CDATA[bunkers]]></category>
		<category><![CDATA[Caen]]></category>
		<category><![CDATA[cars]]></category>
		<category><![CDATA[Chan]]></category>
		<category><![CDATA[coastal fortifications]]></category>
		<category><![CDATA[COM]]></category>
		<category><![CDATA[Const]]></category>
		<category><![CDATA[craters]]></category>
		<category><![CDATA[D]]></category>
		<category><![CDATA[Dia]]></category>
		<category><![CDATA[Drive]]></category>
		<category><![CDATA[EAR]]></category>
		<category><![CDATA[English Channel]]></category>
		<category><![CDATA[Euro]]></category>
		<category><![CDATA[Eurotunnel]]></category>
		<category><![CDATA[Find]]></category>
		<category><![CDATA[Force]]></category>
		<category><![CDATA[Fortifications]]></category>
		<category><![CDATA[france]]></category>
		<category><![CDATA[German]]></category>
		<category><![CDATA[Germany]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[Gun]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[IME]]></category>
		<category><![CDATA[In France]]></category>
		<category><![CDATA[Invasion of Normandy]]></category>
		<category><![CDATA[ise]]></category>
		<category><![CDATA[It]]></category>
		<category><![CDATA[Lie]]></category>
		<category><![CDATA[Link]]></category>
		<category><![CDATA[London]]></category>
		<category><![CDATA[Longues-sur-Mer battery]]></category>
		<category><![CDATA[Military]]></category>
		<category><![CDATA[military history]]></category>
		<category><![CDATA[Military history by country]]></category>
		<category><![CDATA[Military history of Canada during World War II]]></category>
		<category><![CDATA[Military operations]]></category>
		<category><![CDATA[Normandy]]></category>
		<category><![CDATA[Normandy American Cemetery and Memorial]]></category>
		<category><![CDATA[Normandy landings]]></category>
		<category><![CDATA[Omaha]]></category>
		<category><![CDATA[Omaha Beach]]></category>
		<category><![CDATA[Operation Neptune]]></category>
		<category><![CDATA[Operation Overlord]]></category>
		<category><![CDATA[Outside]]></category>
		<category><![CDATA[Over]]></category>
		<category><![CDATA[Pho]]></category>
		<category><![CDATA[Plan]]></category>
		<category><![CDATA[Plug]]></category>
		<category><![CDATA[rain]]></category>
		<category><![CDATA[Run]]></category>
		<category><![CDATA[Speed]]></category>
		<category><![CDATA[STR]]></category>
		<category><![CDATA[Struct]]></category>
		<category><![CDATA[Thou]]></category>
		<category><![CDATA[Time]]></category>
		<category><![CDATA[Vancouver]]></category>
		<category><![CDATA[Vol]]></category>
		<category><![CDATA[Z]]></category>
		<guid isPermaLink="false">http://henrypoon.mooo.com/blog/normandy-part-i</guid>

					<description><![CDATA[After one day in London, we rented a car to drive to Normandy.  We departed from Central London, just outside the congestion zone.  That was probably the busiest part of London we had to drive on.  Neither of us had ever driven on the left side before.  The lanes are at least a foot narrower [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">After one day in London, we rented a car to drive to <a class="zem_slink" title="Normandy" rel="wikipedia noopener noreferrer" href="http://en.wikipedia.org/wiki/Normandy" target="_blank">Normandy</a>.  We departed from Central London, just outside the congestion zone.  That was probably the busiest part of London we had to drive on.  Neither of us had ever driven on the left side before.  The lanes are at least a foot narrower than in Vancouver.  Bikers and motorcyclists constantly ride between other cars and cut in front of us on both sides.  Street sides are always on the side of buildings and not clearly laid out.  Traffic signs are different too.  Drivers are a lot more aggressive when asserting themselves on the road.  That&#8217;s what we had to deal with as people who drive without this stress in North America.  Still, we made it to our destination (unlike the <a href="http://henrypoon.wordpress.com/2011/06/07/normandy-and-all-its-epic-fail/" target="_blank" rel="noreferrer noopener">last time I tried to go to Normandy</a>).</p>



<p class="wp-block-paragraph">We took the Euro Tunnel crossing into France. &nbsp;It is an underground train that cars can board that takes commuters across the English Channel. &nbsp;It only took about 20 minutes and it departed from Folkestone to Calais.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://picasaweb.google.com/117972094293741244551/Normandy#5897657617721926882" target="_blank" rel="noopener noreferrer"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh5.googleusercontent.com/-3gPATeX4-is/UdiwWy8xJOI/AAAAAAAAPFY/pvD1Wt77Edo/s576/IMG_8979.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/Normandy#5897657958474491042" target="_blank" rel="noopener noreferrer"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh3.googleusercontent.com/-bNF0_Xvd4oQ/UdiwqoWgpKI/AAAAAAAAPGg/XucXJBpm1Ws/s576/IMG_8987.JPG?w=1280&#038;ssl=1" alt=""/></a></figure>
</div>


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



<p class="wp-block-paragraph">The drive into Normany is quite nice too. We were a bit sad that the car&#8217;s (Volkswagen Golf TDI) top speed was only 180 km/h though (we tested that).</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://picasaweb.google.com/117972094293741244551/Normandy#5897658258027319986" target="_blank" rel="noopener noreferrer"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh3.googleusercontent.com/-N8WMJgwgV78/Udiw8EReErI/AAAAAAAAPH0/JAoKG2lC9kU/s576/IMG_8997.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/Normandy#5897658284771604994" target="_blank" rel="noopener noreferrer"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh6.googleusercontent.com/-H7QfRHaWix0/Udiw9n5zegI/AAAAAAAAPIA/Go3cpGHr2To/s576/IMG_8998.JPG?w=1280&#038;ssl=1" alt=""/></a></figure>
</div>


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



<p class="wp-block-paragraph">Our hotel was in Caen, and in the next morning we drove to Bayeux to meet the tour group. Our tour guide was a native from Normandy who used to serve in the French military. He knew quite a lot of the history behind the Battle of Normandy, so he was a really great guide.</p>



<p class="wp-block-paragraph">When I got out of the car, I could immediately feel my allergies acting up. &nbsp;Within a few minutes, my nose was extremely plugged and my eyes were itchy. &nbsp;Worst of all, I left my medicine at the hotel. &nbsp;My allergies stayed with me for the entire day. &nbsp;It was the worst allergic reaction I&#8217;ve had in recent memory.</p>



<h1 class="wp-block-heading">Longues-sur-Mer Battery</h1>



<p class="wp-block-paragraph">The first stop were the gun batteries at Longues-sur-Mer. It was part of Germany&#8217;s Atlantic Wall coastal fortifications.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://picasaweb.google.com/117972094293741244551/Normandy#5897658769503088674" target="_blank" rel="noopener noreferrer"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh6.googleusercontent.com/-3G1n1m9Uh9k/UdixZ1qy8CI/AAAAAAAAPJQ/lbNArqExCfQ/s576/IMG_9008.JPG?w=1280&#038;ssl=1" alt=""/></a></figure>
</div>


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



<p class="wp-block-paragraph">The line of batteries were just situated on a large grass field. &nbsp;There wasn&#8217;t really anything else in the area other than other bunkers that were part of the fortification.</p>



<h1 class="wp-block-heading">Omaha Beach</h1>



<p class="wp-block-paragraph">I was surprised to see that the bunkers at Omaha Beach had all been taken away. Apparently the locals disposed of them since they didn&#8217;t want to keep such structures from their foes to stay.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://picasaweb.google.com/117972094293741244551/Normandy#5897660014585870818" target="_blank" rel="noopener noreferrer"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh4.googleusercontent.com/-TtoPcRZNESc/UdiyiT9qeeI/AAAAAAAAPO4/E9S0I7Vcjyo/s576/IMG_9033.JPG?w=1280&#038;ssl=1" alt=""/></a></figure>
</div>


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



<p class="wp-block-paragraph">The guide explained that the attack on D-Day began while the beach was at high tide, which meant the soldiers had to wade through more water than they would have during low tide. This meant the soldiers were slower and had a greater danger of drowning. Because of this, the American forces that invaded took heavy casualties. The guide also mentioned that a huge factor that caused the Germans to lose the battle was that they were running out of ammunition after killing so many attackers. &nbsp;The water ran red for days.</p>



<h1 class="wp-block-heading">Normandy American Cemetery and Memorial</h1>



<p class="wp-block-paragraph">Many soldiers who died during the Battle of Normandy are buried here. The fallen soldiers&#8217; next of kin were given a choice as to whether the burial would take place in the US, or overseas.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://picasaweb.google.com/117972094293741244551/NormandyEdwardSPhotos#5897900792723556450" target="_blank" rel="noopener noreferrer"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh3.googleusercontent.com/-y3M0TsyfSAE/UdmNhcbISGI/AAAAAAAAQWs/hX69dosk5HQ/s576/DSC_0363.JPG?w=1280&#038;ssl=1" alt=""/></a></figure>
</div>


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



<p class="wp-block-paragraph">The site was quite large. It probably took about 10-15 minutes to walk from one side to the other.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://picasaweb.google.com/117972094293741244551/Normandy#5897661186670475618" target="_blank" rel="noopener noreferrer"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh5.googleusercontent.com/-fZ0ogzYks0w/UdizmiUaOWI/AAAAAAAAPSo/MrFrUOVTKOw/s576/IMG_9056.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">Pointe du Hoc</h1>



<p class="wp-block-paragraph">During the battle, the soldiers had to scale these cliffs just to get to the enemy and they did this while getting shot at.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://picasaweb.google.com/117972094293741244551/Normandy#5897662463828929618" target="_blank" rel="noopener noreferrer"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh5.googleusercontent.com/-XoHtPfpmM58/Udi0w4GtrFI/AAAAAAAAPVw/1YkPVA4QoY0/s576/IMG_9074.JPG?w=1280&#038;ssl=1" alt=""/></a></figure>
</div>


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



<p class="wp-block-paragraph">I remember playing Call of Duty 2 a long time ago and there was a mission about this very battle. The bunker here was modeled pretty much the same too.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://picasaweb.google.com/117972094293741244551/NormandyEdwardSPhotos#5897900895312286210" target="_blank" rel="noopener noreferrer"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh3.googleusercontent.com/-Z6FE-T5z_oU/UdmNnamMEgI/AAAAAAAAQYM/jaGT14q_AKo/s576/DSC_0374.JPG?w=1280&#038;ssl=1" alt=""/></a></figure>
</div>


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



<p class="wp-block-paragraph">Before the battle began, the air force and navy heavily bombarded this area and so there are many craters here. After so many years, grass has grown over them.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://picasaweb.google.com/117972094293741244551/NormandyEdwardSPhotos#5897900922230048882" target="_blank" rel="noopener noreferrer"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh5.googleusercontent.com/-Egck0mhHSMs/UdmNo-34iHI/AAAAAAAAQYc/p-X4XKEPqZU/s576/DSC_0377.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 Hedgerows</h1>



<p class="wp-block-paragraph">The guide explained that while the Allies were gathering intelligence for their invasion planning, local French people had told the Allies that there&#8217;d be lots of hedgerows to watch out for. It never occurred to the Allies that the hedgerows in France were significantly taller than the hedgerows that they were used to and so they thought the soldiers could see over them. Nope, they&#8217;re way taller than a standing person.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://picasaweb.google.com/117972094293741244551/Normandy#5897664022703595346" target="_blank" rel="noopener noreferrer"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh4.googleusercontent.com/-R-KlOeoDuck/Udi2LnXZX1I/AAAAAAAAPag/rwqBD_KaPSE/s576/IMG_9101.JPG?w=1280&#038;ssl=1" alt=""/></a></figure>
</div>


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



<p class="wp-block-paragraph">When the paratroopers landed in the night, a lot of them couldn&#8217;t find each other. The Germans used this to their advantage and set many traps in and around the hedgerows.</p>



<h1 class="wp-block-heading">To Be Continued&#8230;</h1>



<p class="wp-block-paragraph">Since this post is already getting quite long, I&#8217;ll be continuing the rest of the Normandy trip in a <a href="http://henrypoon.wordpress.com/2013/07/27/normandy-part-ii/" target="_blank" rel="noreferrer noopener">second post</a>.</p>



<p class="wp-block-paragraph">Links to photo albums:</p>



<ul class="wp-block-list"><li><a href="https://picasaweb.google.com/117972094293741244551/Normandy#" target="_blank" rel="noopener noreferrer">Normandy</a></li><li><a href="https://picasaweb.google.com/117972094293741244551/NormandyEdwardSPhotos#" target="_blank" rel="noopener noreferrer">Normandy (Edward&#8217;s Photos)</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.henrypoon.com/blog/2013/07/26/normandy-part-i/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1712</post-id>	</item>
		<item>
		<title>MECH 45X–Designing the Motor Control Circuit</title>
		<link>https://blog.henrypoon.com/blog/2012/02/21/mech-45x-designing-the-motor-control-circuit/</link>
					<comments>https://blog.henrypoon.com/blog/2012/02/21/mech-45x-designing-the-motor-control-circuit/#respond</comments>
		
		<dc:creator><![CDATA[hp]]></dc:creator>
		<pubDate>Tue, 21 Feb 2012 08:58:29 +0000</pubDate>
				<category><![CDATA[engineering]]></category>
		<category><![CDATA[9]]></category>
		<category><![CDATA[Actuators]]></category>
		<category><![CDATA[agra]]></category>
		<category><![CDATA[APT]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Brushless DC electric motor]]></category>
		<category><![CDATA[Chan]]></category>
		<category><![CDATA[COM]]></category>
		<category><![CDATA[D]]></category>
		<category><![CDATA[DC motor]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Dia]]></category>
		<category><![CDATA[Drive]]></category>
		<category><![CDATA[driving]]></category>
		<category><![CDATA[EAR]]></category>
		<category><![CDATA[Electric motors]]></category>
		<category><![CDATA[Electrical engineering]]></category>
		<category><![CDATA[Electromagnetism]]></category>
		<category><![CDATA[Final]]></category>
		<category><![CDATA[Friction]]></category>
		<category><![CDATA[future]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[IME]]></category>
		<category><![CDATA[It]]></category>
		<category><![CDATA[Lie]]></category>
		<category><![CDATA[Maxon Motor]]></category>
		<category><![CDATA[Mech]]></category>
		<category><![CDATA[Mecha]]></category>
		<category><![CDATA[Mechanical engineering]]></category>
		<category><![CDATA[Object]]></category>
		<category><![CDATA[Opera]]></category>
		<category><![CDATA[Over]]></category>
		<category><![CDATA[Paris]]></category>
		<category><![CDATA[Plug]]></category>
		<category><![CDATA[Port]]></category>
		<category><![CDATA[rice]]></category>
		<category><![CDATA[Robot]]></category>
		<category><![CDATA[robots]]></category>
		<category><![CDATA[Rolling]]></category>
		<category><![CDATA[Routing]]></category>
		<category><![CDATA[Run]]></category>
		<category><![CDATA[Servomotor]]></category>
		<category><![CDATA[Speed]]></category>
		<category><![CDATA[Stall torque]]></category>
		<category><![CDATA[Stepper motor]]></category>
		<category><![CDATA[Team]]></category>
		<category><![CDATA[Thou]]></category>
		<category><![CDATA[thunder]]></category>
		<category><![CDATA[Time]]></category>
		<category><![CDATA[Transmission]]></category>
		<category><![CDATA[Truth]]></category>
		<category><![CDATA[Vol]]></category>
		<category><![CDATA[Voltage]]></category>
		<category><![CDATA[Websites]]></category>
		<category><![CDATA[Z]]></category>
		<guid isPermaLink="false">http://henrypoon.mooo.com/blog/mech-45x%e2%80%93designing-the-motor-control-circuit</guid>

					<description><![CDATA[Knowing that two motors will be controlled for the grasper, a control circuit was required to determine how much voltage would be delivered to the motor and when they would be on or off.&#160; Each motor would also require position feedback for determining when to stop the motor actuation.&#160; The following section describes the process [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Knowing that two motors will be controlled for the grasper, a control circuit was required to determine how much voltage would be delivered to the motor and when they would be on or off.&nbsp; Each motor would also require position feedback for determining when to stop the motor actuation.&nbsp; The following section describes the process used for designing this microcontroller based circuit.&nbsp; These sections also show a heavy emphasis on the electrical portion of the design and less of the physical portion.&nbsp; The physical portion of the design can be visualized with the CAD design.</p>



<h1 class="wp-block-heading">1.0 Motors</h1>



<p class="wp-block-paragraph">The chosen motors are:</p>



<ul class="wp-block-list"><li>Finger grasping &#8211; Cytron IG32E-264K at a cost of USD $57.03 from RobotShop</li><li>Finger sliding &#8211; Cytron MO-SPG-30E-20K at a cost of USD $22.58 from RobotShop</li></ul>



<p class="wp-block-paragraph">Both motors meet the torque speed requirements for this project.</p>



<h2 class="wp-block-heading">1.1 Finger Grasping Actuation</h2>



<p class="wp-block-paragraph">From the initial budget, the budget set for actuators was set at $325.&nbsp; The torque requirement needed for gripping was also calculated and each finger would require 4 Nm at its output to lift a 4 kg object using only the fingertips.&nbsp; The evaluation criteria states that the device grasp as fast as possible and that the client would have the highest satisfaction if the device cost was less than $700.</p>



<p class="wp-block-paragraph">Looking on several websites that sold motors, the following DC motor was chosen: Cytron IG32E-264K at a cost of USD $57.03 from RobotShop.&nbsp; The specifications are as follows:</p>



<figure class="wp-block-table"><table><tbody><tr><td>DC voltage</td><td>12 V</td></tr><tr><td>Gear ratio</td><td>264:1</td></tr><tr><td>Stall torque (w/o gearing)</td><td>0.0392 Nm</td></tr><tr><td>No load speed (w/o gearing)</td><td>7300 rpm</td></tr><tr><td>Stall current</td><td>5 A</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">At 12 V with gearing included, the stall torque would be 20.7 Nm (without consideration of mechanical efficiency).&nbsp; A motor with a high stall torque is also beneficial because it lowers the gear ratio required, which leads to the use of less space for gearing.&nbsp; The motor also comes with its gearing, which contributes to its high torque.&nbsp; Given the high stall torque of this motor addition gear reduction is not required.&nbsp; During grasping, the motor will be exerting high torque at low speeds and therefore, the motor will be operating near the stall torque.&nbsp; The torque here is more than sufficient even with mechanical efficiency losses accounted for.</p>



<p class="wp-block-paragraph">For finger actuation before grasping occurs, there is a low load and therefore the motor will be operating closer to the no load speed.&nbsp; The no load speed with gear reduction is 27.7 rpm (without consideration of mechanical efficiency).&nbsp; Split among three output shafts, the speed would be 9.21 rpm.&nbsp; Even with the load of the fingers accounted for, this is still acceptable. based on requirements and evaluation criteria.</p>



<p class="wp-block-paragraph">While the torque is a lot higher than required, this motor was only more expensive than a motor of one size smaller by less than three dollars.&nbsp; The electrical characteristics were also identical.&nbsp; With a higher motor torque, the grasper would be comfortable in lifting objects even heavier than 4 kg, which is another benefit based on the evaluation criteria.</p>



<h2 class="wp-block-heading">1.2 Finger Sliding Actuation</h2>



<p class="wp-block-paragraph">The motor required here does not require a large torque since motion in this degree of freedom is not expected to handle heavy loads.&nbsp; This motor only requires enough torque to overcome the friction of the finger on the power screw that it is mounted on.&nbsp; Therefore, a low-cost motor (relative to the grasping motor) will suffice.&nbsp; The DC motor of choice is the Cytron MO-SPG-30E-20K at a cost of USD $22.58 from RobotShop.</p>



<p class="wp-block-paragraph">The specifications are as follows:</p>



<figure class="wp-block-table"><table><tbody><tr><td>DC voltage</td><td>12 V</td></tr><tr><td>Gear ratio</td><td>20:1</td></tr><tr><td>Rated torque (after gearing)</td><td>78.4 mNm</td></tr><tr><td>Rated speed (after gearing)</td><td>185 rpm</td></tr><tr><td>Rated current</td><td>410 mA</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">The consistency of the stated specifications do not match the previous motor because the information that was provided by the manufacturer was not consistent.</p>



<p class="wp-block-paragraph">An initial estimate of two 200 g fingers sliding on a 1/2” diameter power screw with a steel-steel sliding interface (friction coefficient of 0.8) shows that only 20 mNm of torque is required.&nbsp; Therefore, this motor meets the requirement.&nbsp; The power screw also has 13 threads per inch, and at the rated 185 rpm, the power screw would slide linearly at 6 mm/s.</p>



<h2 class="wp-block-heading">1.3 Motor Type</h2>



<p class="wp-block-paragraph">DC and servo motors are motors that are suitable for the project.&nbsp; An investigation between DC and servo motors showed that many manufacturers of motors did not provide the necessary specifications for choosing a servo motor in terms of the values of the no load, stall torque, and stall current.&nbsp; While servos generate a lot of torque relative to their size when compared to DC motors, it is not feasible to use a servo motor because of the unknowns in the specifications.&nbsp; It is possible to buy several servos and test them, but this is costly and time consuming.&nbsp; At this stage in the project, the team is not able to commit the time to investigate further.</p>



<p class="wp-block-paragraph">Comparison of the cost of the grasping motor relative to motors from Maxon Motor, a supplier of motors for UBC Thunderbots, shows that the price of a motor of the same power output costs approximately the same amount.&nbsp; However, a fundamental difference is that the motor from Maxon does not include a gearbox, while the chosen motor for this project does.</p>



<h1 class="wp-block-heading">2.0 Microcontroller</h1>



<p class="wp-block-paragraph">The microcontroller of choice is the Arduino Diecimila.&nbsp; The primary motivator for using this board is because the UBC Thunderbots team already has this board and is currently unused.&nbsp; The Thunderbots team has generously provided the board for use on this project.</p>



<p class="wp-block-paragraph">The MCU will allow the turning the motors on and off, changing motor direction, changing motor speed, and reading encoder feedback.</p>



<h1 class="wp-block-heading">3.0 Voltage Regulation for Encoders</h1>



<p class="wp-block-paragraph">Since the power supply is likely going to be run at 12 V, the encoders will require voltage regulation down to 5 V (the operating voltage of the encoder for the motors).&nbsp; The chosen voltage regulator is the MC78L05A at a cost of USD from Digikey.&nbsp; According to the typical application diagram of the datasheet, two capacitors will also be required (0.33 μF and 0.1 μF).&nbsp; The cost of these are less than $1.</p>



<p class="wp-block-paragraph">The voltage regulator will be wired up in this way as the datasheet shows:</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://i0.wp.com/blog.henrypoon.com/wp-content/uploads/2012/02/image.png?ssl=1" target="_blank" rel="noreferrer noopener"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blog.henrypoon.com/wp-content/uploads/2012/02/image_thumb.png?w=1280&#038;ssl=1" alt="image" title="image"/></a></figure>
</div>


<p class="wp-block-paragraph">The input will be from the 12 V source, and the output will be to the encoders.</p>



<h1 class="wp-block-heading">4.0 Motor Driver</h1>



<p class="wp-block-paragraph">To control the motors, an H-Bridge is to be used.&nbsp; However, due to the different current flows for each motor, one motor driver will require a high current capacity while the other one will not.&nbsp; The high current capacity motor driver consists of a driving circuit using two half-bridges.&nbsp; The low current capacity motor driver is made up of 1 IC.</p>



<h1 class="wp-block-heading">4.1 Finger Grasping Motor Driver</h1>



<p class="wp-block-paragraph">To design the H-Bridge for controlling the motor, an L6205 motor driver will be used.&nbsp; Each of them costs USD $11.36 from Digikey and can withstand a continuous current of 2.8 A and a peak current of 5.8 A and can be interfaced with the microcontroller with PWM inputs.&nbsp; The driver can also be run in a parallel mode to double the current ratings by using both of its full bridges together.&nbsp; The datasheet provides an application circuit as follows:</p>


<div class="wp-block-image">
<figure class="aligncenter is-resized"><a href="https://i0.wp.com/blog.henrypoon.com/wp-content/uploads/2012/02/image1.png?ssl=1" target="_blank" rel="noreferrer noopener"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blog.henrypoon.com/wp-content/uploads/2012/02/image_thumb1.png?resize=600%2C138&#038;ssl=1" alt="image" width="600" height="138" title="image"/></a></figure>
</div>

<div class="wp-block-image">
<figure class="aligncenter"><a href="https://i0.wp.com/blog.henrypoon.com/wp-content/uploads/2012/02/image2.png?ssl=1" target="_blank" rel="noreferrer noopener"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blog.henrypoon.com/wp-content/uploads/2012/02/image_thumb2.png?w=1280&#038;ssl=1" alt="image" title="image"/></a></figure>
</div>


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



<p class="wp-block-paragraph">Output pins from the Arduino can turn the motor on and off through the enable pins.&nbsp; Direction is controlled by adjusting the voltage polarity between IN1 and IN2.</p>



<p class="wp-block-paragraph">There are also two output pins for current sensing.&nbsp; By using it to measure the current draw, the microcontroller program can determine what the torque is through the use of the motor curves provided in the motor specifications.</p>



<h1 class="wp-block-heading">4.2 Finger Sliding Motor Driver</h1>



<p class="wp-block-paragraph">The motor driver of choice is the L293D and each one costs $2.50 from Digikey.  Bidirectional control of a DC motor can be achieved by adapting the application circuit from the datasheet:<a href="https://i0.wp.com/blog.henrypoon.com/wp-content/uploads/2012/02/image3.png?ssl=1" target="_blank" rel="noreferrer noopener"><img data-recalc-dims="1" decoding="async" title="image" width="278" height="220" border="0" style="background-image: none; padding-left: 0; padding-right: 0; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0; border-width: 0;" src="https://i0.wp.com/blog.henrypoon.com/wp-content/uploads/2012/02/image_thumb3.png?resize=278%2C220&#038;ssl=1" alt="image"></a></p>



<p class="wp-block-paragraph">The 1A and 2A pins determine the direction of the motor or the motor deceleration.&nbsp; A truth table is provided in the datasheet.</p>



<h1 class="wp-block-heading">5.0 Power Supply</h1>



<p class="wp-block-paragraph">To power the grasper, a power supply plugged into the wall will be used.&nbsp; It is expected that the future robot will have a power source of its own which will power the hand as well.&nbsp; Therefore, for the purposes of testing the grasper for this project only a wall power supply will be required.</p>



<p class="wp-block-paragraph">Looking at the maximum electrical power consumption of the two motors, the total comes to ~65 W (12 V * 5 A + 12 V * 0.41 A).&nbsp; The other components also consume power and so the final power consumption will be higher.&nbsp; To compensate, a 12 V power supply with a maximum wattage and current of 84 W and 7 A was selected.&nbsp; The part number is CENB1090 and each costs USD $70.48 from Digikey.</p>



<h1 class="wp-block-heading">6.0 Power Supply Connector</h1>



<p class="wp-block-paragraph">The power supply chosen has one port that uses a Molex Mini-Fit Jr. Receptacle.&nbsp; Therefore, a proper receptacle must be used so that proper wire routing can power all the circuitry.&nbsp; This also means that the future robot will also require a matching plug for this receptacle.</p>



<h1 class="wp-block-heading">7.0 Fuses</h1>



<p class="wp-block-paragraph">Fuses will also be used as a redundant mechanism to stop the motor in case the current draw is too high.&nbsp; The primary method of stopping the motor is through the current sense pins on the motor driver.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.henrypoon.com/blog/2012/02/21/mech-45x-designing-the-motor-control-circuit/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1346</post-id>	</item>
		<item>
		<title>Setting up Karaoke (KTV) like an actual Karaoke place at home using JetKTV</title>
		<link>https://blog.henrypoon.com/blog/2012/01/02/setting-up-karaoke-ktv-like-an-actual-karaoke-place-at-home-using-jetktv/</link>
					<comments>https://blog.henrypoon.com/blog/2012/01/02/setting-up-karaoke-ktv-like-an-actual-karaoke-place-at-home-using-jetktv/#comments</comments>
		
		<dc:creator><![CDATA[hp]]></dc:creator>
		<pubDate>Tue, 03 Jan 2012 03:00:05 +0000</pubDate>
				<category><![CDATA[computer stuff]]></category>
		<category><![CDATA[.exe]]></category>
		<category><![CDATA[9]]></category>
		<category><![CDATA[agra]]></category>
		<category><![CDATA[AppLocale]]></category>
		<category><![CDATA[Artists]]></category>
		<category><![CDATA[Asian culture]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Bopomofo]]></category>
		<category><![CDATA[Chan]]></category>
		<category><![CDATA[Chinese language]]></category>
		<category><![CDATA[Click]]></category>
		<category><![CDATA[COM]]></category>
		<category><![CDATA[Computer]]></category>
		<category><![CDATA[Contents]]></category>
		<category><![CDATA[Culture]]></category>
		<category><![CDATA[D]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Dia]]></category>
		<category><![CDATA[Directory]]></category>
		<category><![CDATA[Download]]></category>
		<category><![CDATA[DVD]]></category>
		<category><![CDATA[EAR]]></category>
		<category><![CDATA[English language]]></category>
		<category><![CDATA[Find]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[IME]]></category>
		<category><![CDATA[It]]></category>
		<category><![CDATA[Japan]]></category>
		<category><![CDATA[Karaoke]]></category>
		<category><![CDATA[Language]]></category>
		<category><![CDATA[Light]]></category>
		<category><![CDATA[Link]]></category>
		<category><![CDATA[Literature]]></category>
		<category><![CDATA[Lyrics]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Net]]></category>
		<category><![CDATA[Password]]></category>
		<category><![CDATA[PATH]]></category>
		<category><![CDATA[Pho]]></category>
		<category><![CDATA[Plan]]></category>
		<category><![CDATA[Plug]]></category>
		<category><![CDATA[Prompt]]></category>
		<category><![CDATA[Reference]]></category>
		<category><![CDATA[Simplified Chinese characters]]></category>
		<category><![CDATA[Singing]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Songs]]></category>
		<category><![CDATA[STR]]></category>
		<category><![CDATA[Struct]]></category>
		<category><![CDATA[taiwan]]></category>
		<category><![CDATA[Taiwanese culture]]></category>
		<category><![CDATA[Thou]]></category>
		<category><![CDATA[Time]]></category>
		<category><![CDATA[Trac]]></category>
		<category><![CDATA[UNC]]></category>
		<category><![CDATA[Vol]]></category>
		<category><![CDATA[Volume]]></category>
		<category><![CDATA[Websites]]></category>
		<category><![CDATA[YouTube]]></category>
		<category><![CDATA[Z]]></category>
		<category><![CDATA[Zip]]></category>
		<guid isPermaLink="false">http://henrypoon.mooo.com/blog/setting-up-karaoke-ktv-like-an-actual-karaoke-place-at-home-using-jetktv</guid>

					<description><![CDATA[As many people are aware, Karaoke is popular among Asian people.&#160; Generally, people go to a Karaoke establishment to enjoy it, but it can also be done at home.&#160; Current methods involve juggling a bunch of VCD’s, DVD’s, or even LD’s to get the wanted song.&#160; Karaoke establishments have all set up systems for people [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">As many people are aware, Karaoke is popular among Asian people.&nbsp; Generally, people go to a Karaoke establishment to enjoy it, but it can also be done at home.&nbsp; Current methods involve juggling a bunch of VCD’s, DVD’s, or even LD’s to get the wanted song.&nbsp; Karaoke establishments have all set up systems for people to use a computer to choose a song from a database (by artist, name, gender, etc.) that will be played on the TV.&nbsp; This set up can be replicated at home.</p>



<p class="wp-block-paragraph">This guide presents how to mimic the system used in professional karaoke establishments at home.&nbsp; The software this system uses revolves around a Taiwanese program called JetKTV.&nbsp; Much of the content from this guide was drawn from Chinese language websites discussing the usage of this program (scroll all the way down for References).&nbsp;&nbsp;&nbsp; There is little literature on this subject in English and so this guide presents basically an English version of the reference sites plus a few added notes.</p>



<p class="wp-block-paragraph">The program used is in Chinese, so people who are not fluent in Chinese may have a hard time navigating through the software.&nbsp; Those who are brave enough to continue or have a basic knowledge of Chinese with better English fluency may find it helpful to see English instructions. &nbsp;The Chinese sites on this subject are also written for older versions, and the setup procedure for those older versions are slightly different.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://i0.wp.com/blog.henrypoon.com/wp-content/uploads/2012/01/jetktv.png?ssl=1" target="_blank" rel="noreferrer noopener"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blog.henrypoon.com/wp-content/uploads/2012/01/jetktv_thumb.png?w=1280&#038;ssl=1" alt="jetktv" title="jetktv"/></a></figure>
</div>


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



<ul class="wp-block-list"><li><a href="#tvsetup">Proposed Setup</a></li><li><a href="#jetktvsetup">Setting Up JetKTV2010</a></li><li><a href="#insertsong">Inserting A New Song</a></li><li><a href="#insertartist">Inserting A New Artist</a></li><li><a href="#testing">Testing</a></li><li><a href="#ref">References</a></li></ul>



<h1 class="wp-block-heading"><a name="tvsetup"></a>Proposed Setup</h1>



<p class="wp-block-paragraph">The proposed setup of all the hardware (TV’s, amps, computer, etc.) is in the diagram below.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://i0.wp.com/blog.henrypoon.com/wp-content/uploads/2012/01/ksetup.png?ssl=1" target="_blank" rel="noreferrer noopener"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blog.henrypoon.com/wp-content/uploads/2012/01/ksetup_thumb.png?w=1280&#038;ssl=1" alt="ksetup" title="ksetup"/></a></figure>
</div>


<p class="wp-block-paragraph">The computer will play the chosen Karaoke videos and transmit the video signal to the TV (via extended display like in a dual monitor set up).&nbsp; The computer’s audio will go to an amplifier or a mixer, which is then transmitted to a set of speakers.&nbsp; Microphones are plugged into the amplifier/mixer is well so that the speakers can also play the sound picked up by the microphones.&nbsp; Depending on the hardware, the cables could be different (some TV’s may not have HD output etc.)The&nbsp; computer is the source of all the signals transmitted to the other devices and must be set up with the Karaoke software.</p>



<h1 class="wp-block-heading"><a name="jetktvsetup"></a>Setting up JetKTV2010</h1>



<p class="wp-block-paragraph">The PC will use the following software:</p>



<ul class="wp-block-list"><li>JetKTV2010 (<a rel="noopener" href="https://skydrive.live.com/?cid=46746bb36e167913&amp;sc=documents&amp;id=46746BB36E167913!171" target="_blank">link</a>)</li><li>SongMgr (optional – not helpful on English language PC’s – more on that topic later)</li></ul>



<p class="wp-block-paragraph">It is helpful to set up the software using a dual monitor setup.&nbsp; That way, it is easier to test without having to go and plug the computer to the TV each time.</p>



<p class="wp-block-paragraph">Unzip the contents of the JetKTV2010 program in a folder and open JetKTV2010.exe.&nbsp; The GUI buttons are for searching through the database (by looking for the artist, song name, etc.) to find the wanted song. Once a song is selected, it will be added to the list of songs to play just like the software at actual Karaoke establishments. The video will play in full screen on one monitor and the song picker GUI will say on another monitor.&nbsp; To close the program, click on the top left corner of the GUI (hidden button).</p>



<p class="wp-block-paragraph">Some of the software features in addition to searching and adding songs:</p>



<ul class="wp-block-list"><li>Skipping songs</li><li>Fast forwarding, pausing, etc.</li><li>Switching from one audio channel to both audio channels (alternating between vocal on/off)</li></ul>



<p class="wp-block-paragraph">This program reads from a database that contains the song names, artists, language, etc.&nbsp;&nbsp; Therefore, <strong><em>it does not come with songs</em></strong>.&nbsp; Songs must be downloaded separately and added on.&nbsp; These can come from existing DVD’s or YouTube.&nbsp; The next section will explain how to populate the database.</p>



<h1 class="wp-block-heading">Populating the Database</h1>



<p class="wp-block-paragraph">The SongMgr program mentioned above can add/remove contents from the database, but there are problems with it when using it on English language PC’s due to problems in encoding some of the Chinese characters.&nbsp; Even Microsoft AppLocale fails to rectify the problems.&nbsp; The solution is to use Microsoft Access to open up the database file directly and make changes.</p>



<p class="wp-block-paragraph">Adding one song can seem like a lengthy process at the first try, but it will get easier as one becomes more familiar with the system.</p>



<h3 class="wp-block-heading"><a name="insertsong"></a>Inserting A New Song</h3>



<p class="wp-block-paragraph">To insert a new song, one must navigate to the table where the songs are stored and then add an entry to it.</p>



<ol class="wp-block-list"><li>Open <em>Song.mdb</em>in the JetKTV program directory</li><li>When prompted for a password, input “tmwcmgumbonqd” without quotes</li><li>Navigate to the table <em>Tbl_Song.&nbsp; </em>This is the table that records all the song entries.</li></ol>



<p class="wp-block-paragraph">Below is an explanation of each column:</p>



<ul class="wp-block-list"><li>Song_ID: numerical identifier for each song (the program lists them as 5 digit numbers starting at 10000)</li><li>Song_Title: song title</li><li>Song_Singer: each singer has a unique number associated with them (see next section)</li><li>Song_Singer (2nd one): the name of the artist in text</li><li>Song_Word: number of characters in the song name</li><li>Song_Type: a number representing a language (Mandarin,Taiwanese,Cantonese,Hakka Chinese,English,Japanese,Movies,Cartoons,Other&nbsp; in that order starting from 1)</li><li>Song_Volume: song volume, but not sure what units they are in.&nbsp; Default value is 70.</li><li>Song_Channel: the audio channel that does <em>not</em> have the vocal track. (1-Left, 2-Right, 3-Both)</li><li>Song_FileName: filename of the video without the directory</li><li>Song_Path: the directory to the file (could use absolute pathing only, but unsure of whether relative paths work)</li><li>Song_Create: the time that the song was added in</li><li>Song_Count: the play count of a song</li><li>Song_Juyin: the Zhuyin characters representing the song title</li><li>Song_Stroke: number of strokes in the first character of the song name</li></ul>



<p class="wp-block-paragraph">Some of the columns can be left out, but that means that it will not be possible to find a particular song using the omitted information.&nbsp; For example, Song_Juyin can be left out for those who dont use the Zhuyin system, and that feature won’t be used for song searching anyway.</p>



<p class="wp-block-paragraph">To add a song, fill out the following information at the minimum on one row:</p>



<ul class="wp-block-list"><li>Song_ID (must be a unique number and should have five digits)</li><li>Song_Title</li><li>Song_Singer</li><li>Song_Volume (70 is the default)</li><li>Song_Channel</li><li>Song_FileName</li><li>Song_Path</li></ul>



<p class="wp-block-paragraph">For the Song_Singer information, refer to the next section.</p>



<h3 class="wp-block-heading"><a name="insertartist"></a>Inserting A New Artist</h3>



<p class="wp-block-paragraph">Artist information is stored on a different table called <em>Tbl_Singer</em></p>



<ol class="wp-block-list"><li>Open the table called <em>Tbl_Singer</em></li><li>Fill out an entire row to add a new singer (see below for the reference for each information column)</li></ol>



<p class="wp-block-paragraph">Below is an explanation of each column:</p>



<ul class="wp-block-list"><li>Singer_ID: unique identifier for each singer (this is the unique ID that is to put inserted in the Song_Singer column in <em>Tbl_Song</em>)</li><li>Singer_Sex: singer gender (0-Female, 1-Male, 2-Group/Band)</li><li>Singer_Name: artist name in text</li><li>Singer_Juyin: the Zhuyin characters representing the artist name</li><li>Singer_Stroke: number of strokes in the first character of the artist’s name</li></ul>



<h1 class="wp-block-heading"><a name="testing"></a>Testing</h1>



<p class="wp-block-paragraph">One a song or two has been entered into the database, one can test it by opening up the JetKTV program and trying to pick a song.&nbsp; It is working when one screen shows the video playing and another screen showing the JetKTV GUI.</p>



<p class="wp-block-paragraph">One can also try clicking the button labeled &#8220;導唱&#8221; to test if the audio channels are set up properly (toggling it turns on and off the vocals).</p>



<p class="wp-block-paragraph">The next step would be to plug in the computer with all the television components and then trying it again.&nbsp; Once everything works, the system is ready.</p>



<h1 class="wp-block-heading"><a name="ref"></a>References</h1>



<p class="wp-block-paragraph">All reference sites are in Chinese</p>



<p class="wp-block-paragraph">[1] 動手打造窮人 KTV <strong>&lt;</strong>http://www.jetktv.ktvdiy.com/&gt; [Update 2022 October: JetKTV seems to be defunct]</p>



<p class="wp-block-paragraph">[2] [影音相關] JetKTV 輕鬆打造免費 KTV 點唱機 (進階設定篇) &lt;<a href="http://www.soft4fun.net/video-related/%E5%BD%B1%E9%9F%B3%E7%9B%B8%E9%97%9C-jetktv-%E8%BC%95%E9%AC%86%E6%89%93%E9%80%A0%E5%85%8D%E8%B2%BB-ktv-%E9%BB%9E%E5%94%B1%E6%A9%9F-%E9%80%B2%E9%9A%8E%E8%A8%AD%E5%AE%9A%E7%AF%87.htm#doublescr" target="_blank" rel="noreferrer noopener">http://www.soft4fun.net/video-related/%E5%BD%B1%E9%9F%B3%E7%9B%B8%E9%97%9C-jetktv-%E8%BC%95%E9%AC%86%E6%89%93%E9%80%A0%E5%85%8D%E8%B2%BB-ktv-%E9%BB%9E%E5%94%B1%E6%A9%9F-%E9%80%B2%E9%9A%8E%E8%A8%AD%E5%AE%9A%E7%AF%87.htm#doublescr</a>></p>



<p class="wp-block-paragraph">[3] 峰網誌 JetKTV-DIY電腦點歌機..軟體篇 &lt;<a href="http://www.wretch.cc/blog/Linpy/4853370" target="_blank" rel="noreferrer noopener">http://www.wretch.cc/blog/Linpy/4853370</a>></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.henrypoon.com/blog/2012/01/02/setting-up-karaoke-ktv-like-an-actual-karaoke-place-at-home-using-jetktv/feed/</wfw:commentRss>
			<slash:comments>46</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1301</post-id>	</item>
		<item>
		<title>Repairing a laptop display that is dim or has a black corner</title>
		<link>https://blog.henrypoon.com/blog/2011/12/27/repairing-a-laptop-display-that-is-dim-or-has-a-black-corner/</link>
					<comments>https://blog.henrypoon.com/blog/2011/12/27/repairing-a-laptop-display-that-is-dim-or-has-a-black-corner/#comments</comments>
		
		<dc:creator><![CDATA[hp]]></dc:creator>
		<pubDate>Wed, 28 Dec 2011 04:51:23 +0000</pubDate>
				<category><![CDATA[computer stuff]]></category>
		<category><![CDATA[APT]]></category>
		<category><![CDATA[Backlight]]></category>
		<category><![CDATA[Chan]]></category>
		<category><![CDATA[Cold cathode]]></category>
		<category><![CDATA[COM]]></category>
		<category><![CDATA[Computer]]></category>
		<category><![CDATA[D]]></category>
		<category><![CDATA[Dell]]></category>
		<category><![CDATA[Display technology]]></category>
		<category><![CDATA[EAR]]></category>
		<category><![CDATA[Electromagnetism]]></category>
		<category><![CDATA[Find]]></category>
		<category><![CDATA[Gas discharge lamps]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[IME]]></category>
		<category><![CDATA[It]]></category>
		<category><![CDATA[Laptop]]></category>
		<category><![CDATA[LED-backlit LCD]]></category>
		<category><![CDATA[Lie]]></category>
		<category><![CDATA[Light]]></category>
		<category><![CDATA[Liquid crystal displays]]></category>
		<category><![CDATA[Over]]></category>
		<category><![CDATA[Pho]]></category>
		<category><![CDATA[Plug]]></category>
		<category><![CDATA[Power inverter]]></category>
		<category><![CDATA[Screws]]></category>
		<category><![CDATA[STR]]></category>
		<category><![CDATA[Struct]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Television technology]]></category>
		<category><![CDATA[Thou]]></category>
		<category><![CDATA[Time]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Vol]]></category>
		<category><![CDATA[Week]]></category>
		<category><![CDATA[Z]]></category>
		<guid isPermaLink="false">http://henrypoon.mooo.com/blog/repairing-a-laptop-display-that-is-dim-or-has-a-black-corner</guid>

					<description><![CDATA[Background After about three years or more of laptop use, one of the components that is likely to break is something in the LCD assembly.&#160; The LCD assembly is a collection of components that allows the laptop to display things on the screen.&#160; The following is a list of the primary components and their purpose: [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Background</h2>



<p class="wp-block-paragraph">After about three years or more of laptop use, one of the components that is likely to break is something in the LCD assembly.&nbsp; The LCD assembly is a collection of components that allows the laptop to display things on the screen.&nbsp; The following is a list of the primary components and their purpose:</p>



<ul class="wp-block-list"><li>LCD Panel – the part of the assembly that displays the images and is what people are looking at when using the laptop</li><li>CCFL Tube/Lamp – provides the light on the display.&nbsp; The LCD panel provides the image, and the lamp provides the light required to see the image.</li><li>LCD Inverter – transfers power to the CCFL lamp</li></ul>



<p class="wp-block-paragraph">The following instructions are general and do not pertain to one specific model of laptops.&nbsp; The theory still applies however.</p>



<h1 class="wp-block-heading">Problem Symptoms</h1>



<p class="wp-block-paragraph">In problems regarding a laptop display, these are the common problems among others that are quite prevalent among laptop users.</p>



<ul class="wp-block-list"><li>Black corner – on one corner of the screen, a black triangle can be seen. The mouse can be moved under it, which shows that the LCD is just not displaying that part of the screen. The black corner is also hot to the touch. In some cases, the black triangle can change size over time (on the order of a few minutes or hours).</li></ul>


<div class="wp-block-image">
<figure class="aligncenter"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh4.googleusercontent.com/-uNoid4rIhwA/Tu_E4CgYRHI/AAAAAAAAABs/DY4MHK8kgrY/s912/IMG_2826.JPG?w=1280&#038;ssl=1" alt=""/></figure>
</div>


<ul class="wp-block-list"><li>Dim screen – the LCD is still displaying a picture, but it cannot be seen because there is no backlight.&nbsp; Shining a bright light (such as a desk lamp) illuminates the screen slightly, but not to the brightness that the screen was at before.</li></ul>


<div class="wp-block-image">
<figure class="aligncenter"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh5.googleusercontent.com/-mOGDR-6guoU/Tu_E4KxBKMI/AAAAAAAAABs/t6t3WysOhtw/s912/IMG_2808.JPG?w=1280&#038;ssl=1" alt=""/></figure>
</div>


<p class="wp-block-paragraph">The first problem tends to lead to the second one.&nbsp; The CCFL tube burns out and leaves a dim display.</p>



<h1 class="wp-block-heading">Determining the Cause</h1>



<p class="wp-block-paragraph">In general, if one experiences at least one of the problems above, there is a clear hardware issue.&nbsp; Some exceptions are when one has turned the brightness all the way down, but this usually isn’t the case for people.</p>



<p class="wp-block-paragraph">If one simply sees a dim display, it is due to <strong>either the CCFL tube or the Inverter</strong>.&nbsp; It is not possible to to determine which part is the culprit without opening up the laptop.&nbsp; Refer to instructions specific to the laptop in question to open up the screen assembly.&nbsp; During disassembly, take note of what screws go where.&nbsp; Different sized screws get used for different places and it is very easy to forget which ones go where.</p>


<div class="wp-block-image">
<figure class="aligncenter"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh6.googleusercontent.com/-37LIwvrH0nw/Tu_E_UbpQbI/AAAAAAAAADM/myEFwKM2srk/s912/IMG_5648.JPG?w=1280&#038;ssl=1" alt=""/></figure>
</div>

<div class="wp-block-image">
<figure class="aligncenter"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh4.googleusercontent.com/-J_6rkBVQmKw/Tu_KyvRGHzI/AAAAAAAAAF4/fwUyWGt86wQ/s912/IMG_5740.JPG?w=1280&#038;ssl=1" alt=""/></figure>
</div>


<p class="wp-block-paragraph">The first image shows the laptop with the cover taken off.&nbsp; The second image shows the disassembled LCD assembly with the CCFL tube lying on top.</p>



<h3 class="wp-block-heading">CCFL Tube</h3>



<p class="wp-block-paragraph">Finding the CCFL Tube on the laptop is a lot more involved than finding the Inverter.&nbsp; It involves opening the LCD panel (see <a href="http://www.laptoprepair101.com/laptop/2007/12/09/replace-laptop-backlight-ccfl-lamp/" target="_blank" rel="noopener">this website</a> for instructions for a Dell Inspiron 1520).&nbsp; Visual inspection of this part can sometimes show clear signs of damage.&nbsp; Burn marks should be apparent.</p>


<div class="wp-block-image">
<figure class="aligncenter"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh6.googleusercontent.com/-poT6WIe8u9w/Tu_Kzn5oM8I/AAAAAAAAAF8/sYywgBnygdU/s912/IMG_5741.JPG?w=1280&#038;ssl=1" alt=""/></figure>
</div>

<div class="wp-block-image">
<figure class="aligncenter"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh3.googleusercontent.com/-_94zCr_t3v0/Tu_K1EPT3EI/AAAAAAAAAGA/Qz787kJchgo/s912/IMG_5742.JPG?w=1280&#038;ssl=1" alt=""/></figure>
</div>


<p class="wp-block-paragraph">If burn marks are not apparent, then the cause is likely due to the Inverter.&nbsp; One can also test the CCFL Tube, by turning on the computer with everything still plugged in (but disassembled).&nbsp; If the CCFL Tube lights up, then there is nothing wrong with the CCFL Tube.</p>


<div class="wp-block-image">
<figure class="aligncenter"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh5.googleusercontent.com/-1jcfPoHWtM4/Tu_Mg2QaY8I/AAAAAAAAAIM/Gs51kjJ1ovM/s912/IMG_5784.JPG?w=1280&#038;ssl=1" alt=""/></figure>
</div>


<h3 class="wp-block-heading">LCD Inverter</h3>



<p class="wp-block-paragraph">It isn’t possible to test this part directly without the proper tools.&nbsp; However, if one has a dim display but has checked whether the CCFL works, one can be more certain that the Inverter is the culprit by process of elimination.</p>


<div class="wp-block-image">
<figure class="aligncenter"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh4.googleusercontent.com/-fA61Fh5-MxY/Tu_E_d8DP6I/AAAAAAAAADM/I2kwDuwUPQQ/s912/IMG_5649.JPG?w=1280&#038;ssl=1" alt=""/></figure>
</div>

<div class="wp-block-image">
<figure class="aligncenter"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/lh6.googleusercontent.com/-w1bjtdPuv-k/Tu_E_QEJfzI/AAAAAAAAADM/eYRZhe8XSi0/s912/IMG_5651.JPG?w=1280&#038;ssl=1" alt=""/></figure>
</div>


<p class="wp-block-paragraph">The Inverter is the part in orange in the top photo.&nbsp; The bottom picture shows the Inverter by itself.</p>



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



<p class="wp-block-paragraph">Once the cause has been determined, the next step is to replace the part.&nbsp; However, one has a choice:</p>



<ul class="wp-block-list"><li>Replace the entire LCD assembly – costs more (~$100), but the labour is easier</li><li>Replace the problematic parts individually – costs less (~$5 – $20), but more difficult labour</li></ul>



<p class="wp-block-paragraph">One source for parts is Ebay, but it might take around three weeks for the part to arrive.&nbsp; This is cheaper than the $300 that Dell charges for shipping the laptop, buying the components and the labour.&nbsp; Replacing these parts is an involved process will take at least one hour.</p>



<p class="wp-block-paragraph">Here are some things to watch out for when replacing the CCFL Tube:</p>



<ul class="wp-block-list"><li>It is difficult to take the part out of the LCD panel</li><li>Watch out for dust that could get in between the layers in the LCD (will show up as black specs <em>under</em> the screen</li><li>It is hard to lay out the layers flat again when the CCFL Tube is replaced so there might be some uneven lighting after the CCFL Tube is replaced</li></ul>



<p class="wp-block-paragraph">After replacing the parts, turn on the computer again and the screen should be bright again.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.henrypoon.com/blog/2011/12/27/repairing-a-laptop-display-that-is-dim-or-has-a-black-corner/feed/</wfw:commentRss>
			<slash:comments>10</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1277</post-id>	</item>
		<item>
		<title>Vienna</title>
		<link>https://blog.henrypoon.com/blog/2011/07/14/vienna/</link>
					<comments>https://blog.henrypoon.com/blog/2011/07/14/vienna/#respond</comments>
		
		<dc:creator><![CDATA[hp]]></dc:creator>
		<pubDate>Thu, 14 Jul 2011 23:25:28 +0000</pubDate>
				<category><![CDATA[europe]]></category>
		<category><![CDATA[food]]></category>
		<category><![CDATA[9]]></category>
		<category><![CDATA[Albums]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[APT]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[Athens]]></category>
		<category><![CDATA[beach]]></category>
		<category><![CDATA[bear]]></category>
		<category><![CDATA[beer]]></category>
		<category><![CDATA[Bleed]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[Bosch]]></category>
		<category><![CDATA[Breakfast]]></category>
		<category><![CDATA[Chan]]></category>
		<category><![CDATA[cheese]]></category>
		<category><![CDATA[COM]]></category>
		<category><![CDATA[Const]]></category>
		<category><![CDATA[Construction]]></category>
		<category><![CDATA[D]]></category>
		<category><![CDATA[Delicious]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Dia]]></category>
		<category><![CDATA[EAR]]></category>
		<category><![CDATA[Euro]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Family]]></category>
		<category><![CDATA[Films]]></category>
		<category><![CDATA[Final]]></category>
		<category><![CDATA[Fountain]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[German]]></category>
		<category><![CDATA[German language]]></category>
		<category><![CDATA[Germanwings]]></category>
		<category><![CDATA[Germany]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[Government]]></category>
		<category><![CDATA[Hole]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[IME]]></category>
		<category><![CDATA[In Germany]]></category>
		<category><![CDATA[Insect]]></category>
		<category><![CDATA[Inspired By True Events]]></category>
		<category><![CDATA[IPod]]></category>
		<category><![CDATA[ise]]></category>
		<category><![CDATA[It]]></category>
		<category><![CDATA[KPA]]></category>
		<category><![CDATA[Language]]></category>
		<category><![CDATA[Lie]]></category>
		<category><![CDATA[liechtenstein]]></category>
		<category><![CDATA[Light]]></category>
		<category><![CDATA[lightning]]></category>
		<category><![CDATA[Literature]]></category>
		<category><![CDATA[Luann Ryon]]></category>
		<category><![CDATA[Lyrics]]></category>
		<category><![CDATA[Matt]]></category>
		<category><![CDATA[Mech]]></category>
		<category><![CDATA[Mecha]]></category>
		<category><![CDATA[Mind]]></category>
		<category><![CDATA[Munich]]></category>
		<category><![CDATA[Museum]]></category>
		<category><![CDATA[Museums]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Nap]]></category>
		<category><![CDATA[Opera]]></category>
		<category><![CDATA[Opera house]]></category>
		<category><![CDATA[Outside]]></category>
		<category><![CDATA[Over]]></category>
		<category><![CDATA[Palace]]></category>
		<category><![CDATA[Parliament]]></category>
		<category><![CDATA[Pho]]></category>
		<category><![CDATA[Plan]]></category>
		<category><![CDATA[Plug]]></category>
		<category><![CDATA[Port]]></category>
		<category><![CDATA[Potato]]></category>
		<category><![CDATA[Prague]]></category>
		<category><![CDATA[rain]]></category>
		<category><![CDATA[RAR]]></category>
		<category><![CDATA[rice]]></category>
		<category><![CDATA[Rolling]]></category>
		<category><![CDATA[Rooms]]></category>
		<category><![CDATA[Run]]></category>
		<category><![CDATA[ß]]></category>
		<category><![CDATA[Schloss]]></category>
		<category><![CDATA[Schnitzel]]></category>
		<category><![CDATA[seafood]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Sleep]]></category>
		<category><![CDATA[SMS]]></category>
		<category><![CDATA[Storm]]></category>
		<category><![CDATA[STR]]></category>
		<category><![CDATA[Struct]]></category>
		<category><![CDATA[Stuttgart]]></category>
		<category><![CDATA[Swabia]]></category>
		<category><![CDATA[Temple]]></category>
		<category><![CDATA[The Go]]></category>
		<category><![CDATA[Thou]]></category>
		<category><![CDATA[thunder]]></category>
		<category><![CDATA[Tickets]]></category>
		<category><![CDATA[Time]]></category>
		<category><![CDATA[Trac]]></category>
		<category><![CDATA[Transport]]></category>
		<category><![CDATA[transportation]]></category>
		<category><![CDATA[UNC]]></category>
		<category><![CDATA[Urge]]></category>
		<category><![CDATA[Vancouver]]></category>
		<category><![CDATA[Vienna]]></category>
		<category><![CDATA[Vol]]></category>
		<category><![CDATA[When We]]></category>
		<category><![CDATA[Words]]></category>
		<category><![CDATA[World War I]]></category>
		<category><![CDATA[World War II]]></category>
		<category><![CDATA[Z]]></category>
		<category><![CDATA[Zoo]]></category>
		<guid isPermaLink="false">http://henrypoon.mooo.com/blog/vienna</guid>

					<description><![CDATA[Day 183 Using the Germanwings “Blind Booking” promotion, which randomly (kind of if you don’t know how to work the system by seeing which flights are full) selects a destination from a predetermined list for passengers at a fixed price.&#160; Using this promotion, we got to fly to Vienna. We were even planning to go [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Day 183</p>



<p class="wp-block-paragraph">Using the Germanwings “Blind Booking” promotion, which randomly (kind of if you don’t know how to work the system by seeing which flights are full) selects a destination from a predetermined list for passengers at a fixed price.&nbsp; Using this promotion, we got to fly to Vienna.</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipOwB9UGey29fKjffU1GCwVtr8jlB-o-TEgbr10T?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEXA07UJbRln94sA7T4GuWYU_roZRuaf8hOgz8R5ATqaTgtNNHmcX--dYhghfMkYBgcG6IdXWdZ2YKOe1oTIfkxwACqliM8tuQC9h2qIzQl2AUffCwanRzkJLBu9w48JSxOTF5ZWtpCiGoZpM25NvrPcgw=w1560-h389-no" alt=""/></a></figure>



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



<p class="wp-block-paragraph">We were even planning to go to Budapest as a day trip from Vienna, but that turned out to be too expensive, and that there was plenty in Vienna to see.</p>



<h1 class="wp-block-heading">Flight to Vienna</h1>



<p class="wp-block-paragraph">While waiting for our flight at Stuttgart International, we saw two double sized Foosball tables set up to go along with the Women’s World Cup Soccer.&nbsp; By double sized, I mean that instead of only four rotating sets of players per side there were eight per side.&nbsp; They took up so much space that one had to quickly hop to the other size to control the other set of players.</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipOSEo5NXOfivLtqXWGIjBB0BSciPehEGuSL2WhA?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEUEn6-_KhyEeclP99pKDaGWsNrioXzbNOmNz20euslPGpyyM71-AGQVGac3Z_9MZFOj1gOEoBjeZiqmUKtA6FZK59JRySsVypC-af08kz_4DFy4VefyGBK03La3WUotSIbcHNwAw0OGilFKx-uZt68rcw=w1226-h919-no" alt=""/></a></figure>



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



<p class="wp-block-paragraph">We played this for a little bit until the rest of our party arrived.&nbsp; Once everyone arrived, we went to get our boarding passes and then to the security checkpoint.&nbsp; One thing that really surprised me there was that the airport security wasn’t very strict at all.&nbsp; All I did was go through the metal detector and got my backpack checked by the X-Ray.&nbsp; They didn’t open it up/search it or anything like that.&nbsp; They didn’t do that to anyone.&nbsp; They didn’t check my bag for liquids either.&nbsp; People could easily smuggle prohibited items on the plane.&nbsp; Once we passed the security checkpoint, we waited until we could board.</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipOQn6m4ruxfA7f-5Cv2X3PzMue8JRrwNzJh1di1?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEWAq8MVaB3ywHHGQDQM9-VFn51NzOHicYtv2-efdjVBHsE5KyqvXQGy9vGC75pSYqeOuQnNiBBPPOpn9WIQ3FazmN2LK5K91PTNq3QG1Vun8QjL_utegORGhD9ML2UgeInIWQn20MYuZAOnMlWhhUm3iQ=w1226-h919-no" alt=""/></a></figure>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipNEgGsY033t-cdGsJjeiY2_ojb9DKuydkjsFKoX?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEVB6gLWqaSGGnW0W123Lljj6w_t5PZ8XkoT4HcJuIuSQjhz_Od5UrT3HMd0fhAIQk8L9Jv_aKz6sIvMRUYkMEd9Sr6lPP2gaIz5qLVIu4sNgIFp5if7uEkE0uvjWOupvzASxX-sCyQGAvzserqFRZcckg=w1226-h919-no" alt=""/></a></figure>



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



<p class="wp-block-paragraph">We boarded a small Airbus A319, which looked like it could probably only fit about 100 people on it.&nbsp; I noticed that each passenger was given a barf bag (I’ve heard of people getting nosebleeds while flying, but not nausea).&nbsp; On one side of the barf bag, there was a chart that showed at what levels of nausea would cause one to puke and the caption that was written for the top level was “the price of our competitors”.&nbsp; I’m guessing that their price is so low that people will puke?&nbsp; Either way, I thought it was pretty comical.&nbsp; To be fair though, Ryanair typically has lower airfares in my experience (I hope I didn’t sound like I’m advertising these airlines).&nbsp; The flight itself took only about an hour.&nbsp; The plane went up to 28000 ft. briefly before having to descend again.</p>



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



<p class="wp-block-paragraph">Since we arrived in the evening, we got hungry pretty quickly after dropping off our stuff at the hostel.&nbsp; We looked around for a restaurant to try some Viennese food.&nbsp; Apparently, Vienna is known for their Wienerschnitzel.&nbsp; With that in mind, that’s what we ordered.&nbsp; Every single one of us in our group ordered that except for the guy who was vegetarian.</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipOBrgm3BKAQ6D9H8EifuJybMh5yWWoufh866l0M?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEVXBN0Vl0QBqfG6TE45M7fagR6VzYzXX0Iq34A9HPiGxAYZdAj2h_SonKMtI26J6HswHinlJZd1OrjeMhkMn7Gxj9d7d1JmIeJYun87WaM-GYG0wHYUtGb3yVa_BUjCYjJLMVrLkNv5gqvVuiJNUx6Qyg=w1226-h919-no" alt=""/></a></figure>



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



<p class="wp-block-paragraph">What puzzled me about that meal was that the restaurant served the schnitzel with rice.&nbsp; I thought it would be served with something like potatoes.&nbsp; I guess that’s the choice of the restaurant.&nbsp; It didn’t matter to me though since I just wanted the schnitzel.&nbsp; The schnitzel itself was basically a huge piece of boneless pork coated in breadcrumbs that was fried (not deep fried).&nbsp; I thought it tasted good, but it wasn’t amazing to me.&nbsp; Pork isn’t that high up on my favourites.</p>



<h1 class="wp-block-heading">A Bit of Relaxation (Kind Of)</h1>



<p class="wp-block-paragraph">After our meal, we went to a park to relax a little bit by throwing a Frisbee around.&nbsp; It was kind of strange to me since we hadn’t done any real sightseeing yet and it seemed as if the others went to Vienna to throw a Frisbee around.&nbsp; They even went to the grocery store to buy a few six packs of beer!&nbsp; We all had the impression that Vienna was a really classy city, but what we were doing didn’t really seem classy at all.</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipOQR21rdN6HiSH46240VsFfxvcCGZbVYtpDD2JY?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEXJO_Tj-YgUMMA1aYZd9TbtF0Artem09kltWfaJC_Y_HbcSHwUy30JbPDZk8-9qQrEbO8MKEZFVlp8HmG4R4OVvIg8r4GFbBwtMBfL9Lf77Po2d7EhhDkZnDSXVyIW-gZG0zpFnOsF0feG59aivp5IDyA=w1226-h919-no" alt=""/></a></figure>



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



<p class="wp-block-paragraph">While we played Frisbee, we noticed an insane amount of flies, mosquitos and other pesky insects.&nbsp; Apparently, the others encountered the same thing when they biked to Austria one time.&nbsp; These flies flew around in groups and were so annoying, especially the mosquitos that kept buzzing around my ear.</p>



<h1 class="wp-block-heading">Schloß Schönbrunn by Night</h1>



<p class="wp-block-paragraph">After about an hour of Frisbee, we walked a little further to the schloss.&nbsp; The schloss used to be the imperial summer residence back in the day.&nbsp; It is now one of the most famous monuments and one of the most visited attractions in the country.&nbsp; Since we arrived really late, the schloss had already closed and the guard there told us to leave when we tried to enter.&nbsp; We ended up taking pictures from the outside.&nbsp; Since there was nobody around to take a group picture for us, we set up an improvised tripod using the box from a six-pack of beer and used the camera timer.</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipNKv2BkuwMVDy2kO_04j6ZKAFIMw7_Q-5bu-jfY?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEVHBnh-kaL-yQxnLjQJCGT2zJL1PK4kwgZwwGuSPw7wUtxOfgl6jamvJEUCo48Tm_rzwc0FcrApkEMU5m7bvfmyCpoZ3pNsLexLgBaGLzHXnhSl413f7VrylmahmKL4_eMYhU-EPCDzAUzWty2953g6Lw=w1226-h919-no" alt=""/></a></figure>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipN0JO1LTx1-gX1n_VGNYSxBt-w7olWyk1IGwejw?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEWmp6CnIGaxZDTU0WRF4uTakKpNvHbA6fPfpxfmvwz8t9mfVObHJiOIpsX2zgIO-rubLWpVTQnVq8YzsXQx1bIyQziiqvswh2iFrGIaIQdPg_NIxKjl1p09DOWjfzpm0VacGxmillrIYowsfM4mNx4N5A=w1226-h919-no" alt=""/></a></figure>



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



<p class="wp-block-paragraph">Afterward, on our way back to the hostel, we came across two guys from Prague asking us if the park was a good place to sleep.&nbsp; We were all kind of puzzled since we figured everyone would just book a hostel or something like that.&nbsp; When we mentioned going to a hostel, one of the guys just made the subtle finger rubbing gesture to show that it was out of their budget.&nbsp; While talking to them, a friend of mine with a beer in his hand just said “na zdraví”, which meant “cheers” in Czech and the guy was really surprised that he knew it (we learned that from Prague).&nbsp; We ended up directing them to the park and then went back to the hostel to meet up with another friend who was joining us later on.&nbsp; He came by train since he decided to come with us after we had already arranged our transportation.&nbsp; Once we met up, a few people in our group decided to go a bar and somehow ended up back at the hostel at around 3 am.</p>



<h1 class="wp-block-heading">Wien Mitte</h1>



<p class="wp-block-paragraph">The next morning (glad I went to sleep instead), we took a trip to the city center, which is usually where a lot of the touristy stuff is.&nbsp; One of our friends decided to take a nap at the hostel instead since he came back so late the night before.&nbsp; The first place we went to was the St. Stephen’s Cathedral.&nbsp; What annoyed me a lot here was that the cathedral was under maintenance.&nbsp; The face of the cathedral we were supposed to see had a large construction cover over it.&nbsp; The inside, however, was super nice.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipO2Xv-Oqs_VoUO2BC1Otu0xC-lEZhGEC2DREss7?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEV_Q_7eU8dGPo35P3jVlw-T1IBfyjtzCMfbCRGXerYuEEdJckFL83_Hdw1fPCKuy378V2s2v85Jw_KfPhVBVtSCaYHnyepiufrEGxNTUcN7FQg2wg6u5-vw5Od_gVqQH0m0GNVdIPF-mPaxt0KjhRarHw=w690-h919-no" alt=""/></a></figure>
</div>

<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipOKhB0HRy2_1ohVhRmJHZ7W6aUcf20BOe_PQZaE?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEXEyVkzgFGPuZLJoZ1IDhhknSLWRb8b34Ytk_ztm8XskiXTtiXG43RAbmzrBkH-9sTbK3IIUf-u5A7Eqre9d5lpRJfnGxn_6ZUWtCy_M9kfX1pS0ukuj9evjlTQEmU5zk03vV_XOaz8Aay6RIGWS3HAew=w690-h919-no" alt=""/></a></figure>
</div>


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



<p class="wp-block-paragraph">After seeing the church, we just walked in a random direction until we saw something cool.&nbsp; The worst part about walking that day was that the temperature was at least 30 degrees Celsius.&nbsp; It was like walking around Las Vegas in the middle of summer (ok maybe not as bad).&nbsp; I didn’t pack any shorts and ended up partially rolling up my jeans.&nbsp; I even took some paper to make a fan out of it.</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipN-VaAoRxpA_w4fru5QD9G4ZMytwl4YvPNReYw3?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEXOWvGEiPUDYyogAddFtPb2mhq1lJ8DMoVUUWCq6fCJ8XKeyO-WIpfpQkcRn3HDY9bptYytxfKMUjLv-EZXWBVDTDXhMXLMNmSLH6FEYAAseVIctz2mjrILWLIvw_p93V-OtF2SPNad2g92usfNTAfwGQ=w1226-h919-no" alt=""/></a></figure>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipMm40Ut0f6g7NQDZiYVUvWOl56NApcDNKJ1qOrp?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEWEbg_pqJGMzsapZGaEtwR6tUSeSLaPA3xgCEPSvS4aaHQSGeBMaXkTng2F40H8JVRy7qRVzoVC-WUTpDhq6An4G0vPEGE1vwfZWYiS3fXMF1vSCFz2DoA9RIZX7JmKQdFSsWrm7HWWtNnnfL_oY31dpw=w1226-h919-no" alt=""/></a></figure>



<p class="wp-block-paragraph">One thing I noticed that was very common was that the locals here really liked wearing fedoras and giant hipster glasses (more prominent at least, but it’s not like they’re everywhere).&nbsp; Even better was that they looked good in them.&nbsp; It really added to that impression of classiness that we had from the beginning.&nbsp; Even the H&amp;M stores looked classier than the ones in Germany.&nbsp; The way the Austrians spoke German sounded a lot nicer too.&nbsp; It sounded more “clean” because they spoke slower and enunciated more unlike the Swabian German that I’m used to hearing.&nbsp; Apparently, Vienna is tied with Vancouver for cities with the best quality of life.&nbsp; I can see that.</p>



<h1 class="wp-block-heading">Memorial for Mozart</h1>



<p class="wp-block-paragraph">Afterward, we headed to the Hofburg Palace.&nbsp; Along the way, we came across a memorial to Mozart.&nbsp; It was a statue of him posing majestically and in front of the statue was a garden with flowers arranged in the shape of a treble clef.</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipOyQmYdiOQWD_hNnSspSyF1JXHvy5rKXP2fCVPy?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEXjBVdegWCLZqjbFKC-6AxaIGfKQrDzOxG5EHyxLuFaFnyXj6PcL08X8DBzYut883gJMtIenlNLm9R3W823umsniLbvi1hcgjc6JGfg8amtD0On4t6KrK3X1U3P8z6HoBhgX0Rmuz773hGLfJUspUYuCw=w1226-h919-no" alt=""/></a></figure>



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



<p class="wp-block-paragraph">I guess when it comes to Austrian music, Mozart is a big deal since he was born in Salzburg.</p>



<h1 class="wp-block-heading">Maria-Theresien-Platz</h1>



<p class="wp-block-paragraph">After we walked a little bit more, we reached the Maria-Theresien-Platz. This area contains two of Vienna’s major museums: the national history museum and the art history museum (more classy stuff).&nbsp; While I was there, I took a picture of both buildings, but looking more closely at the pictures, it seems like the two buildings are almost identical.</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipNcqb5QpCKnFHomcCX17giGFAxSlXLt1wJ8ovHL?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEUQPHmCIIJ77E9CXQ9KtS313pUDRSuD4PLIZxdIa_NuSbHZHslYrjB2TBCD_ho7CV5ytlW0eZK3lkZ_Xm81VwNHy20xhuQDC9YVUABQ_4UzEY1UiU82-vKNHCIJW8KN9ntEkAmSAlapKRbnaalvvKr0sg=w1226-h919-no" alt=""/></a></figure>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipNyK4vbRxHsdSPlIsYvL-xKFzIh8TE_cTmUJXAv?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEVGnMhqEUX0ogT3HGQX3Tx2GzTnvTr2s3evJmnTLszb4Qtu6HG6CuCsGIFQ2B4H3fFwEXonHECB4kbUXXJjo4gLEwBCT8ZLEZwz5IeIMTXvIFjZ-Q3oZFXJrK2du01SnTQW6fjyHdqYCm8JX_pgzb_o4A=w1226-h919-no" alt=""/></a></figure>



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



<p class="wp-block-paragraph">At the center, there was a giant statue that basically acted as a giant shade and a lot people just crowded there.&nbsp; It was reallyyyyyyyyy hot that day.&nbsp; While headed to the Hofburg Palace, we came across a public water fountain, which gathered a rather large crowd of people.&nbsp; The funniest thing about that water fountain was that it had the words “Wiener Wasser” (literally “Viennese Water” in German) printed on it.&nbsp; Maybe I’m immature, but I still think it’s funny.&nbsp; Maybe even funnier, the water from that machine tasted really good.</p>



<h1 class="wp-block-heading">Hofburg Vienna</h1>



<p class="wp-block-paragraph">Eventually, we ended up the Hofburg Palace, the former home of some of the most powerful people in Austrian history, such as the rulers of the Austro-Hungarian Empire.&nbsp; Currently, it is the residence of the President of Austria.&nbsp; In contrast to the Schloß Schönbrunn, this was their winter palace.</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipMQNI10WWkQy2Ak8xhqGpuYmLkGJfAXVZUiDrfz?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEVwgHP1Z9kHOfx-sPLuAK6cgWwnvA8PSrlMObbZaPcRpRSmSROXqiZGMGgRFTqvq5zPqQ0m9pf4e8rsVCZelzmByxYWFqHPTL6mSF0AEvAAPcJ57C-xdy1dZsXSfKn3dkbjoOXBQO7cMeI520FNRo3vUA=w1226-h919-no" alt=""/></a></figure>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipM6WKG0QvNBjlZEk3UirYFAC_crfHJtYGdoUqlw?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEVo-ni5hG5cvdgoOFCaOqgszin4_cioksTc_hzWM3TTUX86kS36XOJpseLZ6zFN-EDnQZvm_jBPhODFeARL9y0HTN39GgP6P_bd8GYCWz12JkrmECdDuT4ha6VusZa4O-ILjDs4RW6GB0yWH3biN9i15w=w1226-h919-no" alt=""/></a></figure>



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



<p class="wp-block-paragraph">Outside the palace, there was the Volksgarten for people to enjoy.&nbsp; In the garden, there were flowers (typical of a garden I guess), and the Theseustempel, which was intended to be a replica of the Temple of Hephaestus in Athens.</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipOEJBMtX2i5FrVDftylwZxNxSf2PTgOOtuUT9wJ?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEVS66B5--q50kSqj_p0h10za98TMyZqpS0gQb0c3mPpnmHgN2HyPNHoEvXBG1FPW_b2URMt5XVjrvHdI-mONn8-TvkiL53T59xRqQZihfeL0YJKd9zN_-57mUMhUCLXwnZFAJrD_alih-qPiRaSUYUN4A=w1226-h919-no" alt=""/></a></figure>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipPuRn4S7AMffvHUJNjhV0DdaV4wpzQvD80j02yc?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEUQtd4_ivboyC5DkHtFEUQf5kxw10UO_MYDwAPB9qAkGoBjEwWDPLnhXE2NrM62m8XOJXaIwKmXV2cgRV3kw17tvOuQcEKLmnY_nJzGJVyM0B9bNadqCkTshsLboK__BSILJUt6iK0h6AyFd_tVrdnuww=w1226-h919-no" alt=""/></a></figure>



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



<p class="wp-block-paragraph">After walking around this area, we reached the government district of the city.</p>



<h1 class="wp-block-heading">The Parliament and Rathaus</h1>



<p class="wp-block-paragraph">Although we only walked by the parliament (why we didn’t spend time there I don’t know), I did manage to get a quick shot of the building.&nbsp; Walking a little further, we reached the rathaus (city hall).&nbsp; Both of these buildings had really impressive architecture.&nbsp; Looking back at the photos, the Austrian parliament building bears some resemblance to the German Reichstag and the rathaus bears some resemblance to the Munich Rathaus.</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipOppilFl2XJuFadhbSQGMLSBVPQoXo_3tHGoY0v?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEV2a_RoRYunS3kJ5Im1pJIfUxb1rFAnjZXe3oYxVtVVIAr5ygygclariLTnXUEwZKj89aTwgckX7xq9p9nzNKMz6NNg1AK5kUZeBKJKa8A0exi93hKqIif9RfnraZFwh0fg7Y0bhFAH7-IornJoudmWmw=w1226-h919-no" alt=""/></a></figure>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipM0Hyj7UimS3MzxS3PG35HEFv3EpJCsWQCfWNRd?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEVQlyXazEfIMybUsrDBPAt1FwUvwebscRBEfIjExlspTEj82aENo8lI-HNilQlHVITH-TEYo_OoR-MiaLIS06o9uNc0uK1OcPfcRWyQvlqedtgPWJdqcSnilNjEEu97OHTb9rEBC-aVT4U682B2OUbJOA=w1286-h919-no" alt=""/></a></figure>



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



<p class="wp-block-paragraph">When we were there, the city had set up a giant screen and a bunch of chairs for the open air theatre for opera and concert films.&nbsp; We planned to check it out later, but we never got to that.&nbsp; We also met up with our friend who chose to nap at the hostel instead of coming with us to see the tourist sights (sucks that he missed out).</p>



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



<p class="wp-block-paragraph">Across from the rathaus, was the Burgtheater, one of the most important German language theatres (the ones for plays and not movies) in the world.</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipPC-q60LUYSxFLyYwvki46pf8kxJ_WAU54A1EBO?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEWStvGdoaniUpapfOGUDA8mRbXxw_if8MJoLMuTZ9wI9hkTuqqm2rzB8t379zV3ELpM3yye7uw0InFfJt-GaYGe3bV76V25ooIokDzGduPNSlKAjnHVXoF0ttNH0lJXaiF4WQdLCZxlNPH86S-v5cSO3Q=w1226-h919-no" alt=""/></a></figure>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipNHftQWT-btZ3zaB9EsCsQAUhO67DbfXqa9Kxqx?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEUIwfF8RjRahrpzOjJVDzXVnbCabjcB5f-v3mJfRvBjGy1-NU-inkh47Ew2uqKUlU7pdtltWSAxHUTSyeAqDegLfHXQrAMoDXtk-MlUIjqKiaBquuuW9oQTP3cAheq32_xtimrg-Z19sFdNrvx8uoY0LQ=w1226-h919-no" alt=""/></a></figure>



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



<p class="wp-block-paragraph">Near the top of the building, there were busts of famous playwrights such as Goethe and Schiller.&nbsp; They even had a bust of Shakespeare, even though he wrote English plays.</p>



<h1 class="wp-block-heading">Liechtenstein Museum</h1>



<p class="wp-block-paragraph">Our next destination was the Liechtenstein Museum.&nbsp; Along the way, we passed the University of Vienna and the Votive Church.&nbsp; Eventually, after walking several blocks, we reached the museum.</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipP808m5a-LWmnqIoAZVI2MSAMugiabgi_4lEuxp?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEUoS-03beSRsSIWZt44wBWW-UGOw76DLpl6OBbIACBSapsFOQOMYqomI65L4FnWPV9Oj0sGvbLAUo1zq9aUQ3aM2pWo1FXmVAJ1y2xr8O3aJdmE8OQJhn2b73ExpdbF5L6Fy_UO3aEX1nzZ9Jjubi_qvQ=w1226-h919-no" alt=""/></a></figure>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipM3_xQhyFg8eJbf2_42oGUpYdAyXJgpyRcZKBUT?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEU6wBI6WXvkGkffKo--rLXjf3qrQ_mSHhZUGSOIUfMAeSQ4LUmViBwoiCBmQtUIsxbB7Oyioe0gs9F2-351p4oWkyT_ShchVH3n_1dTPTaMPR4nql-sAQgLxiQsTuU2rZMZHYmZxAKwDP91V-ruUa6uyA=w1226-h919-no" alt=""/></a></figure>



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



<p class="wp-block-paragraph">The museum mostly contained old works of art and also a really impressive horse carriage used by family members of the House of Liechtenstein.&nbsp; Also in the museum was an old library.&nbsp; The interior of the library looked like something out of Harry Potter – full of old books (but without the dust and the screaming people).</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipO6Q285Lb8IqDu0HlWbaIuMHltoh_UtqTsTKoLP?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEXLjKRpB8OxOFIAp8BGdPGrUlkC-33tpGONQGC2-FwAs3FEmYk393DOrjvPa6dlhIyiZfly3zsbGfP5yAmmh1dVmEAi0dVGJeQq9EaP05eQajh5LV3jatJvHUh-kK11CisUOGU-away50f-qc0v-XKkvQ=w1226-h919-no" alt=""/></a></figure>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipN42e4eU5CqaFb25L1N3CbKAGmFjWJ2t324LoXy?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEUZZKhMqipG1gMgqrMqTygbTuqC9OxKBksaTHoEyeFV6jP1LUfnLphOnhlGn7Oz8vKvAmXdQBIBP7az5j-KEJJ7rbUDVLyMlecJEX81fpphIkbCK5AWwcyNgPgxHhUX1QXJCqW2sA6h_jG3FROjwp46Mg=w1226-h919-no" alt=""/></a></figure>



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



<p class="wp-block-paragraph">Somehow I don’t think I was supposed to take pictures of any of these things.&nbsp; I took a close look at a lot of these books, and there were titles from a variety of genres like science and literature.</p>



<h1 class="wp-block-heading">Mozart’s Requiem at the Karlskirche</h1>



<p class="wp-block-paragraph">Knowing that later in the evening, we would be going to see Mozart’s Requiem being performed at the Karlskirche, we went back to the hostel to wash up before heading out (we felt so sweaty and gross for pretty much the whole day).&nbsp; While we waited for the others, we played a few games of Pool at the hostel.&nbsp; Originally, the concert was supposed to be at the Vienna State Opera (at least that’s what the website said), so we were kind of disappointed when we found out that the performance would be at a church (even if it was near where Mozart died).</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipM5-0a2TaNf4gjuXCgQarp_Lwl3I4jkQir4aFNR?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEVleiEu5oghWQYE8_rLmGyjqyl9aTEY_NxlWgZu62xVyqQ8uCjsfDkSynYTr7ZCHFDp2cpqXeD79F6PWq2S_44ggB2qLhNyeGrjEDvzrj6q83w7eD0iGAR-QBSdtGSfzDGIA_REvVYKYjNLSSyiFvTT6A=w1226-h919-no" alt=""/></a></figure>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipMyAf-OARedWbE8yAoq41H9orLLbandau7V5-BR?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEXBRhxk2gt4xsLP7bq4EJadMtuMYcJj2Pi0Qhz7P_fazVWb1GvFH-QAZndqd-q7WE3uN9rIgBEmSV0yGkqcobOkDpSq0-0fjzCILpThSh9C-TG0DEaRa8Jd6FoplLzOX8kpPvVLLv3QFzr0xBxHMNUL7A=w1226-h919-no" alt=""/></a></figure>



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



<p class="wp-block-paragraph">After we bought our tickets, we proceeded inside and enjoyed the design of the interior of the church.&nbsp; When I walked in, I was totally surprised by how impressive the inside of the church was.&nbsp; I did not expect something so amazing, especially the design of the altar.&nbsp; The bright light around it made it even more amazing.</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipNl0JhTgms-f9XLgp_oVpPk-QMhPn4SzavVqQMp?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEW3nnXWRnuR6lTlC2EuhG_anJelNi942PGyZ8uy3TkaOTDd7Fe96wgmY7WJ3KBoADMT-tcGwyhvDDyy3Oo-UbT1kIIfUsiWYCW5BAhIg8nHMphhffREW2uzMfOz2zrQaH2frtUZ1hSE4GPHPhJmvJksLQ=w1226-h919-no" alt=""/></a></figure>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipNq5GW2UWd7NnXaFdNhldI7xC6uVmI0eGw5PKKC?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEXupEAl1uT1DhxHn5EPjmTJSxTPe0_iJ_H8JS5-J8RvA9TPX2LNRhTfurckWfKzYMMaymzqCpQ1D1JuIuVVGc1HvWaxa7MIILfgE20WNwJuBz_rEbdyK15s5ZTv-p8TOrPwTZoGc999D1M9XZKb_no9Mw=w1226-h919-no" alt=""/></a></figure>



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



<p class="wp-block-paragraph">While listening to the concert and the sound of the violins, I felt a strong urge to take up violin.&nbsp; It’s also something I always wanted to learn, but I wasn’t sure if I’d end up sticking with it.&nbsp; The concert wasn’t quite as I good as I expected it to be.&nbsp; I felt that the concert in Prague sounded a lot better, but it might have been because of the acoustics of the room.&nbsp; The church we were had didn’t have very good room acoustics.&nbsp; However, the singers sounded really good.&nbsp; Despite that, the audience liked their performance a lot and clapped for a few minutes.&nbsp; Some people even stood up and clapped.&nbsp; After the concert, we came out in the middle of a thunderstorm some distance away.&nbsp; I tried to take photographs of a lightning bolt, but I couldn’t react fast enough with the camera to get the shot (even on long exposure).</p>



<h1 class="wp-block-heading">Wombat Hostel Bar</h1>



<p class="wp-block-paragraph">For some reason, when we got back to the hostel at night, we went down to the bar and started drinking.&nbsp; Maybe it was because we wanted to take advantage of their amazing deal for shots – 1 shot for 1 euro.&nbsp; We ended up having six shots in an hour – not counting the Jaegerbombs we had before that.&nbsp; We ended up mixing a lot of different shots together like Tequila, Whiskey, Vodka, Schnapps, and Gin.&nbsp; I forgot the last one.&nbsp; Now that I think about it, the last one we had was Sambuca, which tasted like liquorice and it sucked, but I think the Schnapps were worse.</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipMkfXZibUWBm2btFxj5AmG0IAw-ZkbF5YqMdd6g?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEXOAKiMbLSvzo_hVUHsTIV9Rtuu5J4s4LVv0D_fKwxl7eEDiPc_rGQE2UEbc0KujNmHnQbQhgxrQ10qCZDHgZZOn0uGPqOqN4JDbgMFiboumFnPW7MjHas-6tCAeZwvoMlXnEH5TKWmAaqwBXgeA650Hg=w1226-h919-no" alt=""/></a></figure>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipPMDKD-jswFJ2IuFsC40nXCtghxF6ekDFVfDq2y?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEVsxnJKyU0Mkq3ZuDva6tRDY3FW8wQFokdVz_Si9JNjyRDewCjh3WqRKHKsOUzYGQG6fkD6wmgkeLo5XTmPlTGbryVH0j6nvcQOAaToffLDyycOkqbYL9YVRvhhDgvcSiqrA61sSfsVyGBviu-lWlX4Eg=w1226-h919-no" alt=""/></a></figure>



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



<p class="wp-block-paragraph">The coolest part about the Jaegerbombs was how the bartender arranged them.&nbsp; He arranged the glass of red bull in a line while a shot of Jaeger sat in between two glasses.&nbsp; He knocked over one shot into another and they all fell in the glass of red bull like dominoes.&nbsp; After having so many shots among all of us, we could almost build a pyramid using only shot glasses.&nbsp; We could have, if someone didn’t break one.&nbsp; When the bartender saw us, he was really surprised at how many shots we had, but I think he just felt super uneasy at how we tried to build a shot glass pyramid.&nbsp; At the end of all of that, I didn’t really feel dizzy – maybe the alcohol hadn’t got to me yet.&nbsp; The others then decided they wanted to go out to another bar, but I declined and went to sleep instead.&nbsp; I didn’t feel like coming back super late and not having energy for the next day’s adventure.</p>



<p class="wp-block-paragraph">The next morning, I found out some of us came back at around 3, while others came back at around 4 or 5.&nbsp; One of our friends didn’t even end up sleeping at the hostel and ended up sleeping outside at a cafe.&nbsp; That was REALLY bizarre.&nbsp; I would never do something like that.&nbsp; Because they came back so late, some of them ended up missing the hostel breakfast and slept in until around 12 pm.</p>



<p class="wp-block-paragraph">Those of us that had breakfast got to enjoy a great breakfast buffet.&nbsp; The hostel had a sandwich maker so we stuffed as much stuff in our sandwich as possible and got the whole sandwich toasted.&nbsp; I never thought cheese, salami, ham, cucumbers, and peppers in a toasted sandwich could be so good.&nbsp; I think I had around 3 of them.</p>



<h1 class="wp-block-heading">Schloß Schönbrunn by Day</h1>



<p class="wp-block-paragraph">Since we weren’t able to go to the schloss at night that day, we returned to the schloss after we had the breakfast at the hostel.&nbsp; Just like the day before, the temperature was super hot (probably about 35 degrees or so).&nbsp; From the outside, the schloss just looked like the same setup as the Neues Schloss in Stuttgart.&nbsp; It had the same U-shape and the fountains out front.&nbsp; However, we found that the schloss had a giant garden in the back, kind of like a smaller version of the one in Versailles.&nbsp; It also had a labyrinth with walls of hedges and also had a zoo.&nbsp;</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipMRtzGl39ugW4o_s0JeLiQ1Ikzy4EQjUG7_rimQ?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEX6uJV8gOxEN5met8uVjnmEmHMOWYuU2na2zGEbwQOWr_dCJuz_r5XaVHeeoWqTjB7kWdg9MjUjg0xO4zjcXAAB6zB2Zpb7yFhhCyiK6af5xtqFA1udkdp8nQS6k0E9NWq-6i95znAHST0-Z_rweVEEoA=w690-h919-no" alt=""/></a></figure>
</div>

<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipPjNZj9lcIvwdByKWFIgLWHt0xZmb54bIDzQ4pl?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEW_25G_9okv6z8WhKjEraBrS0yNPmVZrVmRv6lh5YfCM1iAFXUpQr83E-6EgqUSQAUbcRH8cx1nb84gp_eSORTRAakagMTide22-7m1dK9o1RO9qCkSdrHlbIBpKXOkCFxnbdZZgkzcBqRNCHDxFAyj3w=w690-h919-no" alt=""/></a></figure>
</div>


<figure class="wp-block-image size-large is-resized"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipPaOnksdW3_Koenf6oOHbgvFrJA7-xU2Giive7D?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img loading="lazy" decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEXTar9xFxeuRsDVPEYejYOHJh4k_lm4IafxN1GXd3D_2UD1DYbrlEvSFh5TR63oFdW_DNBZ1zRuEn4ShpzzwtsQl-jDsYWMabd8yzwPB3m-ozkii_wstjSnSTA3rFNHo5-Jp6EDCcMs43sWR-xQF4dbWw=w1226-h919-no" alt="" width="840" height="630"/></a></figure>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipMmaJVoPa0vkog_rMet7SEcbF-0CFfFMvHOnXdh?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEVY-4ov_vAUlvPEwQYNC1upP8JZEBY8FLydNiUGcPv2aZmkNGYewQvz5d0j4cB6lcf5wNs4FU9_T4XE8QZo78jL-jBuTlDTpSy4Nmx5LKIN8_KCxoKaPgg0H0sWfj-GPChAQ-s7ziNCadLRL3ao57IjOA=w1226-h919-no" alt=""/></a></figure>



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



<p class="wp-block-paragraph">Behind the garden, at 60 meters in elevation higher, there was the Gloriette structure. From there, we got a nice view of the whole city.&nbsp; Inside the building was a cafe and it had really delicious ice cream (although it was kind of expensive).&nbsp; Outside the building, a bunch of people set up tripods with their DSLR’s and everyone had these filters for their lens to tweak with the color of the photographs since the sky was so bright.</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipNYAg26bl5C0OBULsVb_1O197TJMVL9xGhNMSE0?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEWdnn1x3GvFXZYnfmF4QPMGfvkoJe4C2RzBQe1rxX6AEn1Yl2dahrWU7T5ivrEATCYpG3mFZC7G2viMNIdqCW5wl_8DtrUQAX70Z_7Nr_UeC2pFgPbYnffJmIAfzkR3IKRj3hKDxLOvIxzbnm7ZOHlwxg=w1226-h919-no" alt=""/></a></figure>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipN0JJAyid1_UFVNcE0pj0uyjd8hU1cXtAJGEG78?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEXl0Qhu1Q205NE9WpPruC7tL8ka6kD8W8Q3C7qpybOyRiv8c_FU4VrwlmPH2mYEHckaLcwgXB7k4RXQcIaOZM_NqaiyDdh98tOUhRDiD2dBElGRD_UmhZT8WogQSu5m8P4q6axlfMg-Ybqi-8ldWWxetg=w1226-h919-no" alt=""/></a></figure>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipMLs3EZbb2FYhe8l08SR7fjWrlqE144WS0QUMHL?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEX00Sx_LXoGFjfxHhG0BVgL88dKSaQ3NxarLcKekC-4QrvUW1Ugcrka1FtuoSPs0BWPz2RBucawOGRomGA8C3BGrABIkW_3r5Pf2Wrs9xBsRwwY5reT6qx7dhzUlo6_utzWYxCb0GOPsuYuy2O9JWJp-w=w690-h919-no" alt=""/></a></figure>
</div>

<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipMkSigLbIAP-yLzdnZHwudcm5up6NMZvrWl48Rq?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEUILcvdoOF42oyDm0qexx6GMeH5NH86VHR-YRpjBtqt3R1HF6fIPVmDsty_KYUsUDgSducVHj7DkgF225U2TGoNg0BPr9BKVpQSFOZOdA4LIjZ_KSdU7MNbGzd9RMya1wFqb0CM7u2W0I0T87IoiS1-yg=w690-h919-no" alt=""/></a></figure>
</div>


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



<p class="wp-block-paragraph">We could even go up to the top to get an even better view.&nbsp; On our way up, we bumped into someone we knew from Bosch, but at the time I didn’t know for certain who that was.&nbsp; It was only afterward when I realized it and by that time, it was already too late to say hi.&nbsp; When we finished seeing the Palace, we took the metro to Danube Island (Donauinsel) for a bit of relaxation (hard to call it that when the weather feels like fire).</p>



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



<p class="wp-block-paragraph">The metro station here was in the middle of a giant bridge and when we walked out, we saw two people just sitting on the edge of it.&nbsp; All of a sudden, one guy just jumped into the water and started swimming.&nbsp; And then the second guy followed and made a giant splash when he hit the water.&nbsp; It must have been at least 25 meters or something like that.</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipPF7lqPz3r3rohD2962ZZM4A_k0xZ8keZ14EBO0?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEXVcmfRZj16C5O9VVJ1BjqGjRaDe8vNz_khV48Mv7ll47H5L_Y93t20Uaqx0ldPVYHigkYaods8-MYRQDiHOHUQ9D2SbAjcjrit0MZ818GYmw8Wg4ZUAgqTmOeU2uAXDATDA1hLuwsOUWKxKrHTUHxDPQ=w1226-h919-no" alt=""/></a></figure>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipN9svmzb9pXC7BILqxnR5NstLtnQ0FH76HTP4Xt?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEXZzHbAWfSIdkhW5RtG0SZHEJhCnPTqlUszCDZZLwZXL3zzfeCRefMQNmVlcvumU6pKitqwFa_0vnUYfDYIrY63_nPI4j6lqEWXUyZKirNYwJld4YlzhfsvEP7wVz_7wx8AbDTruDTR0K0tcttjKuONvA=w1226-h919-no" alt=""/></a></figure>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipMYQSWfJm6EyzAqjt_I-WP9hPIyTjiH6WbGKdIz?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEUUU_GcWxQdZOG6AY4eu66nAORUkbvcsStmiltpA2KmfQfon4Yck95gvXv1zDXGnLxzrnXTF3CZdWckpZShgek7cTdZTrIUi-txKk7WAffipzRNp3VNOYmtPxAY_9smSS0XHE4Ikk_deRIJ51LNWlZhCw=w1226-h919-no" alt=""/></a></figure>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipOxv73oVWSnX34iwUTxaNBAa21XFyiEBzVI4b3v?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEXqS95_kyGkebbFUqt9q_iOnPOgx5e6TLqCjlPHvTVMEgKDZJBfH2D-dQsut2SDT6FwwskX1sdSxt0jgKWcg_TeohVSPTtrtm_6VyLT2kkqIBS4GErTnwi-N4-JENRqwZComUcIBU9rLD9zfTH4gHAwWQ=w1226-h919-no" alt=""/></a></figure>



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



<p class="wp-block-paragraph">On one side of the shore, one could see the older part of Vienna and on the opposite side, the newer part.&nbsp; There were quite a few high-rises on waterfront property.&nbsp; On one shore, there was a set of trampolines set up over the water and that was really cool.&nbsp; The whole area had tons of tropical themed cocktail bars and seafood restaurants.&nbsp; That really gave the place a huge tropical vibe.&nbsp; One of the things that people do in tropical areas is swim in the water and that’s what some of us did.&nbsp; I didn’t though.&nbsp; I don’t even know how to swim (I wouldn’t swim in a dirty river anyway).&nbsp; None of them brought any swimming trunks or anything like that, so they just went in with underwear (kind of strange if you ask me).</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://lh3.googleusercontent.com/pw/AL9nZEXjrMfffzGtBZx1Kfd5wwKwa5TvKXTAJ_ZC9USwIqHHrh5VJfnDDeOPEFmKO3ZQf0gdOrW2nOFwojvk_-pPHOuduq60KoIuJQ0dad1dxPk9N4ZALlWSRrQx3pP5XXJyYhnpTv7T6jZkzyjdmwc7zk1CVw=w690-h919-no" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEXjrMfffzGtBZx1Kfd5wwKwa5TvKXTAJ_ZC9USwIqHHrh5VJfnDDeOPEFmKO3ZQf0gdOrW2nOFwojvk_-pPHOuduq60KoIuJQ0dad1dxPk9N4ZALlWSRrQx3pP5XXJyYhnpTv7T6jZkzyjdmwc7zk1CVw=w690-h919-no" alt=""/></a></figure>
</div>


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



<p class="wp-block-paragraph">While people swam, I walked around exploring the area and saw a TV tower.&nbsp; Near the top, there was a walkway that protruded from the building and apparently it’s used for bungee jumping.&nbsp; I don’t think I’d have the balls to jump off that.&nbsp; After everyone finished their swim in the river (it was a little bit dirty too), we went to the Vienna State Opera.</p>



<h1 class="wp-block-heading">Wiener Staatsoper</h1>



<p class="wp-block-paragraph">We arrived pretty late, so all the tours of the inside were already over.&nbsp; We only looked around the outside and figured out what time the tour would be for the next day, which we did end up going to.</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipPfsJ77tUyI3UCT7ajJR3z8A595bhJd8tT3OySD?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEUnArGqnUBXSb29RZpAY0kci9WEBLVUNuePArOC03m8XIJ-FhWDv2UkSbfkk3TvHV-Jw5bwuDPncy_7WVeAHxfq_fyoegwW94ZSQLvlMiwBP8jihuUc7d9prLyh3sQM_Zn6QrgLrFIpOt8iTp_XrJNlFA=w1226-h919-no" alt=""/></a></figure>



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



<p class="wp-block-paragraph">We also found out that the opera has a “summer vacation” in July and August.&nbsp; The only shows there during the summer months aren’t part of the state opera and are just borrowing the location.</p>



<h1 class="wp-block-heading">Sand in the City</h1>



<p class="wp-block-paragraph">Since there wasn’t anything to see in the evening, we ended up going to the Sand in the City, which was just a collection of cocktail bars and pubs in a place that had a beach feel (minus the water).&nbsp; The whole area literally had sand all over and many people sat in beach chairs.</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipOU4EtRzsmb8PAdFZmYm8xj2zRk2Ed1DgxZ7Oun?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEX4d8OEJqTXqeBdCqNe4rYk065czaM4_iTGeg9ct_mZpR1BGl1vPQFxz8GvueTRfCIhOrC92AY_JW76Jl1FsuSUbZZvubxWZNFQvzLtsSDLsxQaOcW7ArB5eyrL-WGultgypC3ivRSXgVSujn2pRRH6uQ=w1226-h919-no" alt=""/></a></figure>



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



<p class="wp-block-paragraph">Also here was a shisha bar.  People got to take the hookah to their table and just smoked it until it ran out.  I didn’t know what shisha was at first, but I found out that it really is just flavoured tobacco inhaled through a hose from the hookah.  I figured I’d try a little bit.</p>



<p class="wp-block-paragraph">It didn’t have the pungent odour of cigarettes and just had apple flavoured smoke.&nbsp; I didn’t really like the taste, but I did learn how to blow smoke rings and that was the cool part.&nbsp; It’s not something I’d do any again though.&nbsp; Not long after doing the shisha, I must have had a strong allergic reaction to it.&nbsp; My nose ended up being plugged for hours and I couldn’t stop sneezing even though I only had three puffs.&nbsp; When I went to bed, my nose was still plugged.</p>



<h1 class="wp-block-heading">Tour of the Wiener Staatsoper</h1>



<p class="wp-block-paragraph">The next morning, we went on a tour to the inside of the opera house.&nbsp; The interior of the building had such an intricate design.&nbsp; A lot of the design had a theme too.&nbsp; For example, above the busts of famous playwrights and composers, was a painting of a scene from their most famous opera.&nbsp; The interior could have looked even nicer, but parts of it were destroyed during World War II.</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipMO419DYvnxgm8AfXRd1ACMst-urPhqMZQKdo71?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEV_w8BV1MTxRClyrxcIDnwkW64Ah-TQJG-kOgZAYrfgSqbIBkZVtsbAYySsjVX9KvufOI9wJX54AlHeUJ1wCCxj1N3hajp9j5GkRlhwdxjo4kyIm5SCzYl1H4i52D8mBhBpuSU0gokZ2WJLjLcgzsOF0w=w1226-h919-no" alt=""/></a></figure>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipNUCjWRYCE3uzhTgefB6RysHu75jFFFKh3i2THC?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEWw1mhCzWplsFcUA4Ca4GpXGM8taMTWhNPIt-OmCQgReHiuLqot13fnr5wOmCay0V9QPa1nuuwsMpjtkOWg-f7PWe9poejEAbVmOJU3U4CKTYJKIQfsG2BauiSRNeKkf3WXI8mUjk_qVd2L76tmK49ZYQ=w1226-h919-no" alt=""/></a></figure>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipNGdoCYbRMV_WxiZs679Y5QF32fmOUrl26QDJME?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEVVQ5ZdqH4svNBBG9tWoC6fTcaSb5NDUgeWadSWPSRjU0L2w9KtWq0_P7SFa2yrYjpqvMYh527UPYRnopTb8Axf10KfyAcy5LSkgxLK0eJ6ZMcX5OsKsaNas6q74kt9Ep8sb39ErJXLYuRV_-g-vvay_A=w1226-h919-no" alt=""/></a></figure>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipPUiCTSApLWg4q86JiE7-Yf9WqY1h3BW5e9XV9y?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEVxBJqNbF4KFg78u3yTl-uJiPVJHpXWYrURi6ymSHKE5hRBWCUTImimw-LkoQnZHgRf-HDamTUQJmchPhnUM5aax8FVSP6K9TUy9hc66vaNVVx_G6pEDMoSv07lXo3Kck-rCjF4lBYygYzAwx5Cwr3jeA=w1226-h919-no" alt=""/></a></figure>



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



<p class="wp-block-paragraph">The tour guide showed us around most of the building too.&nbsp; One room in particular, the Tea Salon, was a lot nicer than all of the others.&nbsp; Apparently, the royalty used to use that room.&nbsp; Nowadays, the room is used for super special occasions or when the media needs a really nice background to show when doing interviews for the opera.&nbsp;</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipMolI0oqHax2RyE81kZSjTHhOW-TwPQzmaTimtX?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEU-ZnlARG-j-ydp8SzzivaP5IUGvOS4sEP5x6YA10yqCqD_0yKh9izepHPwIoylw7uJng_VXSwTLMq8EpzH5mDuJyTi-7tOs5GF8AYgDqSAulW8TIFsVJWybS5a8ud9ETXzVNRf8Ke9CEOk6Z6E1Yb-8g=w1226-h919-no" alt=""/></a></figure>



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



<p class="wp-block-paragraph">The tour guide also showed us some of the intermission rooms, which weren’t as nice since they were part of the reconstructed portion of the building.</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipM4F3lddRGH6fIULfv8CxhiE7AloHKAgnNa6Ce2?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEXcBQwEvKCy4QOHSLxZ7k75GyTObWNf2ddjXuAy5hrRogY2ELCNsXQyDxCja6AVIQumtcXzgxl9qRH8P1YB3fOQhoFe4O8kuh4gaTTMNi6lqlyyO1ouGdZon_7PgV_FBUxBaablj04LUGoyhUp21SdCbA=w1226-h919-no" alt=""/></a></figure>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipMB4Q8uumOMby6FK1VJF70LJwGCSOKcAms7iojR?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEXTJyt4f4oiArI5JLOYhGNLxTVf3XyZxtb6cU7Gui7zyUxUb_HIvx_ur2BY5cXO1fc0016en24hk62s3MfiGiy0D83QUxKIs3a_AxsQdfyznVG0kYjN2ba0szOw_lgKEbDnpmOPYTkqNgJCb0qnc-R-Qw=w1226-h919-no" alt=""/></a></figure>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipOGFkoDrsia8ckcuGLkRjRCqPBahyvNqJE90C_M?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEXHiPHj_5K4FKEh8T_fppAPe8PACWEwy5J1Pq7RZXqre8bRjcebZkHyEmGnRd7f22GYj9Cr53HsQp_-KDOT7jkQ_M08OSXHFAJ9TxoSZ3N7nBIzPrj8o1H8uwJhoyfwZrLR6kQ1Go7WOVLxTYo1xIcR9A=w1226-h919-no" alt=""/></a></figure>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipNzBhRiFqXfy_NLEt21rtuT7yIxFjViZmzFoAF9?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEUo0RDCmZ0Z8UDxEoZom5h5imqfWoucV6dxq3U0hmjMt-dKXVe9tTN0qbGLkfx0x8v8bSwHf00QYpY97vFFmNe7F5bl7BXdcVAuz7P3R-w_vKSJNfMq5jUn2AZqM3NVOA-wXeVUdxohMZ3my1-6uwt1PA=w1226-h919-no" alt=""/></a></figure>



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



<p class="wp-block-paragraph">While there, the tour guide explained to us the history of the place (which I don’t remember), and little factoids like how there’s an underground tunnel to the building that stores the costumes and how trucks deliver set pieces and other materials before shows.&nbsp; Finally, the tour led us to the main auditorium of the opera house.</p>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipNCEFm7HddjNXQXA2D4L9hETHFjb-3-dcDYANSH?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEXYXEUZcCwuVoRnTyf8DDkpMHecMKe5MRSm-6pvM_G0dr0MrVSbgxEAZmRDOQ_PjT6NNdM6_o2aX1vmeiVx975lKM0h50EFOa_33K0UgubwbYkVCuCrb8MLV7diL0iCmx3H7riaqCus_BktvfkPrVGTYQ=w1226-h919-no" alt=""/></a></figure>



<figure class="wp-block-image size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipP8z4s4L69NLjpWBJiCUNfJfwevWo1rCoIFfCcx?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEXZegiDrSGPloQpXR55nMbYolRe0MRJSLlIucJ3YCGl21rQ1MpgO8A6oabgZsvU0ZEceOnvPIzzovPUTzAzNQW16PduCrRy8qfJulpoXRjsbdWSbJaRFtjk5Ko3eeWVRgEUF2Av61cA8WWUDj6uBWpH2Q=w1226-h919-no" alt=""/></a></figure>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipMC-WABId3j0G0RRSaOznZHsD7wDMROlQn2UpIY?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEWZZRy5YWR96d9hJn4c0eplk9IsxogZr-9sGr9HpUDSltfmFQfBiHVUZ18Nzuezwt6U4jxdKC07mrhG1aflTQ9n6igGtkRr5OWPrxPkY2ScPrALejeFZ2KnoE2pOBwmdh5dxbyX2AscA7Vir6gCQcIqUQ=w690-h919-no" alt=""/></a></figure>
</div>

<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg/photo/AF1QipMLXHj5B9w2ZOBJTP2FsbW9pL2j6Z86NTt7LzBx?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noopener noreferrer"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AL9nZEVaGRmuZec99IyjmGShKkcRksMOHEBejC25sMwds_QWDdNIJjix939GRG_qmTXQomfIRidL66Cbwi1k-RrfrxmzKxgK8Hz6iRfsrfaza6l5u6NwccQtxOSKL097688IbKoZFCX97fmiGDrpQAI1RF7TgQ=w690-h919-no" alt=""/></a></figure>
</div>


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



<p class="wp-block-paragraph">Apart from the movie theatre style seats, there were balcony seats all around on many different floors.&nbsp; The tour guide explained how much different seats in the opera cost and apparently they can go up to tens of thousands of euros.&nbsp; Behind each seat was also a display for subtitles, since the lyrics of the opera weren’t always in German.&nbsp; Together, I think the capacity of the theatre could be about 2000 people, not counting the standing spaces.&nbsp; We even got to go backstage to see some of the mechanisms on the stage.&nbsp; The tour guide explained how the multiple platforms could move such that the stage scenery could be exchanged on the fly.&nbsp; Coming to this place was probably the best part of the whole trip.</p>



<h1 class="wp-block-heading">Flying Home</h1>



<p class="wp-block-paragraph">We ended up killing time at a park with the Frisbee before we had to go to the airport.  We didn’t do much else.  There weren’t anymore attractions that we wanted to see or had time to see.  When our flight came, we went on it and just went home.  We all pretty much had the disappointed feeling of “oh man, we have to go to work the next day.”</p>



<p class="wp-block-paragraph">More photos <a href="https://photos.google.com/share/AF1QipPUldLNANOhuiEq5rDqm02NmSJgQnw5ep7HXqz2B2GFRFg-G6lk7jpKJjDdvT5Xvg?key=eGFraU9DbUNNcWp2Sll0dDZOZXdyMDVnamdqZE9B" target="_blank" rel="noreferrer noopener">here</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.henrypoon.com/blog/2011/07/14/vienna/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1128</post-id>	</item>
		<item>
		<title>Numerical Methods for Non-Linear Optimization</title>
		<link>https://blog.henrypoon.com/blog/2011/01/29/numerical-methods-for-non-linear-optimization/</link>
					<comments>https://blog.henrypoon.com/blog/2011/01/29/numerical-methods-for-non-linear-optimization/#comments</comments>
		
		<dc:creator><![CDATA[hp]]></dc:creator>
		<pubDate>Sat, 29 Jan 2011 17:55:33 +0000</pubDate>
				<category><![CDATA[computer stuff]]></category>
		<category><![CDATA[Algebra]]></category>
		<category><![CDATA[Calculus]]></category>
		<category><![CDATA[Chan]]></category>
		<category><![CDATA[COM]]></category>
		<category><![CDATA[Computer]]></category>
		<category><![CDATA[Computers]]></category>
		<category><![CDATA[Contents]]></category>
		<category><![CDATA[D]]></category>
		<category><![CDATA[Dime]]></category>
		<category><![CDATA[EAR]]></category>
		<category><![CDATA[Equation solving]]></category>
		<category><![CDATA[Equations]]></category>
		<category><![CDATA[Fields of mathematics]]></category>
		<category><![CDATA[Final]]></category>
		<category><![CDATA[Find]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[Gradient descent]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[IME]]></category>
		<category><![CDATA[Introduction]]></category>
		<category><![CDATA[It]]></category>
		<category><![CDATA[Lie]]></category>
		<category><![CDATA[Mathematical optimization]]></category>
		<category><![CDATA[Mathematics]]></category>
		<category><![CDATA[MATLAB]]></category>
		<category><![CDATA[Motivation]]></category>
		<category><![CDATA[Numerical analysis]]></category>
		<category><![CDATA[Numerical partial differential equations]]></category>
		<category><![CDATA[Partial differential equation]]></category>
		<category><![CDATA[Plan]]></category>
		<category><![CDATA[Plug]]></category>
		<category><![CDATA[Rolling]]></category>
		<category><![CDATA[STR]]></category>
		<category><![CDATA[Thou]]></category>
		<category><![CDATA[Time]]></category>
		<category><![CDATA[Travel]]></category>
		<category><![CDATA[tuna]]></category>
		<category><![CDATA[UNC]]></category>
		<category><![CDATA[Unification]]></category>
		<category><![CDATA[Variable]]></category>
		<category><![CDATA[Vol]]></category>
		<category><![CDATA[Z]]></category>
		<guid isPermaLink="false">http://henrypoon.mooo.com/blog/numerical-methods-for-non-linear-optimization</guid>

					<description><![CDATA[Contents Introduction Motivation Newton’s Method Steepest Descent Method Limitation Sources Introduction In many sciences, the problem of non-linear optimization appears quite often.&#160; What happens if they’re non-linear?&#160; Sometimes, the system of equations remains easy to solve even given non-linearity, but other times, the possibility of solving the problem analytically may not exist if the algebra [&#8230;]]]></description>
										<content:encoded><![CDATA[<h1>Contents</h1>
<ul>
<li>Introduction</li>
<li>Motivation</li>
<li>Newton’s Method</li>
<li>Steepest Descent Method</li>
<li>Limitation</li>
<li>Sources</li>
</ul>
<h1>Introduction</h1>
<p>In many sciences, the problem of non-linear optimization appears quite often.&nbsp; What happens if they’re non-linear?&nbsp; Sometimes, the system of equations remains easy to solve even given non-linearity, but other times, the possibility of solving the problem analytically may not exist if the algebra gets too complicated.&nbsp; The solution lies in using numerical methods (approximations).&nbsp; Here, I present two common methods: Newton’s Method, and the Steepest Descent Method.&nbsp;</p>
<p>Each method has its own limitations and the choice of which method to use depends on the problem.&nbsp; These methods involve using iterative computation in order to reach a solution.&nbsp; Luckily, computers can prove useful in providing solutions very quickly due to its quick processing power for numerical computation.</p>
<p>In order to understand some of the concepts and terms used in this article, the reader has knowledge in multivariable calculus.&nbsp; Also, equations in picture form made the line spacing look funny, so I’m going to do my best write the equations as text.&nbsp; I should also point out that I couldn’t write the vector arrow on top of the variables in text form so vectors are written in bold.</p>
<h1>Motivation</h1>
<p>In calculus, the idea of optimization involves taking the derivative of the function and equating it to zero.&nbsp; In multivariable calculus, the same idea applies except, we set all the partial derivatives to zero and solve the system.</p>
<p>So in general, if we are given a function:</p>
<p align="center"><em>ƒ(<strong>x</strong>)</em>, where <strong>x</strong> = [x<sub>1</sub>, x<sub>2</sub>, … x<sub>n</sub>]<sup>T</sup></p>
<p>The maximum or minimum can be found by taking a partial derivative with respect to the vector <strong><em>x</em></strong>.&nbsp; This gives the following equations:</p>
<p align="center"><em>∂<em>ƒ</em>/dx<sub>1</sub> = 0</em></p>
<p align="center"><em>∂<em>ƒ</em>/dx<sub>2</sub> = 0</em></p>
<p align="center">…</p>
<p align="center"><em>∂<em>ƒ</em>/dx<sub>n</sub> = 0</em></p>
<p>A short-hand way of expressing the above equations is by using the gradient vector, giving<em>∇ƒ(<strong>x</strong>) = <strong>0</strong></em>.&nbsp; By definition, the gradient is defined by:</p>
<p align="center"><em>∇ƒ(<strong>x</strong>) = [<em>∂<em>ƒ</em>/dx<sub>1</sub>, ∂<em>ƒ</em>/dx<sub>2</sub></em>, … , <em>∂<em>ƒ</em>/dx<sub>n</sub></em>].</em></p>
<p>An analytical solution is not always possible, hence the motivation for approximating the solution using numerical methods.</p>
<h1>Newton’s Method</h1>
<p>In general, this method is written below.&nbsp; Explanation of each step will follow.</p>
<ol>
<li>Given the equations to solve, derive equations for the approximating line or plane, depending on whether the problem is 2D, 3D, nD, etc.</li>
<li>Using the linearized equations, solve the system of equations</li>
<li>Using the results from step 2, generate new equations for a new approximating line or plane, and repeat step 2.</li>
</ol>
<p>This method also involves starting with a guess, denoted by a variable with a subscript of 0.&nbsp; A guess is required, because this is the starting point for this method.&nbsp; Using this guess, each successive solution <em>should</em> converge (more on that later).</p>
<h2>Step 1</h2>
<p>In order to solve the equations <em>∇ƒ(<strong>x</strong>) = <strong>0</strong></em> (see Motivation for more information), we can apply multivariate Newton’s method to approximate the solution.&nbsp; Like the single-variate (two-dimensional) version, a linear approximation is required.&nbsp; However, instead of having an approximation in the form of a line, the approximation is a plane instead.</p>
<p align="center">2D (line): <em>ƒ(x) ≈ ƒ(x<sub>0</sub>) + ƒ’(x<sub>0</sub>)(x &#8211; x<sub>0</sub>)</em></p>
<p align="center">3D (plane): <em>ƒ(x, y) ≈ ƒ(x<sub>0</sub>, y<sub>0</sub>) + ƒ<sub>x</sub>(x<sub>0</sub>, y<sub>0</sub>)(x &#8211; x<sub>0</sub>) + ƒ<sub>y</sub>(x<sub>0</sub>, y<sub>0</sub>)(y &#8211; y<sub>0</sub>)</em></p>
<p align="center">nD (nD plane): <em>ƒ(<strong>x</strong>) ≈ ƒ(<strong>x<sub>0</sub></strong>) + <em>∇ƒ(<strong>x<sub>0</sub></strong>)(<strong>x</strong> &#8211; <strong>x<sub>0</sub></strong>)</em></em></p>
<p>Since we are trying to optimize, we have the partial derivatives of the function we are trying to optimize, but in order to apply Newton’s Method, we need a linear approximation of the partial derivatives.&nbsp; This means that in order to approximate the partial derivatives, we need to take another derivative in order to get the slopes of the approximating planes.&nbsp; If that description didn’t make sense, try the following.&nbsp; For an equation with two independent variables, there will be two equations for the partial derivatives, one for x and one for y.&nbsp; Taking partial derivatives from each of those equations again will give the slopes of the plane that approximate the first partial derivative.&nbsp; So if we have two independent variables, we end up getting four equations: ƒ<sub>xx</sub>, ƒ<sub>xy</sub>,ƒ<sub>yy</sub>, and ƒ<sub>yx</sub> (ƒ<sub>xy </sub>and ƒ<sub>yx</sub> should be the same).&nbsp; In general, for n partial derivatives, we would have <em>n²</em> equations if we took another set of derivatives.&nbsp; The approximations for both of the partial derivatives would be:</p>
<p align="center"><em>ƒ<sub>x</sub>(x, y) ≈ <em>ƒ<sub>x</sub></em>(x<sub>0</sub>, y<sub>0</sub>) + ƒ<sub>xx</sub>(x<sub>0</sub>, y<sub>0</sub>)(x &#8211; x<sub>0</sub>) + ƒ<sub>xy</sub>(x<sub>0</sub>, y<sub>0</sub>)(y &#8211; y<sub>0</sub>)</em></p>
<p align="center"><em>ƒ<sub>y</sub>(x, y) ≈ <em>ƒ<sub>y</sub></em>(x<sub>0</sub>, y<sub>0</sub>) + ƒ<sub>yy</sub>(x<sub>0</sub>, y<sub>0</sub>)(x &#8211; x<sub>0</sub>) + ƒ<sub>yx</sub>(x<sub>0</sub>, y<sub>0</sub>)(y &#8211; y<sub>0</sub>)</em></p>
<p align="left">Plug in the values for the second derivatives, and the values from the initial guess (the x y values and what function value you get using those values).</p>
<h2>Step 2</h2>
<p>Although the equations generated from step 1 is yet another system of equations, the main difference is that the equations from step 1 are <strong>linear</strong>.&nbsp; This means that the system can be solved analytically.&nbsp; Solve for the solution of the system using <a href="http://en.wikibooks.org/wiki/Linear_Algebra/Row_Reduction_and_Echelon_Forms" target="_blank" rel="noopener noreferrer">row reduction methods</a>, or other methods.&nbsp; The solution from solving the system will be the values used for the next iteration and will replace the guessed values.&nbsp; The solution may or may not be close to the actual solution.&nbsp; More iterations need to be done to see if the answer changes with each iteration.&nbsp; Usually if the guess is really far away, then it takes a lot of iterations to get it really close.&nbsp; However, sometimes, a bad guess may cause the solution to diverge, meaning that the solution will be further and further off.</p>
<h2>Step 3</h2>
<p>Generate new equations for the approximating planes using the solution from step 2.&nbsp; Using these equations, go back to step 2 and solve it again.&nbsp; This method is super tedious if done on paper.&nbsp; Matlab can help, but then again, Matlab can do the entire approximation with just a few commands, but not everyone has access to it unfortunately.</p>
<p>Hopefully after a few iterations, the solution stops changing.&nbsp; When that happens, you can substitute the final solution back into the original equation to see if it works!</p>
<h1>Steepest Descent Method</h1>
<p>Here is the general method:</p>
<ol>
<li>Find the direction of the maximum or minimum directional derivative</li>
<li>Follow it until a maximum or minimum is reached</li>
</ol>
<p>Newton’s Method is sufficient in a lot of cases, but sometimes it may be too hard to go beyond first derivatives.&nbsp; This main idea of this method is to use the first derivative and follow the direction in which the function gets larger/smaller.&nbsp; A fundamental concept used in this method is the directional derivative.&nbsp; Since in 3D (or higher dimensions), we are not restricted to movement along the x axis.&nbsp; This means we could move in any random direction, and in each direction the rate of change is going to be different.&nbsp; To calculate the max or min, we need to calculate where the directional derivative is largest or smallest.&nbsp; Just like a boulder rolling down the steepest slope on the hill.</p>
<p>Starting with a guess, we can find out the value of the function at the point and the direction to travel in.&nbsp; Take a step in that direction and see how the value of the function changed.&nbsp; Keep doing that until a max or min is reached.</p>
<h2>Step 1</h2>
<p>The definition of the directional derivative is the dot product of the gradient and the unit vector specifying the direction.&nbsp; Here is the definition of the directional derivative:</p>
<p align="center"><em>D<sub>u</sub>ƒ = ∇ƒ(<strong>x</strong>)<strong>·u</strong></em></p>
<p align="left">Since the definition involves a dot product, it is true that if the two vectors are orthogonal, the resulting dot product is zero.&nbsp; The direction that this derivative is in is called the <em>level direction</em>.&nbsp; But if the two vectors are parallel, we get the highest value of the directional derivative.&nbsp; For a vector that is parallel in the same direction, the directional derivative will be a maximum, but if the vector is antiparallel (parallel but both pointing opposite ways), the directional derivative will be a minimum.</p>
<p align="left">Since the maximum value of the directional derivative is parallel to the gradient, we can calculate the unit vector of the gradient and use it as the unit vector <strong><em>u.&nbsp; </em></strong>In order to get the minimum, simply flip the direction of the vector by multiplying it by –1.</p>
<p align="center"><em><strong>u = </strong>∇ƒ(<strong>x</strong>)/|∇ƒ(<strong>x</strong>)|</em></p>
<p align="left">Although not necessarily required, substituting this value into the definition of the directional derivative, and doing some simplification with algebra, the maximum and minimum directional derivative is given by:</p>
<p align="center"><em>Max D<sub>u</sub>ƒ = |∇ƒ(<strong>x</strong>)|</em></p>
<p align="center"><em>Min D<sub>u</sub>ƒ = -|∇ƒ(<strong>x</strong>)|</em></p>
<p align="left">Using the initial guess, calculate the direction of to travel in at that point.</p>
<h2>Step 2</h2>
<p>Knowing the direction to travel choose a desired step size “h”.&nbsp; This means that if the equation will be traversed in a particular direction, we need to know exactly <em>how</em> far to go.&nbsp; Choosing smaller step sizes gives better computational accuracy but increases computation time.</p>
<p>To get to the maximum, use the direction for the maximum directional derivative.&nbsp; To get the minimum, use the direction for the smallest directional derivative.</p>
<p>Starting with a guess, calculate the function value at that point.&nbsp; Then take a step in the direction given by Step 1 using the step size.&nbsp; The variable “u” here is a component of the unit vector</p>
<p align="center"><em>x<sub>n+1</sub> = x<sub>n</sub> + u<sub>x</sub>h</em></p>
<p align="center">y<em><sub>n+1</sub> = y<sub>n</sub> + u<sub>y</sub>h</em></p>
<p align="left">At this new value, calculate the function value again.&nbsp; Keep repeating this until the maximum or minimum is reached.</p>
<h1>Limitation</h1>
<p>The approximation is generally only as good as the initial guess.&nbsp; Sometimes, a bad guess can lead to a solution that never converges.&nbsp; In that case, a different value must be used in order to find a converging solution.&nbsp; For example, if we have a fourth order polynomial function, a local extreme will exist.&nbsp; As x approaches –∞ or ∞, y will do the same.&nbsp; If I use the steepest descent and give a bad guess, my solution will go to ∞ instead of the local extreme.</p>
<h1>Sources</h1>
<ol>
<li>Calculus by Gilbert Strang</li>
<li>Applied Regression Analysis by Norman Draper and Harry Smith</li>
</ol>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.henrypoon.com/blog/2011/01/29/numerical-methods-for-non-linear-optimization/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">763</post-id>	</item>
	</channel>
</rss>
