<?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>Chris Kankiewicz</title>
	<atom:link href="http://blog.chriskankiewicz.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.chriskankiewicz.com</link>
	<description>Thoughts and ramblings of a web geek</description>
	<lastBuildDate>Thu, 15 Mar 2012 18:54:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Setting Up an Ubuntu Web Server</title>
		<link>http://blog.chriskankiewicz.com/post/158/setting-up-an-ubuntu-web-server/</link>
		<comments>http://blog.chriskankiewicz.com/post/158/setting-up-an-ubuntu-web-server/#comments</comments>
		<pubDate>Thu, 19 Jan 2012 00:42:53 +0000</pubDate>
		<dc:creator>Chris Kankiewicz</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Web Dev]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[APC]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[LAMP]]></category>
		<category><![CDATA[Monit]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[phpMyAdmin]]></category>
		<category><![CDATA[Postfix]]></category>
		<category><![CDATA[SSH]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[UFW]]></category>

		<guid isPermaLink="false">http://blog.chriskankiewicz.com/?p=158</guid>
		<description><![CDATA[Having set up several Debian and Ubuntu web servers in the past I thought it would be a good idea to share my process. The following is a relatively comprehensive guide to installing and configuring an Apache based web server &#8230; <a href="http://blog.chriskankiewicz.com/post/158/setting-up-an-ubuntu-web-server/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Having set up several Debian and Ubuntu web servers in the past I thought it would be a good idea to share my process.  The following is a relatively comprehensive guide to installing and configuring an Apache based web server with some optimizations and basic resource monitoring.  I primarily work with Ubuntu servers, but most of the commands here should work exactly the same in Debian or Ubuntu.  I&#8217;ve tried to note where differences may occur.</p>

<p><span id="more-158"></span></p>

<h2>Download and Install the OS</h2>

<p>If you are setting up your own server, the first thing you will need to do is download the ISO that corresponds to your hardware (32/64-bit), burn it to CD and install it to your server.</p>

<ul>
<li>For Ubuntu go to <a href="http://www.ubuntu.com/download/server/download">http://www.ubuntu.com/download/server/download</a></li>
<li>For Debian go to <a href="http://www.debian.org/distrib/">http://www.debian.org/distrib/</a></li>
</ul>

<p><strong>Note:</strong> It is strongly recommended that you choose the LTS (Long Term Service) release if you decide to go with Ubuntu.</p>

<p>The installation process is relatively straight forward, so I will not be going over that here, simply boot to the disc and follow the on-screen instructions.  Once the OS is installed continue with the instructions below.</p>

<hr />

<h2>Create a User Account</h2>

<p>On most Ubuntu installations you should have created a user account during installation and this wont be necessary.  However, the following may be needed on some web hosts or a VPS.  After a Debian installation you are only given access to the <code>root</code> account.  It can be dangerous to run as root all the time and creating a non-privelleged user account for yourself is recommended.      Depending on your installation some of the following may already be configured.  </p>

<h3>Create a user account for yourself:</h3>

<pre><code># adduser &lt;user_name&gt;
</code></pre>

<h3>Install sudo:</h3>

<pre><code># apt-get install sudo
</code></pre>

<h3>Add the newly created user to the sudoers file by running:</h3>

<pre><code># visudo
</code></pre>

<h3>Add your username under the existing <code>root</code> entry:</h3>

<pre><code>root           ALL=(ALL) ALL
&lt;user_name&gt;    ALL=(ALL) ALL
</code></pre>

<p>Now log out and back in with the new user.</p>

<hr />

<h2>Update Your System</h2>

<p>Most installations will not be up-to-date after installation and will be missing several bug and security fixes.  We must now update the system to pull in all the latest patches.</p>

<h3>Run system updates:</h3>

<pre><code>$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get dist-upgrade
</code></pre>

<p>Once all updates are complete, restart your system.</p>

<hr />

<h2>Configure Hostname and Timezone</h2>

<p>While the hostname is of minor importance for most things to run properly, it&#8217;s good practice to set it up after installation.  The timezone on the other hand can have critical effects on the applications and scripts that run on your server if not configured properly.</p>

<h3>Set the Hostname:</h3>

<pre><code>$ sudo nano /etc/hostname
</code></pre>

<p>Add your new hostname to this file and save it, then run:</p>

<pre><code>$ sudo /etc/init.d/hostname start
</code></pre>

<h3>Edit the hosts file:</h3>

<pre><code>$ sudo nano /etc/hosts
</code></pre>

<p>Add the following if not already present:</p>

<pre><code>127.0.0.1       localhost.localdomain   localhost
&lt;server_ip&gt;     &lt;hostname&gt;.example.com  &lt;hostname&gt;
</code></pre>

<h3>Set the Timezone:</h3>

<pre><code>$ sudo dpkg-reconfigure tzdata
</code></pre>

<hr />

<h2>Set Up LAMP Server with APC and PHPMyAdmin</h2>

<p>Installing the LAMP stack is quick and painless with apt.  Simply use the following commands to get everything installed.</p>

<h3>Install LAMP stack on Ubuntu:</h3>

<pre><code>$ sudo apt-get install lamp-server^ php-apc phpmyadmin
</code></pre>

<h3>Install LAMP stack on Debian:</h3>

<pre><code>$ sudo apt-get install apache2 mysql-server php5 php-pear php5-mysql php-apc phpmyadmin
</code></pre>

<p>We will also need a mail server to handle outgoing email requests.</p>

<h3>Insatll Postfix Mail Server:</h3>

<pre><code>$ sudo apt-get install postfix
</code></pre>

<p>When installing postfix you&#8217;ll go through some configuration screens.  The defaults should be fine for a basic web server setup.</p>

<hr />

<h2>Configure PHP and APC</h2>

<p>Now that you have your LAMP stack setup you will need to configure it for running in a production environment.  Some of the following settings may already be set, but it&#8217;s a good idea to check them all anyway.</p>

<h3>Enable mod_rewrite:</h3>

<pre><code>$ sudo a2enmod rewrite
</code></pre>

<h3>Configure PHP:</h3>

<pre><code>$ sudo nano /etc/php5/apache2/php.ini
</code></pre>

<p>Now locate and modify the following values:</p>

<pre><code>short_open_tag = On
max_execution_time = 30
memory_limit = 128M
error_reporting = E_ALL &amp; ~E_DEPRECATED
display_errors = Off
log_errors = On
post_max_size = 8M
upload_max_filesize = 8M
date.timezone = &lt;your_timezone&gt;    ; See: http://php.net/date.timezone
</code></pre>

<h3>Edit your APC config:</h3>

<pre><code>$ sudo nano /etc/php5/conf.d/apc.ini
</code></pre>

<p>Add the following:</p>

<pre><code>extension = apc.so
apc.shm_size = 128
</code></pre>

<h3>Restart Apache:</h3>

<pre><code>$ sudo /etc/init.d/apache2 restart
</code></pre>

<hr />

<h2>Set Web Directory User and Permissions</h2>

<p>Now that you have everything installed and configured you&#8217;ll need to set up some file permissions to allow Apache to read from, and you to write to, the web directory.  This will be accomplished by changing the owner of the web directory, adding the Apache user and your user to this group and setting the guid bit forcing all new files/folders to have the same group permissions.</p>

<h3>Create a new group:</h3>

<pre><code>$ sudo addgroup webdev
</code></pre>

<h3>Change the group of your web directory:</h3>

<pre><code>$ sudo chgrp -R webdev /var/www/
$ sudo chmod -R g+rw /var/www/
</code></pre>

<h3>Set the guid bit on all folders in your web directory:</h3>

<pre><code>$ sudo find /var/www -type d -exec chmod +s {} \;
</code></pre>

<h3>Add Apache to the webdev group:</h3>

<pre><code>$ sudo usermod -a -G webdev www-data
</code></pre>

<h3>Add your user to the webdev group:</h3>

<pre><code>$ sudo usermod -a -G webdev &lt;user_name&gt;
</code></pre>

<hr />

<h2>Enable System Monitoring and Alerts</h2>

<p>Even the best configured servers have problems every now and again.  To monitor our servers resources we will install and configure <a href="http://mmonit.com/monit/">Monit</a>.  Monit allows us to set custom events to monitor and define the actions to be taken.</p>

<h3>Install Monit:</h3>

<pre><code>$ sudo apt-get install monit
</code></pre>

<h3>Edit the monitrc file:</h3>

<pre><code>$ sudo nano /etc/monit/monitrc
</code></pre>

<p>Copy/paste the following configuration file and change values where you need to.</p>

<h3>Monit configuration:</h3>

<pre><code>################################################################################
## Monit control file
################################################################################

set daemon  120                           # Check services at 2-minute intervals
set logfile syslog facility log_daemon    # Set logging to the systemlog
set alert &lt;email_address&gt;                 # Set your email address

set mailserver localhost
   with timeout 15 seconds

set httpd port 2812 and
   allow &lt;user_name&gt;:&lt;password&gt;    # set user name and password here

################################################################################
## Services
################################################################################

check system &lt;hostname&gt;
   if loadavg (1min) &gt; 4 then alert
   if loadavg (5min) &gt; 2 then alert
   if memory usage &gt; 80% then alert
   if cpu usage (user) &gt; 70% then alert
   if cpu usage (system) &gt; 30% then alert
   if cpu usage (wait) &gt; 20% then alert

check process apache with pidfile /var/run/apache2.pid
   start program = "/etc/init.d/apache2 start" with timeout 60 seconds
   stop program  = "/etc/init.d/apache2 stop"
   if cpu &gt; 60% for 2 cycles then alert
   if cpu &gt; 90% for 5 cycles then restart
   if totalmem &gt; 512.0 MB for 5 cycles then alert
   # if totalmem &gt; 512.0 MB for 5 cycles then restart
   if children &gt; 250 then restart
   if failed host localhost port 80 protocol http then restart
   if 3 restarts within 5 cycles then timeout

check process mysql with pidfile /var/lib/mysql/&lt;hostname&gt;.pid
   group mysql
   start program = "/etc/init.d/mysql start"
   stop program = "/etc/init.d/mysql stop"
   if failed host localhost port 3306 then restart
   if 5 restarts within 5 cycles then timeout

check process sshd with pidfile /var/run/sshd.pid
   start program "/etc/init.d/ssh start"
   stop program "/etc/init.d/ssh stop"
   if failed port 22 protocol ssh then restart
   if 5 restarts within 5 cycles then timeout
</code></pre>

<h3>Edit the monit config file:</h3>

<pre><code>$ /etc/default/monit
</code></pre>

<p>Enable Monit by setting the following:</p>

<pre><code># You must set this variable to for monit to start
startup=1
</code></pre>

<h3>Start Monit:</h3>

<pre><code>$ sudo /etc/init.d/monit start
</code></pre>

<hr />

<h2>Set Up UFW (Uncomplicated Firewall)</h2>

<p>Being a production system, you shouldn&#8217;t expose any ports that aren&#8217;t being used.  This is where a firewall comes in handy.  You will set up the Uncomplicated Firewall (UFW), a simplified front-end for iptables.</p>

<h3>Install UFW:</h3>

<pre><code>$ sudo apt-get install ufw
</code></pre>

<h3>Configure UFW:</h3>

<pre><code>$ sudo ufw allow 22
$ sudo ufw allow 80
$ sudo ufw allow 443
$ sudo ufw allow 2812
$ sudo ufw default deny
</code></pre>

<h3>Enable UFW:</h3>

<pre><code>$ sudo ufw enable
</code></pre>

<hr />

<h2>Set Up Unattended Upgrades</h2>

<p>System updates are released frequently and while manually installing these updates usually only takes a few minutes a day, automating these updates is easy.</p>

<p><strong>WARNING:</strong> Applying any updates can potentially break your system and automating these may leave your system broken without your knowledge.  However, in the several years I&#8217;ve been administering servers I&#8217;ve never personally seen an update do any damage.  I also feel the benefits of automating security updates outweighs the potential downsides of missing a critical update that may leave your system vulnerable to attack.</p>

<h3>Install Unattended Upgrades:</h3>

<pre><code>$ sudo apt-get install unattended-upgrades
</code></pre>

<h3>Run the first time configuration:</h3>

<pre><code>$ sudo dpkg-reconfigure unattended-upgrades
</code></pre>

<h3>Configure other settings:</h3>

<pre><code>$ sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
</code></pre>

<p>Edit the following:</p>

<pre><code>    // Automatically upgrade packages from these (origin, archive) pairs
Unattended-Upgrade::Allowed-Origins {
    "Ubuntu lucid-security";
    // "Ubuntu lucid-updates";
};

// List of packages to not update
Unattended-Upgrade::Package-Blacklist {
    // "vim";
    // "libc6";
    // "libc6-dev";
    // "libc6-i686";
};

// Send email to this address for problems or packages upgrades
// If empty or unset then no email is sent, make sure that you
// have a working mail setup on your system. The package 'mailx'
// must be installed or anything that provides /usr/bin/mail.
    Unattended-Upgrade::Mail "&lt;your_email_address&gt;";

// Do automatic removal of new unused dependencies after the upgrade
// (equivalent to apt-get autoremove)
    //Unattended-Upgrade::Remove-Unused-Dependencies "false";

// Automatically reboot *WITHOUT CONFIRMATION* if a
// the file /var/run/reboot-required is found after the upgrade
    Unattended-Upgrade::Automatic-Reboot "false";

// Use apt bandwidth limit feature, this example limits the download
// speed to 1024kb/sec
    Acquire::http::Dl-Limit "1024";
</code></pre>

<h3>Enable Unattended Upgrades:</h3>

<pre><code>$ sudo nano /etc/apt/apt.conf.d/10periodic
</code></pre>

<p>Modify the following:</p>

<pre><code>APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "5";
APT::Periodic::Unattended-Upgrade "1";
</code></pre>

<hr />

<h2>Disable Root Login via Password</h2>

<p>One last step in securing your server is to disable logging in as root over SSH with a password.  This will prevent any automated bots from brute-forcing their way into your root account.  You will still be able to run as root by logging into with your non-privileged user account and running <code>sudo su</code>.</p>

<h3>Edit your SSH config:</h3>

<pre><code>$ sudo nano /etc/ssh/sshd_config
</code></pre>

<h3>Uncomment the following line:</h3>

<pre><code>PermitRootLogin no
</code></pre>

<p>Save and exit this file.</p>

<h3>Restart the SSH daemon:</h3>

<pre><code>$ sudo /etc/init.d/sshd restart
</code></pre>

<hr />

<h2>Set Up SSH Key Authentication</h2>

<p>By default, your server will allow you to log in with a user name and password.  While secure, this method of logging in has some significant weaknesses and is generally inconvenient.  To remedy the situation generate an SSH key and associate it with your server for future authentication.</p>

<p><strong>NOTE:</strong> The following assumes you are using a derivative of Linux on your client workstation.</p>

<p>Run these commands from your workstation, NOT the server.</p>

<h3>Generate your SSH key pair:</h3>

<pre><code>$ ssh-keygen -t rsa -C &lt;your_email_address&gt;
</code></pre>

<h3>Copy your public key to the server:</h3>

<pre><code>$ ssh-copy-id user@example.com
</code></pre>

<p>Now try and log into your server:</p>

<pre><code>$ ssh user@example.com
</code></pre>

<h2>Install Some Other Useful Tools:</h2>

<pre><code>$ sudo apt-get install bwm-ng htop pastebinit whois
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.chriskankiewicz.com/post/158/setting-up-an-ubuntu-web-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Increasing the Size of a Virtual Hard Drive in VirtualBox</title>
		<link>http://blog.chriskankiewicz.com/post/142/increasing-the-size-of-a-virtual-hard-drive-in-virtualbox/</link>
		<comments>http://blog.chriskankiewicz.com/post/142/increasing-the-size-of-a-virtual-hard-drive-in-virtualbox/#comments</comments>
		<pubDate>Wed, 16 Nov 2011 15:59:21 +0000</pubDate>
		<dc:creator>Chris Kankiewicz</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Virtual Machine]]></category>
		<category><![CDATA[VirtualBox]]></category>
		<category><![CDATA[VM]]></category>
		<category><![CDATA[Windows 7]]></category>

		<guid isPermaLink="false">http://blog.chriskankiewicz.com/?p=142</guid>
		<description><![CDATA[I work in Linux primarily but run a Windows 7 virtual machine in VirtualBox so I can use Photoshop and do some necessary testing. Today my VM ran out of space. Silly me thought 20GB would be enough, but after &#8230; <a href="http://blog.chriskankiewicz.com/post/142/increasing-the-size-of-a-virtual-hard-drive-in-virtualbox/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I work in Linux primarily but run a Windows 7 virtual machine in VirtualBox so I can use Photoshop and do some necessary testing.  Today my VM ran out of space.  Silly me thought 20GB would be enough, but after installing service pack 1, dozens of Windows updates and a few programs I had less than 1GB of space left.  After a little searching I found an easy way to increase the size of a virtual disk.</p>

<p><span id="more-142"></span>
First, shut down your VM then run the following command from your host PC:</p>

<pre><code>VBoxManage modifyhd /path/to/guest.vdi --resize &lt;size_in_mb&gt;
</code></pre>

<p>Once completed, boot into your VM and (for Windows) open up Control Panel -> Administrative Tools -> Computer Management.  In Computer Management navigate to Storage -> Disk Management then, in the right pane, right click your disk and select &#8220;Extend Volume&#8221; and follow the prompts to resize your disk. And that&#8217;s it! Your disk will now be resized.</p>

<p>This also works from a Windows host, you just have to locate and use VBoxManage.exe</p>

<p>Note: This method only allows you to INCREASE the size of a virtual disk.  You cannot shrink one with this method.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chriskankiewicz.com/post/142/increasing-the-size-of-a-virtual-hard-drive-in-virtualbox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows 7 Activation Hack</title>
		<link>http://blog.chriskankiewicz.com/post/10/windows-7-activation-hack/</link>
		<comments>http://blog.chriskankiewicz.com/post/10/windows-7-activation-hack/#comments</comments>
		<pubDate>Wed, 20 Jul 2011 04:18:42 +0000</pubDate>
		<dc:creator>Chris Kankiewicz</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Activation]]></category>
		<category><![CDATA[Hack]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Regedit]]></category>
		<category><![CDATA[Registry]]></category>
		<category><![CDATA[Windows 7]]></category>

		<guid isPermaLink="false">http://newblog.chriskankiewicz.com/?p=10</guid>
		<description><![CDATA[When installing Windows 7 it&#8217;s very picky about which installation disc you use (Full vs. Upgrade) and if improperly matched with your key can prevent you from activating your copy of Windows usually returning an &#8220;Invalid Product Key&#8221; error message. &#8230; <a href="http://blog.chriskankiewicz.com/post/10/windows-7-activation-hack/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>When installing Windows 7 it&#8217;s very picky about which installation disc you use (Full vs. Upgrade) and if improperly matched with your key can prevent you from activating your copy of Windows usually returning an &#8220;Invalid Product Key&#8221; error message.  You may also see the same or similar error when you do a full, clean installation with an upgrade disc.  This can be very annoying, especially when you have a legitimate key and disc but just didn&#8217;t install it the way Microsoft thinks you should.  In the event that you are having trouble activating your Windows 7 installation with a legitimate key, try the following registry hack:</p>

<p><span id="more-10"></span></p>

<ol>
<li>First make sure there are no pending tasks requiring a reboot.  This is indicated by an orange shield icon next to your shutdown button on the Start menu or in the notification tray.</li>
<li>Open the Registry Editor (Start ->  search for &#8220;regedit&#8221; and hit Enter)</li>
<li><p>Navigate to the following registry key:</p>

<pre><code>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\OOBE
</code></pre></li>
<li><p>Double click on <code>MediaBootInstall</code> in the right pane and change &#8220;Value data&#8221; to <code>0</code></p></li>
<li>Open a command prompt with administrative rights (Start ->  search for &#8220;cmd&#8221; and hit Enter)</li>
<li><p>Run the following command to reset Windows activation status:</p>

<pre><code>slmgr -rearm
</code></pre></li>
<li><p>Reboot your computer.</p></li>
<li>Run the Activate Windows utility (Start -> search for &#8220;Activate Windows&#8221;), enter your upgrade product key and activate Windows.</li>
</ol>

<p><strong>NOTE:</strong> This activation hack will only work if you have a legitimate key.  This method wont help if you have a pirated copy of Windows.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chriskankiewicz.com/post/10/windows-7-activation-hack/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The 3-2-1 Backup Rule</title>
		<link>http://blog.chriskankiewicz.com/post/15/the-3-2-1-backup-rule/</link>
		<comments>http://blog.chriskankiewicz.com/post/15/the-3-2-1-backup-rule/#comments</comments>
		<pubDate>Wed, 13 Jul 2011 21:29:40 +0000</pubDate>
		<dc:creator>Chris Kankiewicz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[3-2-1 Rule]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[CrashPlan]]></category>

		<guid isPermaLink="false">http://newblog.chriskankiewicz.com/?p=15</guid>
		<description><![CDATA[Too many people today don&#8217;t backup their files. And of those that do, many don&#8217;t do it well. An easy way to remember a &#8220;safe&#8221; way to backup your data is with the &#8220;3-2-1 Backup Rule&#8221; which goes like this: &#8230; <a href="http://blog.chriskankiewicz.com/post/15/the-3-2-1-backup-rule/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Too many people today don&#8217;t backup their files. And of those that do, many don&#8217;t do it well.  An easy way to remember a &#8220;safe&#8221; way to backup your data is with the &#8220;3-2-1 Backup Rule&#8221; which goes like this:</p>

<ul>
<li>Keep <strong>3  copies</strong> of any important files (your primary/working copy counts as one)</li>
<li>Store your files on <strong>2 different media types</strong> (Example: Hard drive and in the Cloud)</li>
<li>Always have <strong>1 copy off site</strong></li>
</ul>

<p>With the 3-2-1 rule you can be relatively confident that you&#8217;ll always be able to access your critical data, even after a catastrophic failure.</p>

<p><span id="more-15"></span>
Another rule I live by when it comes to backup is:</p>

<blockquote>
  <p>The only good backup is an automatic backup.</p>
</blockquote>

<p>If you&#8217;re backups aren&#8217;t automated, there&#8217;s a good chance you&#8217;ll forget to run them or (in my case) just be lazy about it and think, &#8220;I&#8217;ll back it up tomorrow.&#8221; at which point a failure occurs and you&#8217;re shit out of luck.</p>

<p>For those of you without a backup plan in place, I&#8217;d like to recommend a service I use, <a href="http://www.crashplan.com/">CrashPlan</a>.  CrashPlan allows you to backup to any of your own computers that also have CrashPlan installed for free.  You can also backup to local folders and external drives and (with a little hacking) network drives as well.  For a (reasonable) price, CrashPlan also supports limited and unlimited online backup plans.  Clients are available for Windows, Linux and Mac operating systems, so it should work for any system you currently own.  For more info and to download CrashPlan go to <a href="http://www.crashplan.com">http://www.crashplan.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chriskankiewicz.com/post/15/the-3-2-1-backup-rule/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Join multiple .avi files in Ubuntu</title>
		<link>http://blog.chriskankiewicz.com/post/49/join-multiple-avi-files-in-ubuntu/</link>
		<comments>http://blog.chriskankiewicz.com/post/49/join-multiple-avi-files-in-ubuntu/#comments</comments>
		<pubDate>Thu, 30 Dec 2010 01:24:54 +0000</pubDate>
		<dc:creator>Chris Kankiewicz</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[AVI]]></category>
		<category><![CDATA[Transcode]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://newblog.chriskankiewicz.com/?p=49</guid>
		<description><![CDATA[I was just in a bit of a pickle and needed to join two .avi files together while in Ubuntu.  There are a number of solutions out there, but the most simple solution I could find was via avimerge. Here&#8217;s &#8230; <a href="http://blog.chriskankiewicz.com/post/49/join-multiple-avi-files-in-ubuntu/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I was just in a bit of a pickle and needed to join two .avi files together while in Ubuntu.  There are a number of solutions out there, but the most simple solution I could find was via <code>avimerge</code>.  Here&#8217;s how I did it.</p>

<h2>Install avimerge</h2>

<pre><code>sudo apt-get update
sudo apt-get install transcode-utils
</code></pre>

<h2>Merge your files</h2>

<pre><code>avimerge -i input_file1.avi input_file2.avi -o output_file.avi
</code></pre>

<p>It&#8217;s as simple as that. I did this in Ubuntu 10.10, but this should work for older versions as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chriskankiewicz.com/post/49/join-multiple-avi-files-in-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gaming, Then and Now</title>
		<link>http://blog.chriskankiewicz.com/post/31/gaming-then-and-now/</link>
		<comments>http://blog.chriskankiewicz.com/post/31/gaming-then-and-now/#comments</comments>
		<pubDate>Thu, 23 Sep 2010 21:53:10 +0000</pubDate>
		<dc:creator>Chris Kankiewicz</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Nintendo]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[Valve]]></category>

		<guid isPermaLink="false">http://newblog.chriskankiewicz.com/?p=31</guid>
		<description><![CDATA[My brother is currently attending the DigiPen School of Technology working on a degree in video game programming / design. He&#8217;s an avid gamer but has missed some of (IMO) the best games of all time, specifically, the Half-Life saga. &#8230; <a href="http://blog.chriskankiewicz.com/post/31/gaming-then-and-now/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>My brother is currently attending the DigiPen School of Technology working on a degree in video game programming / design. He&#8217;s an avid gamer but has missed some of (IMO) the best games of all time, specifically, the Half-Life saga. Naturally, I email him recommending these games in the hope of inspiring him or, at the very least, giving him a better understanding of some of the good games he&#8217;s missed out on and where the industry came from. I even offered to buy the games for him if he didn&#8217;t want to pay for them himself. Well, he acquired the first Half-Life game and started playing it. This was his response:</p>

<p><span id="more-31"></span></p>

<blockquote>
  <p>Hey Chris, just wanted to let you know that I tried out Half-Life today.  I&#8217;m sorry, but that game just sucks in my opinion.  I know a lot of people loved it, but I can&#8217;t stand it.  There are too many things that kill you instantly (I just died from hitting a doodad that looked like a barrel) or hurt you without letting you know (green laser beams at the beginning for example).  I hated that I had to get really close to an enemy just to hit him, and when I did they would turn to me and hit me.  It was very hard to hit the head crabs as well.  By the way, yes, I know that I had a gun, but I had very limited ammo.  Also, I hated virtually never knowing where to go or what to do.  Some of the buttons that you need to push in that game are very tiny or off to the side where you can&#8217;t see them.  I know the game is old, but it seems very poorly designed to me.</p>
</blockquote>

<p><!-- more -->
This got me thinking, most modern games suck. These games are targeted at the general population, not the avid gamer. The AI are dumbed way down, there are big signs or floating arrows everywhere telling you which way to go, and the games are generally too easy. They don&#8217;t give you a sense of figuring things out on your own anymore and don&#8217;t give you a sense of accomplishment. Not to mention the story of most of these games are boring and do not engage the player. Now contrast this with the games from our youth. Most of these games were difficult and many didn&#8217;t give you any clear path to follow. Here&#8217;s a list of several games I enjoyed playing when I was younger.</p>

<ul>
<li>Any Super Mario Bros. Game pre 1990</li>
<li>Battletoads</li>
<li>Duck Hunt</li>
<li>Metroid</li>
<li>Super Metroid</li>
<li>Legend of Zelda</li>
<li>Zelda: A Link to the Past</li>
<li>Zelda: Occarina of Time</li>
<li>Super Mario RPG</li>
<li>Sim Ant</li>
<li>Sim City</li>
<li>Doom</li>
<li>Heroes of Might and Magic</li>
<li>Perfect Dark</li>
<li>Command &amp; Conquer: Red Alert</li>
<li>Star Craft</li>
</ul>

<p>I could go on. Compared to modern games almost all of these games were relatively hard, had few if any clear paths to take and some even had things that would kill you instantly (Bowsers fireballs). Also, many other early NES games were nearly impossible to beat without the use of cheats or game altering devices (See the <a href="http://www.cinemassacre.com/category/avgn/" title="The Angry Video Game Nerd">AVGN</a>). Now think about the countless hours you spent playing these games and  the pure enjoyment you got from playing them. To this day I&#8217;ve never  beaten the original Mario Bros, Battletoads or Metroid, yet I still enjoy playing them from time to  time regardless of their difficulty.</p>

<p>In a world where there&#8217;s several new (shitty) games out every week and many of those titles have a sequel released within a year, I truly appreciate game companies like <a href="http://www.valvesoftware.com/" title="Valve Software">Valve</a> and <a href="http://www.gearboxsoftware.com" title="Gearbox Software">Gearbox</a> and the independent developers like <a href="http://www.minecraft.net" title="Minecraft">Notch</a> and fear for a future where game developers don&#8217;t enjoy, or at least respect, the games that we/they have grown up with.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chriskankiewicz.com/post/31/gaming-then-and-now/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Search Engine Optimization Tips</title>
		<link>http://blog.chriskankiewicz.com/post/117/search-engine-optimization-tips/</link>
		<comments>http://blog.chriskankiewicz.com/post/117/search-engine-optimization-tips/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 07:00:46 +0000</pubDate>
		<dc:creator>Chris Kankiewicz</dc:creator>
				<category><![CDATA[Web Dev]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Search Engine Optimization]]></category>
		<category><![CDATA[SEO]]></category>

		<guid isPermaLink="false">http://newblog.chriskankiewicz.com/?p=117</guid>
		<description><![CDATA[Search engine ranking and your web sites traffic are directly influenced by four main areas: Content, Links, Popularity and Reputation Content: The more unique, well-versed content a site has, the better it will rank. Content primarily consists of the text &#8230; <a href="http://blog.chriskankiewicz.com/post/117/search-engine-optimization-tips/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Search engine ranking and your web sites traffic are directly influenced by four main areas:</p>

<h2>Content, Links, Popularity and Reputation</h2>

<p><strong>Content:</strong> The more unique, well-versed content a site has, the better it will rank.  Content primarily consists of the text on your site, but also includes images, videos and anything else the users come to the site for.</p>

<p><strong>Links:</strong> Mainly concerning inbound links, but also includes outbound links and internal links.  The more, quality, inbound links a site has, the better it will rank.</p>

<p><strong>Popularity:</strong> The more people that know about your site the better it will rank and the more traffic you will receive.  Popularity is often measured by the number of inbound links to a site.</p>

<p><strong>Reputation:</strong> Popularity alone is worthless without a good reputation.  If a site is known by many to be of poor quality or of little to no use to the users it will not rank well.</p>

<p><span id="more-117"></span></p>

<hr />

<p><strong>10 SEO Tips Relevant to All Websites</strong></p>

<ol>
<li>Content is king, period. Make sure you have good, well-written and unique content focused on your primary keyword or keyword phrase.</li>
<li>One keyword phrase per page.  Don’t try to optimize a page for several keywords.</li>
<li>Use a unique, keyword-focused Title tag on ever page. Do not stuff the title with unneeded keywords.</li>
<li>Match page content to Title text.</li>
<li>Natural language content ranks better with search engines.  Don’t stuff your text with keywords.  This method does not work and can hurt your rankings.</li>
<li>Use keywords and keyword phrases appropriately in text links and image ALT attributes.</li>
<li>Quality inbound links are better than many poor links (which can actually hurt you). “Remember, if there is no good, logical reason for that site to link to you, you don’t want the link.”</li>
<li>Don’t be obsessed with PageRank. It is just one part of several attributes that go into the ranking algorithm. A site with a low PageRank can outrank one with a high PageRank.</li>
<li>Search engines like fresh content (ie – Deal of the Day, blog, etc.), be sure to add new, useful content to your pages regularly.</li>
<li>Understand social marketing. It IS part of SEO (Yelp, Facebook, Twitter, etc).  Building good customer relations through social marketing will help build your sites reputation.</li>
</ol>

<p><strong>Note:</strong> You will never get over-night results from SEO optimization.  Be patient.  It could be several weeks or more before you notice any change in ranking.</p>

<hr />

<h3>Other SEO Tips to consider</h3>

<ol>
<li>Use SEO Friendly URLs.  (ie – yourdomain.com/spacelys-sprockets.htm)</li>
<li>Every website should have a sitemap, but not rely on it.  A search engine should be able to find every page on its own.</li>
<li>Eliminate those nasty 404s. No one likes getting to a page that isn’t there.</li>
<li>Avoid duplicate content and/or duplicate URLs pointing to the same content.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.chriskankiewicz.com/post/117/search-engine-optimization-tips/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Beginers Guide To Search Engine Optimization</title>
		<link>http://blog.chriskankiewicz.com/post/87/beginers-guide-to-search-engine-optimization/</link>
		<comments>http://blog.chriskankiewicz.com/post/87/beginers-guide-to-search-engine-optimization/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 07:00:13 +0000</pubDate>
		<dc:creator>Chris Kankiewicz</dc:creator>
				<category><![CDATA[Web Dev]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Keywords]]></category>
		<category><![CDATA[robots.txt]]></category>
		<category><![CDATA[Search Engine Optimization]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[Sitemaps]]></category>
		<category><![CDATA[Yahoo!]]></category>

		<guid isPermaLink="false">http://newblog.chriskankiewicz.com/?p=87</guid>
		<description><![CDATA[The following is a quick list of optimizations that, in my years of web development, I have observed will help increase your sites search engine ranking. While none of these processes are guaranteed to make your site #1 in Google &#8230; <a href="http://blog.chriskankiewicz.com/post/87/beginers-guide-to-search-engine-optimization/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The following is a quick list of optimizations that, in my years of web development, I have observed will help increase your sites search engine ranking.  While none of these processes are guaranteed to make your site #1 in Google overnight, I can promise that by implementing all (or even some) of these items, in time your site’s rank will rise.</p>

<p>The following items are clean, honest ways to optimize your site.  I do not condone, nor solicit, any form of &#8220;black hat&#8221; search engine optimization and frown upon it greatly.  If that’s what you&#8217;re aiming to implement, I sincerely hope that Google blacklists your site tomorrow.  Please don&#8217;t send me any emails asking how to get your sight listed as #1 tomorrow.</p>

<p>Now, onto the list.</p>

<p><span id="more-87"></span></p>

<h2>Code to Standards</h2>

<p>Whether or not you&#8217;re aiming for SEO, keeping your code standards compliant will make your site better all around and help make post-development changes much simpler.  While the effectiveness of coding to standards is still debated in the SEO community, it&#8217;s generally believed that a standards compliant page will rank slightly higher than a non-compliant page with the same content.</p>

<p>Also, by adhering to standards, you&#8217;ll have a much easier time implementing the rest of the processes on this list.</p>

<h2>Content is King</h2>

<p>The first and foremost rule you&#8217;ll hear from many SEO &#8220;experts&#8221; mouth will most likely be &#8220;content is king.&#8221;  Of all the processes detailed on this page, if your site doesn’t contain valuable content to the end user, your page rank will likely not be very high.</p>

<p>To take this concept one step further, I&#8217;m going to add to that saying to create my own spin off.  As opposed to just &#8220;content&#8221;, my saying specifies that &#8220;dynamic content is king.&#8221;  While a site with any content at all is far superior to one without, I believe that adding something as simple as a twitter feed to your home page will help convince the search engines that your site is more important.  After all, users (and therefore, probably search engines) love new content.  To expand upon this idea, if it would fit your site, try adding a blog or a forum to keep that content fresh.</p>

<h2>Separate Content and Style</h2>

<p>When a search engine crawls your site, it doesn&#8217;t see the same thing your end use sees.  The search engine sees the underlying code that is output by your site.  For an example of what the search engine sees, right click your web page and choose &#8220;View Source.&#8221;  This is a much more accurate (though not exact) representation of what the search engine sees.</p>

<p>If you clutter your code with multitudes of nested tables and lots of in-line styling properties the search engine may have a hard time finding your content to index.  Instead of nesting table after table, consider using divs.  If you don&#8217;t know how to use divs, I strongly suggest you learn.  Also, instead of adding the &#8220;style&#8221; property in line with your (X)HTML, create a separate file named style.css and add the following code between your pages head tags to call this file upon page load:</p>

<pre><code>&lt;link rel="stylesheet" href="style.css" type="text/css" /&gt;
</code></pre>

<p>All you have to do now is add your CSS elements to this style.css file, and give your (X)HTML element either a class or id.  For more on classes and ids, see <a href="http://www.w3schools.com/Css/css_syntax.asp">http://www.w3schools.com/Css/css_syntax.asp</a>.</p>

<h2>Use Human Readable URL’s</h2>

<p>The ability for a user to accurately guess what a page will contain by looking at a link will not only help your users find what they’re looking for, but is also a good SEO technique.  See below for an example of human readable URL’s.</p>

<p>Good Examples:</p>

<ul>
<li>www.domain.com/dog-food</li>
<li>www.domain.com/dog/food</li>
</ul>

<p>Poor Examples:</p>

<ul>
<li>www.domain.com/1337</li>
<li>www.domain.com/index.php?page=1337</li>
</ul>

<h2>Page Title Format</h2>

<p>While it may not seem too important, the title of your page can make a difference to your page ranking.  While a title in the format of &#8220;Site Name | Page Title&#8221; is in no way bad, it&#8217;s generally believed that the best format for a tile is &#8220;Page Title | Site Name.&#8221;  Also, there are many pages out there that list every directory in their title, this is not necessary and clutters the title so readers have a tougher time identifying the page.</p>

<p>Good examples:</p>

<ul>
<li>SEO Guide | Web Geek</li>
<li>CK-Gallery &bull; Web Geek</li>
<li>Menu – Taco Bell</li>
</ul>

<p>Poor examples:</p>

<ul>
<li>Web Geek | SEO Guide</li>
<li>Web Geek > Web Development > SEO Guide</li>
<li>www.web-geek.net | projects | php | ck-gallery</li>
</ul>

<h2>Header Tag Prioritization</h2>

<p>The importance of a title should directly affect which header tag that title gets (ie <code>&lt;h1&gt;</code>. <code>&lt;h2&gt;</code>, <code>&lt;h3&gt;</code>, etc&#8230;).  The more important a title is, the closer to <code>&lt;h1&gt;</code> the title should be with <code>&lt;h1&gt;</code> being the page title and something like a paragraph heading being an <code>&lt;h2&gt;</code> or <code>&lt;h3&gt;</code> depending on it&#8217;s importance.  If one topic is just as important as another, they should have the same title tag.</p>

<h2>Create a Sitemap</h2>

<p>Every website with more than a single page should have a sitemap.  You can make a sitemap in many ways and in many formats, though the most widely accepted by most search engines is an XML sitemap.</p>

<p>My favorite site for sitemap generation is <a href="http://www.xml-sitemaps.com/">http://www.xml-sitemaps.com/</a>.  This site will automatically crawl up to 500 pages and generate XML, GZipped, and HTML sitemaps that you can then upload to your own site.  Once you have uploaded your sitemap, head on over to <a href="https://www.google.com/webmasters/tools">https://www.google.com/webmasters/tools</a> and add your sitemap for Google to index.</p>

<p><strong>Note:</strong> Even though you can put a sitemap anywhere, the most common location for a sitemap is in your sites root directory (<code>http://www.web-geek.net/sitemap.xml</code>)</p>

<h2>Use Relevant Keywords</h2>

<p>Keywords are a difficult area in SEO.  You need to specify keywords relevant to your site but you don&#8217;t want to have too many keywords or you&#8217;ll be hurting your site more than helping.  The generally accepted maximum number of keywords to include on your page is usually 10, for most sites, and definitely no more than 20 for larger sites.  Though major search engines don&#8217;t take the number of keywords on your page into consideration when assigning you a page rank, by having to many keywords, it&#8217;s harder for a search engine to identify which ones are more relevant than others.</p>

<p>To include keywords on your page, place the following code between your head tags.</p>

<pre><code>&lt;meta name="keywords" content="keyword 1, keyword 2, keyword 3" /&gt;
</code></pre>

<p>Also, you generally don&#8217;t want the exact same keywords on any pages unless they&#8217;re content matches.  Give each page keywords that are relevant to the content on that page.  You also may wish to consider generating your keywords dynamically.</p>

<h2>Use the &#8220;title&#8221; Attribute for Links</h2>

<p>When creating a link, be sure to include a relevant description of the link using the title attribute.  This adds content for a search engine to pick up and also, when a user hovers over that link, they will get a popup showing your description.</p>

<p>Example:</p>

<pre><code>&lt;a href="http://www.web-geek.net/ck-gallery" title="Dynamic PHP Photo Gallery"&gt;CK-Gallery&lt;/a&gt;
</code></pre>

<p>The above code will create the following link (hover over it to see the title): <a href="http://www.web-geek.net/ck-gallery" title="Dynamic PHP Photo Gallery">CK-Gallery</a></p>

<h2>Submit your site for indexing</h2>

<p>One of the best ways to get your site noticed by a search engine is to manually submit it for indexing to major search engines.  This is especially useful when your site isn&#8217;t yet listed in a search engine.</p>

<p>Google: <a href="http://www.google.com/addurl/">http://www.google.com/addurl/</a></p>

<p>Yahoo: <a href="http://siteexplorer.search.yahoo.com/submit">http://siteexplorer.search.yahoo.com/submit</a></p>

<h2>Create a robots.txt file</h2>

<p>A robots.txt file can be used to limit what directories/files a web robot can access.  This helps prevent a robot from accessing data you do not wish to be cached by search engines and instead cache only the pages you want to appear.  A good resource on creating and using a robots.txt file can be found at <a href="http://www.robotstxt.org/robotstxt.html">http://www.robotstxt.org/robotstxt.html</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chriskankiewicz.com/post/87/beginers-guide-to-search-engine-optimization/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>First Friday script updated and simplified</title>
		<link>http://blog.chriskankiewicz.com/post/120/first-friday-script-updated-and-simplified/</link>
		<comments>http://blog.chriskankiewicz.com/post/120/first-friday-script-updated-and-simplified/#comments</comments>
		<pubDate>Sat, 14 Feb 2009 07:00:04 +0000</pubDate>
		<dc:creator>Chris Kankiewicz</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[2600]]></category>
		<category><![CDATA[First Friday]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Update]]></category>

		<guid isPermaLink="false">http://newblog.chriskankiewicz.com/?p=120</guid>
		<description><![CDATA[NOTE: The latest version of this script can always be found here: https://github.com/PHX2600/FirstFriday With this update I have drastically reduced and simpified the code to produce the same results. I did some rigorous testing of my own to make sure &#8230; <a href="http://blog.chriskankiewicz.com/post/120/first-friday-script-updated-and-simplified/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><strong>NOTE:</strong> The latest version of this script can always be found here: <a href="https://github.com/PHX2600/FirstFriday">https://github.com/PHX2600/FirstFriday</a></p>

<p>With this update I have drastically reduced and simpified the code to produce the same results.  I did some rigorous testing of my own to make sure this script will calculate the correct date, but that doesn’t mean it’s bullet-proof.  If you find a bug, please email me so I can fix it.</p>

<h3>first-friday.php</h3>

<pre><code>Somewhere along the lines of moving my blog from one site/platform to
another I lost this sample of code.  See link above for the latest 
version of this script.
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.chriskankiewicz.com/post/120/first-friday-script-updated-and-simplified/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BlackBerry Storm Unboxing</title>
		<link>http://blog.chriskankiewicz.com/post/93/blackberry-storm-unboxing/</link>
		<comments>http://blog.chriskankiewicz.com/post/93/blackberry-storm-unboxing/#comments</comments>
		<pubDate>Mon, 15 Dec 2008 07:00:05 +0000</pubDate>
		<dc:creator>Chris Kankiewicz</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[9530]]></category>
		<category><![CDATA[BlackBerry Storm]]></category>
		<category><![CDATA[Smart Phone]]></category>
		<category><![CDATA[Touch Screen]]></category>
		<category><![CDATA[Verizon Wireless]]></category>

		<guid isPermaLink="false">http://newblog.chriskankiewicz.com/?p=93</guid>
		<description><![CDATA[I went to the Verizon store at 10am the day of release and they said they had sold out ~2 hours before I got there. I was able to order one and they were nice enough to write off the &#8230; <a href="http://blog.chriskankiewicz.com/post/93/blackberry-storm-unboxing/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I went to the Verizon store at 10am the day of release and they said they had sold out ~2 hours before I got there.  I was able to order one and they were nice enough to write off the rebate right away and overnight me a Storm directly from the factory.  By noon the following day I had my Storm and the following are photos of the unboxing.  I know this is rather late, but like they say, better late than never.</p>

<p><span id="more-93"></span></p>

<p><img class="colorbox-93"  src="https://lh6.googleusercontent.com/_7VR99N_W06c/TZTcY9mmVLI/AAAAAAAAAUY/O2l-KwZly0A/s800/3082177661_7f75a8533d_b.jpg" alt="The Cover" />
<!-- more --></p>

<p><img class="colorbox-93"  src="https://lh4.googleusercontent.com/_7VR99N_W06c/TZTcZc6WKiI/AAAAAAAAAUg/ZoAQ4iSZfwg/s800/3082177581_621c551bbf_b.jpg" alt="The Box" /></p>

<p><img class="colorbox-93"  src="https://lh5.googleusercontent.com/_7VR99N_W06c/TZTcX_np19I/AAAAAAAAAUU/u65XORPP5Ig/s800/3082177521_bb1bbb3178_b.jpg" alt="Just Inside the Box" /></p>

<p><img class="colorbox-93"  src="https://lh4.googleusercontent.com/_7VR99N_W06c/TZTcXPqvePI/AAAAAAAAAUQ/A69YNeN_jp0/s800/3082177481_a7e375d291_b.jpg" alt="THE STORM!" /></p>

<p><img class="colorbox-93"  src="https://lh4.googleusercontent.com/_7VR99N_W06c/TZTjFGPbPNI/AAAAAAAAAUw/jcsnpXFSh5E/s800/3082177413_dba84ebc24_b.jpg" alt="Under the Cover" /></p>

<p><img class="colorbox-93"  src="https://lh3.googleusercontent.com/_7VR99N_W06c/TZTcZG8qPoI/AAAAAAAAAUc/sEgNxlKikNs/s800/3083014834_42e2a1e2c0_b.jpg" alt="Booting Up" /></p>

<p>After my phone finished booting I forgot all about taking pictures.  The following pictures were taken about a week later after I had been using the phone for a while.</p>

<p><img class="colorbox-93"  src="https://lh5.googleusercontent.com/_7VR99N_W06c/TZTcWF_UO7I/AAAAAAAAAUI/peX9zkJHoHU/s800/3082177327_6c7784c569_b.jpg" alt="Up and Running" /></p>

<p><img class="colorbox-93"  src="https://lh5.googleusercontent.com/_7VR99N_W06c/TZTcV4ThbiI/AAAAAAAAAUE/VF_303cCiaY/s800/3082177273_7a3fb5592c_b.jpg" alt="Anyone Got the Time?" /></p>

<p><img class="colorbox-93"  src="https://lh6.googleusercontent.com/_7VR99N_W06c/TZTcWVsEFkI/AAAAAAAAAUM/LOinCB-vFTQ/s800/3082177233_62e712f3a8_b.jpg" alt="BlackBerry Maps" /></p>

<p>I’ve now had my Storm for just over 3 weeks and I love it!  Every aspect of it is great.  Sure there are some problems with the software, but nothing major or inconvinient, and since it’s software, there’s a good chance it will be fixed in the near future.  Bottom line though, I don’t know how I lived without a BlackBerry up until now!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chriskankiewicz.com/post/93/blackberry-storm-unboxing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

