From 4e044251eb1583a5feef33927553b635d4c3e51b Mon Sep 17 00:00:00 2001 From: Your Name Date: Wed, 29 Jun 2022 13:15:55 -0400 Subject: [PATCH] first --- ...3-on-aws-micro-centos-nginx-passenger.html | 322 +++++++++++ ...g-to-google-apps-standard-from-cpanel.html | 167 ++++++ ...g-with-inploy-an-alternative-to-capis.html | 147 ++++++ ...-ubuntu-1004-passenger-nginx-mysql-va.html | 217 ++++++++ 2016/02/22/docker-and-why-im-using-it.html | 145 +++++ ...re-traffic-manager-with-your-apexroot.html | 134 +++++ Gemfile | 21 + Gemfile.lock | 40 ++ about/index.html | 119 +++++ css/main.css | 457 ++++++++++++++++ feed.xml | 499 ++++++++++++++++++ googlebaf70539e42d097e.html | 1 + ...al_tumblr_inline_o2yxw5w3mO1ri0chs_400.png | Bin 0 -> 7168 bytes ...al_tumblr_inline_o8pzv0DwmT1ri0chs_500.jpg | Bin 0 -> 11636 bytes ...al_tumblr_inline_o8q0btElj21ri0chs_500.jpg | Bin 0 -> 19746 bytes index.html | 166 ++++++ robots.txt | 2 + .../tumblr_mjnqvdcCJ91s8wazuo1_500.jpg | Bin 0 -> 42490 bytes 18 files changed, 2437 insertions(+) create mode 100644 2010/09/11/rails-3-on-aws-micro-centos-nginx-passenger.html create mode 100644 2011/07/17/migrating-to-google-apps-standard-from-cpanel.html create mode 100644 2011/07/25/deploying-with-inploy-an-alternative-to-capis.html create mode 100644 2011/07/25/rails-on-ubuntu-1004-passenger-nginx-mysql-va.html create mode 100644 2016/02/22/docker-and-why-im-using-it.html create mode 100644 2016/06/13/using-azure-traffic-manager-with-your-apexroot.html create mode 100644 Gemfile create mode 100644 Gemfile.lock create mode 100644 about/index.html create mode 100644 css/main.css create mode 100644 feed.xml create mode 100644 googlebaf70539e42d097e.html create mode 100644 images/original_tumblr_inline_o2yxw5w3mO1ri0chs_400.png create mode 100644 images/original_tumblr_inline_o8pzv0DwmT1ri0chs_500.jpg create mode 100644 images/original_tumblr_inline_o8q0btElj21ri0chs_500.jpg create mode 100644 index.html create mode 100644 robots.txt create mode 100644 tumblr_files/tumblr_mjnqvdcCJ91s8wazuo1_500.jpg diff --git a/2010/09/11/rails-3-on-aws-micro-centos-nginx-passenger.html b/2010/09/11/rails-3-on-aws-micro-centos-nginx-passenger.html new file mode 100644 index 0000000..f1b840e --- /dev/null +++ b/2010/09/11/rails-3-on-aws-micro-centos-nginx-passenger.html @@ -0,0 +1,322 @@ + + + + + + + + + Rails 3 on AWS micro: CentOS Nginx Passenger + + + + + + + + + + + + + +
+
+
+ +
+

Rails 3 on AWS micro: CentOS Nginx Passenger

+ +
+ +
+

Note: This was tested on AWS using a micro instance and ami-6b608c02 which seemed to be the most barebones community CentOS i386 EBS AMI I could find. It works as a Micro instance out of the box without issues.

+ +

Prepare the Server

+ +

Update the system and install required libraries

+ +
yum update -y
+yum groupinstall “Development Tools” -y
+yum install zlib-devel wget openssl-devel pcre pcre-devel readline-devel sudo nano -y
+
+
+ +

Configure Time Settings

+ +
yum install tzdata system-config-date -y
+yum install ntp -y
+# Contact NTP server and update current time
+ntpdate ntp.ubuntu.com
+
+
+ +

Configure the hostname

+
hostname my.specialhost.name
+
+
+

Write loopback IP and your hostname in your /etc/hosts file: +bash +nano /etc/hosts +127.0.0.1 my.specialhost.name +Write your hostname to /etc/hostname +nano /etc/hostname +my.specialhost.name + +## Installing the Application Stack

+ +

Install MySQL

+
yum install mysql mysql-devel
+Secure your MySQL install:
+mysql_secure_installation
+Install Ruby
+Ignore ri and rdoc for this server
+nano ~/.gemrc
+Add these two lines:
+install: —no-ri —no-rdoc
+update: —no-ri —no-rdoc
+
+
+ +

Download Ruby from source and install:

+
wget ftp://ftp.ruby-lang.org:21//pub/ruby/1.9/ruby-1.9.2-p0.tar.gz
+tar xvfz ruby*
+cd ruby*
+./configure && make && make install
+Check that Ruby and RubyGems all were installed correctly:
+ruby -v
+gems -v
+
+
+ +

Clean up the Ruby source files:

+
cd ..
+rm -R ruby*
+Install Git (Good idea for Capistrano deployments)
+yum install gettext-devel expat-devel curl-devel zlib-devel openssl-devel
+wget http://kernel.org/pub/software/scm/git/git-1.7.1.tar.gz
+tar xzvf git-1.7.1.tar.gz
+cd git-1.7.1
+make prefix=/usr/local all
+make prefix=/usr/local install
+
+
+ +

Install Rails and Passenger gems

+
gem install rails
+If you need a specific version of Rails:
+gem install rails -v=2.3.8
+gem install passenger
+Install modified Nginx with Passenger built-in
+passenger-install-nginx-module
+Option 1
+
+
+ +

Create init scripts for Nginx

+
git clone git://github.com/xdite/rails-nginx-passenger-centos.git
+sudo mv rails-nginx-passenger-centos/nginx/nginx /etc/init.d/nginx
+sudo chown root:root /etc/init.d/nginx
+Verify the script can start and stop Nginx:
+sudo /etc/init.d/nginx start
+
+  * Starting Nginx Server…
+  …done.
+sudo /etc/init.d/nginx status
+
+  nginx found running with processes:  11511 11510
+sudo /etc/init.d/nginx stop
+
+  * Stopping Nginx Server…
+  …done.
+Add Nginx to startup:
+sudo /sbin/chkconfig nginx on
+Check that it starts and stops with the server by:
+reboot
+Install ImageMagick and RMagick (Optional)
+yum remove imagemagick
+yum install tcl-devel libpng-devel libjpeg-devel ghostscript-devel bzip2-devel freetype-devel libtiff-devel
+yum install libjpeg-devel libpng-devel glib2-devel fontconfig-devel zlib-devel libwmf-devel freetype-devel
+Download the ImageMagick Source
+wget ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz
+tar xvfz ImageMagick.tar.gz
+cd ImageMagick-6*
+./configure —prefix=/usr —with-bzlib=yes —with-fontconfig=yes —with-freetype=yes —with-gslib=yes —with-gvc=yes —with-jpeg=yes —with-jp2=yes —with-png=yes —with-tiff=yes
+make && make install
+Install RMagick
+gem install rmagick
+
+
+ + +

### Add the user +bash +useradd deployer +passwd deployer +

+ +

Give deployer sudo permission

+
nano /etc/sudoers
+Add this near the bottom of the file:
+deployer    ALL=(ALL)     ALL
+
+
+ +

End your SSH session

+
exit
+ssh deployer@my.specialhost.name
+Lock the root account
+sudo passwd root -l
+
+
+ +

Test a Rails 3 app

+ +

Create the testapp

+
rails new testapp -d mysql
+cd testapp
+bundle install
+Enter your database password in your database.yml real quick
+nano config/database.yml
+rake db:create:all
+rails generate scaffold post title:string body:text
+rake db:migrate
+Check really quick that WeBrick can start the rails app before we involve Passenger/Nginx
+rails server
+Change the user Nginx runs as
+sudo nano /opt/nginx/conf/nginx.conf
+At the top of the config file, uncomment or change “user nobody;” to:
+ user deployer;
+
+
+ +

Add a virtual host to Nginx

+
sudo nano /opt/nginx/conf/nginx.conf
+Find the server { } block in the default file and remove it. Add this:
+
+server {
+    listen 80;
+    # server_name www.mycook.com;
+    root /home/deployer/testapp/public;
+    passenger_enabled on;
+}
+Restart Nginx:
+ sudo /etc/init.d/nginx restart
+
+Try accessing your testapp
+In your web browser:
+http://my.specialhost.name/posts
+Tweaking Nginx/Passenger
+
+Enable gzip
+sudo nano /opt/nginx/conf/nginx.conf
+Find the existing commented “ #gzip on; ” and remove it and replace it with the following:
+gzip on;
+gzip_buffers 16 8k;
+gzip_disable “MSIE [1-6].”;
+gzip_proxied any;
+gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
+
+Longer expiration tags on content served by Nginx
+Place the following in your virtual host’s server { } block:
+
+location ~* .(ico|css|js|gif|jp?g|png)(\?[0-9]+)?$ {
+      expires max;
+      break;
+  }
+Reduce Passenger spin-up time
+
+Place the following in your virtual host’s server { } block:
+#Passenger options
+rails_spawn_method smart-lv2; # This can cause problems with some apps
+rails_app_spawner_idle_time 0;
+rails_framework_spawner_idle_time 0;
+
+
+ +
+ +
+ +
+
+ + + + + + + diff --git a/2011/07/17/migrating-to-google-apps-standard-from-cpanel.html b/2011/07/17/migrating-to-google-apps-standard-from-cpanel.html new file mode 100644 index 0000000..51a0e18 --- /dev/null +++ b/2011/07/17/migrating-to-google-apps-standard-from-cpanel.html @@ -0,0 +1,167 @@ + + + + + + + + + Migrating to Google Apps from cPanel + + + + + + + + + + + + + +
+
+
+ +
+

Migrating to Google Apps from cPanel

+ +
+ +
+

So I just had a nightmare of a time bouncing from cPanel providers. I figured there had to be something better. +I decided to run a trial of Google Apps Standard for two weeks and consider if it would be viable to move businesses using cPanel to Google Apps Standard accounts.

+ +

The trial went well. I used Google Apps for two weeks and had no service disruptions and migration was painless. After the trial, I moved my family’s small business http://midhurstroofing.ca to Google Apps.  +Here’s some problems I encountered during the migration and how I fixed them:

+ +

Microsoft Outlook + POP3 + Google Apps Migration Tool Lost TimeStamps

+

I finished my first user and hooked up IMAP. All the dates for messages were wrong. The dates shown after the migration were all < 1 day and they should have gone all the way back to 2009.

+ +

Apparently the problem is related to Outlook displaying the DateTime from a part of the message header that is updated during the migration. I found two solutions to this: +The first, was to use an email client other than Outlook. Literally any other client has no issues with the Google Apps Migration Tool - Mozilla Thunderbird, Apple Mail, mobile clients, etc.

+ +

The second, for those that have users that are too used to Outlook to switch cold turkey, is to change Outlooks view to sort and display the Sent DateTime of the message header instead of Received(default). To accomplish this: +- click the Sort by Date at the top of your message list. +- click custom +- change Sort to Sent

+ +

This view change is on a per-folder level, meaning you’ll have to do it on a couple folders. Depending on your user, usually Inbox and Sent is a must. +All future emails (not migrated) will have the proper information in the headers for Outlook to handle this under default settings. Hopefully Microsoft improves IMAP to handle this like other email clients do.

+ +

Users were used to an Inbox under Personal, now the IMAP mailbox is a separate item in the Navigation Pane

+

For this challenge, I made sure unused PST/Archives listed in the navigation pane were removed (AutoArchive) since users get boat loads of storage with Google Apps, there’s no need to retain copies locally. 

+ +

The next thing was to either hide or delete email messages on the user’s machine. I recommend hiding them in a subfolder until you’re confident the move to Google Apps is complete. +Next is to make sure when Outlook is started, it shows their IMAP inbox instead of their old Inbox. To do this:

+ +
    +
  • Tools > Options > Misc tab
  • +
  • Advanced Options
  • +
  • Change which folder is opened when Outlook runs
  • +
  • Select the inbox under IMAP +After that’s done, I collapsed the whole Personal archive in the navigation pane.
  • +
+ +

This results in a Navigation pane that looks very similar to the user’s old one.

+ +

Sent items need to go into GMail

+ +

Make sure their sent items are properly being placed in their GMail Sent Items and not a local folder or the copy Google Apps Migration Tool makes.

+ +

I need to delete IMAP folders in Outlook, but it says “Permission Denied”

+ +

GMail only allows the deletion of IMAP folders through the web interface. For this, I suggest you login to the web interface and use Manage Labels to clean things up. +Manage Labels interface:

+ +

As you can see, there’s a lot of garbage folders that one might not necessarily use that get copied in a migration.

+ +

That’s all! Overall I’m pleased with the outcome and I hope users are too.

+ +
+ +
+ +
+
+ + + + + + + diff --git a/2011/07/25/deploying-with-inploy-an-alternative-to-capis.html b/2011/07/25/deploying-with-inploy-an-alternative-to-capis.html new file mode 100644 index 0000000..f04f40b --- /dev/null +++ b/2011/07/25/deploying-with-inploy-an-alternative-to-capis.html @@ -0,0 +1,147 @@ + + + + + + + + + Deploying with Inploy - An alternative to Capistrano + + + + + + + + + + + + + +
+
+
+ +
+

Deploying with Inploy - An alternative to Capistrano

+ +
+ +
+

Inploy is similar to Capistrano but easier - it has better defaults and it is more forgiving when you don’t know what you’re doing (me).

+ +

Inploy on your development machine:

+
add to Gemfile: gem ‘inploy’
+bundle install —without production
+Create deploy.rb under your app’s config directory. The basic config/deploy.rb file:
+application = “test”repository = ‘git@git.assembla.com:my-apps-repo.git’hosts = [‘zer1’]path = ‘/home/deploy’
+
+
+ +

Notes on deploy.rb:

+
    +
  • default user is ‘deploy’
  • +
  • deploys to #{path}/#{application}
  • +
  • Inploy’s hosts will look to your development machine’s .ssh/config (so add your production server)
  • +
+ +

Inploy commands

+

#### Pull the app from repo, bundle install, create database, migrate: + +bundle exec rake inploy:remote:setup +

+ +

Once you’re setup, you can update your app and repo:

+
bundle exec rake inploy:remote:update
+
+
+

That’s it! You can learn more about Inploy on Github.

+ +
+ +
+ +
+
+ + + + + + + diff --git a/2011/07/25/rails-on-ubuntu-1004-passenger-nginx-mysql-va.html b/2011/07/25/rails-on-ubuntu-1004-passenger-nginx-mysql-va.html new file mode 100644 index 0000000..ab4270d --- /dev/null +++ b/2011/07/25/rails-on-ubuntu-1004-passenger-nginx-mysql-va.html @@ -0,0 +1,217 @@ + + + + + + + + + Rails on Ubuntu 10.04: Passenger, Nginx, MySQL, Varnish + + + + + + + + + + + + + +
+
+
+ +
+

Rails on Ubuntu 10.04: Passenger, Nginx, MySQL, Varnish

+ +
+ +
+

I setup a new VPS this weekend and decided to share my notes. +My notes are from being logged in as root. If you’re logged in as another user, you’ll be typing sudo a lot. :)

+ +

Configure your locale 

+
locale -a
+locale-gen en_US.UTF-8
+update-locale LANG=en_US.UTF-8
+update-locale LANGUAGE=en_US.UTF-8
+exit
+ssh zer1   #zer1 is my VPS added to ~/.ssh/config 
+locale -a   #should have en_US.UTF-8 listed 
+update-locale   #errors? 
+# Set your time zonedpkg-reconfigure tzdata 
+ntpdate ntp.ubuntu.com
+
+
+ +

Update Ubuntu

+
apt-get update && apt-get upgrade
+Install dependenciesapt-get install build-essential libmagickcore-dev imagemagick libxml2-dev libxslt1-dev git-core libapr1-dev libssl-dev libmysqlclient15-dev libcurl4-openssl-dev curl libncurses5-dev libreadline5-dev libopenssl-ruby1.9
+
+
+ +

Install MySQL

+
apt-get install mysql-server libmysqlclient-dev libmysqlclient15-dev libmysql-ruby
+mysql_secure_installation
+Install latest Ruby from sourcewget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p290.tar.gz
+tar zxvf ruby-1.9.2-p290.tar.gz
+cd ruby-1.9.2-p290.tar.gz
+./configure
+make
+make install
+which ruby
+gem list
+gem install passenger mysql bundler
+
+
+ +

Set default environment for Rails

+
echo "export RAILS_ENV=production" >> /etc/environment
+Install Nginx and Passengerpassenger-install-nginx-module
+curl -L https://raw.github.com/jnstq/rails-nginx-passenger-ubuntu/master/nginx/nginx > /etc/init.d/nginx
+chmod +x /etc/init.d/nginx
+update-rc.d nginx defaults
+service nginx start
+
+
+ +

Configure Nginx

+
mkdir /opt/nginx/conf/sites-enabled
+nano /opt/nginx/conf/nginx.conf
+add this within the http { } block:
+change default listen port to 8080
+include /opt/nginx/conf/sites-enabled/*;
+nano /opt/nginx/conf/sites-enabled/test
+*note port 8080 for Varnish
+server {    listen 8080;    server_name mywebsite.com;    root /home/deploy/test/public;    passenger_enabled on;}
+service nginx restart
+
+
+ +

Add deploy user

+
adduser deploy
+su deploy    #switches to deploy
+ssh-keygen -t rsa -C “deploy@myserver”
+cat ~/.ssh/id_rsa.pub
+copy the output into your favorite Git hosting as an allowed key (Assembla, Github, etc)
+on your development machine:
+cat ~/.ssh/id_rsa.pub
+on the server as deploy user:
+nano ~/.ssh/authorized_keys
+paste in your development machine’s public key
+git clone git@git.assembla.com:myapp.git      #lets you add host as known_host
+rm -rf myapp         
+Create a MySQL user and databasemysql -u root -p
+create database myapp_prod;
+create user ‘mydbuser’@’localhost’ identified by ‘secret’;
+grant all privileges on myapp_prod.* to ‘mydbuser’@’localhost’;
+
+
+ +

Install Varnish HTTP cache

+
apt-get install subversion autotools-dev automake1.9 libtool autoconf libncurses-dev xsltproc quilt debhelper
+svn co http://varnish-cache.org/svn/tags/varnish-2.0.5
+cd varnish-2.0.5/varnish-cache
+dpkg-buildpackage
+cd ..
+dpkg -i libvarnish1_2.0.6-2_i386.deb
+dpkg -i varnish_2.0.6-2_i386.deb
+service varnish start
+Configure Varnishnano /etc/varnish/default.vcl
+Leave this at defaults, but now you know where it is :)
+nano /etc/default/varnish
+Comment out DAEMON_OPTS use the following instead:
+DAEMON_OPTS=”-a :80 -f /etc/varnish/default.vcl -s file,/var/lib/varnish/$INSTANCE/varnish_storage.bin,1G”
+service varnish restart
+
+
+ +
+ +
+ +
+
+ + + + + + + diff --git a/2016/02/22/docker-and-why-im-using-it.html b/2016/02/22/docker-and-why-im-using-it.html new file mode 100644 index 0000000..9c8444e --- /dev/null +++ b/2016/02/22/docker-and-why-im-using-it.html @@ -0,0 +1,145 @@ + + + + + + + + + Docker and why I’m using it + + + + + + + + + + + + + +
+
+
+ +
+

Docker and why I’m using it

+ +
+ +
+

logo

+ +

Docker has been a hot topic for the past year or so. It started to be used heavily in Dev environments and has since moved on to be used in production by companies like Google, Shopify, and Riot games. For the longest time, I’ve continued to do things the way I always do - fancy one liners, collections of bash scripts, things that generally break after a couple months.

+ +

Recently, I setup a mumble server and didn’t document anything. It was a dead simple setup process, so why bother documenting how the server is setup? What happens if I want to lifecycle the server or decide to change the OS and I need to move the mumble service elsewhere?

+ +

I am doing exactly that in a couple weeks - I’m upgrading my server to a new Xeon E5 and getting rid of the old. Docker, by design, is forcing me to ensure all my configurations are in one place and all the services are documented and portable.

+ +

I’ll be posting some of my experiences with Docker in production shortly. Right now, I’m moving the following in my home lab to Docker containers to learn:

+ +
    +
  • PostgreSQL
  • +
  • Phusion Passenger (Ruby App server)
  • +
  • NGINX cache static asset host
  • +
  • Plex
  • +
  • Sonarr
  • +
  • Aria2 Downloader
  • +
  • rTorrent
  • +
  • Mumble
  • +
+ +

& more

+ +

While Docker is suitable for large-scale deployments, there’s nothing stopping you from using it in your home lab or in a small production environment.

+ +

I’m interested to hear of your own experiences using Docker in small environments.

+ +
+ +
+ +
+
+ + + + + + + diff --git a/2016/06/13/using-azure-traffic-manager-with-your-apexroot.html b/2016/06/13/using-azure-traffic-manager-with-your-apexroot.html new file mode 100644 index 0000000..f4a98f1 --- /dev/null +++ b/2016/06/13/using-azure-traffic-manager-with-your-apexroot.html @@ -0,0 +1,134 @@ + + + + + + + + + Using Azure Traffic Manager With Your Apex/Root Domain Record is Possible With CloudFlare + + + + + + + + + + + + + +
+
+
+ +
+

Using Azure Traffic Manager With Your Apex/Root Domain Record is Possible With CloudFlare

+ +
+ +
+

image

+ +

I wanted to write this blog post explaining how it is possible to use Azure Traffic Manager with your apex domain name. I’ve googled solutions for this and haven’t found any until now. 

+ +

Azure Traffic Manager currently does not support Apex or “Root” “@” domain names. Meaning, you cannot use it with https://example.com. This is because Traffic Manager provides you with a CNAME “wwwexamplecom.trafficmanager.net” and DNS RFCs forbid the use of a CNAME record as the domain apex record.

+ +

This is where Cloudflare comes in.

+ +

Cloudflare supports a feature called CNAME Flattening that they have developed in-house for their DNS servers. You can use Cloudflare to host your domain for free and you aren’t required to use their caching/proxying service.

+ +

After creating a Cloudflare account and adding your domain, you can use a CNAME record as your domain apex “@”. Behind the scenes, Cloudflare is translating “wwwexamplecom.trafficmanager.net” to an IP and returning the IP when “example.com” is queried.

+ +

image

+ +

I hope this helps anyone looking to use Azure Traffic Manager.

+ +
+ +
+ +
+
+ + + + + + + diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..95f61fc --- /dev/null +++ b/Gemfile @@ -0,0 +1,21 @@ +source "https://rubygems.org" +ruby RUBY_VERSION + +# Hello! This is where you manage which Jekyll version is used to run. +# When you want to use a different version, change it below, save the +# file and run `bundle install`. Run Jekyll with `bundle exec`, like so: +# +# bundle exec jekyll serve +# +# This will help ensure the proper Jekyll version is running. +# Happy Jekylling! +gem "jekyll", "3.2.0.pre.beta1" + +# If you want to use GitHub Pages, remove the "gem "jekyll"" above and +# uncomment the line below. To upgrade, run `bundle update github-pages`. +# gem "github-pages", group: :jekyll_plugins + +# If you have any plugins, put them here! +# group :jekyll_plugins do +# gem "jekyll-github-metadata", "~> 1.0" +# end diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 0000000..f0083c9 --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,40 @@ +GEM + remote: https://rubygems.org/ + specs: + colorator (1.1.0) + ffi (1.9.14) + forwardable-extended (2.6.0) + jekyll (3.2.0.pre.beta1) + colorator (~> 1.0) + jekyll-sass-converter (~> 1.0) + jekyll-watch (~> 1.1) + kramdown (~> 1.3) + liquid (~> 3.0) + mercenary (~> 0.3.3) + pathutil (~> 0.9) + rouge (~> 1.7) + safe_yaml (~> 1.0) + jekyll-sass-converter (1.4.0) + sass (~> 3.4) + jekyll-watch (1.4.0) + listen (~> 3.0, < 3.1) + kramdown (1.11.1) + liquid (3.0.6) + listen (3.0.8) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + mercenary (0.3.6) + pathutil (0.14.0) + forwardable-extended (~> 2.6) + rb-fsevent (0.9.7) + rb-inotify (0.9.7) + ffi (>= 0.5.0) + rouge (1.11.1) + safe_yaml (1.0.4) + sass (3.4.22) + +PLATFORMS + ruby + +DEPENDENCIES + jekyll (= 3.2.0.pre.beta1) diff --git a/about/index.html b/about/index.html new file mode 100644 index 0000000..7857c3c --- /dev/null +++ b/about/index.html @@ -0,0 +1,119 @@ + + + + + + + + + About + + + + + + + + + + + + + +
+
+
+ +
+

About

+
+ +
+

Eventually I’ll write about myself…

+ +
+ +
+ +
+
+ + + + + + + diff --git a/css/main.css b/css/main.css new file mode 100644 index 0000000..1fb1692 --- /dev/null +++ b/css/main.css @@ -0,0 +1,457 @@ +/** + * Reset some basic elements + */ +body, h1, h2, h3, h4, h5, h6, +p, blockquote, pre, hr, +dl, dd, ol, ul, figure { + margin: 0; + padding: 0; } + +/** + * Basic styling + */ +body { + font: 400 16px/1.5 "Helvetica Neue", Helvetica, Arial, sans-serif; + color: #111; + background-color: #fdfdfd; + -webkit-text-size-adjust: 100%; + -webkit-font-feature-settings: "kern" 1; + -moz-font-feature-settings: "kern" 1; + -o-font-feature-settings: "kern" 1; + font-feature-settings: "kern" 1; + font-kerning: normal; } + +/** + * Set `margin-bottom` to maintain vertical rhythm + */ +h1, h2, h3, h4, h5, h6, +p, blockquote, pre, +ul, ol, dl, figure, +.highlight { + margin-bottom: 15px; } + +/** + * Images + */ +img { + max-width: 100%; + vertical-align: middle; } + +/** + * Figures + */ +figure > img { + display: block; } + +figcaption { + font-size: 14px; } + +/** + * Lists + */ +ul, ol { + margin-left: 30px; } + +li > ul, +li > ol { + margin-bottom: 0; } + +/** + * Headings + */ +h1, h2, h3, h4, h5, h6 { + font-weight: 400; } + +/** + * Links + */ +a { + color: #2a7ae2; + text-decoration: none; } + a:visited { + color: #1756a9; } + a:hover { + color: #111; + text-decoration: underline; } + +/** + * Blockquotes + */ +blockquote { + color: #828282; + border-left: 4px solid #e8e8e8; + padding-left: 15px; + font-size: 18px; + letter-spacing: -1px; + font-style: italic; } + blockquote > :last-child { + margin-bottom: 0; } + +/** + * Code formatting + */ +pre, +code { + font-size: 15px; + border: 1px solid #e8e8e8; + border-radius: 3px; + background-color: #eef; } + +code { + padding: 1px 5px; } + +pre { + padding: 8px 12px; + overflow-x: auto; } + pre > code { + border: 0; + padding-right: 0; + padding-left: 0; } + +/** + * Wrapper + */ +.wrapper { + max-width: -webkit-calc(800px - (30px * 2)); + max-width: calc(800px - (30px * 2)); + margin-right: auto; + margin-left: auto; + padding-right: 30px; + padding-left: 30px; } + @media screen and (max-width: 800px) { + .wrapper { + max-width: -webkit-calc(800px - (30px)); + max-width: calc(800px - (30px)); + padding-right: 15px; + padding-left: 15px; } } + +/** + * Clearfix + */ +.wrapper:after, .footer-col-wrapper:after { + content: ""; + display: table; + clear: both; } + +/** + * Icons + */ +.icon > svg { + display: inline-block; + width: 16px; + height: 16px; + vertical-align: middle; } + .icon > svg path { + fill: #828282; } + +/** + * Site header + */ +.site-header { + border-top: 5px solid #424242; + border-bottom: 1px solid #e8e8e8; + min-height: 56px; + position: relative; } + +.site-title { + font-size: 26px; + font-weight: 300; + line-height: 56px; + letter-spacing: -1px; + margin-bottom: 0; + float: left; } + .site-title, .site-title:visited { + color: #424242; } + +.site-nav { + float: right; + line-height: 56px; } + .site-nav .menu-icon { + display: none; } + .site-nav .page-link { + color: #111; + line-height: 1.5; } + .site-nav .page-link:not(:last-child) { + margin-right: 20px; } + @media screen and (max-width: 600px) { + .site-nav { + position: absolute; + top: 9px; + right: 15px; + background-color: #fdfdfd; + border: 1px solid #e8e8e8; + border-radius: 5px; + text-align: right; } + .site-nav .menu-icon { + display: block; + float: right; + width: 36px; + height: 26px; + line-height: 0; + padding-top: 10px; + text-align: center; } + .site-nav .menu-icon > svg { + width: 18px; + height: 15px; } + .site-nav .menu-icon > svg path { + fill: #424242; } + .site-nav .trigger { + clear: both; + display: none; } + .site-nav:hover .trigger { + display: block; + padding-bottom: 5px; } + .site-nav .page-link { + display: block; + padding: 5px 10px; + margin-left: 20px; } + .site-nav .page-link:not(:last-child) { + margin-right: 0; } } + +/** + * Site footer + */ +.site-footer { + border-top: 1px solid #e8e8e8; + padding: 30px 0; } + +.footer-heading { + font-size: 18px; + margin-bottom: 15px; } + +.contact-list, +.social-media-list { + list-style: none; + margin-left: 0; } + +.footer-col-wrapper { + font-size: 15px; + color: #828282; + margin-left: -15px; } + +.footer-col { + float: left; + margin-bottom: 15px; + padding-left: 15px; } + +.footer-col-1 { + width: -webkit-calc(35% - (30px / 2)); + width: calc(35% - (30px / 2)); } + +.footer-col-2 { + width: -webkit-calc(20% - (30px / 2)); + width: calc(20% - (30px / 2)); } + +.footer-col-3 { + width: -webkit-calc(45% - (30px / 2)); + width: calc(45% - (30px / 2)); } + +@media screen and (max-width: 800px) { + .footer-col-1, + .footer-col-2 { + width: -webkit-calc(50% - (30px / 2)); + width: calc(50% - (30px / 2)); } + + .footer-col-3 { + width: -webkit-calc(100% - (30px / 2)); + width: calc(100% - (30px / 2)); } } +@media screen and (max-width: 600px) { + .footer-col { + float: none; + width: -webkit-calc(100% - (30px / 2)); + width: calc(100% - (30px / 2)); } } +/** + * Page content + */ +.page-content { + padding: 30px 0; } + +.page-heading { + font-size: 20px; } + +.post-list { + margin-left: 0; + list-style: none; } + .post-list > li { + margin-bottom: 30px; } + +.post-meta { + font-size: 14px; + color: #828282; } + +.post-link { + display: block; + font-size: 24px; } + +/** + * Posts + */ +.post-header { + margin-bottom: 30px; } + +.post-title { + font-size: 42px; + letter-spacing: -1px; + line-height: 1; } + @media screen and (max-width: 800px) { + .post-title { + font-size: 36px; } } + +.post-content { + margin-bottom: 30px; } + .post-content h2 { + font-size: 32px; } + @media screen and (max-width: 800px) { + .post-content h2 { + font-size: 28px; } } + .post-content h3 { + font-size: 26px; } + @media screen and (max-width: 800px) { + .post-content h3 { + font-size: 22px; } } + .post-content h4 { + font-size: 20px; } + @media screen and (max-width: 800px) { + .post-content h4 { + font-size: 18px; } } + +/** + * Syntax highlighting styles + */ +.highlight { + background: #fff; } + .highlighter-rouge .highlight { + background: #eef; } + .highlight .c { + color: #998; + font-style: italic; } + .highlight .err { + color: #a61717; + background-color: #e3d2d2; } + .highlight .k { + font-weight: bold; } + .highlight .o { + font-weight: bold; } + .highlight .cm { + color: #998; + font-style: italic; } + .highlight .cp { + color: #999; + font-weight: bold; } + .highlight .c1 { + color: #998; + font-style: italic; } + .highlight .cs { + color: #999; + font-weight: bold; + font-style: italic; } + .highlight .gd { + color: #000; + background-color: #fdd; } + .highlight .gd .x { + color: #000; + background-color: #faa; } + .highlight .ge { + font-style: italic; } + .highlight .gr { + color: #a00; } + .highlight .gh { + color: #999; } + .highlight .gi { + color: #000; + background-color: #dfd; } + .highlight .gi .x { + color: #000; + background-color: #afa; } + .highlight .go { + color: #888; } + .highlight .gp { + color: #555; } + .highlight .gs { + font-weight: bold; } + .highlight .gu { + color: #aaa; } + .highlight .gt { + color: #a00; } + .highlight .kc { + font-weight: bold; } + .highlight .kd { + font-weight: bold; } + .highlight .kp { + font-weight: bold; } + .highlight .kr { + font-weight: bold; } + .highlight .kt { + color: #458; + font-weight: bold; } + .highlight .m { + color: #099; } + .highlight .s { + color: #d14; } + .highlight .na { + color: #008080; } + .highlight .nb { + color: #0086B3; } + .highlight .nc { + color: #458; + font-weight: bold; } + .highlight .no { + color: #008080; } + .highlight .ni { + color: #800080; } + .highlight .ne { + color: #900; + font-weight: bold; } + .highlight .nf { + color: #900; + font-weight: bold; } + .highlight .nn { + color: #555; } + .highlight .nt { + color: #000080; } + .highlight .nv { + color: #008080; } + .highlight .ow { + font-weight: bold; } + .highlight .w { + color: #bbb; } + .highlight .mf { + color: #099; } + .highlight .mh { + color: #099; } + .highlight .mi { + color: #099; } + .highlight .mo { + color: #099; } + .highlight .sb { + color: #d14; } + .highlight .sc { + color: #d14; } + .highlight .sd { + color: #d14; } + .highlight .s2 { + color: #d14; } + .highlight .se { + color: #d14; } + .highlight .sh { + color: #d14; } + .highlight .si { + color: #d14; } + .highlight .sx { + color: #d14; } + .highlight .sr { + color: #009926; } + .highlight .s1 { + color: #d14; } + .highlight .ss { + color: #990073; } + .highlight .bp { + color: #999; } + .highlight .vc { + color: #008080; } + .highlight .vg { + color: #008080; } + .highlight .vi { + color: #008080; } + .highlight .il { + color: #099; } diff --git a/feed.xml b/feed.xml new file mode 100644 index 0000000..dfe2d92 --- /dev/null +++ b/feed.xml @@ -0,0 +1,499 @@ + + + + Kris Forbes Blog + Kris Forbes - Personal blog covering experiences with tech such as Docker, Azure, OVH, Linux, Windows, etc. + http://blog.krisforbes.ca/ + + Tue, 12 Jul 2016 14:52:50 -0400 + Tue, 12 Jul 2016 14:52:50 -0400 + Jekyll v3.2.0.pre.beta1 + + + Using Azure Traffic Manager With Your Apex/Root Domain Record is Possible With CloudFlare + <p><img src="https://i.pstorage.space/i/WgJ5J23eY/original_tumblr_inline_o8q0btElj21ri0chs_500.jpg" alt="image" /></p> + +<p>I wanted to write this blog post explaining how it is possible to use <a href="http://t.umblr.com/redirect?z=https%3A%2F%2Fazure.microsoft.com%2Fen-us%2Fservices%2Ftraffic-manager%2F&amp;t=YmJkOTE3ZGI2NDIwNTAwMzgyNzE3NDhlZmM0ZGVkYzhlMjYzOGQwMSxpUVp5QjBGUw%3D%3D">Azure Traffic Manager </a>with your apex domain name. I’ve googled solutions for this and haven’t found any until now. </p> + +<p>Azure Traffic Manager currently does not support Apex or “Root” “@” domain names. Meaning, you cannot use it with <a href="http://t.umblr.com/redirect?z=https%3A%2F%2Fexample.com&amp;t=YWUyYWEyOTQzOGRlYTMzMWEyZWEzOGY5YmJkY2ViMGE5MWNhYTNmMCxpUVp5QjBGUw%3D%3D">https://example.com</a>. This is because Traffic Manager provides you with a CNAME “wwwexamplecom.trafficmanager.net” and <a href="http://t.umblr.com/redirect?z=http%3A%2F%2Fwww.ietf.org%2Frfc%2Frfc1035.txt&amp;t=MzUwNjUwOWU1NjkzOGI2NWM4ZjY0NjkyNGY4Njg4ZDlmYWFlMWUwYSxpUVp5QjBGUw%3D%3D">DNS RFCs</a> forbid the use of a CNAME record as the domain apex record.</p> + +<p>This is where Cloudflare comes in.</p> + +<p>Cloudflare supports a feature called <a href="http://t.umblr.com/redirect?z=https%3A%2F%2Fblog.cloudflare.com%2Fintroducing-cname-flattening-rfc-compliant-cnames-at-a-domains-root%2F&amp;t=MjA5YWZiODkwMDE5YzAzY2QyMzgyOWI1YTNmMmMxMmNkYjhkNDFkNyxpUVp5QjBGUw%3D%3D">CNAME Flattening</a> that they have developed in-house for their DNS servers. You can use Cloudflare to host your domain for free and you aren’t required to use their caching/proxying service.</p> + +<p>After creating a Cloudflare account and adding your domain, you can use a CNAME record as your domain apex “@”. Behind the scenes, Cloudflare is translating “wwwexamplecom.trafficmanager.net” to an IP and returning the IP when “example.com” is queried.</p> + +<p><img src="https://i.pstorage.space/i/xY1Z1vyaW/original_tumblr_inline_o8pzv0DwmT1ri0chs_500.jpg" alt="image" /></p> + +<p>I hope this helps anyone looking to use Azure Traffic Manager.</p> + + Mon, 13 Jun 2016 13:15:28 -0400 + http://blog.krisforbes.ca/2016/06/13/using-azure-traffic-manager-with-your-apexroot.html + http://blog.krisforbes.ca/2016/06/13/using-azure-traffic-manager-with-your-apexroot.html + + + + + + Docker and why I’m using it + <p><img src="https://i.pstorage.space/i/g0zYzybap/original_tumblr_inline_o2yxw5w3mO1ri0chs_400.png" alt="logo" /></p> + +<p>Docker has been a hot topic for the past year or so. It started to be used heavily in Dev environments and has since moved on to be used in production by companies like <a href="http://t.umblr.com/redirect?z=http%3A%2F%2Fkubernetes.io%2F&amp;t=Njg3NmU0NDVmMDJlNWIxOGNmY2U5YTliYTZlZWQwMjFjYjhmMjE2NCxEUm9RUDJadg%3D%3D">Google</a>, <a href="http://t.umblr.com/redirect?z=https%3A%2F%2Fengineering.shopify.com%2F17489060-docker-at-shopify-how-we-built-containers-that-power-over-100-000-online-shops&amp;t=NmFmY2YyNzY4MGIyMDA0ZWRlYzM0NDVlMTBmNGY2YTQ0MTgyZGVlYSxEUm9RUDJadg%3D%3D">Shopify</a>, and <a href="http://t.umblr.com/redirect?z=https%3A%2F%2Fengineering.riotgames.com%2Fnews%2Fthinking-inside-container&amp;t=N2QyNTQ3YjQ3NTAyZmQxNTIxZDFiMGYzOWEwZjcyZmYzMjYwZmM4NixEUm9RUDJadg%3D%3D">Riot games</a>. For the longest time, I’ve continued to do things the way I always do - fancy one liners, collections of bash scripts, things that generally break after a couple months.</p> + +<p>Recently, I setup a mumble server and didn’t document anything. It was a dead simple setup process, so why bother documenting how the server is setup? What happens if I want to lifecycle the server or decide to change the OS and I need to move the mumble service elsewhere?</p> + +<p>I am doing exactly that in a couple weeks - I’m upgrading my server to a new Xeon E5 and getting rid of the old. Docker, by design, is forcing me to ensure all my configurations are in one place and all the services are documented and portable.</p> + +<p>I’ll be posting some of my experiences with Docker in production shortly. Right now, I’m moving the following in my home lab to Docker containers to learn:</p> + +<ul> + <li>PostgreSQL</li> + <li>Phusion Passenger (Ruby App server)</li> + <li>NGINX cache static asset host</li> + <li>Plex</li> + <li>Sonarr</li> + <li>Aria2 Downloader</li> + <li>rTorrent</li> + <li>Mumble</li> +</ul> + +<p>&amp; more</p> + +<p>While Docker is suitable for large-scale deployments, there’s nothing stopping you from using it in your home lab or in a small production environment.</p> + +<p>I’m interested to hear of your own experiences using Docker in small environments.</p> + + Mon, 22 Feb 2016 16:48:12 -0500 + http://blog.krisforbes.ca/2016/02/22/docker-and-why-im-using-it.html + http://blog.krisforbes.ca/2016/02/22/docker-and-why-im-using-it.html + + + + + + Deploying with Inploy - An alternative to Capistrano + <p>Inploy is similar to Capistrano but easier - it has better defaults and it is more forgiving when you don’t know what you’re doing (me).</p> + +<h3 id="inploy-on-your-development-machine">Inploy on your development machine:</h3> +<div class="language-bash highlighter-rouge"><pre class="highlight"><code>add to Gemfile: gem ‘inploy’ +bundle install —without production +Create deploy.rb under your app’s config directory. The basic config/deploy.rb file: +application <span class="o">=</span> “test”repository <span class="o">=</span> ‘git@git.assembla.com:my-apps-repo.git’hosts <span class="o">=</span> <span class="o">[</span>‘zer1’]path <span class="o">=</span> ‘/home/deploy’ +</code></pre> +</div> + +<h3 id="notes-on-deployrb">Notes on deploy.rb:</h3> +<ul> + <li>default user is ‘deploy’</li> + <li>deploys to #{path}/#{application}</li> + <li>Inploy’s hosts will look to your development machine’s .ssh/config (so add your production server)</li> +</ul> + +<h3 id="inploy-commands">Inploy commands</h3> +<p>#### Pull the app from repo, bundle install, create database, migrate: +<code class="highlighter-rouge"> +bundle exec rake inploy:remote:setup +</code></p> + +<h4 id="once-youre-setup-you-can-update-your-app-and-repo">Once you’re setup, you can update your app and repo:</h4> +<div class="highlighter-rouge"><pre class="highlight"><code>bundle exec rake inploy:remote:update +</code></pre> +</div> +<p>That’s it! You can learn more about Inploy on Github.</p> + + Mon, 25 Jul 2011 20:26:00 -0400 + http://blog.krisforbes.ca/2011/07/25/deploying-with-inploy-an-alternative-to-capis.html + http://blog.krisforbes.ca/2011/07/25/deploying-with-inploy-an-alternative-to-capis.html + + Ruby on Rails + + + + + + Rails on Ubuntu 10.04: Passenger, Nginx, MySQL, Varnish + <p>I setup a new VPS this weekend and decided to share my notes. +My notes are from being logged in as root. If you’re logged in as another user, you’ll be typing sudo a lot. :)</p> + +<h3 id="configure-your-locale">Configure your locale </h3> +<div class="language-bash highlighter-rouge"><pre class="highlight"><code>locale -a +locale-gen en_US.UTF-8 +update-locale <span class="nv">LANG</span><span class="o">=</span>en_US.UTF-8 +update-locale <span class="nv">LANGUAGE</span><span class="o">=</span>en_US.UTF-8 +<span class="nb">exit +</span>ssh zer1 <span class="c">#zer1 is my VPS added to ~/.ssh/config </span> +locale -a <span class="c">#should have en_US.UTF-8 listed </span> +update-locale <span class="c">#errors? </span> +<span class="c"># Set your time zonedpkg-reconfigure tzdata </span> +ntpdate ntp.ubuntu.com +</code></pre> +</div> + +<h3 id="update-ubuntu">Update Ubuntu</h3> +<div class="language-bash highlighter-rouge"><pre class="highlight"><code>apt-get update <span class="o">&amp;&amp;</span> apt-get upgrade +Install dependenciesapt-get install build-essential libmagickcore-dev imagemagick libxml2-dev libxslt1-dev git-core libapr1-dev libssl-dev libmysqlclient15-dev libcurl4-openssl-dev curl libncurses5-dev libreadline5-dev libopenssl-ruby1.9 +</code></pre> +</div> + +<h3 id="install-mysql">Install MySQL</h3> +<div class="language-bash highlighter-rouge"><pre class="highlight"><code>apt-get install mysql-server libmysqlclient-dev libmysqlclient15-dev libmysql-ruby +mysql_secure_installation +Install latest Ruby from sourcewget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p290.tar.gz +tar zxvf ruby-1.9.2-p290.tar.gz +<span class="nb">cd </span>ruby-1.9.2-p290.tar.gz +./configure +make +make install +which ruby +gem list +gem install passenger mysql bundler +</code></pre> +</div> + +<h3 id="set-default-environment-for-rails">Set default environment for Rails</h3> +<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="nb">echo</span> <span class="s2">"export RAILS_ENV=production"</span> &gt;&gt; /etc/environment +Install Nginx and Passengerpassenger-install-nginx-module +curl -L https://raw.github.com/jnstq/rails-nginx-passenger-ubuntu/master/nginx/nginx &gt; /etc/init.d/nginx +chmod +x /etc/init.d/nginx +update-rc.d nginx defaults +service nginx start +</code></pre> +</div> + +<h3 id="configure-nginx">Configure Nginx</h3> +<div class="language-bash highlighter-rouge"><pre class="highlight"><code>mkdir /opt/nginx/conf/sites-enabled +nano /opt/nginx/conf/nginx.conf +add this within the http <span class="o">{</span> <span class="o">}</span> block: +change default listen port to 8080 +include /opt/nginx/conf/sites-enabled/<span class="k">*</span>; +nano /opt/nginx/conf/sites-enabled/test +<span class="k">*</span>note port 8080 <span class="k">for </span>Varnish +server <span class="o">{</span>    listen 8080;    server_name mywebsite.com;    root /home/deploy/test/public;    passenger_enabled on;<span class="o">}</span> +service nginx restart +</code></pre> +</div> + +<h3 id="add-deploy-user">Add deploy user</h3> +<div class="language-bash highlighter-rouge"><pre class="highlight"><code>adduser deploy +su deploy <span class="c">#switches to deploy</span> +ssh-keygen -t rsa -C “deploy@myserver” +cat ~/.ssh/id_rsa.pub +copy the output into your favorite Git hosting as an allowed key <span class="o">(</span>Assembla, Github, etc<span class="o">)</span> +on your development machine: +cat ~/.ssh/id_rsa.pub +on the server as deploy user: +nano ~/.ssh/authorized_keys +paste <span class="k">in </span>your development machine’s public key +git clone git@git.assembla.com:myapp.git      #lets you add host as known_host +rm -rf myapp          +Create a MySQL user and databasemysql -u root -p +create database myapp_prod; +create user ‘mydbuser’@’localhost’ identified by ‘secret’; +grant all privileges on myapp_prod.<span class="k">*</span> to ‘mydbuser’@’localhost’; +</code></pre> +</div> + +<h3 id="install-varnish-http-cache">Install Varnish HTTP cache</h3> +<div class="language-bash highlighter-rouge"><pre class="highlight"><code>apt-get install subversion autotools-dev automake1.9 libtool autoconf libncurses-dev xsltproc quilt debhelper +svn co http://varnish-cache.org/svn/tags/varnish-2.0.5 +<span class="nb">cd </span>varnish-2.0.5/varnish-cache +dpkg-buildpackage +<span class="nb">cd</span> .. +dpkg -i libvarnish1_2.0.6-2_i386.deb +dpkg -i varnish_2.0.6-2_i386.deb +service varnish start +Configure Varnishnano /etc/varnish/default.vcl +Leave this at defaults, but now you know where it is :<span class="o">)</span> +nano /etc/default/varnish +Comment out DAEMON_OPTS use the following instead: +<span class="nv">DAEMON_OPTS</span><span class="o">=</span>”-a :80 -f /etc/varnish/default.vcl -s file,/var/lib/varnish/<span class="nv">$INSTANCE</span>/varnish_storage.bin,1G” +service varnish restart +</code></pre> +</div> + + Mon, 25 Jul 2011 19:59:00 -0400 + http://blog.krisforbes.ca/2011/07/25/rails-on-ubuntu-1004-passenger-nginx-mysql-va.html + http://blog.krisforbes.ca/2011/07/25/rails-on-ubuntu-1004-passenger-nginx-mysql-va.html + + Ruby on Rails + + + + + + Migrating to Google Apps from cPanel + <p>So I just had a nightmare of a time bouncing from cPanel providers. I figured there had to be something better. +I decided to run a trial of Google Apps Standard for two weeks and consider if it would be viable to move businesses using cPanel to Google Apps Standard accounts.</p> + +<p>The trial went well. I used Google Apps for two weeks and had no service disruptions and migration was painless. After the trial, I moved my family’s small business <a href="http://midhurstroofing.ca">http://midhurstroofing.ca</a> to Google Apps.  +Here’s some problems I encountered during the migration and how I fixed them:</p> + +<h1 id="microsoft-outlook--pop3--google-apps-migration-tool-lost-timestamps">Microsoft Outlook + POP3 + Google Apps Migration Tool Lost TimeStamps</h1> +<p>I finished my first user and hooked up IMAP. All the dates for messages were wrong. The dates shown after the migration were all &lt; 1 day and they should have gone all the way back to 2009.</p> + +<p>Apparently the problem is related to Outlook displaying the DateTime from a part of the message header that is updated during the migration. I found two solutions to this: +The first, was to use an email client other than Outlook. Literally any other client has no issues with the Google Apps Migration Tool - Mozilla Thunderbird, Apple Mail, mobile clients, etc.</p> + +<p>The second, for those that have users that are too used to Outlook to switch cold turkey, is to change Outlooks view to sort and display the Sent DateTime of the message header instead of Received(default). To accomplish this: +- click the Sort by Date at the top of your message list. +- click custom +- change Sort to Sent</p> + +<p>This view change is on a per-folder level, meaning you’ll have to do it on a couple folders. Depending on your user, usually Inbox and Sent is a must. +All future emails (not migrated) will have the proper information in the headers for Outlook to handle this under default settings. Hopefully Microsoft improves IMAP to handle this like other email clients do.</p> + +<h1 id="users-were-used-to-an-inbox-under-personal-now-the-imap-mailbox-is-a-separate-item-in-the-navigation-pane">Users were used to an Inbox under Personal, now the IMAP mailbox is a separate item in the Navigation Pane</h1> +<p>For this challenge, I made sure unused PST/Archives listed in the navigation pane were removed (AutoArchive) since users get boat loads of storage with Google Apps, there’s no need to retain copies locally. </p> + +<p>The next thing was to either hide or delete email messages on the user’s machine. I recommend hiding them in a subfolder until you’re confident the move to Google Apps is complete. +Next is to make sure when Outlook is started, it shows their IMAP inbox instead of their old Inbox. To do this:</p> + +<ul> + <li>Tools &gt; Options &gt; Misc tab</li> + <li>Advanced Options</li> + <li>Change which folder is opened when Outlook runs</li> + <li>Select the inbox under IMAP +After that’s done, I collapsed the whole Personal archive in the navigation pane.</li> +</ul> + +<p>This results in a Navigation pane that looks very similar to the user’s old one.</p> + +<h1 id="sent-items-need-to-go-into-gmail">Sent items need to go into GMail</h1> + +<p>Make sure their sent items are properly being placed in their GMail Sent Items and not a local folder or the copy Google Apps Migration Tool makes.</p> + +<h1 id="i-need-to-delete-imap-folders-in-outlook-but-it-says-permission-denied">I need to delete IMAP folders in Outlook, but it says “Permission Denied”</h1> + +<p>GMail only allows the deletion of IMAP folders through the web interface. For this, I suggest you login to the web interface and use Manage Labels to clean things up. +Manage Labels interface:</p> + +<p>As you can see, there’s a lot of garbage folders that one might not necessarily use that get copied in a migration.</p> + +<p>That’s all! Overall I’m pleased with the outcome and I hope users are too.</p> + + Sun, 17 Jul 2011 23:10:00 -0400 + http://blog.krisforbes.ca/2011/07/17/migrating-to-google-apps-standard-from-cpanel.html + http://blog.krisforbes.ca/2011/07/17/migrating-to-google-apps-standard-from-cpanel.html + + Google Apps + + + + + + Rails 3 on AWS micro: CentOS Nginx Passenger + <p>Note: This was tested on AWS using a micro instance and ami-6b608c02 which seemed to be the most barebones community CentOS i386 EBS AMI I could find. It works as a Micro instance out of the box without issues.</p> + +<h2 id="prepare-the-server">Prepare the Server</h2> + +<h3 id="update-the-system-and-install-required-libraries">Update the system and install required libraries</h3> + +<div class="language-bash highlighter-rouge"><pre class="highlight"><code>yum update -y +yum groupinstall “Development Tools” -y +yum install zlib-devel wget openssl-devel pcre pcre-devel readline-devel sudo nano -y +</code></pre> +</div> + +<h3 id="configure-time-settings">Configure Time Settings</h3> + +<div class="language-bash highlighter-rouge"><pre class="highlight"><code>yum install tzdata system-config-date -y +yum install ntp -y +<span class="c"># Contact NTP server and update current time</span> +ntpdate ntp.ubuntu.com +</code></pre> +</div> + +<h3 id="configure-the-hostname">Configure the hostname</h3> +<div class="language-bash highlighter-rouge"><pre class="highlight"><code>hostname my.specialhost.name +</code></pre> +</div> +<p>Write loopback IP and your hostname in your /etc/hosts file: +<code class="highlighter-rouge">bash +nano /etc/hosts +127.0.0.1 my.specialhost.name +Write your hostname to /etc/hostname +nano /etc/hostname +my.specialhost.name +</code> +## Installing the Application Stack</p> + +<h3 id="install-mysql">Install MySQL</h3> +<div class="language-bash highlighter-rouge"><pre class="highlight"><code>yum install mysql mysql-devel +Secure your MySQL install: +mysql_secure_installation +Install Ruby +Ignore ri and rdoc <span class="k">for </span>this server +nano ~/.gemrc +Add these two lines: +install: —no-ri —no-rdoc +update: —no-ri —no-rdoc +</code></pre> +</div> + +<h3 id="download-ruby-from-source-and-install">Download Ruby from source and install:</h3> +<div class="language-bash highlighter-rouge"><pre class="highlight"><code>wget ftp://ftp.ruby-lang.org:21//pub/ruby/1.9/ruby-1.9.2-p0.tar.gz +tar xvfz ruby<span class="k">*</span> +<span class="nb">cd </span>ruby<span class="k">*</span> +./configure <span class="o">&amp;&amp;</span> make <span class="o">&amp;&amp;</span> make install +Check that Ruby and RubyGems all were installed correctly: +ruby -v +gems -v +</code></pre> +</div> + +<h3 id="clean-up-the-ruby-source-files">Clean up the Ruby source files:</h3> +<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="nb">cd</span> .. +rm -R ruby<span class="k">*</span> +Install Git <span class="o">(</span>Good idea <span class="k">for </span>Capistrano deployments<span class="o">)</span> +yum install gettext-devel expat-devel curl-devel zlib-devel openssl-devel +wget http://kernel.org/pub/software/scm/git/git-1.7.1.tar.gz +tar xzvf git-1.7.1.tar.gz +<span class="nb">cd </span>git-1.7.1 +make <span class="nv">prefix</span><span class="o">=</span>/usr/local all +make <span class="nv">prefix</span><span class="o">=</span>/usr/local install +</code></pre> +</div> + +<h3 id="install-rails-and-passenger-gems">Install Rails and Passenger gems</h3> +<div class="language-bash highlighter-rouge"><pre class="highlight"><code>gem install rails +If you need a specific version of Rails: +gem install rails -v<span class="o">=</span>2.3.8 +gem install passenger +Install modified Nginx with Passenger built-in +passenger-install-nginx-module +Option 1 +</code></pre> +</div> + +<h3 id="create-init-scripts-for-nginx">Create init scripts for Nginx</h3> +<div class="language-bash highlighter-rouge"><pre class="highlight"><code>git clone git://github.com/xdite/rails-nginx-passenger-centos.git +sudo mv rails-nginx-passenger-centos/nginx/nginx /etc/init.d/nginx +sudo chown root:root /etc/init.d/nginx +Verify the script can start and stop Nginx: +sudo /etc/init.d/nginx start + +  <span class="k">*</span> Starting Nginx Server… +  …done. +sudo /etc/init.d/nginx status + +  nginx found running with processes:  11511 11510 +sudo /etc/init.d/nginx stop + +  <span class="k">*</span> Stopping Nginx Server… +  …done. +Add Nginx to startup: +sudo /sbin/chkconfig nginx on +Check that it starts and stops with the server by: +reboot +Install ImageMagick and RMagick <span class="o">(</span>Optional<span class="o">)</span> +yum remove imagemagick +yum install tcl-devel libpng-devel libjpeg-devel ghostscript-devel bzip2-devel freetype-devel libtiff-devel +yum install libjpeg-devel libpng-devel glib2-devel fontconfig-devel zlib-devel libwmf-devel freetype-devel +Download the ImageMagick Source +wget ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz +tar xvfz ImageMagick.tar.gz +<span class="nb">cd </span>ImageMagick-6<span class="k">*</span> +./configure —prefix<span class="o">=</span>/usr —with-bzlib<span class="o">=</span>yes —with-fontconfig<span class="o">=</span>yes —with-freetype<span class="o">=</span>yes —with-gslib<span class="o">=</span>yes —with-gvc<span class="o">=</span>yes —with-jpeg<span class="o">=</span>yes —with-jp2<span class="o">=</span>yes —with-png<span class="o">=</span>yes —with-tiff<span class="o">=</span>yes +make <span class="o">&amp;&amp;</span> make install +Install RMagick +gem install rmagick +</code></pre> +</div> + +<h2 id="create-a-deployer-user-recommended">Create a ‘deployer’ user (Recommended)</h2> +<p>### Add the user +<code class="highlighter-rouge">bash +useradd deployer +passwd deployer +</code></p> + +<h3 id="give-deployer-sudo-permission">Give deployer sudo permission</h3> +<div class="language-bash highlighter-rouge"><pre class="highlight"><code>nano /etc/sudoers +Add this near the bottom of the file: +deployer    <span class="nv">ALL</span><span class="o">=(</span>ALL<span class="o">)</span>     ALL +</code></pre> +</div> + +<h3 id="end-your-ssh-session">End your SSH session</h3> +<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="nb">exit +</span>ssh deployer@my.specialhost.name +Lock the root account +sudo passwd root -l +</code></pre> +</div> + +<h2 id="test-a-rails-3-app">Test a Rails 3 app</h2> + +<h3 id="create-the-testapp">Create the testapp</h3> +<div class="language-bash highlighter-rouge"><pre class="highlight"><code>rails new testapp -d mysql +<span class="nb">cd </span>testapp +bundle install +Enter your database password <span class="k">in </span>your database.yml real quick +nano config/database.yml +rake db:create:all +rails generate scaffold post title:string body:text +rake db:migrate +Check really quick that WeBrick can start the rails app before we involve Passenger/Nginx +rails server +Change the user Nginx runs as +sudo nano /opt/nginx/conf/nginx.conf +At the top of the config file, uncomment or change “user nobody;” to: + user deployer; +</code></pre> +</div> + +<h3 id="add-a-virtual-host-to-nginx">Add a virtual host to Nginx</h3> +<div class="language-bash highlighter-rouge"><pre class="highlight"><code>sudo nano /opt/nginx/conf/nginx.conf +Find the server <span class="o">{</span> <span class="o">}</span> block <span class="k">in </span>the default file and remove it. Add this: + +server <span class="o">{</span> +    listen 80; +    <span class="c"># server_name www.mycook.com;</span> +    root /home/deployer/testapp/public; +    passenger_enabled on; +<span class="o">}</span> +Restart Nginx: + sudo /etc/init.d/nginx restart + +Try accessing your testapp +In your web browser: +http://my.specialhost.name/posts +Tweaking Nginx/Passenger + +Enable gzip +sudo nano /opt/nginx/conf/nginx.conf +Find the existing commented “ <span class="c">#gzip on; ” and remove it and replace it with the following:</span> +gzip on; +gzip_buffers 16 8k; +gzip_disable “MSIE <span class="o">[</span>1-6].”; +gzip_proxied any; +gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; + +Longer expiration tags on content served by Nginx +Place the following <span class="k">in </span>your virtual host’s server <span class="o">{</span> <span class="o">}</span> block: + +location ~<span class="k">*</span> .<span class="o">(</span>ico|css|js|gif|jp?g|png<span class="o">)(</span><span class="se">\?</span><span class="o">[</span>0-9]+<span class="o">)</span>?<span class="nv">$ </span><span class="o">{</span> +      expires max; +      <span class="nb">break</span>; +  <span class="o">}</span> +Reduce Passenger spin-up <span class="nb">time + +</span>Place the following <span class="k">in </span>your virtual host’s server <span class="o">{</span> <span class="o">}</span> block: +<span class="c">#Passenger options</span> +rails_spawn_method smart-lv2; <span class="c"># This can cause problems with some apps</span> +rails_app_spawner_idle_time 0; +rails_framework_spawner_idle_time 0; +</code></pre> +</div> + + Sat, 11 Sep 2010 21:07:00 -0400 + http://blog.krisforbes.ca/2010/09/11/rails-3-on-aws-micro-centos-nginx-passenger.html + http://blog.krisforbes.ca/2010/09/11/rails-3-on-aws-micro-centos-nginx-passenger.html + + Ruby on Rails + + + + + + diff --git a/googlebaf70539e42d097e.html b/googlebaf70539e42d097e.html new file mode 100644 index 0000000..9420133 --- /dev/null +++ b/googlebaf70539e42d097e.html @@ -0,0 +1 @@ +google-site-verification: googlebaf70539e42d097e.html \ No newline at end of file diff --git a/images/original_tumblr_inline_o2yxw5w3mO1ri0chs_400.png b/images/original_tumblr_inline_o2yxw5w3mO1ri0chs_400.png new file mode 100644 index 0000000000000000000000000000000000000000..90048835f74d8f090385698ca00a714d262ef5b8 GIT binary patch literal 7168 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 eG1Az)z9;8hYk!g!T$>whjv~7 literal 0 HcmV?d00001 diff --git a/images/original_tumblr_inline_o8pzv0DwmT1ri0chs_500.jpg b/images/original_tumblr_inline_o8pzv0DwmT1ri0chs_500.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dd813b7ee969874b3748b18d6ce748a54c46b96c GIT binary patch literal 11636 zcmd^l2UL{HmTomUCjmjSfMki1p%EmB2#Sgd5+w_WAQ`#=K|q3lfFwadf(QtbgGi2o zl9NOM$xUh+Xu9Y3+;i?Z_r94~^WK{^Yv#S`)&2LbziRLLc2(`#wX5)B_*p=ASxZ+7 zz+eEtpbx-L0u4Y&@GJfLC4>?Y3DK`aMnXbNLQY0OK~6?aPC-RWML|hJNls2pPfbHh zM@LUbLB(*2f$kLapY9hE*sq#|L}XA!I!ba%DEEIe;Xea zSkUj^fc+CLNC_|kB1omAzi`0_yr3^3JrOaFBniXCYowNLr_M?Rkuj>ry)JDc=as&W zVzPSlje?m^W{!XR7qs7y{l|a>{~sayJFq`-O#muF7}R-$^Z*V{II;+k6hILC_E=?J zTOaX6s_m4&%YXN>ONm@XhXa;H8t}<&RJRTfKE1(%`JVvyH4_(Pj5ruF$KC^66Q}Ut ztMC@?=oub7%Oczu<=P|vds*0X#{^ULgpQo=iE$d@k{)oBB5-$W8CX;h#X*@Ws zMmkvx|9Q#_4+1ptpzSLRy%u{!^c@dot|7KPK)`>qn$!u`Qw1lC2a22DBne19B*oGo znf94au~?S9@)!QdCBDmr!@`L629;?tE>fS6of zIZ6CWFCOB-ztgLq+z0Jz-H5?qR z50q!7g4z?jG7o+m&V(7;uC39hn<{Trr53$idsf32ah>s&&3*X?i^#Q~PECEg>#Eu; zJ#=ZG+8+zIzbaFR#n@+(Aij#<#e+sk#CA6dKF@8_U=6Qf3GjT5Xt{)u#s&F~o*Y8+ zA?6w$&=ZQ`?ws^sTh_`$aAyRXGWV!P8n=4Qv5z9WgOb|Ju4PU&_NvzDz~|ohv*Ll; z7bhIH4G%hm5Um$`PF0EG7IBvQ6KaUxg~HM8;y49u>?QW99J>SYUDD{hudB+m+q@dv z>&b2_%vB#MUTSdHXqtxgNmj(ZF7e`<7d`L0^r2fXxmIgvwY|8-wQ&KxfU9l9J#qS} zuk-uN|Lvh@K0APz;X2~~2`R<1sQ9jTg5HP9)XhQtRMs57XU;0cSCT2dh0l3XH1i1$ zFz661gx$+KYwUstBl8Jmx0KQFa0JV2dE~@GlW}rtXhlWnmqC*;rbzoznPh5KPeYF9 z7rBz-yLeTZkgSGYF^wZFjsyChtcBhO3ygXJ#Klh^1rKZ)i9D3)lD<%SDorfJ+P~Yf z#lI-M)iYCqK*f0f#E0CuWdFp)Paw>;ruyr8ZhexjfVW|1pF~?}AHs_Z_sl#iS2EKv zzP}~HjlF=4zm{W*P3Lq_*UcYaiFP{&9ll=v!R+Ha_WbR|lX*|&*mk7I_bIap`!gAR zX=l2;=xV*0o>x1-tg`aCxu1$lX$t!Z40Yl8E(TDQ7XTSdIs*n7q!QEg6y;sg6_99S+KDd=_c-0U}&Cmvm|!T5Co(aiI3P&Z>;xnD>s zr{Md?xOQ501{F<0zRGPx1e;-LX$|U0ew7PR0&ivKi{}cW+35^!8(WvZgLNUKAxw=J zFoHiGBw7i0a2^l#=ScUnXn5~#&qT{KvYEDUJ#o!L%?G?1P^zeq3dDon=-d}X=hRSCgKDWAnsDww2L#Z$WHeCHLu(D2cRzXq1FnC=rr zkQc8J^GHZUz1ex!KO$jXuC>mO$FIO!Q|Fa@tAlgylu`>{+@-k;z39%+aW)pXkg`RQ zfEVRH9w6DO9_6NObIqGZCClO1{OmVxawL}fy{Q!5z9VrSHX})Wp?S_T{dJ#grN|NX zc7lJEA{R?z^laTWaeGMdYN@8(8~%+by77x=RiMVs|e zcQd}S>~LGb*OnfFD&(&90Ubra`=A344herkiaZIxgKX+Rr+Gz}P+H?d-VnAjv*K`smNvLReK^lS?(vV>l9Udz0)NfALUHO2 z2bm8#uY4yh1SaAtbt@#ixfJ*sufVFNYefuu7Oq~Eb=EfU>q4Z-c+5?CjrsGayw~0! zQMgWgp69uU^maXa^H@=DCh4yL@)9!Jd!N=ho_*u8U-vBFm(WHPCe&+17ed8YgxI`FTl%T%&PESwIoQt(f&wmWc0)rO?;W7do<~Y(O2n8(uIR ze5{>qj_BCvIC+dXAsb!o@HxDP2eg7GZxG8p&0HAKWITv9g#GJTLVqg-|F=sK;6Y0l z9@rPveQKFww`0ZiCPQ|*aR_9hc48+4aQ^i?co5u$!0ZD;9L2TcOPPm{P)~7`{CKc1 z1j|Lt=E2LuCLi3!$eplmzbILfGG!Wn6ugOQ_-r$w7$7fP@dS!5kp z#sl;V4w)HZ#B8N2PDKqs>@x!gY9^qp`$rBR5!k@p&mCBF7O4Rq5G$U%wT-xx>J`GI+-A{oCGFh@ z*Tao}4WV>2fyv-Q7Jl2(#;vp?D}QjGk3zN$f?@I21sXk4C`1{A5 zRlUDSqQe#(tTStH!$8OUR#RKzABEWMT4}?)%oGOKowbTMqLMy-QIdSpU9=?oP}OE- z&0M@ST?zL=EB(fy!o6eku0)CUBww)`7wU^K|6f_^UyW#U}@FOxj z=t3M@90hOwGkd7t>Bgan@SA{1(xKCCh`H1fXz6zg!2>{x2khB6o{!MviNz-4$O0~U zDIvnRs9aPzzvSzwen_5ixjpnCq-Xr2S0Ved*NVA8i?S5Pr~e=w+vQO?x@)^9u^MZn zevE^=z}E^Pu3DeUSK#0$puK6IlDC+4d~Rlxec) z)RgWSEs#Flm(14{2 zlRfjQv%WZ=1J6tB=xJ)o&M&3ehkBQ$7`kDEPF6_iy{*Vp*2sbWR!$bDH6=kAOm@(s z6fc`Ml|c<3zj5F)uZ4b2SPR`Fn27&1)Qi;(zgc~$#c_(f6iXW3F8<*4@jeq+jN4*K zx0gf~1q!Qy3T-tUH}gK%#Gr>9WjIMX`!4Kzwi45g2PaEiG`*)jvMwR{YqqzLGL1~D z2NIZDEvADm#Q9}y>7G4wF{1M09|-h_MLqMaSY}DufVTU#OY_#X!DU=~Jewc?(AV6v zFRWH+g>5uo*w=G9FiXt+Drb{i<|ODlpm(X@2A= zJCTCocw?&hn5ku|qTc;#Z(LAD|Bgl6!DV&}3GOAN0!G>Ibq0eIB_7adt8_(foPF6u zDIt|YQTnKE=ZvO8pLTo}9mfZl@63Ghi&Xu}R zGUlH%k#Pd!n}NM!L4WWvQg*>ri#(0VwZ25 z_PG18lp)&`yo0%(6Hn=~g)M}30t+i7f7-lUs0(lK6h@Wo2{WCE=+gA`ol9Np;R6|+ zL@Cs#yJrN)<3fUgh^fCCYH}^_dKF45jU%Nrcy#@lOBO+uWaqjbbI;3f^Sgjb!wxKS zGylNE&fTm^6)_;2Y!j{AF=36)sMIT`Wvy=SPkbhoDa!GzN@UkveRzyBa=|%}8)G(o zpi^6i`r#YwfWG$GswUKo0qT@US=(6NK)&dg{w=DO3M5E*k-{f_PyO^)=$k0UW*6f2 z`rI}mJuN&D1TMwAm>CrM(u**2CI?ZnbI7WbI)-Hlf zg_gk}RuHl+{}HLsg30GQb3%0g1m29K#pvue9+7n&Awt1_y%gr+&;O}HHG}8=s_VCY z$iL`E=?E$@ z_w~*`yy~^^7C3ZmOE-HNO<#Oxe=s_7I^Im5#eQD*f&bVOw-$P$5Jt-!mcxtP9}I6$ zfR|WP)Qif4>y5#@VVkp4Us%FZ#gAA1xL=@Yw@jo!SW@UIr*FHHpTaP)(p|Tn-`}{ z%QmSp`jZzer68-raS-dz=JVQoMR(5a!TIHQ8yztoHnL-#sKWb}!3GSAA;dd9pe>(} zp`{JSIIy=N_1Rm?WVyUL+GR17%uAo%d;Ht&s7hIR8ZEbTQ`@PaGzYVMrTk1o!%`6A z$bs~|ervj_C=JRkMkiLuQVZF7o64Q~C|ji50wx-T?OYQNvNZ8=F*A;Ew&d+OR#!Y5 zJJ+hi7}rA|^1St%om19e0RvVOl~In?)<Umq?nA?nymM-33Yu^XD789n=zcpV>0b

E*(V-dZy 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 E0Ii{chyVZp literal 0 HcmV?d00001 diff --git a/images/original_tumblr_inline_o8q0btElj21ri0chs_500.jpg b/images/original_tumblr_inline_o8q0btElj21ri0chs_500.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a6b036141fc39308944da2d35f83d74a5789c656 GIT binary patch literal 19746 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 + + + + + + + + Kris Forbes Blog + + + + + + + + + + +

+ + +
+
+
+ +

Posts

+ + + +

subscribe via RSS

+ +
+ +
+
+ +
+ +
+ + + + + +
+ +
+ + + + + diff --git a/robots.txt b/robots.txt new file mode 100644 index 0000000..c2a49f4 --- /dev/null +++ b/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Allow: / diff --git a/tumblr_files/tumblr_mjnqvdcCJ91s8wazuo1_500.jpg b/tumblr_files/tumblr_mjnqvdcCJ91s8wazuo1_500.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2a47aeb49d393871c93df003afd728c3c67d0630 GIT binary patch literal 42490 zcmeFXby!?Y(>HiVaCawYut0Ek2r{_4y9_P?LU4Ca(BLj1xP<_LAi*VQkl+$QgYM+M zpZj^=Pu}m_y>|DHy{>II=lrI-y1Kfnx=&TjJbZar2XJ9>igEx51OgNgf55{g*{!0C zjG4Nonw+BYGeiRbkR4gLxjBPz0RZme<)JArO`~sMNQ1Hrpa9qa5r7L|T3C6yNvW$V z1OH{YmXXKmwY1ppv*M6;!}rxhH5n*abTZRO_S1ptsMME#_% zmm2~@KOr!o2SPvuUipLV{>DH4V9UQS67(+`ZA}>fKq3VIR7?vC4?6(BVnEc>_*mH? z_+ZHb05ZOdwSx-)5a=VYxRt$yHDWDZA!we!;jVx100J{x{wF?m{|Q@ISpJ)*g@xU} z@!xYn^h69S>)`3;Y~lCUhyN#UaA$ACdi_=K5qC@%XVpKtAx2z#))ul#h$kiDx_5K_ zOJ@ig5V?(ujuxWs4}RiesjBubEN<%|r-{Ibz94lsFX=xRv1TA!H!pSVf7QSAx0g{x zU`#}Px{c?vfB3v{w1EB588)K6(ZgF)2Z0$7xYyH1>lp$gEDH3^-(FkqUo>adHnRV! z2ZL=LcqKToHX-5t!y*bTa=#joe@T>=6C_TaGk<6@u3L-(&tg8VzF1 ze|S0o)(HGhy#->7KW%@c^E7h^{f{yKq4>k^FKIZdIrlkl|B(s$7|IRhgGxiipyE&= zfCfqoB?s7{yih@?6jTB#f@l*0QFO85ctXR?$;I`j z`TsNJ&zbeNu&0`TokbwxiT|i`MNCHM&lwZ;A9dy@0MP1)*rxdZQTMnN0C2bgU^vUl z+r#H?e$YP;Bmf=2L0BjmKn>6X%!qa72KWIHKoWQczyLKs8!!M&5%yz`ut5*N7kB}L z0Fgi(kPKu1*+2nM3{(KMKqJr!bO9fLL0}Y^1m=KcU>(>74uK!Q1#p8nq)|XvAOa8> z=n;q!#0KI934+8y&p^r`O^^Y|9ApP_0eOR7fWkm=pj1#cs1Q^MdJAd?eEbh#|BPc8DNE2BHQrgxEqnATJ@YkW5Gsqz=*n8G_6})*(lb-%w;I0h9*H zj<8b&s1DQ$>JEJgjfZAKE1)gV0q6{L1NsAckA#IpiNuB^jHHO9k7S4Bixi2JiByKv zjPwy{4rv?d0vQ>Z7?}xK09gUq0ND{a0688x54j$>7kLVK3;7%c1%(WS4Mhw^4aEY* z3ndceHA)T2dz5LEZImli4Ae)c+^BM>hNv#6p{SXtRj56v)2O?sH)yzMjA+7WYG~GI zerQQ(C1@RJ6KLCLH|TiiOz2|h+USnxA?UBr>(D=0yuxU} z_=K^6@f#B#lND12(-_kmGZC{Kvlnv_^ArmU>oJxjmLZlGRw7muHQ6Cx8b5h@Zo z62=kM5{?u8Ai^i&CDJ8&PLxB`O|(u7A%0A(NbF3UMBGR`Pkc>6MIuFFLlQ$$M>0)v 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

D2{=7h5go>DcL?N+10zb|mcwqIj zdU{|M^#&hN!21b6r{?EcHc}C;Ip2q&+QOpVwSgq**0v7lB%6}jtJ9vRgq$9gJS(S+ z9xDO-kv&}B|7L}U__6&x7!D%FMDL%V^Rs>@dC~+$4x2U#>4$|!Q+Nl{L0`P{GofX7 z?=)>qUWG4=>=UGk+MI&=MCe*Ru6~Cu>G7WNj_1d98_gd_Mds;tNi3)ohX>9k+D3B@XV9V4E@m~fs|GKQyJFl zTs(H+@|Q~fazZIsJ5mWDwQqeIJ|+rw|JDNeg{ZnS5G+n6Of{E0PkuPx0c)U%xhbvo z{l3{aCmZv>J{Ez$-I=U(^*9svX4hV=dxci_)JQmLAcX?mRmXS{spk|7p zTbnj?^KBr*`0EYR2J#DfD{ZB7L_CVepGb?nkF7^a_f7}2dN=51ybOd4+eax=H!1KO zxoO7Ki9zO|XIZw=Hd15WSNfcAC9If1zE=#3?+`eX^ni%viwXShKljW6q2TS5O#ZmN zKXj(b*VOo&^yPCy@Rg2wuO-)W$)zAmV?o#s#sJb{oO#P(U|4$eB13=+C^ldwW5^QX ztr?QlXw7jQEJP3D+cF)Z+h%$)@o;sUZIAQtdsFMRLpy5+;m`|7tO1-~U9U?=x@xRS zNFX;ivb8ksz6qMcQW;Y0?oBks%=!jtB$`lMu@4&YwqCK48zY+t9G>SKMSE;p0@n@$ z_|Hd3A2m5l9nsW)|8R@63^szp!+(cM(p>ic%gGd6uh`ssZV3rlX_LNzkq!{RfJAdn55>z3&njsqJYdLyhu2c2n-`f%wNw1N z2^!*=vowF>bXFK)c8Sv>PCh0)+WpnHE8ndd7oF?^J8Y#!ngYslI%WK0y$6@~O=Cwz zepOz~zXeyB6dQoj8|+F`tqgAoF8`tH{jGR@p^ep#dS&Gj^0Nc%{Z%#KeTo=KGrkGK3xPIt60X3zr1Fid6R60mO|F` zyY(t%Wt5&~;JBC#p;1goM2VfDckO>RME`u5uz+p~(nxL5n95^@lbV;{Tz+L-V_q5D z(A7d+wO%W(zPT!xy06h8McYK*eWuuDCpBZVFxH5g*O|Pe*vbr+y!(gFZVK*PsT>-h zEVZ9u#!7dfTwP@kD|c6!=JGqDa5ksYv{33;ON=%hG#sdNEaGaG(RzWb;725Sr}1px zW`$d4RM3`#x*hduI|PgNkw0qxXdWe)IOEE!t_TCWLVR z;d{y8k{zB0_XTgRn{=8X%+r6&uzYqlv3Ksot8}lfbQ^Rje4=D0+!6t^J!x1NWjr{V zOapXUsoXM#;)g>5eR3%QM070|JO_)uE_$r0qfWO$C3;nb7f?Sukxy$b|GtQCbNFR{ zIkXQwFh&iZ1(8i_jPs&;wCIT~8Cvl`7;I}O1En3Ygmd*eb&gy}`E;4Z;W9#qUa@1vV8j}`OKnXRBG@{$J=n67xT%-@fk|>xW^{tdIFC*&k8p| zulFYc?xwco-)>{CS1^J_y-Srk>ZsOgVI;P4aG@U?PEeL#KVkP1(Hod8JTq^eh_aWW zD)B^lVcC@~zPp$){gy*dy%!U$1o~BIUbaX-_`ZY5=$4?w9kf(a-8t^3L0Orj$CDOs zQgrB$4G{&Gl~0mkGUUF7KxQ@pD=QsyLH1{pZR)CzDjnWYD<~ToGP|;0t^%^{%|{77 zw2`^5#$-pUOXvblh}{cn?L|_tcg2bQ)P)zwVw5ac`*=!+Kvp7ANR9{CvD3F%Zy-#o zmjr^}-X;uGEwLKUW*9CX+!@}%%T^!wE~Jwtf`TVr$KT#c>r^#)rRlQc!D|@gW_Df{Vngs+*0dJhxNU3!u7n%{f*v zF^$`|chFqS5hw3#NXU!6ugV-ZJnYCBJH4Ldbx06ToKj3&IlmCiehiLjUElGDs=u*X z{J5UdXR`2&E`z6Z+!_d@6a2j`OspG#cOB8<<;$Ba!fWbp{-Hw_|1xie?^79&xVIEh z`qRqsuq~Q8U-FO43-pAyTF>|D-zIqke6eDJsGM-sv9^m|EW&cz5*a4#t~Jo~L|+BT z1m5fh49kK$%bXnQ_0V@fCaoyu{b1kqNXy`f-6V7KAS$IyqC!(q`(-dw_aWe|CmT({ zr{(9S`>P%+E1xAa6f{w1GxE~xN(hJ83J7o+{f`$2lQ|ZBrCMm-zP0N$s1;Znw=Kr? zbS|wKZoan37B2FjHhFF|QjoYYtHoeU3|MXS(@NC5%{SZpatx0z!i>`&JBG)5MV)8y zguHQgY@V+`>S^4t{%GKPc^ZOO@wM~_(1To_;cUsyCQS!0(mVjKkPqv;^n^>as;zw? zaCRgoqr23MJSKL`B^bapp(ae)+|ecIH#cWW

71(*lDQuyVsAT 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