<?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>System software &#8211; Henry Poon&#039;s Blog</title>
	<atom:link href="https://blog.henrypoon.com/blog/tag/system-software/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.henrypoon.com</link>
	<description></description>
	<lastBuildDate>Mon, 03 Oct 2022 00:58:08 +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>Installing Seafile with Docker and Apache 2</title>
		<link>https://blog.henrypoon.com/blog/2019/06/12/installing-seafile-with-docker-and-apache-2/</link>
					<comments>https://blog.henrypoon.com/blog/2019/06/12/installing-seafile-with-docker-and-apache-2/#respond</comments>
		
		<dc:creator><![CDATA[hp]]></dc:creator>
		<pubDate>Wed, 12 Jun 2019 07:12:42 +0000</pubDate>
				<category><![CDATA[computer stuff]]></category>
		<category><![CDATA[engineering]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[9]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[apache 2]]></category>
		<category><![CDATA[Apache HTTP Server]]></category>
		<category><![CDATA[Bash]]></category>
		<category><![CDATA[Chan]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[cloud storage]]></category>
		<category><![CDATA[COM]]></category>
		<category><![CDATA[D]]></category>
		<category><![CDATA[Dia]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Download]]></category>
		<category><![CDATA[DROPBOX]]></category>
		<category><![CDATA[EAR]]></category>
		<category><![CDATA[Email]]></category>
		<category><![CDATA[File sharing]]></category>
		<category><![CDATA[Free software]]></category>
		<category><![CDATA[Gmail]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[Gran]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[IOS]]></category>
		<category><![CDATA[It]]></category>
		<category><![CDATA[Lie]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Matt]]></category>
		<category><![CDATA[Nap]]></category>
		<category><![CDATA[Net]]></category>
		<category><![CDATA[Opera]]></category>
		<category><![CDATA[OS-level virtualisation]]></category>
		<category><![CDATA[Page]]></category>
		<category><![CDATA[Password]]></category>
		<category><![CDATA[PATH]]></category>
		<category><![CDATA[Port]]></category>
		<category><![CDATA[Reference]]></category>
		<category><![CDATA[Run]]></category>
		<category><![CDATA[seafile]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[System software]]></category>
		<category><![CDATA[Systemd]]></category>
		<category><![CDATA[Thou]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[URL]]></category>
		<category><![CDATA[USR]]></category>
		<category><![CDATA[ypres]]></category>
		<category><![CDATA[Z]]></category>
		<guid isPermaLink="false">https://blog.henrypoon.com/?p=3509</guid>

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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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

    RewriteEngine On

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

    # Whitelist internal IPs for mod_evasive
    DOSWhitelist 192.168.1.*

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

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

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

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

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

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



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



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



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



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



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



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



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



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



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



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



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

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

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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.henrypoon.com/blog/2019/06/12/installing-seafile-with-docker-and-apache-2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3509</post-id>	</item>
		<item>
		<title>Setting up your own Counter-Strike 1.6 dedicated server via Docker</title>
		<link>https://blog.henrypoon.com/blog/2018/09/23/setting-up-your-own-counter-strike-1-6-dedicated-server-via-docker/</link>
					<comments>https://blog.henrypoon.com/blog/2018/09/23/setting-up-your-own-counter-strike-1-6-dedicated-server-via-docker/#respond</comments>
		
		<dc:creator><![CDATA[hp]]></dc:creator>
		<pubDate>Sun, 23 Sep 2018 20:00:12 +0000</pubDate>
				<category><![CDATA[computer stuff]]></category>
		<category><![CDATA[gaming]]></category>
		<category><![CDATA[Chan]]></category>
		<category><![CDATA[COM]]></category>
		<category><![CDATA[Computer architecture]]></category>
		<category><![CDATA[Contents]]></category>
		<category><![CDATA[Counter-Strike]]></category>
		<category><![CDATA[D]]></category>
		<category><![CDATA[Directory]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Filesystem Hierarchy Standard]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[HLDS]]></category>
		<category><![CDATA[IME]]></category>
		<category><![CDATA[Installation]]></category>
		<category><![CDATA[ise]]></category>
		<category><![CDATA[It]]></category>
		<category><![CDATA[Link]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Net]]></category>
		<category><![CDATA[Operating systems]]></category>
		<category><![CDATA[PATH]]></category>
		<category><![CDATA[Port]]></category>
		<category><![CDATA[Run]]></category>
		<category><![CDATA[Sleep]]></category>
		<category><![CDATA[STR]]></category>
		<category><![CDATA[System administration]]></category>
		<category><![CDATA[System software]]></category>
		<category><![CDATA[Systemd]]></category>
		<category><![CDATA[Team]]></category>
		<category><![CDATA[Time]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[USR]]></category>
		<category><![CDATA[Variable]]></category>
		<guid isPermaLink="false">https://blog.henrypoon.com/?p=2992</guid>

					<description><![CDATA[Once upon a time, you had to run the HLDSUpdateTool, and then SteamCMD. But now, awesome people on the internet have created Docker images for setting up a Counter-Strike 1.6 dedicated server. Now, all you have to do is: Install Docker on your machine Get a Docker image for a CS 1.6 server (I created [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Once upon a time, you had to run the HLDSUpdateTool, and then SteamCMD. But now, awesome people on the internet have created Docker images for setting up a Counter-Strike 1.6 dedicated server. Now, all you have to do is:</p>



<ol class="wp-block-list"><li>Install Docker on your machine</li><li>Get a Docker image for a CS 1.6 server (I created <a rel="noreferrer noopener" href="https://github.com/hpoon/HLDS-CS1.6" target="_blank">this one</a>, which is based off of an <a rel="noreferrer noopener" href="https://github.com/kriansa/cs-16-server" target="_blank">existing one</a>. Mine has:<ul><li>A lot of maps</li><li>Metamod</li><li>AMXModX (with high ping kicker, podbot control menu, round money, rock the vote, and admin all in one)</li><li>Podbot</li></ul></li><li>Customise the server (e.g. editing the server.cfg, amxx.cfg, and other config files, etc.)</li><li>Start it up! (the README.md in the above linked Git repos has more info on this)</li></ol>



<p class="wp-block-paragraph">As far as ports go, I only needed to forward 27015 on my machine, but your mileage may vary. Others have reported that <a rel="noreferrer noopener" href="https://developer.valvesoftware.com/wiki/Half-Life_Dedicated_Server" target="_blank">some more ports</a> must also be forwarded on some machines.</p>



<p class="wp-block-paragraph">Then optionally, if you&#8217;re running Ubuntu and you want this server to start up like a service via systemd, you&#8217;ll need this:</p>



<ol class="wp-block-list"><li>An executable script with path /usr/local/bin/hlds with contents (make sure the DIR variable matches your installation directory):</li></ol>



<pre class="wp-block-code"><code lang="bash" class="language-bash">#!/bin/sh

# Do not change this path
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin

# The path to the game you want to host. example = /home/newuser/dod
DIR=/opt/cs-16-server/bin
DAEMON=./server

start()
{
    echo  -n "Starting HLDS"
    if [ -e $DIR ]; then
        cd $DIR
        $DAEMON start
    else
        echo "No such directory: $DIR!"
    fi
}

stop()
{
    echo -n "Stopping HLDS"
    if [ -e $DIR ]; then
        cd $DIR
        $DAEMON stop
    else
        echo "No such directory: $DIR!"
    fi
}

reload()
{
    echo -n "Restarting HLDS"
    stop
    sleep 1
    start
}

case "$1" in
    start|stop|reload)
        "$1"
        ;;
    *)
        echo  "Usage: $ 0 {start | stop | reload | status}"
        exit  1
        ;;
esac

exit  0</code></pre>



<ol class="wp-block-list" start="2"><li>A script with path /etc/systemd/system/hlds.service with contents:</li></ol>



<pre class="wp-block-code"><code lang="properties" class="language-properties">[Unit]
Description=HLDS

[Service]
Type=oneshot
ExecStart=/usr/local/bin/hlds start
ExecStop=/usr/local/bin/hlds stop
ExecReload=/usr/local/bin/hlds reload
RemainAfterExit=yes

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



<ol class="wp-block-list" start="3"><li>Then execute:</li></ol>



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



<p class="wp-block-paragraph">Feel free to check out my server that&#8217;s running right now with the same Docker image! Here&#8217;s the command to connect via the console.</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">connect henrypoon.com:27015</code></pre>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.henrypoon.com/blog/2018/09/23/setting-up-your-own-counter-strike-1-6-dedicated-server-via-docker/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2992</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>Running League of Legends in PlayOnLinux (Ubuntu 14.04)</title>
		<link>https://blog.henrypoon.com/blog/2015/03/08/running-league-of-legends-in-playonlinux-ubuntu-14-04/</link>
					<comments>https://blog.henrypoon.com/blog/2015/03/08/running-league-of-legends-in-playonlinux-ubuntu-14-04/#comments</comments>
		
		<dc:creator><![CDATA[hp]]></dc:creator>
		<pubDate>Mon, 09 Mar 2015 01:45:11 +0000</pubDate>
				<category><![CDATA[computer stuff]]></category>
		<category><![CDATA[gaming]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[9]]></category>
		<category><![CDATA[APT]]></category>
		<category><![CDATA[Chan]]></category>
		<category><![CDATA[Click]]></category>
		<category><![CDATA[COM]]></category>
		<category><![CDATA[Comment]]></category>
		<category><![CDATA[Computer]]></category>
		<category><![CDATA[D]]></category>
		<category><![CDATA[Dia]]></category>
		<category><![CDATA[Directory]]></category>
		<category><![CDATA[Drive]]></category>
		<category><![CDATA[Find]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Icon]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[IME]]></category>
		<category><![CDATA[Installation]]></category>
		<category><![CDATA[It]]></category>
		<category><![CDATA[league of legends]]></category>
		<category><![CDATA[Lie]]></category>
		<category><![CDATA[Light]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[lol]]></category>
		<category><![CDATA[Nap]]></category>
		<category><![CDATA[Net]]></category>
		<category><![CDATA[NVIDIA]]></category>
		<category><![CDATA[Object]]></category>
		<category><![CDATA[Over]]></category>
		<category><![CDATA[PATH]]></category>
		<category><![CDATA[Pawn]]></category>
		<category><![CDATA[PlayOnLinux]]></category>
		<category><![CDATA[Radeon HD 5000 Series]]></category>
		<category><![CDATA[Riot Games]]></category>
		<category><![CDATA[Run]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Speed]]></category>
		<category><![CDATA[STR]]></category>
		<category><![CDATA[Struct]]></category>
		<category><![CDATA[System software]]></category>
		<category><![CDATA[Time]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[Video cards]]></category>
		<category><![CDATA[Video gaming]]></category>
		<category><![CDATA[Vol]]></category>
		<category><![CDATA[Volume]]></category>
		<category><![CDATA[WINE]]></category>
		<category><![CDATA[Z]]></category>
		<guid isPermaLink="false">https://www.henrypoon.com/blog/?p=2053</guid>

					<description><![CDATA[There are various guides floating around on the Internet for running League of Legends on Linux, and no single guide worked for me, but after piecing the information together from various places, I managed to get it to work on my system. My computer specifications: Intel Core i5-4570 16 GB Memory Radeon HD 5770 I [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">There are various guides floating around on the Internet for running League of Legends on Linux, and no single guide worked for me, but after piecing the information together from various places, I managed to get it to work on my system.</p>



<p class="wp-block-paragraph">My computer specifications:</p>



<ul class="wp-block-list"><li>Intel Core i5-4570</li><li>16 GB Memory</li><li>Radeon HD 5770</li></ul>



<p class="wp-block-paragraph">I followed the instructions <a href="http://askubuntu.com/questions/459888/shop-and-in-game-item-shop-not-working-in-league-of-legend-lol/461256#461256" target="_blank" rel="noopener noreferrer">here</a>, with these changes:</p>



<ul class="wp-block-list"><li>Using video driver &#8220;fglrx-updates&#8221; (the tutorial talks about NVIDIA cards)</li><li>Did not install TuxLoL</li><li>Did not do anything regarding the &#8220;Maestro error&#8221; since it only applies to Optimus Notebook users</li><li>Did not follow step 6 because I did not run into the problem for big item icon text for the item shop</li><li>EDIT: Thanks to Ingvar&#8217;s comment, the installation progress for the game can be viewed like so: open terminal (Ctrl+Alt+T) and execute: </li></ul>



<pre class="wp-block-code"><code lang="bash" class="language-bash">tail -f ~/.PlayOnLinux/wineprefix/LeagueOfLegends/drive_c/Riot\ Games/League\ of\ Legends/Logs/Patcher\ Logs/*.log</code></pre>



<p class="wp-block-paragraph">There are also other steps that I had to do, which I read from <a href="https://www.playonlinux.com/en/app-1135-League_Of_Legends.html" target="_blank" rel="noopener noreferrer">here</a>:</p>



<ul class="wp-block-list"><li>Click configure for the &#8220;League of Legends&#8221; entry in &#8220;PlayOnLinux&#8221; and find the &#8220;Display&#8221; tab and then choose the following options: <ul><li>Direct Draw Renderer &#8211; gdi</li><li>Video memory size &#8211; 4096 (or something else depending on graphics card)</li><li>Offscreen rendering mode &#8211; fbo\0</li><li>Everything else on default </li></ul></li><li>Create a file called &#8220;game.cfg&#8221; in the directory &#8220;/home/your-username-here/PlayOnLinux&#8217;s virtual drives/LeagueOfLegends/drive_c/Riot Games/League of Legends/Config&#8221;. Below is what I have in my &#8220;game.cfg&#8221;:</li></ul>



<pre class="wp-block-code"><code lang="properties" class="language-properties">[General]
EnableAudio=1
GameMouseSpeed=10
UserSetResolution=1
BindSysKeys=0
SnapCameraOnRespawn=0
OSXMouseAcceleration=1
AutoAcquireTarget=0
EnableLightFx=0
WindowMode=0
ShowTurretRangeIndicators=0
PredictMovement=0
WaitForVerticalSync=0
Colors=32
Height=1080
Width=1920
SystemMouseSpeed=0
CfgVersion=5.3.296
x3d_platform=1</code></pre>



<pre class="wp-block-code"><code lang="properties" class="language-properties">[HUD]
CameraLockMode=0
MiddleClickDragScrollEnabled=0
KeyboardScrollSpeed=0.5000
ChatScale=50
ObjectTooltips=0
AutoDisplayTarget=0
ShowAllChannelChat=1
ShowTimestamps=1
ItemShopPrevY=39
ItemShopPrevX=106
NameTagDisplay=1
ShowChampionIndicator=0
ShowSummonerNames=1
ScrollSmoothingEnabled=0
MiddleMouseScrollSpeed=0.5000
MapScrollSpeed=0.5000
ShowAttackRadius=0
NumericCooldownFormat=1
SmartCastOnKeyRelease=0
EnableLineMissileVis=0
FlipMiniMap=1
ItemShopResizeHeight=0
ItemShopResizeWidth=164
ItemShopPrevResizeHeight=1080
ItemShopPrevResizeWidth=1920
ItemShopItemDisplayMode=1
ItemShopStartPane=1</code></pre>



<pre class="wp-block-code"><code lang="properties" class="language-properties">[Performance]
CharacterInking=1
ShadowsEnabled=1
EnableHUDAnimations=0
PerPixelPointLighting=0
EnableParticleOptimizations=0
BudgetOverdrawAverage=0
BudgetSkinnedVertexCount=0
BudgetSkinnedDrawCallCount=0
BudgetTextureUsage=0
BudgetVertexCount=0
BudgetTriangleCount=0
BudgetDrawCallCount=0
EnableGrassSwaying=0
EnableFXAA=0
AdvancedShader=0
FrameCapType=6
GammaEnabled=0
Full3DModeEnabled=0
AutoPerformanceSettings=0
CharacterQuality=4
EffectsQuality=4
EnvironmentQuality=4
ShadowQuality=4
GraphicsSlider=6
paths=0</code></pre>



<pre class="wp-block-code"><code lang="properties" class="language-properties">[FloatingText]
EnemyTrueDamageCritical_Enabled=1
EnemyMagicalDamageCritical_Enabled=1
EnemyPhysicalDamageCritical_Enabled=1
TrueDamageCritical_Enabled=1
MagicalDamageCritical_Enabled=1
PhysicalDamageCritical_Enabled=1
Countdown_Enabled=0
EnemyTrueDamage_Enabled=0
EnemyMagicalDamage_Enabled=0
EnemyPhysicalDamage_Enabled=0
TrueDamage_Enabled=0
MagicalDamage_Enabled=0
PhysicalDamage_Enabled=0
Score_Enabled=0
QuestComplete_Enabled=0
QuestReceived_Enabled=0
Disable_Enabled=0
Level_Enabled=0
Dodge_Enabled=0
Heal_Enabled=0
Special_Enabled=0
Invulnerable_Enabled=0
Debug_Enabled=0
Absorbed_Enabled=0
OMW_Enabled=0
EnemyCritical_Enabled=0
MagicCritical_Enabled=0
Critical_Enabled=0</code></pre>



<pre class="wp-block-code"><code lang="properties" class="language-properties">[Volume]
SfxVolume=0.5
MasterVolume=0.5</code></pre>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.henrypoon.com/blog/2015/03/08/running-league-of-legends-in-playonlinux-ubuntu-14-04/feed/</wfw:commentRss>
			<slash:comments>27</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2053</post-id>	</item>
		<item>
		<title>Running TurboTax 2014 in PlayOnLinux</title>
		<link>https://blog.henrypoon.com/blog/2015/03/07/running-turbotax-2014-in-playonlinux/</link>
					<comments>https://blog.henrypoon.com/blog/2015/03/07/running-turbotax-2014-in-playonlinux/#comments</comments>
		
		<dc:creator><![CDATA[hp]]></dc:creator>
		<pubDate>Sun, 08 Mar 2015 05:08:28 +0000</pubDate>
				<category><![CDATA[gaming]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[.exe]]></category>
		<category><![CDATA[9]]></category>
		<category><![CDATA[APT]]></category>
		<category><![CDATA[Click]]></category>
		<category><![CDATA[COM]]></category>
		<category><![CDATA[D]]></category>
		<category><![CDATA[Drive]]></category>
		<category><![CDATA[EAR]]></category>
		<category><![CDATA[Find]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[Installation]]></category>
		<category><![CDATA[Installation software]]></category>
		<category><![CDATA[It]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Net]]></category>
		<category><![CDATA[PlayOnLinux]]></category>
		<category><![CDATA[Run]]></category>
		<category><![CDATA[Shortcut]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[System software]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[TurboTax]]></category>
		<category><![CDATA[UNC]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Windows Installer]]></category>
		<category><![CDATA[WINE]]></category>
		<guid isPermaLink="false">https://www.henrypoon.com/blog/?p=2050</guid>

					<description><![CDATA[This guide describes how to run TurboTax 2014 in PlayOnLinux. &#160;The PlayOnLinux (in combination with WINE) software allows users to install Windows-based software. CAVEAT: NETFILE&#160;did not work for me. &#160;I had to submit my taxes through an installation done on Windows Install&#160;PlayOnLinux and then run it (e.g. starting it through the Terminal) sudo apt-get install [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>This guide describes how to run TurboTax 2014 in <a href="https://www.playonlinux.com/en/" target="_blank" rel="noopener noreferrer">PlayOnLinux</a>. &nbsp;The PlayOnLinux (in combination with <a href="https://www.winehq.org/" target="_blank" rel="noopener noreferrer">WINE</a>) software allows users to install Windows-based software.</p>
<hr />
<p>CAVEAT: NETFILE&nbsp;did not work for me. &nbsp;I had to submit my taxes through an installation done on Windows</p>
<hr />
<ol>
<li>Install&nbsp;PlayOnLinux and then run it (e.g. starting it through the Terminal)</li>
</ol>
<pre>sudo apt-get install playonlinux</pre>
<ol start="2">
<li>Click &#8220;Tools&#8221; &gt; &#8220;Manage wine versions&#8221;</li>
<li>Choose 1.7.27 under &#8220;Available Wine versions&#8221; and then click the right arrow &#8220;&gt;&#8221;</li>
<li>Go through the steps in the installer and let it finish</li>
<li>Back in the PlayOnLinux main screen, click &#8220;Install&#8221; in the menu, and then click &#8220;Install a non-listed program&#8221; on the bottom left</li>
<li>Choose &#8220;Use another version of Wine&#8221;, when asked, and then choose 1.7.27</li>
<li>Choose &#8220;Install a program in a new virtual drive&#8221;, when asked</li>
<li>Choose &#8220;32 bits windows installation&#8221;, when asked</li>
<li>Find the location of setup.exe for the TurboTax installer (I copied the files off of the disc to a place on my hard drive)</li>
<li>Ignore the message &#8220;Error in FS_Check&#8221; if it appears</li>
<li>Let the install complete, but do not launch TurboTax right away</li>
<li>Choose &#8220;tt2014.exe&#8221;, if asked to create a shortcut</li>
<li>Back in the PlayOnLinux main screen, select entry for TurboTax and click &#8220;Configure&#8221; in the menu</li>
<li>Make sure the &#8220;Wine version&#8221; is set to 1.7.27</li>
<li>Under &#8220;Install components&#8221;, install the following in this order (some of these may not be required, but I don&#8217;t know which since this is the configuration that worked for me):
<ul>
<li>vcrun2012</li>
<li>Microsoft Core Fonts</li>
<li>msvc100</li>
<li>RegisterFonts</li>
<li>vcrun2010</li>
<li>dotnet40</li>
<li>d3dx9</li>
<li>mono28</li>
<li>Internet Explorer 8 (click &#8220;Restart&#8221; in the installer)</li>
<li>crypt32</li>
</ul>
</li>
<li>Back in the PlayOnLinux main screen, clicking &#8220;Run&#8221; for TurboTax 2014 should now work!</li>
</ol>
<p>This is what worked for me, so hopefully this will work for others.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.henrypoon.com/blog/2015/03/07/running-turbotax-2014-in-playonlinux/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2050</post-id>	</item>
		<item>
		<title>Deleted IME&#8217;s still appear in the list even though they have been removed in Ubuntu 14.04</title>
		<link>https://blog.henrypoon.com/blog/2015/02/15/deleted-imes-still-appear-in-the-list-even-though-they-have-been-removed-in-ubuntu-14-04/</link>
					<comments>https://blog.henrypoon.com/blog/2015/02/15/deleted-imes-still-appear-in-the-list-even-though-they-have-been-removed-in-ubuntu-14-04/#respond</comments>
		
		<dc:creator><![CDATA[hp]]></dc:creator>
		<pubDate>Mon, 16 Feb 2015 04:30:16 +0000</pubDate>
				<category><![CDATA[computer stuff]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[APT]]></category>
		<category><![CDATA[Chinese input methods for computers]]></category>
		<category><![CDATA[Configuration management]]></category>
		<category><![CDATA[D]]></category>
		<category><![CDATA[Dconf]]></category>
		<category><![CDATA[driving]]></category>
		<category><![CDATA[EAR]]></category>
		<category><![CDATA[Free software]]></category>
		<category><![CDATA[GNOME]]></category>
		<category><![CDATA[IME]]></category>
		<category><![CDATA[It]]></category>
		<category><![CDATA[Japan]]></category>
		<category><![CDATA[Run]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[System software]]></category>
		<category><![CDATA[Thou]]></category>
		<category><![CDATA[ubuntu]]></category>
		<guid isPermaLink="false">https://www.henrypoon.com/blog/?p=2046</guid>

					<description><![CDATA[I had this weird problem when my Japanese and Chinese IME stayed in my IME list even though I had removed them. &#160;It was driving me nuts, but it turns out that they can be disabled through the dconf-editor First, run: Navigate to: Bold options are options that have been modified. &#160;The interesting one is [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">I had this weird problem when my Japanese and Chinese IME stayed in my IME list even though I had removed them. &nbsp;It was driving me nuts, but it turns out that they can be disabled through the dconf-editor</p>



<p class="wp-block-paragraph">First, run:</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">sudo apt-get install dconf-editor</code></pre>



<p class="wp-block-paragraph">Navigate to:</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">org/gnome/desktop/applications/input-sources</code></pre>



<p class="wp-block-paragraph">Bold options are options that have been modified. &nbsp;The interesting one is the row labeled &#8220;sources&#8221;. &nbsp;Clear the entries of the IME&#8217;s that should not appear in the list and that should remove the IME&#8217;s that shouldn&#8217;t be appearing.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.henrypoon.com/blog/2015/02/15/deleted-imes-still-appear-in-the-list-even-though-they-have-been-removed-in-ubuntu-14-04/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2046</post-id>	</item>
		<item>
		<title>Running LINE Messenger in Ubuntu 14.04</title>
		<link>https://blog.henrypoon.com/blog/2015/02/09/running-line-messenger-in-ubuntu-14-04/</link>
					<comments>https://blog.henrypoon.com/blog/2015/02/09/running-line-messenger-in-ubuntu-14-04/#comments</comments>
		
		<dc:creator><![CDATA[hp]]></dc:creator>
		<pubDate>Mon, 09 Feb 2015 22:25:38 +0000</pubDate>
				<category><![CDATA[computer stuff]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[9]]></category>
		<category><![CDATA[APT]]></category>
		<category><![CDATA[BackSlash Linux]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Chrome OS]]></category>
		<category><![CDATA[Computer architecture]]></category>
		<category><![CDATA[Computing platforms]]></category>
		<category><![CDATA[D]]></category>
		<category><![CDATA[Download]]></category>
		<category><![CDATA[EAR]]></category>
		<category><![CDATA[Extension]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[It]]></category>
		<category><![CDATA[Lie]]></category>
		<category><![CDATA[Link]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Lubuntu]]></category>
		<category><![CDATA[Microsoft Windows]]></category>
		<category><![CDATA[Net]]></category>
		<category><![CDATA[Operating systems]]></category>
		<category><![CDATA[Run]]></category>
		<category><![CDATA[STR]]></category>
		<category><![CDATA[System software]]></category>
		<category><![CDATA[Thou]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[WINE]]></category>
		<guid isPermaLink="false">https://www.henrypoon.com/blog/?p=2039</guid>

					<description><![CDATA[LINE is a messaging program kind of like WhatsApp, but it has a desktop client. &#160;However, this desktop client only runs on Windows. &#160;On Linux, it has to run under Wine, which&#160;allows running Windows programs (some) inside the Linux environment. &#160;Caveat: sending stickers does not appear to work. UPDATE 7. JULY 2015: Since this post, [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">LINE is a messaging program kind of like WhatsApp, but it has a desktop client. &nbsp;However, this desktop client only runs on Windows. &nbsp;On Linux, it has to run under <a href="https://www.winehq.org/" target="_blank" rel="noopener noreferrer">Wine</a>, which&nbsp;allows running Windows programs (some) inside the Linux environment. &nbsp;Caveat: sending stickers does not appear to work.</p>



<p class="wp-block-paragraph">UPDATE 7. JULY 2015: Since this post, my version of LINE has been updated to 4.0.3.367, and it looks like stickers work now!</p>



<p class="wp-block-paragraph"><span style="color: #ff0000;">UPDATE 31. JULY 2016: Looks like in July 2015, LINE released a Chrome app.  Users of Chrome can just use that extension instead of using this method:</span> <a href="https://chrome.google.com/webstore/detail/line/ophjlpahpchlmihnnnihgmmeilfjmjjc" target="_blank" rel="noreferrer noopener">Link</a></p>



<p class="wp-block-paragraph">Running LINE in Ubuntu 14.04</p>



<ol class="wp-block-list"><li>Install Wine</li></ol>



<pre class="wp-block-code"><code lang="bash" class="language-bash">sudo apt-get install wine</code></pre>



<ol class="wp-block-list" start="2"><li>Install VC++ 2008 Redistributable</li></ol>



<pre class="wp-block-code"><code lang="bash" class="language-bash">winetricks vcrun2008</code></pre>



<ol class="wp-block-list" start="3"><li>Download and install <a href="http://line.me/en-US/download" target="_blank" rel="noopener noreferrer">LINE</a> for Windows</li></ol>



<p class="wp-block-paragraph">Without installing the VC++ 2008 Redistributable, LINE would intermittently crash (even though it was able to start correctly). &nbsp;This worked on my Ubuntu 14.04 x64 system.</p>



<p class="wp-block-paragraph">LINE Version: 3.9.1.188<br>Wine Version: 1.6.2</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.henrypoon.com/blog/2015/02/09/running-line-messenger-in-ubuntu-14-04/feed/</wfw:commentRss>
			<slash:comments>26</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2039</post-id>	</item>
		<item>
		<title>Installing Epson WF-3520 Printer on Ubuntu</title>
		<link>https://blog.henrypoon.com/blog/2015/01/30/installing-epson-wf-3520-printer-on-ubuntu/</link>
					<comments>https://blog.henrypoon.com/blog/2015/01/30/installing-epson-wf-3520-printer-on-ubuntu/#respond</comments>
		
		<dc:creator><![CDATA[hp]]></dc:creator>
		<pubDate>Sat, 31 Jan 2015 07:37:18 +0000</pubDate>
				<category><![CDATA[gaming]]></category>
		<category><![CDATA[COM]]></category>
		<category><![CDATA[Computer architecture]]></category>
		<category><![CDATA[Computer printers]]></category>
		<category><![CDATA[D]]></category>
		<category><![CDATA[Drive]]></category>
		<category><![CDATA[epson]]></category>
		<category><![CDATA[Find]]></category>
		<category><![CDATA[It]]></category>
		<category><![CDATA[Net]]></category>
		<category><![CDATA[Office equipment]]></category>
		<category><![CDATA[Operating systems]]></category>
		<category><![CDATA[Printer]]></category>
		<category><![CDATA[printer setup]]></category>
		<category><![CDATA[Seiko Epson]]></category>
		<category><![CDATA[System software]]></category>
		<category><![CDATA[Thou]]></category>
		<category><![CDATA[Typography]]></category>
		<category><![CDATA[ubuntu]]></category>
		<guid isPermaLink="false">https://www.henrypoon.com/blog/?p=2026</guid>

					<description><![CDATA[Just had an issue where I couldn&#8217;t set up my printer (connected on the network) on my Ubuntu machine because I didn&#8217;t have the drivers. &#160;The automatic printer set up would keep crashing half way through. This post from askubuntu.com hits this issue right on the head:&#160;http://askubuntu.com/questions/333534/installing-epson-wf-3520 I thought I&#8217;d leave a post here, just [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Just had an issue where I couldn&#8217;t set up my printer (connected on the network) on my Ubuntu machine because I didn&#8217;t have the drivers. &nbsp;The automatic printer set up would keep crashing half way through.</p>
<p>This post from <a href="http://askubuntu.com" target="_blank" rel="noopener noreferrer">askubuntu.com</a> hits this issue right on the head:&nbsp;<a href="http://askubuntu.com/questions/333534/installing-epson-wf-3520" target="_blank" rel="noopener noreferrer">http://askubuntu.com/questions/333534/installing-epson-wf-3520</a></p>
<p>I thought I&#8217;d leave a post here, just so I know where to find it again in case I forget.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.henrypoon.com/blog/2015/01/30/installing-epson-wf-3520-printer-on-ubuntu/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2026</post-id>	</item>
		<item>
		<title>Resolving dd-wrt bug that prevented computers on a LAN with wired connection from talking/pinging/communicating with each other</title>
		<link>https://blog.henrypoon.com/blog/2015/01/05/resolving-dd-wrt-bug-that-prevented-computers-on-a-lan-with-wired-connection-from-talkingpingingcommunicating-with-each-other/</link>
					<comments>https://blog.henrypoon.com/blog/2015/01/05/resolving-dd-wrt-bug-that-prevented-computers-on-a-lan-with-wired-connection-from-talkingpingingcommunicating-with-each-other/#comments</comments>
		
		<dc:creator><![CDATA[hp]]></dc:creator>
		<pubDate>Tue, 06 Jan 2015 06:27:16 +0000</pubDate>
				<category><![CDATA[computer stuff]]></category>
		<category><![CDATA[COM]]></category>
		<category><![CDATA[Computer]]></category>
		<category><![CDATA[Computer networking]]></category>
		<category><![CDATA[Computers]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Custom firmware]]></category>
		<category><![CDATA[D]]></category>
		<category><![CDATA[dd-wrt]]></category>
		<category><![CDATA[destination host unreachable]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Find]]></category>
		<category><![CDATA[Firmware]]></category>
		<category><![CDATA[It]]></category>
		<category><![CDATA[Link]]></category>
		<category><![CDATA[Linksys routers]]></category>
		<category><![CDATA[Net]]></category>
		<category><![CDATA[Netgear WGR614L]]></category>
		<category><![CDATA[Networking hardware]]></category>
		<category><![CDATA[Page]]></category>
		<category><![CDATA[Router]]></category>
		<category><![CDATA[Run]]></category>
		<category><![CDATA[System software]]></category>
		<category><![CDATA[Telnet]]></category>
		<category><![CDATA[wired connection]]></category>
		<guid isPermaLink="false">http://henrypoon.mooo.com/blog/resolving-dd-wrt-bug-that-prevented-computers-on-a-lan-with-wired-connection-from-talkingpingingcommunicating-with-each-other</guid>

					<description><![CDATA[I just had a problem where the computers in my house that were all using a wired connection could not talk to each other. &#160;Computers on wired connections could not ping, and ping kept giving an error saying &#8220;destination host unreachable&#8221;. &#160;I found the solution in a very hard to find forum post on the [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">I just had a problem where the computers in my house that were all using a wired connection could not talk to each other. &nbsp;Computers on wired connections could not ping, and ping kept giving an error saying &#8220;destination host unreachable&#8221;. &nbsp;I found the solution in a very hard to find forum post on the dd-wrt forums.</p>



<p class="wp-block-paragraph"><strong>This specific instance of the problem affects users of the dd-wrt firmware. &nbsp;In my case, I am using build 24461 of the firmware.</strong> &nbsp;The solution is to run the following commands on the router (either with ssh or telnet):</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">swconfig dev eth0 set enable_vlan 1
swconfig dev eth0 set apply</code></pre>



<p class="wp-block-paragraph">I&#8217;ve since put this in the startup commands that the router will execute, so these settings will stay even after a router reboot.</p>



<p class="wp-block-paragraph">For some routers, it might be eth1 instead of eth0. &nbsp;It depends on which network interface is assigned to the WAN. &nbsp;This can be check in the router page under Setup &gt; Networking.</p>



<p class="wp-block-paragraph">Link to forum post: <a href="http://www.dd-wrt.com/phpBB2/viewtopic.php?t=152738&amp;postdays=0&amp;postorder=asc&amp;start=0" target="_blank" rel="noreferrer noopener">http://www.dd-wrt.com/phpBB2/viewtopic.php?t=152738&amp;postdays=0&amp;postorder=asc&amp;start=0</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.henrypoon.com/blog/2015/01/05/resolving-dd-wrt-bug-that-prevented-computers-on-a-lan-with-wired-connection-from-talkingpingingcommunicating-with-each-other/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1928</post-id>	</item>
		<item>
		<title>What to do with a window that is trapped off the screen</title>
		<link>https://blog.henrypoon.com/blog/2013/04/24/what-to-do-with-a-window-that-is-trapped-off-the-screen/</link>
					<comments>https://blog.henrypoon.com/blog/2013/04/24/what-to-do-with-a-window-that-is-trapped-off-the-screen/#respond</comments>
		
		<dc:creator><![CDATA[hp]]></dc:creator>
		<pubDate>Wed, 24 Apr 2013 19:56:51 +0000</pubDate>
				<category><![CDATA[computer stuff]]></category>
		<category><![CDATA[COM]]></category>
		<category><![CDATA[D]]></category>
		<category><![CDATA[EAR]]></category>
		<category><![CDATA[Features new to Windows 8]]></category>
		<category><![CDATA[Graphical user interfaces]]></category>
		<category><![CDATA[IME]]></category>
		<category><![CDATA[It]]></category>
		<category><![CDATA[Keyboard shortcut]]></category>
		<category><![CDATA[Microsoft Windows]]></category>
		<category><![CDATA[RAR]]></category>
		<category><![CDATA[System software]]></category>
		<category><![CDATA[Taskbar]]></category>
		<category><![CDATA[Time]]></category>
		<category><![CDATA[User interface techniques]]></category>
		<category><![CDATA[User interfaces]]></category>
		<category><![CDATA[Windows 8]]></category>
		<category><![CDATA[Windows 95]]></category>
		<category><![CDATA[Windows key]]></category>
		<guid isPermaLink="false">http://henrypoon.mooo.com/blog/what-to-do-with-a-window-that-is-trapped-off-the-screen</guid>

					<description><![CDATA[Because of my dual monitor setup, sometimes programs don&#8217;t really remember what screen appears on which screen and in very rare cases, the window shows up on neither screen. &#160;The following key commands should help fix that. Select the hidden screen (using the taskbar or some other method) Press &#8216;Alt+Space&#8217; (a window should pop up [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Because of my dual monitor setup, sometimes programs don&#8217;t really remember what screen appears on which screen and in very rare cases, the window shows up on neither screen. &nbsp;The following key commands should help fix that.</p>
<ol>
<li><span style="line-height:13px;">Select the hidden screen (using the taskbar or some other method)</span></li>
<li>Press &#8216;Alt+Space&#8217; (a window should pop up with a few options)</li>
<li>Press &#8216;M&#8217; to enable the move option</li>
<li>Use the arrow keys to bring the hidden window back into view</li>
</ol>
<p>It works like a charm!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.henrypoon.com/blog/2013/04/24/what-to-do-with-a-window-that-is-trapped-off-the-screen/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1598</post-id>	</item>
	</channel>
</rss>
