<?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>Jared Evans Global Microbrand</title>
	<atom:link href="http://www.jaredlog.com/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.jaredlog.com</link>
	<description>/* nothing but the (Inter)net */</description>
	<lastBuildDate>Tue, 02 Apr 2013 14:45:54 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Useful: how to move a running process into a screen terminal</title>
		<link>http://www.jaredlog.com/?p=1981&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=useful-how-to-suspend-a-running-process-then-resume-it-inside-screen</link>
		<comments>http://www.jaredlog.com/?p=1981#comments</comments>
		<pubDate>Fri, 08 Feb 2013 21:06:09 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.jaredlog.com/?p=1981</guid>
		<description><![CDATA[One of the useful things about using screen (a terminal multiplexer) console is that you are able to detach from the screen terminal while keeping your running session alive.  At a later time (such as when you arrive home from &#8230; <a href="http://www.jaredlog.com/?p=1981">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.jaredlog.com/wp-content/uploads/2013/02/broken-rope.jpg"><img class="size-medium wp-image-1983 alignright" alt="broken-rope" src="http://www.jaredlog.com/wp-content/uploads/2013/02/broken-rope-300x198.jpg" width="300" height="198" /></a></p>
<p>One of the useful things about using <a href="http://www.bangmoney.org/presentations/screen.html">screen</a> (a terminal multiplexer) console is that you are able to detach from the screen terminal while keeping your running session alive.  At a later time (such as when you arrive home from work), you can reattach and resume the same running session and view any output while you were gone.</p>
<p>Sometimes I&#8217;m in this situation: I need to leave but I just started a long running process that I don&#8217;t want to restart but I didn&#8217;t initially start it from within a screen terminal.  I want to avoid killing off the process and bring it over into a screen terminal so that it can continue to run uninterrupted.  Enter <a href="https://github.com/nelhage/reptyr/blob/master/README.md">reptyr</a> which will allow you to attach a process to another terminal console.</p>
<p>[The following steps were done on Ubuntu 12.04]</p>
<p>Install reptyr</p>
<pre>sudo apt-get install reptyr
sudo vi /etc/sysctl.d/10-ptrace.conf</pre>
<p>change this line:</p>
<pre>kernel.yama.ptrace_scope = 0</pre>
<p>Reboot for this sysctl value to take effect.</p>
<p>Now your system is ready to let you reattach running processes to a different teriminal.</p>
<p><span style="font-size: 16px;">Start a long running program, we&#8217;ll use &#8216;top&#8217; for this example:</span></p>
<pre># top</pre>
<p>Suspend the &#8216;top&#8217; process</p>
<pre>CTRL-Z
<span style="color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px;">[1]+  Stopped                 top</span></pre>
<p>List jobs</p>
<pre># jobs -l 
<span style="color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px;">[1]+  2961 Stopped (signal)        top</span></pre>
<p><span style="font-size: 16px;">Resume job 1 in the background</span></p>
<pre><span style="font-size: 16px;"># bg %1 </span></pre>
<p>Detach the process from terminal</p>
<pre># disown %1 
<span style="color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px;">bash: warning: deleting stopped job 1 with process group 2961</span></pre>
<p>Start screen then reattach the process:</p>
<pre># screen</pre>
<p>Find the process of the &#8216;top&#8217; process and reattach it to screen terminal</p>
<pre># pgrep top 
<span style="color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px;">2961

</span># reptyr 2961</pre>
<p>You are now running the &#8216;top&#8217; process inside the screen terminal.  You may proceed to detach from screen and go home and reattach to it at a later time.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jaredlog.com/?feed=rss2&#038;p=1981</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Better Late than Never: following up on Google HTTPS using DHE cipher suites</title>
		<link>http://www.jaredlog.com/?p=1903&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=better-late-than-never-following-up-on-google-https-using-dhe-cipher-suites</link>
		<comments>http://www.jaredlog.com/?p=1903#comments</comments>
		<pubDate>Thu, 17 Jan 2013 01:49:25 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://www.jaredlog.com/?p=1903</guid>
		<description><![CDATA[[Above image is the famous Caesar Cipher] One of the things that irked me about how Google handled the security of their HTTPS traffic was the lack of DHE ciphers.  I banged out a post &#8220;Google and Amazon do not &#8230; <a href="http://www.jaredlog.com/?p=1903">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.jaredlog.com/wp-content/uploads/2013/01/caesar-cipher.gif"><img class="alignleft size-full wp-image-1910" title="caesar-cipher" src="http://www.jaredlog.com/wp-content/uploads/2013/01/caesar-cipher.gif" alt="" width="257" height="255" /></a></p>
<p>[Above image is the famous Caesar Cipher]</p>
<p>One of the things that irked me about how Google handled the security of their HTTPS traffic was the lack of DHE ciphers.  I banged out a post &#8220;<a href="http://www.jaredlog.com/?p=1162" target="_blank">Google and Amazon do not offer ciphers using Diffie-Hellman Ephemeral mode.</a>&#8220;, way back in Oct 2010.</p>
<p>Tonight, out of the blue, I decided to see if anything had changed since then.  While it is more than a year ago today but a year after my original blog post, Google finally took the initiative to encrypt their HTTPS traffic using DHE ciphers, as seen here at their <a href="http://googleonlinesecurity.blogspot.com/2011/11/protecting-data-for-long-term-with.html" target="_blank">Google Online Security Blog</a>.</p>
<p>Google servers will still offer a range of possible ciphers for HTTPS traffic, the ECDHE-RSA-RC4-SHA cipher is now the preferred one, which is supported by all modern browsers. Less secure ciphers are still offered to many visitors who are running ancient browsers supporting only the older ciphers.<tt></tt></p>
<p>This is a great step forward for the security of Google HTTPS traffic: each session of your interactions with Google will be encrypted with a different key that exists only for a short time in memory and never written to persistent storage.  If an attacker captures your HTTPS trafic and even a hijacked copy of Google server&#8217;s private key, the attacker is still missing one more piece, the ephemeral key that has long since disappeared.</p>
<p>Several decades down the road, if the attacker starts up a powerful (quantum?) computer for decryption attempts, a successful decryption would be limited to one HTTPS session. The attack would have to re-run for each one of the sessions.  This will make it very difficult for the attacker to reconstruct what transpired between you and Google during this time.</p>
<p>While it&#8217;s better late than never, thank you Google for boosting the security of your traffic, which only gets more sensitive each year as more people become dependent on your services.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jaredlog.com/?feed=rss2&#038;p=1903</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reverse order sort du -h human-readable output</title>
		<link>http://www.jaredlog.com/?p=1898&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=reverse-order-sort-du-h-human-readable-output</link>
		<comments>http://www.jaredlog.com/?p=1898#comments</comments>
		<pubDate>Fri, 07 Dec 2012 17:15:48 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[Scripting languages (PHP, Perl, etc)]]></category>

		<guid isPermaLink="false">http://www.jaredlog.com/?p=1898</guid>
		<description><![CDATA[du -d 1 -h &#124; perl -e'%h=map{/.\s/;99**(ord$&#38;&#38;7)-$`,$_}`du -d 1 -h`;die@h{reverse sort%h}' MacBook-Pro.-=[jnevans] /var/log # sudo ~jnevans/sortd.sh 192K ./cups 728K ./krb5kdc 2.1M ./DiagnosticMessages 11M ./asl 22M . Hat tip to http://serverfault.com/questions/62411/how-can-i-sort-du-h-output-by-size Want it in your .bashrc? alias dsize='du -d 1 -h &#124; &#8230; <a href="http://www.jaredlog.com/?p=1898">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><code>du -d 1 -h | perl -e'%h=map{/.\s/;99**(ord$&amp;&amp;7)-$`,$_}`du -d 1 -h`;die@h{reverse sort%h}'</code></p>
<pre>MacBook-Pro.-=[jnevans] /var/log # sudo ~jnevans/sortd.sh
192K ./cups
728K ./krb5kdc
2.1M ./DiagnosticMessages
 11M ./asl
 22M .</pre>
<p>Hat tip to http://serverfault.com/questions/62411/how-can-i-sort-du-h-output-by-size</p>
<p>Want it in your .bashrc?</p>
<pre><code>alias dsize='du -d 1 -h | perl -e'"'"'%h=map{/.\s/;99**(ord$&amp;&amp;7)-$`,$_}`du -h`;die@h{reverse sort%h}'"'"</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.jaredlog.com/?feed=rss2&#038;p=1898</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu: How to select and install (or pin) a package from a repository</title>
		<link>http://www.jaredlog.com/?p=1820&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ubuntu-how-to-select-and-install-or-pin-a-package-from-a-repository</link>
		<comments>http://www.jaredlog.com/?p=1820#comments</comments>
		<pubDate>Wed, 29 Aug 2012 00:39:01 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.jaredlog.com/?p=1820</guid>
		<description><![CDATA[This is a follow-up to &#8220;Redis and php-resque on Ubuntu 12.04.&#8221; Why pinning a package may be desirable In my previous post, after adding the dotdeb.org repository to an Ubuntu system, then performing an system-wide upgrade,  mysql-server and php (if &#8230; <a href="http://www.jaredlog.com/?p=1820">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>This is a follow-up to &#8220;<a href="http://www.jaredlog.com/?p=1746" target="_blank">Redis and php-resque on Ubuntu 12.04</a>.&#8221;</p>
<h3>Why pinning a package may be desirable</h3>
<p><a href="http://www.jaredlog.com/wp-content/uploads/2012/08/pushpin_small.jpeg"><img class="size-medium wp-image-1864 alignnone" title="pushpin_small" src="http://www.jaredlog.com/wp-content/uploads/2012/08/pushpin_small-231x300.jpg" alt="" width="83" height="108" /></a>In my previous post, after adding the dotdeb.org repository to an Ubuntu system, then performing an system-wide upgrade,  mysql-server and php (if already installed) will be also upgraded to the latest versions available from the dotdeb repository.</p>
<p>There are few reasons why an administrator may not elect to go down this route for the latest version of dotdeb packages and instead, stick with the older versions from official or mirrored Ubuntu repositories.</p>
<p>The PHP and mysql-server packages from an official or mirrored Ubuntu repository, may be a bit older but have been throughly battle-tested by many developers and users.  These packages are more likely to be stable and less prone to problems.  Additionally, the installation process of those packages have been &#8220;Ubuntuized&#8221; so they fit snugly within the distribution and work well with other Ubuntu-sanctioned software.</p>
<p>Once the administrator starts to deviate from the official Ubuntu path and install mysql-server and PHP from other sources, there&#8217;s no guarantee that these packages will work right off the bat and may require additional modifications to get them to work properly on the server.  While this is unlikely to be a major concern with the particular packages from dotdeb repository, the possibility cannot be completely disregarded.</p>
<h3>Setting up APT to pin a package</h3>
<p>However, there is a way to set up APT to accept one dotdeb.org package and exclude all other dotdeb.org packages.</p>
<p>In this case, we want to retain only the redis-server package from dotdeb.org while disregarding PHP and mysql-server from dotdeb.org, in favor of the standard packages from Ubuntu distribution.  This is called &#8220;pinning a package.&#8221;</p>
<p>Before setting up the dotdeb.org repository on the system, first check APT&#8217;s policy about the redis-server package:</p>
<pre># apt-cache policy redis-server
redis-server:
<strong> Installed: (none)
 Candidate: 2:2.2.12-1build1</strong>
 Version table:
   2:2.2.12-1build1 0
     <strong>500</strong> http://ftp.usf.edu/pub/ubuntu/ precise/universe amd64 Packages</pre>
<p>This output shows that redis-server is yet to be installed, and that if it were to be installed, it would come from Ubuntu standard packages which offers redis-server 2.2.12.</p>
<h3>APT priorities</h3>
<p>APT uses a priority number (500 in the example above) to indicate the how preferred this particular package is over the same package from other repositories.  The priority number 500 shows that this package version is right smack in the middle of the pecking order.</p>
<p>If a new repository was to be added to the system and happened to offer redis-server package with same priority score of 500, this package would be preferred over the Ubuntu provided package.  If the added repository package was marked with lower priority score, say 400, then it would be pushed down the pecking order then Ubuntu package would be preferred by APT.</p>
<p>After adding the dotdeb.org repository (<a href="http://www.jaredlog.com/?p=1746" target="_blank">steps here</a>), but before installing redis-server:</p>
<pre># apt-cache policy redis-server
redis-server:
  Installed: (none)
  <strong>Candidate: 2:2.4.16-1~dotdeb.0</strong>
  Version table:
    2:2.4.16-1~dotdeb.0 0
      500 http://packages.dotdeb.org/ stable/all amd64 Packages
    2:2.2.12-1build1 0
      500 http://ftp.usf.edu/pub/ubuntu/ precise/universe amd64 Packages</pre>
<p>The APT policy now shows that dotdeb.org&#8217;s redis-server 2.4.16 package will be preferred for installation.</p>
<p>However, now that dotdeb.org repository has been set up, it also affects PHP5 package. The system now prefers the dotdeb.org package for PHP5, as seen from this APT policy output:</p>
<pre># apt-cache policy php5
php5:
  Installed: 5.3.10-1ubuntu3.2
  <strong>Candidate: 5.3.16-1~dotdeb.0</strong>
  Version table:
     5.3.16-1~dotdeb.0 0
        500 http://packages.dotdeb.org/ stable/all amd64 Packages
 *** 5.3.10-1ubuntu3.2 0
        500 http://ftp.usf.edu/pub/ubuntu/ precise-updates/main amd64 Packages
        500 http://ftp.usf.edu/pub/ubuntu/ precise-security/main amd64 Packages
        100 /var/lib/dpkg/status
     5.3.10-1ubuntu3 0
        500 http://ftp.usf.edu/pub/ubuntu/ precise/main amd64 Packages</pre>
<h3>Modify APT preferences for a package</h3>
<p>In order to disregard all other dotdeb.org packages, except for redis-server package, we need to modify APT preferences with two new rules:</p>
<p><em><span style="text-decoration: underline;">Rule 1</span></em>: Lower the priority score to 400 for all dotdeb.org packages, so that standard Ubuntu packages will override them.</p>
<p><em><span style="text-decoration: underline;">Rule 2</span></em>: Increase the priority score for redis-server dotdeb.org package back to 500 so that it&#8217;ll be preferred over the standard Ubuntu package.</p>
<p>Create file with these two sections: /etc/apt/preferences.d/redis-server-dotdeb-pin-400</p>
<pre>Package:  *
Pin: release o=packages.dotdeb.org
Pin-Priority: 400</pre>
<pre>Package:  *redis-server*
Pin: release o=packages.dotdeb.org
Pin-Priority: 500</pre>
<p>To find out what to put in on the Pin: line,</p>
<pre># apt-cache policy | grep dotdeb
 400 http://packages.dotdeb.org/ stable/all i386 Packages
     release o=packages.dotdeb.org,a=stable,n=squeeze,l=packages.dotdeb.org,c=all
     origin packages.dotdeb.org
 400 http://packages.dotdeb.org/ stable/all amd64 Packages
     <strong>release</strong> <strong>o=packages.dotdeb.org</strong>,a=stable,n=squeeze,l=packages.dotdeb.org,c=all
     origin packages.dotdeb.org
     redis-server -&gt; 2:2.4.16-1~dotdeb.0
     redis-server:i386 -&gt; 2:2.4.16-1~dotdeb.0</pre>
<p>Double checking APT policy for PHP5 to verify that it&#8217;s now sticking to Ubuntu standard package:</p>
<pre># apt-cache policy php5
php5:
  <strong>Installed: 5.3.10-1ubuntu3.2
  Candidate: 5.3.10-1ubuntu3.2</strong>
  Version table:
     5.3.16-1~dotdeb.0 0
        400 http://packages.dotdeb.org/ stable/all amd64 Packages
 *** 5.3.10-1ubuntu3.2 0
        500 http://ftp.usf.edu/pub/ubuntu/ precise-updates/main amd64 Packages
        500 http://ftp.usf.edu/pub/ubuntu/ precise-security/main amd64 Packages
        100 /var/lib/dpkg/status
     5.3.10-1ubuntu3 0
        500 http://ftp.usf.edu/pub/ubuntu/ precise/main amd64 Packages</pre>
<p>Now APT is configured properly for the installation of redis-server package from dotdeb.org repository while retaining standard Ubuntu packages for everything else.</p>
<h3>Overriding the preferred repository</h3>
<p>If redis-server isn&#8217;t installed and the system has both Ubuntu and dotdeb.org packages available, you can force the installation of redis-server package from Ubuntu repository over the preferred dotdeb.org repository:</p>
<pre># apt-get install -t precise redis-server</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.jaredlog.com/?feed=rss2&#038;p=1820</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Redis and php-resque on Ubuntu 12.04</title>
		<link>http://www.jaredlog.com/?p=1746&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=redis-and-php-resque-on-ubuntu-12-04</link>
		<comments>http://www.jaredlog.com/?p=1746#comments</comments>
		<pubDate>Sat, 18 Aug 2012 16:32:14 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[Databases]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Scripting languages (PHP, Perl, etc)]]></category>
		<category><![CDATA[Web/Tech]]></category>

		<guid isPermaLink="false">http://www.jaredlog.com/?p=1746</guid>
		<description><![CDATA[During my free time, I help to administer a machine hosting several websites which generate copious amount of traffic and at times, there can be a significant load on the server. These websites require many tasks running on the back &#8230; <a href="http://www.jaredlog.com/?p=1746">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>During my free time, I help to administer a machine hosting several websites which generate copious amount of traffic and at times, there can be a significant load on the server. These websites require many tasks running on the back end to keep content fresh for incoming visitors.  These tasks include sending out emails, polling blogs for new content, encoding video files, organizing and moving files around, updating caches, etc.</p>
<p><strong>Minimizing server overloads</strong></p>
<p>One of the ways to squeeze more performance out of a busy server is to break up all these tasks into individual jobs.  The jobs are placed into queues with different levels of priority. Additionally, there are running worker processes that constantly check the queues for new jobs to take on.</p>
<p>During surges of visitor activity, there&#8217;s less worrying about the server load shooting through the roof and slowing down everything.  The jobs are simply inserted into the queues and the limited number of worker processes will eventually get to them all. Rather than having the CPU constantly near 100% utilization, the work is spread out over time so other services will not be starved.  The websites will still be snappy fast, even during the periods of activity surges.</p>
<p>In short, being able to slightly delay tasks that don&#8217;t absolutely need to be run immediately is an excellent way to keep a system running fast during periods of high activity.</p>
<p><strong>Discovering Redis and Resque</strong></p>
<p>After some researching to find a job/queue management system that&#8217;s flexible enough to run any type of jobs I could toss at it, I decided upon <a href="https://github.com/defunkt/resque" target="_blank">Resque</a>.  It makes use of an excellent data structure server (not database!) called <a href="http://redis.io/" target="_blank">Redis</a>. Redis is ideal since it&#8217;s almost brain-dead simple to use its capabilities, can be easily scaled from one machine to many machines, and with all the data stored in RAM, it&#8217;s blindly *fast* [more details on Redis <a href="http://www.linux-mag.com/id/7496/" target="_blank">here</a>].  Resque sets up and manages the queues on Redis.</p>
<p>An excellent analogy about Redis and Resque would be that of a Warehouse/Inventory manager.  Redis is the huge warehouse where many boxes (jobs) can be stored.  Resque is the inventory manager who brings in the boxes, knows where they should go in the warehouse, monitors the boxes, makes sure the boxes are taken care of, and takes the boxes out when they no longer need to be stored in the warehouse.</p>
<p>The number of worker processes can be fine-tuned for your server. If the server starts to experience growing pains and there&#8217;s not enough workers to take care of the jobs quick enough, the number of workers can be increased.  If the server starts to max out on its internal resources, it&#8217;s a trivial task to offload the workers to other servers to relieve the load on the primary server.  Once applications are created with Resque in mind, they will have built-in ability to scale easily in the future.</p>
<p><strong>&#8230;But my web developers use PHP, not ruby</strong></p>
<p>Resque is based on ruby, which is a great language in its own right, and is easily extended using many third-party libraries.  However, for many web developers, their preferred choice (or they may not any say in the matter) of language is PHP.  Fortunately, <a href="https://github.com/chrisboulton" target="_blank">Chris Boulton</a> did the hard work of porting Resque to PHP and it&#8217;s called <a href="https://github.com/chrisboulton/php-resque" target="_blank">php-resque</a>.</p>
<p><strong>Installing Redis and php-resque on Ubuntu 12.04</strong></p>
<p>To simplify the installation and maintenance of a Redis server on Ubuntu, check out the excellent <a href="http://www.dotdeb.org/about/" target="_blank">dotdeb.org repository</a> which offers up-to-date versions of several popular packages such as PHP, PHP extensions, MySQL, and&#8230;. Redis server. Another reason to have this repository on a server is that APT can be used to easily keep Redis server up to date in the future, avoiding the need to compile.</p>
<p>The packages of dotdeb.org repository are targeted towards Debian systems but are usable on Ubuntu. It&#8217;s highly recommended to test dotdeb packages first on a test server to ensure that nothing else will break.  Be sure you are comfortable with the APT packaging tools (and have good back ups) before heading down this path! You have been forewarned!</p>
<p><strong>Back up the php.ini for cli and apache2</strong></p>
<div>
<pre>cp /etc/php5/apache2/php.ini /etc/php5/apache2/php.ini.bak
cp /etc/php5/cli/php.ini /etc/php5/cli/php.ini.bak</pre>
</div>
<p><strong>Set up the dotdeb repository and get the system up to date:</strong></p>
<div>Create file /etc/apt/sources.list.d/dotdeb.org.list</div>
<pre>deb http://packages.dotdeb.org stable all
deb-src http://packages.dotdeb.org stable all</pre>
<p>Approve dotdeb&#8217;s GnuPG key:</p>
<pre>wget -q -O- http://www.dotdeb.org/dotdeb.gpg | apt-key add -</pre>
<p><strong>Special note</strong>: if you want only the redis-server package from dotdeb.org repository and not upgrade PHP5 or mysql-server, read this <a href="http://www.jaredlog.com/?p=1820" target="_blank">follow-up post</a>.</p>
<p><strong>Update the system:</strong></p>
<pre>sudo apt-get upgrade
sudo apt-get update</pre>
<div>Fully update PHP5 then fix up php.ini for sessions file location</div>
<pre>sudo apt-get install php5 [Run this even if PHP5 is already installed on the system]</pre>
<div>
<p>Before PHP5 update:</p>
<pre>$ php -v
PHP 5.3.10-1ubuntu3.2 with Suhosin-Patch (cli) (built: Jun 13 2012 17:19:58) Copyright (c) 1997-2012
The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies</pre>
<p>After PHP5 update:</p>
<pre>$ php -v
PHP 5.3.15-1~dotdeb.0 with Suhosin-Patch (cli) (built: Jul 23 2012 12:25:58) Copyright (c) 1997-2012
The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies with Suhosin v0.9.33,
Copyright (c) 2007-2012, by SektionEins GmbH</pre>
</div>
<div>Make sure this line is not commented out in /etc/php5/apache2/php.ini</div>
<pre>session.save_path = "/tmp"</pre>
<pre>$ sudo service apache2 restart</pre>
<div><strong>Install redis-server</strong></div>
<pre>sudo apt-get install redis-server</pre>
<div><strong>Install php-resque and run the demo</strong></div>
<div>If you don&#8217;t have git on your system yet:</div>
<pre>sudo apt-get install git
git clone https://github.com/chrisboulton/php-resque.git
cd php-resque/demo  [edit job.php and change sleep(120) to sleep(5), makes the demo run faster]</pre>
<div>Start the workers</div>
<pre>bash -c "VVERBOSE=1 QUEUE=* COUNT=2 php resque.php"</pre>
<div>Submit a few jobs</div>
<pre>php queue.php PHP_Job
php queue.php PHP_Job
php queue.php PHP_Job
php queue.php PHP_Job</pre>
<div>Watch workers perform the work.  When done, kill all workers at once:</div>
<pre>killall php</pre>
<p>It&#8217;s now a simple matter to copy and paste custom PHP code inside another class in job.php and queue multiple runs of the job class.</p>
<p>To pass values to your custom job class:</p>
<p>For example, to pass the third argument from the command line to your job, i.e.</p>
<pre>php queue.php Ping_Job google.com</pre>
<p>queue.php would look something like this:</p>
<pre>&lt;?php
  if(empty($argv[2])) {
    die('Specify the name of a job to add. e.g, php queue.php Ping_Job google.com');
  }
 require '../lib/Resque.php';
 date_default_timezone_set('GMT');
 Resque::setBackend('127.0.0.1:6379');
 $args = array(
   <strong><em>'host' =&gt; $argv[2]</em></strong>,
 );
 $jobId = Resque::enqueue('default', $argv[1], $args, true);
 echo "Queued job ".$jobId."\n\n";
?&gt;</pre>
<p>job.php would look like this:</p>
<pre>
<div id="_mcePaste">&lt;?php
class Ping_Job
{
  public function perform()
  {
    $host_pinged = <strong><em>$this-&gt;args['host']</em></strong>;
      ... rest of custom code ...</div></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.jaredlog.com/?feed=rss2&#038;p=1746</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Today, a new advancement in VRS calling</title>
		<link>http://www.jaredlog.com/?p=1712&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=today-a-new-advancement-in-vrs-calling</link>
		<comments>http://www.jaredlog.com/?p=1712#comments</comments>
		<pubDate>Fri, 06 Jul 2012 16:47:27 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[Deaf]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Web/Tech]]></category>

		<guid isPermaLink="false">http://www.jaredlog.com/?p=1712</guid>
		<description><![CDATA[It&#8217;s days like this that make me proud that I&#8217;m part of the engineering team at ZVRS. This morning, at the NAD conference, ZVRS worked with Google on a demo of our prototype ZVRS app for Google+ Hangouts. The ZVRS &#8230; <a href="http://www.jaredlog.com/?p=1712">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>It&#8217;s days like this that make me proud that I&#8217;m part of the engineering team at ZVRS.  This morning, at the NAD conference, ZVRS worked with Google on a <a href="http://instagram.com/p/MvntQrKuq1/">demo</a> of our prototype ZVRS app for Google+ Hangouts.</p>
<p>The ZVRS app for Hangouts extends the functionality of a Google+ Hangout to allow a deaf person to automatically bring in a sign language interpreter! Once the interpreter shows up in the video hangout, the deaf person can then dial a hearing person&#8217;s phone number.  When the hearing person answers the phone, the call can be seamlessly interpreted.</p>
<p>Here&#8217;s a few screenshots of what the ZVRS app for Hangout looks like:</p>
<h3>Starting a Hangout</h3>
<p>First, you start a hangout but since this will be a private call to a hearing person&#8217;s phone, you don&#8217;t invite anyone to your hangout:</p>
<p><a href="http://www.jaredlog.com/wp-content/uploads/2012/07/invite.png"><img class="alignnone size-full wp-image-1715" title="invite" src="http://www.jaredlog.com/wp-content/uploads/2012/07/invite.png" alt="" width="353" height="489" /></a></p>
<h3>Inviting an sign language interpreter into your hangout</h3>
<p>Once the Google+ hangout window pops up, the ZVRS app shows up on the top menu bar.  Since this is only a prototype, only those who have been whitelisted can see the ZVRS app.</p>
<p><a href="http://www.jaredlog.com/wp-content/uploads/2012/07/ZVRS-app.png"><img class="alignnone size-full wp-image-1725" title="ZVRS-app" src="http://www.jaredlog.com/wp-content/uploads/2012/07/ZVRS-app.png" alt="" width="562" height="457" /></a></p>
<p>There&#8217;s a short wait after you invite an interpreter.  Our backend systems start searching for an available interpreter that can be assigned to your hangout.</p>
<p><a href="http://www.jaredlog.com/wp-content/uploads/2012/07/Terp-connecting.png"><img class="alignnone size-full wp-image-1720" title="Terp-connecting" src="http://www.jaredlog.com/wp-content/uploads/2012/07/Terp-connecting.png" alt="" width="338" height="307" /></a></p>
<p>Now that there is an interpreter ready in the hangout, you can proceed to call out to a hearing person&#8217;s phone number and bring them into your hangout.</p>
<p><a href="http://www.jaredlog.com/wp-content/uploads/2012/07/terp-connected.png"><img class="alignnone size-full wp-image-1724" title="terp-connected" src="http://www.jaredlog.com/wp-content/uploads/2012/07/terp-connected.png" alt="" width="647" height="454" /></a></p>
<h3>Calling a hearing person&#8217;s phone</h3>
<p>Since you&#8217;re dialing a phone number, click the +telephone link and add the phone number.</p>
<p><a href="http://www.jaredlog.com/wp-content/uploads/2012/07/dial-phone-number.png"><img class="alignnone size-full wp-image-1728" title="dial-phone-number" src="http://www.jaredlog.com/wp-content/uploads/2012/07/dial-phone-number.png" alt="" width="526" height="201" /></a></p>
<p>Now the hearing person on the other end of the line is an active participant in your video hangout, and the call can proceed as an interpreted call!</p>
<p><a href="http://www.jaredlog.com/wp-content/uploads/2012/07/call-terped.png"><img class="alignnone size-full wp-image-1722" title="call-terped" src="http://www.jaredlog.com/wp-content/uploads/2012/07/call-terped.png" alt="" width="711" height="457" /></a></p>
<h3>Why this is game-changing</h3>
<p>Google+ works across a range of platforms, from PC Windows, Apple Macs, Linux desktops, and Android tablets! (iPad support isn&#8217;t fully there yet).  There&#8217;s also several cool features such as chat window which makes it easy for the caller or interpreter to type out account numbers, confirmation numbers, addresses, phone numbers, etc.</p>
<p>For those who are technically inclined, Google+ hangouts are based on Vidyo technology and H.264 SVC.  This means that the video quality can be maintained over a network with <a href="http://www.youtube.com/watch?v=tZWjOr0oh0A">some packet loss</a> without causing annoying artifacts.</p>
<p>Also, imagine if you were in a hangout with several people and all of sudden, a hearing person joined, it takes only one click to bring in an interpreter for the hearing person!</p>
<p>If you know that the hearing person you are trying to call has a Google account, you can invite the hearing person directly to the conversation and enjoy the bonus of actually seeing their face on the call, rather than a face-less audio only call to their phone.  This is the first VRS/VRI capable app where you are able to actually see the hearing person if they so happen to have an account.  FCC may want to start taking note of the advancement of a new class of VRS calling apps in the modern world, where video calls are becoming more prevalent in the hearing world and people/business may not always have a phone number to call.</p>
<p>Since ZVRS app is still a prototype that needs to be fully fleshed out while developing the appropriate backend systems to support many calls, it will be a while before it&#8217;ll be officially released to the public.  This is another example of how ZVRS is standing out in the VRS industry as a company that isn&#8217;t content to rest on our laurels and how we are constantly pushing the envelope on better communication tools for the deaf.  This is one of the reasons why I&#8217;m proud to be part of this amazing company!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jaredlog.com/?feed=rss2&#038;p=1712</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Tropical storms: How the deaf can monitor tornado warnings</title>
		<link>http://www.jaredlog.com/?p=1620&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=tropical-storms-how-the-deaf-can-monitor-tornado-warnings</link>
		<comments>http://www.jaredlog.com/?p=1620#comments</comments>
		<pubDate>Tue, 26 Jun 2012 03:51:05 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[Deaf]]></category>
		<category><![CDATA[Web/Tech]]></category>

		<guid isPermaLink="false">http://www.jaredlog.com/?p=1620</guid>
		<description><![CDATA[[caution to the reader: this post has extreme snarkiness] Unwelcome visitor: TS Debby Yesterday was an eye-opening experience for me. Central Florida got slammed by tropical storm Debby which wrecked havoc in certain areas.  Debby unleashed 13 inches of rain &#8230; <a href="http://www.jaredlog.com/?p=1620">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>[caution to the reader: this post has extreme snarkiness]</p>
<p><strong>Unwelcome visitor: TS Debby</strong></p>
<p>Yesterday was an eye-opening experience for me. Central Florida got slammed by tropical storm Debby which wrecked havoc in certain areas.  Debby unleashed 13 inches of rain in Pinellas county in 96 hours and caused flooding in the Tampa Bay area.  The 1945 record for wettest June in Tampa was broken.</p>
<p style="text-align: center;"><a href="http://www.jaredlog.com/wp-content/uploads/2012/06/brighthouse-stadium.jpg"><img class="size-full wp-image-1619 aligncenter" title="brighthouse-stadium" src="http://www.jaredlog.com/wp-content/uploads/2012/06/brighthouse-stadium.jpg" alt="" width="441" height="441" /></a></p>
<p style="text-align: center;">
<p style="text-align: center;">[Water polo, any one? The local baseball stadium in the aftermath of Debby]</p>
<p>Of intense interest were the tornados that randomly spawned throughout the area.  Unlike hurricanes which, due to modern weather monitoring technologies, come with plenty of advance notice, tornados can pop out of nowhere. It is often only a few short minutes before one comes roaring into your vicinity and send you off to the Land of Oz.</p>
<p><strong>What Bay News 9, the local TV station had to offer, or rather, didn&#8217;t offer:</strong></p>
<p>First, I did what everyone else in Tampa Bay would do: turn on the TV to the local news for the live weather updates.  That should be easy enough, right?</p>
<p style="text-align: center;"><a href="http://www.jaredlog.com/wp-content/uploads/2012/06/bn9-no-captions.jpg"><img class="alignnone size-large wp-image-1615" title="BN9-no-capttions" src="http://www.jaredlog.com/wp-content/uploads/2012/06/bn9-no-captions-1024x768.jpg" alt="" width="491" height="369" /></a></p>
<p style="text-align: center;">[Hmm guys? Something's missing here...]</p>
<p>I switched to Bay News 9 station which was continually providing local updates about Debby&#8230;.and to my surprise, without closed captioning!  Apparently, the people at Bay News 9 think that everyone in Tampa Bay can hear (Halleujah!) and there&#8217;s no need to show any captions on this potentially lifesaving broadcast.</p>
<p>However, they may be surprised to learn that, according to The Florida Association of the Deaf, &#8220;<em>Tampa Bay, Florida has one of the largest Deaf communities in the USA. The area is home to <span style="text-decoration: underline;">348,000</span> Deaf people, the largest such community in Florida.</em>&#8221;  BN9 staff, let that sink in for a moment.  Right now, it&#8217;s like you&#8217;re holding up a big fat middle finger to us all, telling us that our lives aren&#8217;t worth it.</p>
<p>Next up was to overcome this apparent inaccessibility wrought by BN9 and figure out another way to get the timely information about the violate weather situation.</p>
<p><strong>Instant email alerts, NOAA&#8217;s NWS vs WeatherUSA</strong></p>
<p>My highest priority was to get tornado alerts sent to my smartphone.  Having a mobile device during emergencies is important since the phone will still get updates after the power goes off at home, provided the cell towers are still functional.</p>
<p>I was most interested in the alerts about tornado warnings/watches in the Pinellas County, which is due west of Tampa proper.  I wasn&#8217;t interested in flood alerts since I don&#8217;t live in an area where this would be a concern.</p>
<p>The big name in extreme weather alerts is NOAA&#8217;s National Weather Service at the catchy URL: <a href="http://weather.gov/">http://weather.gov</a> Their website is as ugly as they come, but hey, it&#8217;s a federal agency website- they&#8217;re all ugly.  It&#8217;s the email alerts I&#8217;m after, not a dissection of the bone-headed decisions behind the website&#8217;s design.  After finding the link to sign up for weather alerts, here&#8217;s what the alert subscription page looks like:</p>
<p><a href="http://www.jaredlog.com/wp-content/uploads/2012/06/noaa-joke.png"><img class="alignnone size-full wp-image-1645" title="noaa-joke" src="http://www.jaredlog.com/wp-content/uploads/2012/06/noaa-joke.png" alt="" width="514" height="471" /></a></p>
<p>[Really, NOAA? How the heck am I supposed to find tornado alerts in central west Florida? This page could make a grown man cry...not that I did.]</p>
<p>So, NOAA has completely dropped the ball on this one.  Regular citizens visiting NOAA&#8217;s website have very little hope of finding the alerts they are truly interested in.</p>
<p>Moving on ahead&#8230;.</p>
<p>My Google ninja skills led me to the weather alerts over at weatherusa.net.</p>
<p><em>&#8220;<strong>weatherUSA Alerts</strong> is a free, real-time weather alert service which sends out weather warnings, watches, tropical alerts, and other advisories as soon as they are issued by federal agencies including the National Weather Service.</em>&#8221;</p>
<p>Hmmmm. WeatherUSA alerts are based on the same data from NOAA&#8217;s NWS? See the irony there? Doesn&#8217;t seem like the NOAA folks have yet.  WeatherUSA folks have more common sense as seen below:</p>
<p style="text-align: center;"><a href="http://www.jaredlog.com/wp-content/uploads/2012/06/weather-usa.png"><img class="alignnone size-full wp-image-1658" title="weather-usa" src="http://www.jaredlog.com/wp-content/uploads/2012/06/weather-usa.png" alt="" width="549" height="251" /></a></p>
<p style="text-align: center;">[Whoo, there's even local email alerts for the Pinellas County!]</p>
<p>With the most critical task out of the way, I can start focusing on getting more information about the tropical storm than what I&#8217;m able to glean from the TV (and I would like to reiterate the point here: not much due to the lack of closed captions on BN9).</p>
<p><strong>Visualizing the alerts: Google Public Alerts</strong></p>
<p>Getting the alerts via email is one thing but it&#8217;s entirely different when you are able to visually see them. Enter Google public alerts, where the map has visual overlays of the alerts!</p>
<p>Google public alerts about <a href="http://www.google.org/publicalerts/?hl=en&amp;gl=US#q=Pinellas+tornado+warning++is:active&amp;sort=relevance&amp;type=all&amp;v=28.384362,-81.826389,27.398806,-83.607547&amp;z=10">tornado warnings in Pinellas</a>:</p>
<p><a href="http://www.jaredlog.com/wp-content/uploads/2012/06/Google-public-alerts-highlights.png"><img class="alignnone size-full wp-image-1613" title="Google-public-alerts-highlights" src="http://www.jaredlog.com/wp-content/uploads/2012/06/Google-public-alerts-highlights.png" alt="" width="477" height="230" /></a></p>
<p style="text-align: center;">[The red color highlights make it easy to see where alerts are active.]</p>
<p>&#8220;<span style="text-decoration: underline;">Tornado watch</span>&#8221; alerts = weather conditions are favorable for a tornado. &#8220;<span style="text-decoration: underline;">Tornado warning</span>&#8221; alerts = one or more tornados have already formed and are currently moving though the area. This difference is not well understood by many people, as we&#8217;ll see soon enough. The bottom line is: if your home is in the darker red area, you need to get to safety immediately and wait it out.</p>
<p><strong>Being my own weatherman: Live Weather Radar and WeatherBug</strong></p>
<p>While it&#8217;s all good to see current conditions, I also like to make my own predictions as to how weather could worsen or improve in my particular area during the next few hours.  To this end, I use two Google Chrome extensions:</p>
<p><a href="https://chrome.google.com/webstore/detail/ghfnmjlmnndhmekeiofedpngeodakacp?hl=en-US">Live Weather Radar</a></p>
<p><a href="http://www.jaredlog.com/wp-content/uploads/2012/06/LIve-weather-radar-versitek-animated.png"><img class="alignnone size-full wp-image-1614" title="LIve-weather-radar-versitek-animated" src="http://www.jaredlog.com/wp-content/uploads/2012/06/LIve-weather-radar-versitek-animated.png" alt="" width="495" height="370" /></a></p>
<p>Live Weather Radar Google extension is a quick way to see an animation of how weather has been moving through your area.  Naturally, you want to see if the red or yellow blobs could approach your home area. This is the &#8220;bird&#8217;s view&#8221;</p>
<p><a href="https://chrome.google.com/webstore/detail/ihdkejbciahopmbagpnjmmkkdpfpaaak?hl=en-US">Weatherbug</a></p>
<p><a href="http://www.jaredlog.com/wp-content/uploads/2012/06/Weatherbug-google-ext.png"><img class="alignnone size-full wp-image-1618" title="Weatherbug-google-ext" src="http://www.jaredlog.com/wp-content/uploads/2012/06/Weatherbug-google-ext.png" alt="" width="490" height="308" /></a></p>
<p>WeatherBug Google extension allows you to zoom in close to your home area to better measure how far away the storm is and if you should be worried or not.  As you can see above, I&#8217;m having a close call!</p>
<p><strong>TweetDeck: Let the tweets flow!</strong></p>
<p>The final piece of puzzle to monitoring the tropical storm for tornados is to get live updates from other people who are commenting on the ongoing storm.</p>
<p>Twitter is known to be heavily used by people to send out information during times of crisis.  A tropical storm is no different.  TweetDeck provides a way to show a constant live stream of tweets without the need for you to press a refresh button.</p>
<p><strong>Three columns for maximum impact</strong></p>
<p>I split TweetDeck into three columns:</p>
<p>Pinellas County (a custom list) column which consists of the twitter accounts of local news organizations and other local governmental entities.  This is the most trustworthy column for me but isn&#8217;t updated as frequently during the storm.</p>
<p>A search column showing tweets containing the words &#8220;Tornado warning&#8221; which in theory should show tweets about impending tornados. This column updates a bit more frequently but there are many tweets from people who clearly don&#8217;t understand the difference between &#8220;tornado watch&#8221; vs &#8220;tornado warning&#8221; and often incorrectly use these terms.</p>
<p>The third column searches for tweets containing the generic term &#8220;tornado&#8221; to show even more tweets from a wider audience.  This is a very active column with many tweets zipping down the column.  It&#8217;s a great way to get a pulse of what many people are saying about tornados but the challenge is to manually filter out those are from your area.  (There may be a way to automatically do this but I haven&#8217;t had time to look more into it).</p>
<p><a href="http://www.jaredlog.com/wp-content/uploads/2012/06/TweetDeck-test.png"><img class="alignnone size-full wp-image-1617" title="TweetDeck-test" src="http://www.jaredlog.com/wp-content/uploads/2012/06/TweetDeck-test.png" alt="" width="493" height="379" /></a></p>
<p>So there, you have it &#8211; how deaf people can do an end run around Bay News 9&#8242;s lack of TV captioning and turn to the Internet to get everything they need to stay safe!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jaredlog.com/?feed=rss2&#038;p=1620</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Until next time, my friend</title>
		<link>http://www.jaredlog.com/?p=1519&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=until-next-time-my-friend</link>
		<comments>http://www.jaredlog.com/?p=1519#comments</comments>
		<pubDate>Fri, 15 Jun 2012 03:28:05 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[Deaf]]></category>

		<guid isPermaLink="false">http://www.jaredlog.com/?p=1519</guid>
		<description><![CDATA[For a long time, I&#8217;ve been dreading writing this blog post about one of the most amazing persons I&#8217;ve ever had the privilege of knowing, Daniel Stephen Foster.  For years, he had been suffering from a host of health issues and it &#8230; <a href="http://www.jaredlog.com/?p=1519">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>For a long time, I&#8217;ve been dreading writing this blog post about one of the most amazing persons I&#8217;ve ever had the privilege of knowing, Daniel Stephen Foster.  For years, he had been suffering from a host of health issues and it all caught up with him early Sunday morning, June 10, 2012. To paraphrase William Shakespeare&#8217;s Hamlet: Dan had &#8220;<em>beared the whips and scorns of time and has gone over to the undiscover&#8217;d country from whose bourn no traveller returns.</em>&#8221;</p>
<p>It has taken a few days to collect myself and with great difficulty I have accepted the grand finality that Dan is no longer around. No more can I send off an email to dan@catbert.org and expect a response within a few hours. One of the reasons why I dread writing this blog post is because how does one sit down to distill the essence of a bond spanning two decades and put into words something that gives it sufficient justice?</p>
<p>I first met Dan Foster when we entered NTID/RIT as green freshmen in the fall of 1992. We quickly discovered that we loved all things that pushed bits and bytes. Our friendship took off right away.</p>
<p>During student orientation, when I was introduced to RIT&#8217;s DEC VAX/VMS cluster, it took me a while to warm up to the platform while Dan immediately took to the system, like a fish to water.   At that time, I had prided myself on the fact I already had experience with C programming as a high school senior working at University of Washington. So, I thought I already had a head start on other freshmen at RIT.  After meeting with Dan, I quickly came to the realization that he was a rare breed after he told me about how he sneaked into networked computer labs at Gallaudet while a high school student at MSSD.</p>
<p>Clearly, his technical superiority and prowess far outstripped mine.</p>
<p><a href="http://www.jaredlog.com/wp-content/uploads/2012/06/dan-me.jpg"><img class="alignnone size-large wp-image-1539" title="SAMSUNG" src="http://www.jaredlog.com/wp-content/uploads/2012/06/dan-me-1024x768.jpg" alt="" width="458" height="344" /></a></p>
<p>[Dan Foster and I during a moment of levity at RIT after several packs of beer]</p>
<p>I told myself, &#8220;Damn, this guy really knows what he&#8217;s doing!  I must find a way to room with him!  He&#8217;ll teach me 10x what I&#8217;ll learn in the classroom.&#8221;  Eventually, we were able to move into a large dorm room that could fit three people.  So began my two years as Dan&#8217;s college roommate.  One of my fondest memories with Dan was when our dorm room was supercharged with palpable excitement about a new release of then little-known OS called Linux. After installing Linux from 24 floppy disks and performing a few sleight-of-hand tricks to get X Windowing system running (and managing to do it without blowing out the CRT monitor!), we were taken aback when it all finally came together on the screen with several X terminal consoles with flashing prompts. We celebrated with a few beers that day.</p>
<p>Shortly afterwards, I vividly recall how he had to show me this interesting software he compiled, NCSA Moasic (which was the first graphical web browser) for something mysteriously called the &#8220;World Wide Web.&#8221;  We visited about 20 websites which made up all of the WWW at the time. How much has changed since then!</p>
<p>During our second year as roommates, I watched him start his ascendency to a system administrator of the highest order.  He never finished his RIT degree but instead started working at a local dial-up Internet provider and ultimately ending up with an international networking company, Global Crossing (now Level 3).  The breadth and depth of his knowledge about networking and system administration seemed to be boundless. If he wasn&#8217;t sure of something, he would research the hell out of it and come back with a great answer or solution.  Like many others, he was my go-to guy when I was utterly stuck on getting something to work on a server. He would guide me through configuration changes and went on to explain in depth why the changes were needed.</p>
<p>By the time I graduated from RIT with a BS in Information Technology, Dan had already worked on high-end systems worth millions of dollars,  similar to IBM&#8217;s famous Deep Blue- the first supercomputer to beat world champion chess player, Garry Kasparov!  I will always remember him taking me on a very special visit to get a rare glimpse of the Internet Exchange Point in New York City. For the layperson, the location is one of the major crossroads on the Internet superhighway through which billions of emails or video traffic can get from one place to other.  He also gave me my very first networking installation job for a client of his, in which I patched ethernet ports for new offices.</p>
<p>It is safe to say that I would not be where I am today without Dan Foster.</p>
<p>At first glance, he seems to be this completely unassuming human being but once you get to know him, you begin to see the sheer brilliance hidden inside his soul and mind.  If you&#8217;ve been lucky enough to get an email from him then you know the excruciating details he can get into when he&#8217;s passionate about something.  For example, we both share a love of aviation and Dan himself is one of only 100 deaf licensed pilots in USA.  His emails about the minute details of piloting planes are legendary: you had better strap yourself down for a hour just for the fun of reading his email.</p>
<p>One of his gifts was the ability to masterfully come up with great analogies to simplify and explain complicated concepts.  His ability to help others better understand things didn&#8217;t go unnoticed.</p>
<p>In fact, the authors of  <a href="http://www.amazon.com/System-Administration-Handbook-Edition-ebook/dp/B003YMNVCA/ref=dp_kinw_strp_1?ie=UTF8&amp;m=AG56TWVU5XWC2" target="_blank">UNIX and Linux System Administration Handbook (4th Edition)</a> asked Dan to contribute some material about IBM&#8217;s OS, AIX for the book. This was a huge honor considering how it&#8217;s one of the standard books used for modern systems administration.</p>
<p><a href="http://www.jaredlog.com/wp-content/uploads/2012/06/UNIX-Linux-admin-book.png"><img class="alignnone size-medium wp-image-1552" title="UNIX-Linux-admin-book" src="http://www.jaredlog.com/wp-content/uploads/2012/06/UNIX-Linux-admin-book-218x300.png" alt="" width="218" height="300" /></a></p>
<p>Here&#8217;s a snapshot of what he wrote in the book:</p>
<p><a href="http://www.jaredlog.com/wp-content/uploads/2012/06/Dan-AIX.png"><img class="alignnone size-large wp-image-1550" title="Dan-AIX" src="http://www.jaredlog.com/wp-content/uploads/2012/06/Dan-AIX-450x1024.png" alt="" width="450" height="1024" /></a></p>
<p>Despite his mastery at bending any systems to his will, I once observed in quiet amazement how he gently treated a complete Linux newbie who was trying to transfer a file using SCP, which is one of the most basic operations.  This seasoned veteran who operated at the highest level of network administration could have so easily disregarded the newbie and told him to go RTFM (Read The F*#!&amp;%$ Manual), but instead took the time to guide him through the steps to transfer the file.</p>
<p>That was the quintessential Dan Foster: always patient and willing to help others, no matter what they need from him.</p>
<p>One thing was certain: he was a creature in an online world where there are no barriers in communication.  As his health declined, it became more difficult to see him in person. I will be forever grateful that our emails and chats kept on flowing until the day he could no longer physically handle a laptop.</p>
<p>We had a special understanding and bond that came not just from our similar fields of interest, but that we were both deaf, unable to clearly speak a single word, and our communication relied chiefly on written notes and sign language interpreters.  We faced the same challenges as we found our own way through life and to excel in our chosen field. That shared experience brought us closer together.</p>
<p>All I can say now to Dan: What you have accomplished in the short span of time you had here on Earth, is more than most will do in their entire lives.  Despite the long battle with your health, you never gave up when it would have been so easy to say, &#8220;Screw all this!&#8221; Your example has shown us the true meaning of persistence and fortitude.</p>
<p>Godspeed, Dan! Go and live it up in the Cosmos but avoid the black holes! I hear they are real drainers.</p>
<p><em>My candle burns at both ends<br />
It will not last the night<br />
But ah, my foes, and oh, my friends<br />
It gives a lovely light!</em></p>
<p><em> </em></p>
<p><em>-Edna St. Vincent Millay</em></p>
<p><em><a href="http://www.jaredlog.com/wp-content/uploads/2012/08/dan-foster-grave.jpg"><img class="alignnone size-full wp-image-1818" title="dan-foster-grave" src="http://www.jaredlog.com/wp-content/uploads/2012/08/dan-foster-grave.jpg" alt="" width="360" height="480" /></a></em></p>
<p>Dan is now on the Smithsonian National Aviation and Space Exploration Wall of Honor <a href="http://airandspace.si.edu/wallofhonor/profiledetail.cfm?id=34651">http://airandspace.si.edu/wallofhonor/profiledetail.cfm?id=34651</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jaredlog.com/?feed=rss2&#038;p=1519</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>How to access the text console of a virtual KVM guest from within virsh</title>
		<link>http://www.jaredlog.com/?p=1484&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-to-access-the-text-console-of-a-virtual-kvm-guest-from-within-virsh</link>
		<comments>http://www.jaredlog.com/?p=1484#comments</comments>
		<pubDate>Tue, 20 Mar 2012 04:20:31 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.jaredlog.com/?p=1484</guid>
		<description><![CDATA[(done on clean installation of Ubuntu 11.10/KVM) After getting a KVM host up and running on Ubuntu, often the graphical VM management application, virt-manager, is installed.  This useful utility makes it a snap to create new virtual machines and gives &#8230; <a href="http://www.jaredlog.com/?p=1484">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>(done on clean installation of Ubuntu 11.10/KVM)</p>
<p>After getting a KVM host up and running on Ubuntu, often the graphical VM management application, virt-manager, is installed.  This useful utility makes it a snap to create new virtual machines and gives ready access to the virtual X desktops via graphic consoles.</p>
<p>However, when it&#8217;s time to make a serious use of KVM virtualization in the real world, a workhorse KVM host is more likely to have a number of Linux guest servers running with text consoles instead of X graphic consoles.  This helps to cut down on the total overhead on the host and allows more guest virtual machines to be jammed into a KVM host.</p>
<p>On a CLI-only KVM host, the text-based utility virsh is how one can manipulate the guests on a host.</p>
<p>It only makes sense that virsh would also allow access to the text console of a virtual machine, right&#8230;..right?  Let&#8217;s try switching to the console of a guest VM:</p>
<pre>virsh # list
Id Name                 State
----------------------------------
2 ubu1                 running
virsh # console ubu1
Connected to domain ubu1
Escape character is ^]</pre>
<p>Argh, no further output!  No welcome message or command prompt is shown for the ubu1 VM.</p>
<p>It&#8217;s annoying at first but the lack of access to the text guest consoles can be resolved by taking these additional steps in the guest VMs:</p>
<p>The guest VM needs its serial console to be populated with a login prompt, which will present itself upon a successful serial connection from virsh.</p>
<p>In the guest Ubuntu VM:</p>
<p>Save some time/work by copying one of the tty configuration files:</p>
<p>sudo cp /etc/init/tty1.conf /etc/init/ttyS0.conf</p>
<p>edit ttyS0.conf and change the line:</p>
<p>exec /sbin/getty -8 115200 ttyS0 xterm</p>
<p>After restarting the guest VM, it&#8217;s now possible to use virtsh to get a console to the guest.</p>
<p>As long as we&#8217;re getting dirty here, let&#8217;s go the whole hog and get guest console to show practically everything!  How about seeing all the kernel messages during a guest boot?</p>
<p>Tell grub2 to output the kernel messages to the serial console.</p>
<p>sudo vi /etc/default/grub</p>
<p>GRUB_CMDLINE_LINUX_DEFAULT=&#8221;console=ttyS0&#8243;</p>
<p>sudo update-grub2</p>
<p>After restarting the guest, all the kernel messages will zip by until the command prompt is shown.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jaredlog.com/?feed=rss2&#038;p=1484</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Inception problem: keymap for ‘a’ key broken inside twice-virtualized Ubuntu KVM guest</title>
		<link>http://www.jaredlog.com/?p=1482&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=inception-problem-keymap-for-a-key-broken-inside-twice-virtualized-ubuntu-kvm-guest</link>
		<comments>http://www.jaredlog.com/?p=1482#comments</comments>
		<pubDate>Mon, 19 Mar 2012 15:32:01 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.jaredlog.com/?p=1482</guid>
		<description><![CDATA[Running an Ubuntu virtualized virtual guest inside a virtual KVM host inside VMware Fusion 4 for OSX? You may have noticed that when ssh -X to the virtual KVM host machine then attaching to virtual guest graphic console (VNC) via &#8230; <a href="http://www.jaredlog.com/?p=1482">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Running an Ubuntu virtualized virtual guest inside a virtual KVM host inside VMware Fusion 4 for OSX?</p>
<p>You may have noticed that when ssh -X to the virtual KVM host machine then attaching to virtual guest graphic console (VNC) via the graphical utility, virt-manager, the key &#8216;a&#8217; doesn&#8217;t work!</p>
<p>Alas, a broken keymap! It&#8217;s like if Leonardo DiCaprio was running around with a missing right eye in the Inception hotel.</p>
<p>How to fix the easy way?</p>
<pre>$ virsh</pre>
<pre>
<div id="_mcePaste">Welcome to virsh, the virtualization interactive terminal.</div>
<div id="_mcePaste">Type:  'help' for help with commands</div>
<div id="_mcePaste">       'quit' to quit</div>
<div id="_mcePaste">virsh # list</div>
<div id="_mcePaste"> Id Name                 State</div>
<div id="_mcePaste">----------------------------------</div>
<div id="_mcePaste">  2 ubu1                 running</div>
<div id="_mcePaste">virsh # edit 2</div></pre>
<p>Make sure have keymap=&#8217;en-us&#8217; in graphics line.</p>
<p>&lt;graphics type=&#8217;vnc&#8217; port=&#8217;-1&#8242; autoport=&#8217;yes&#8217; keymap=&#8217;en-us&#8217;/&gt;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jaredlog.com/?feed=rss2&#038;p=1482</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Finding IP address of a device on a network.</title>
		<link>http://www.jaredlog.com/?p=1444&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=finding-ip-address-of-a-device-on-a-network</link>
		<comments>http://www.jaredlog.com/?p=1444#comments</comments>
		<pubDate>Mon, 26 Dec 2011 16:02:19 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://www.jaredlog.com/?p=1444</guid>
		<description><![CDATA[[zippy] I get asked this question once in a while: &#8220;When I plug in a new device to the network, fresh out of the box and it defaults to getting an IP address via DHCP: how the heck do I &#8230; <a href="http://www.jaredlog.com/?p=1444">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p style="text-align: left;">[zippy] I get asked this question once in a while:</p>
<p>&#8220;When I plug in a new device to the network, fresh out of the box and it defaults to getting an IP address via DHCP: how the heck do I find its IP address once it&#8217;s powered on?&#8221;</p>
<p>In other words, it&#8217;s the networking version of &#8220;Where&#8217;s Waldo?&#8221;</p>
<p style="text-align: center;"><img class="size-full wp-image-1454  aligncenter" title="wheres-waldo" src="http://www.jaredlog.com/wp-content/uploads/2011/12/wheres-waldo.jpg" alt="" width="259" height="259" /></p>
<p>The first thing to do is to find the unique MAC address identifying the device which is often labelled on the rear or bottom of the device.  The MAC address is always 12 hex [0-9,A-F] characters long. Example: 0C:4F:22:77:8C:90.</p>
<p>On a small home network, it&#8217;s pretty easy to find the device&#8217;s IP address.  You can simply login your home router and usually there is an list of devices currently connected to your router.  Find the device matching the MAC address and you&#8217;ll find out what its IP address is.</p>
<p>However, on a larger network where you don&#8217;t have admin access to the network&#8217;s router and don&#8217;t want to bother the busy network administrator, this can present a challenge to find which IP address was assigned to your device. On a /24 network, there are 254 usable IP addresses or on a /23 network, there are 510 usable IP addresses.</p>
<p>For this example, a managed switch is powered on the network and it has a HTTP web admin tool on port 80.  You could attempt to find it by visiting each IP address in your web browser. Let&#8217;s face it, it would be cumbersome and could take a very long time before you finally hit upon the managed switch.  If you power off the managed switch and turn it back on, it could get a different IP address and you would have to start searching for it all over again!</p>
<p>The easy &amp; lazy (expert) method:</p>
<p>Fortunately, there is a network tool called nmap (or zenmap if want a nice GUI interface). I prefer to use nmap in a native Linux environment so if I&#8217;m on OSX or Windows machine, I fire up a Ubuntu virtual machine that has been set with a bridge to the network.  There are nmap versions for Windows and OSX if you don&#8217;t have access to Ubuntu. I haven&#8217;t personally used them so I can&#8217;t attest how well they work.</p>
<p>The managed switch has an open port 80 for its HTTP web admin, so it&#8217;s possible to take advantage of that fact to narrow down the search.  The resulting list should also ignore all IP addresses don&#8217;t have anything running on port 80 and list only those IP address that have port 80 open.</p>
<p>Running:</p>
<pre>$ nmap -p 80 --open 192.168.0.0/23 &gt; results.txt</pre>
<p>nmap will connect at port 80 on all usable IP addresses ranging from 192.168.0.1 to 192.168.1.254 then dump the results into a file called results.txt</p>
<p>If you look in results.txt, you&#8217;ll find entries such as this one:</p>
<pre>Nmap scan report for 192.168.0.6
Host is up (0.0072s latency).
PORT   STATE SERVICE
80/tcp open  http</pre>
<p>Results show that 192.168.0.6 has something running on port 80.  However, note that there&#8217;s still no MAC address listed for 192.168.0.6.  The list has to display the MAC addresses so that you can find the IP address that corresponds with your device&#8217;s MAC address.</p>
<p>Run the same nmap command but with sudo privileges:</p>
<pre>$ sudo nmap -p 80 --open 192.168.0.0/23 &gt; results.txt</pre>
<p>Presto!</p>
<pre>Nmap scan report for 192.168.0.6
Host is up (0.00085s latency).
PORT   STATE SERVICE
80/tcp open  http
MAC Address: 00:00:74:E8:D1:42 (Ricoh Company)</pre>
<p>MAC addresses now show up in results.txt with the accompanying IP address. Search for your device&#8217;s MAC address and you&#8217;ll see its current IP address on the network.</p>
<p>Note: the machine that you use to run the nmap search must be on the <strong>*same*</strong> network as the device in order for you find its MAC address.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jaredlog.com/?feed=rss2&#038;p=1444</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adding custom launchers to Ubuntu Unity launcher bar</title>
		<link>http://www.jaredlog.com/?p=1430&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=adding-custom-launchers-to-ubuntu-unity-launcher-bar</link>
		<comments>http://www.jaredlog.com/?p=1430#comments</comments>
		<pubDate>Wed, 14 Dec 2011 21:01:13 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.jaredlog.com/?p=1430</guid>
		<description><![CDATA[For Ubuntu (11.04) desktop, I like to have a custom launcher to start &#8216;gksudo /usr/bin/wireshark&#8217; At this time, it&#8217;s aggravating to use the Unity launcher bar (until they get their act together). There&#8217;s no support to add custom launchers to &#8230; <a href="http://www.jaredlog.com/?p=1430">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>For Ubuntu (11.04) desktop, I like to have a custom launcher to start &#8216;gksudo /usr/bin/wireshark&#8217;  At this time, it&#8217;s aggravating to use the Unity launcher bar (until they get their act together).  There&#8217;s no support to add custom launchers to the bar.</p>
<p>To get back the old method of adding custom launchers:</p>
<p>sudo apt-get install gnome-panel<br />
gnome-desktop-item-edit &#8211;create-new wshark.desktop</p>
<p><a href="http://www.jaredlog.com/wp-content/uploads/2011/12/wshark.png"><img class="aligncenter size-full wp-image-1431" title="wshark" src="http://www.jaredlog.com/wp-content/uploads/2011/12/wshark.png" alt="" /></a></p>
<p>Fill in the necessary fields to start wireshark and choose a program icon, if desired.</p>
<p>Open the folder containing wshark.desktop and double-click to run it.</p>
<p>After wireshark starts, right-click on the icon inside launcher bar and select &#8216;Keep in launcher&#8217;</p>
<p><em>Really</em>, Ubuntu dev team??</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jaredlog.com/?feed=rss2&#038;p=1430</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Joining ZVRS</title>
		<link>http://www.jaredlog.com/?p=1391&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=joining-zvrs</link>
		<comments>http://www.jaredlog.com/?p=1391#comments</comments>
		<pubDate>Thu, 29 Sep 2011 04:20:59 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[Deaf]]></category>

		<guid isPermaLink="false">http://www.jaredlog.com/?p=1391</guid>
		<description><![CDATA[I&#8217;m thrilled to announce that I will be joining ZVRS, a company providing video relay services.  I&#8217;m looking forward to working at a company that aims to improve the quality of life for deaf people by enabling them to make &#8230; <a href="http://www.jaredlog.com/?p=1391">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I&#8217;m thrilled to announce that I will be joining <a href="http://zvrs.com">ZVRS</a>, a company providing video relay services.  I&#8217;m looking forward to working at a company that aims to improve the quality of life for deaf people by enabling them to make calls 24/7/365.  My primary duties will include maintaining and expanding the network infrastructure as well as systems testing.</p>
<p>It will be bittersweet to leave Gallaudet University, where I&#8217;ve worked for the last two years. There&#8217;s no other environment in the world like Gallaudet University.  I can say this: the university is one heck of a serendipitous place. I&#8217;ve lost count of how many times I ran into old faces who happened to be visiting the campus. My work with Gallaudet Technology Services has been rewarding and enriching. There were many valuable lessons learnt while working on a campus network, spanning many buildings and supporting thousands of users. I enjoyed assisting the datacenter operations team with their modernization efforts to introduce VMware clusters of blade servers into the datacenter.</p>
<p><a href="http://www.jaredlog.com/wp-content/uploads/2011/09/z.png"><img class="aligncenter size-full wp-image-1406" title="z" src="http://www.jaredlog.com/wp-content/uploads/2011/09/z.png" alt="" /></a></p>
<p>Why ZVRS?</p>
<p>Simply put: ZVRS&#8217;s reputation is among the best in the industry.</p>
<p>The VRS industry has recently undergone a major upheaval resulting from a federal investigation into VRS fraud and abuse by several individuals.  The FCC is now enforcing more stringent rules and regulations in order to safeguard VRS from further abuse.  ZVRS has <a href="http://www.zvrs.com/company/what-is-the-z/news/33">supported FCC&#8217;s fraud prevention efforts</a> and gone as far as releasing their <a href="http://www.zvrs.com/company/the-z/our-code-of-ethics">code of ethics</a>.  These visible actions by ZVRS along with a personal meeting with the CEO, Sean Belanger, further cemented my confidence in ZVRS.  I firmly believe I can count on the company to stay within guidelines and not attempt to circumvent them.</p>
<p>Another reason: ZVRS has an amazing <a href="http://www.zvrs.com/z-series">portfolio of devices and apps</a> deaf people can use to make and receive phone calls.</p>
<p>The choices include several standalone videophones and apps for different platforms such as PC, Mac,  iPhone and Android smartphones/tablets.  With this wide variety of supported devices/apps, it is clear that ZVRS is willing to invest and ensure that users are able to choose a device that best suits their needs. Then imagine the technical team that is capable of pulling this off: now that&#8217;s a team I want to be a part of!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jaredlog.com/?feed=rss2&#038;p=1391</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Fixing Windows clock time issue when booting.</title>
		<link>http://www.jaredlog.com/?p=1388&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=fixing-windows-clock-time-issue-when-booting</link>
		<comments>http://www.jaredlog.com/?p=1388#comments</comments>
		<pubDate>Thu, 25 Aug 2011 19:52:17 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.jaredlog.com/?p=1388</guid>
		<description><![CDATA[I&#8217;ve been putting up with a slight annoyance when I dual-boot back into Windows from Ubuntu: The clock in Windows is always offset by a few hours. The fix: Set a registry key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\RealTimeIsUniversal to 1 This tells the Windows &#8230; <a href="http://www.jaredlog.com/?p=1388">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve been putting up with a slight annoyance when I dual-boot back into Windows from Ubuntu: The clock in Windows is always offset by a few hours.</p>
<p>The fix:</p>
<p>Set a registry key:</p>
<p>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\RealTimeIsUniversal to 1</p>
<p>This tells the Windows instance to assume the time in UTC when booting up so the time is always correct.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jaredlog.com/?feed=rss2&#038;p=1388</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Turn off all colors in vim</title>
		<link>http://www.jaredlog.com/?p=1371&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=turn-off-all-colors-in-vim</link>
		<comments>http://www.jaredlog.com/?p=1371#comments</comments>
		<pubDate>Thu, 11 Aug 2011 14:46:46 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[Scripting languages (PHP, Perl, etc)]]></category>

		<guid isPermaLink="false">http://www.jaredlog.com/?p=1371</guid>
		<description><![CDATA[The text editor vim usually has default setting of colorized syntax and search highlighting, which I find too distracting. To kill it off, put the following inside the file .vimrc in your home directory: syntax off set nohlsearch set t_Co=0]]></description>
				<content:encoded><![CDATA[<p>The text editor vim usually has default setting of colorized syntax and search highlighting, which I find too distracting.</p>
<p>To kill it off, put the following inside the file .vimrc in your home directory:</p>
<pre>syntax off
set nohlsearch
set t_Co=0</pre>
<pre></pre>
<pre></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.jaredlog.com/?feed=rss2&#038;p=1371</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
