<?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>James Emmrich &#187; Web Development</title>
	<atom:link href="http://www.lwp.ca/james/category/web-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lwp.ca/james</link>
	<description>Just another motorcycle linux geek</description>
	<lastBuildDate>Sat, 19 Jun 2010 03:25:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Using Git to manage online website projects</title>
		<link>http://www.lwp.ca/james/2010/03/using-git-to-manage-online-website-projects/</link>
		<comments>http://www.lwp.ca/james/2010/03/using-git-to-manage-online-website-projects/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 20:25:33 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[ProTip]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.lwp.ca/james/?p=522</guid>
		<description><![CDATA[I have recently been getting into using Git for my more complicated projects. After a bit of google foo, I came across some references to using Git to push and pull website updates. This post is my way of remembering how I set up new git repositories. I did not &#8220;figure&#8221; this out myself, but [...]]]></description>
			<content:encoded><![CDATA[<p>I have recently been getting into using Git for my more complicated projects. After a bit of google foo, I came across some references to using Git to push and pull website updates. This post is my way of remembering how I set up new git repositories. I did not &#8220;figure&#8221; this out myself, but I have linked to the originator. But I did modify it slightly.</p>
<p><strong>Related material:</strong></p>
<ul>
<li>This is one of the websites that I used as a reference, quite a bit is the same, even the borrowed graphic:<br />
<a class="linkification-ext" title="Linkification: http://dmiessler.com/blog/using-git-to-maintain-your-website" href="http://dmiessler.com/blog/using-git-to-maintain-your-website">http://dmiessler.com/blog/using-git-to-maintain-your-website</a></li>
<li>Some basic information on Git usage<br />
<a class="linkification-ext" title="Linkification: http://www.kernel.org/pub/software/scm/git-core/docs/v1.2.6/tutorial.html" href="http://www.kernel.org/pub/software/scm/git-core/docs/v1.2.6/tutorial.html">http://www.kernel.org/pub/software/scm/git-core/docs/v1.2.6/tutorial.html</a></li>
</ul>
<p><strong>First how it works</strong><br />
The server has the htdocs of the live website as well as a htdocs.git as the central main repository. Everything will be pushed there, and once completed, automatically pulled into the live website. The structure is as so:</p>
<p><a href="http://www.lwp.ca/james/wp-content/uploads/2010/03/git-tree.gif"><img class="aligncenter size-full wp-image-523" title="git-tree" src="http://www.lwp.ca/james/wp-content/uploads/2010/03/git-tree.gif" alt="" width="263" height="316" /></a></p>
<p>Install Git on all systems, I use Debian.</p>
<p><span style="font-family: courier new;">sudo apt-get install git-core</span></p>
<p>On the server enter your websites htdocs:</p>
<p><span style="font-family: courier new;">git init</span><br />
<span style="font-family: courier new;">git add .</span><br />
<span style="font-family: courier new;">git commit -a -m &#8220;Initial import of project.&#8221;</span></p>
<p>Now we want to clone this repository.</p>
<p><span style="font-family: courier new;">cd ..</span><br />
<span style="font-family: courier new;">git clone &#8211;bare htdocs htdocs.git</span></p>
<p>On the local system now:</p>
<p><span style="font-family: courier new;">git clone ssh://<a class="linkification-ext" title="Linkification: http://root@lwp.ca/full/path/to/htdocs.git" href="http://root@lwp.ca/full/path/to/htdocs.git">root@lwp.ca/full/path/to/htdocs.git</a></span></p>
<p>On the server:</p>
<p><span style="font-family: courier new;">mv htdocs htdocs.backup</span><br />
<span style="font-family: courier new;">git clone htdocs.git</span></p>
<p>Note: htdocs.backup can be removed once the system is setup and working.<br />
<strong><br />
Final updates to the server</strong><br />
Due to the clone process, file permissions and ownership are now all root. So use the htdocs.backup to figure out what the file ownership/permissions were. Make sure that your new htdocs and all its sub files are back to normal.</p>
<p><span style="font-family: courier new;">chown -R vu2000:vu2000 htdocs</span></p>
<p><strong>Prevent the versioning of useless files</strong><br />
In the server repository edit htdocs/.gitignore, and make sure we do not back up cache directories and backup files *~ and config files. Do not add trailing slashes as this will prevent the exclude from working. Prep-ending slashes means the root of the git repo. By placing the .gitignore here, it will be part of the repository so anyone else working on the project will be using the same ignore rules.</p>
<p><span style="font-family: courier new;">*~</span><br />
<span style="font-family: courier new;">/wp-content/uploads</span><br />
<span style="font-family: courier new;">/cache</span><br />
<span style="font-family: courier new;">/users/uploads<br />
/configuration.php<br />
</span><br />
Now because we issued a &#8220;git add .&#8221; we should untrack files we don&#8217;t want to send back and forth.</p>
<p><span style="font-family: courier new;">git rm &#8211;cache configuration.php</span></p>
<p>Now when we do pushes and pulls we don&#8217;t have to keep updating our config file every time. We should make a backup however so we always have a copy.</p>
<p><span style="font-family: courier new;">cp configuration.php configuration.php.live</span></p>
<p><strong>Protecting the source</strong><br />
Also, place a file in all .git folders called .htaccess containing:</p>
<p><span style="font-family: courier new;">Deny from all</span></p>
<p>This will prevent visitors with crafty google foo to download and view source code files.</p>
<p><strong>Auto updating Live site</strong><br />
Now to enable auto updates when updates are pushed from offline dev machine to server.</p>
<p>On the server in our <a class="linkification-ext" title="Linkification: http://htdocs.git/hooks/post-update" href="http://htdocs.git/hooks/post-update">htdocs.git/hooks/post-update</a>, make sure it contains <strong>only</strong> the following:</p>
<p><span style="font-family: courier new;">cd ../htdocs</span><br />
<span style="font-family: courier new;">env -i git pull</span></p>
<p>Then make it executable</p>
<p><span style="font-family: courier new;">chmod +x post-update</span></p>
<p><strong>Done, now test</strong><br />
Now on the development machine make some changes and test.</p>
<p><span style="font-family: courier new;">touch &#8220;new file&#8221;</span><br />
<span style="font-family: courier new;">git add .</span><br />
<span style="font-family: courier new;">git commit -a -m &#8220;Testing first update&#8221;</span><br />
<span style="font-family: courier new;">git push</span></p>
<p><em>Yay! Everything should be working!</em></p>
<p><strong>Notes on usage.</strong></p>
<p>Updates on dev machine can be pushed to server like so:</p>
<p><span style="font-family: courier new;">git add .</span><br />
<span style="font-family: courier new;">git commit -a -m &#8220;This is an update&#8221;</span><br />
<span style="font-family: courier new;">git push</span></p>
<p>If changes were done on the server from some reason, navigate to the htdocs folder and run:</p>
<p><span style="font-family: courier new;">git add .</span><br />
<span style="font-family: courier new;">git commit -a -m &#8220;Changes made online&#8221;</span><br />
<span style="font-family: courier new;">git push</span></p>
<p>Then on your dev machine pull the updates.</p>
<p><span style="font-family: courier new;">git pull</span></p>
<p>If you need to check what has happened since the last update:</p>
<p><span style="font-family: courier new;">git status</span></p>
<p>Merge one branch into another:</p>
<p><span style="font-family: courier new;">git checkout master<br />
git merge myBugFixes</span></p>
<p>Delete your old branch:</p>
<pre>git branch -D myBugFixes
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.lwp.ca/james/2010/03/using-git-to-manage-online-website-projects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Automatic database backup via script</title>
		<link>http://www.lwp.ca/james/2010/02/automatic-database-backup-via-script/</link>
		<comments>http://www.lwp.ca/james/2010/02/automatic-database-backup-via-script/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 19:13:16 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[ProTip]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[Scripts]]></category>
		<category><![CDATA[Tips 'n Hacks]]></category>

		<guid isPermaLink="false">http://www.lwp.ca/james/?p=475</guid>
		<description><![CDATA[As mentioned before somewhere in my blog, here is the script I have written to back up my databases. This is actually my local backup script, I have a much different one on the server which uses a passwordless ssh connection to backup the databases offsite. #!/bin/sh # Database backup 2008 &#60;jemmrich@gmail.com&#62; # Nightly Usage: [...]]]></description>
			<content:encoded><![CDATA[<p>As mentioned before somewhere in my blog, here is the script I have written to back up my databases. This is actually my local backup script, I have a much different one on the server which uses a passwordless ssh connection to backup the databases offsite.</p>
<pre>#!/bin/sh
# Database backup 2008 &lt;jemmrich@gmail.com&gt;
# Nightly Usage:
# 0 0 * * * /home/james/Dropbox/Home/mobilewolf/scripts/backup.sh &amp;&gt; /dev/null

LOGFILE="/home/james/Dropbox/Home/mobilewolf/databases/databases.log"
BACKUPDIR="/home/james/Dropbox/Home/mobilewolf/databases"
STARTTIME="$(date +%Y-%m-%d-%r)"

# MySQL Login
SQLUSER="sqluser"
SQLPASS="sqlpass"

# Dump databases
echo "*** Database Backup Started: $STARTTIME" &gt;&gt; $LOGFILE

# Keep yesterdays databases
rm -f $BACKUPDIR/yesterday/*
mv $BACKUPDIR/*.gz $BACKUPDIR/yesterday/

for i in `echo "show databases" | mysql -u $SQLUSER -p$SQLPASS | grep -v Database`;
do
 mysqldump -u $SQLUSER -p$SQLPASS $i &gt; /tmp/$i.sql
 echo $i &gt;&gt; $LOGFILE
 gzip /tmp/$i.sql

 # Send Databases
 cp /tmp/*.sql.gz $BACKUPDIR/

 # Remove our dumps to keep us clean
 rm -f /tmp/*.sql.gz
done

echo "*** Database Backup Ended: $(date +%Y-%m-%d-%r)" &gt;&gt; $LOGFILE
echo "\n" &gt;&gt; $LOGFILE</pre>
<p><strong>Setup</strong></p>
<ol>
<li>Change the user and password to a user that has ability to access all databases for dump</li>
<li>Download and set executable permissions chmod +x backup_databases.sh</li>
<li>edit cron to execute every night: crontab -e</li>
<li>add: 0 0 * * * /home/james/Dropbox/Home/mobilewolf/scripts/backup_databases.sh &amp;&gt; /dev/null</li>
</ol>
<p><strong>Ideas for your setup</strong></p>
<ul>
<li>The line following &#8220;Send databases&#8221; replace cp, with scp to send the databases to remote server. You will need to have passwordless ssh connections setup.</li>
<li>Have the log file emailed to you once completed</li>
</ul>
<p><strong>My Future Improvements</strong></p>
<ul>
<li>Enable backup archiving for the past week rotated daily so I can go back to a database from 2 or 3 days or even a week ago</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.lwp.ca/james/2010/02/automatic-database-backup-via-script/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MotoPicks.com Launch Press Release!</title>
		<link>http://www.lwp.ca/james/2009/09/motopicks-launch-press-release/</link>
		<comments>http://www.lwp.ca/james/2009/09/motopicks-launch-press-release/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 18:32:54 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Motocross]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.lwp.ca/james/?p=442</guid>
		<description><![CDATA[Well finally we have launched MotoPicks.com which is a fantasy motocross league for all that love motocross/supercross! The first event is the US Supercross Open and it is FREE to play. We have lined up some great prizes from AXO, Smith Optics, Thor, Answer Racing, and Monster Energy. Below is the official press release: FOR [...]]]></description>
			<content:encoded><![CDATA[<p>Well finally we have launched <a href="http://www.motopicks.com/">MotoPicks.com</a> which is a fantasy motocross league for all that love motocross/supercross! The first event is the US Supercross Open and it is <strong>FREE to play</strong>. We have lined up some great prizes from AXO, Smith Optics, Thor, Answer Racing, and Monster Energy.</p>
<p>Below is the official press release:</p>
<p><img class="alignright size-full wp-image-443" title="motopicks_logo" src="http://www.lwp.ca/james/wp-content/uploads/2009/09/motopicks_logo.png" alt="motopicks_logo" width="399" height="77" /></p>
<p style="margin: 0in 0in 0pt; background: white none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; line-height: 15pt;"><strong><span style="font-size: 10pt; color: windowtext; font-family: Arial;">FOR IMMEDIATE RELEASE<span> </span><span> </span><span> </span></span></strong></p>
<p style="margin: 0in 0in 0pt; background: white none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; line-height: 15pt;"><span style="font-size: 10pt; color: windowtext; font-family: Arial;">Contact: </span><span style="font-size: 10pt; color: windowtext; font-family: Arial;">Mark Perrin</span></p>
<p style="margin: 0in 0in 0pt; background: white none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; line-height: 15pt;"><span style="font-size: 10pt; color: windowtext; font-family: Arial;">(519)-384-1067<span> </span></span></p>
<p style="margin: 0in 0in 0pt; background: white none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; line-height: 15pt;"><span style="font-size: 10pt; font-family: Arial;"><a href="mailto:mark@mpisportmanagement.com" target="_blank">mark@mpisportmanagement.com</a></span></p>
<p style="margin: 0in 0in 0pt; background: white none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; line-height: 15pt;"><span style="font-size: 10pt; font-family: Arial;"><br />
</span></p>
<p style="margin: 0in 0in 0pt; background: white none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; line-height: 15pt;"><span style="color: windowtext; font-family: Arial;"><span style="font-size: small;"><span> </span></span></span></p>
<p style="margin: 0in 0in 0pt; background: white none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; text-align: center;" align="center"><span><strong><span style="font-size: 18pt; font-family: Arial;" lang="EN"><span style="color: #333333;"> </span></span></strong></span></p>
<p style="margin: 0in 0in 0pt; background: white none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; text-align: center;" align="center"><span><strong><span style="font-size: 18pt; font-family: Arial;" lang="EN"><span style="color: #333333;">MotoPicks.com Launches FREE Supercross Fantasy League</span></span></strong></span></p>
<p style="margin: 0in 0in 0pt; background: white none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; text-align: center;" align="center"><span><strong><span style="font-size: 18pt; font-family: Arial;" lang="EN"><span style="color: #333333;"> </span></span></strong></span></p>
<p style="margin: 0in 0in 0pt; background: white none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; line-height: 15pt; text-align: center;" align="center"><span><em><span style="font-size: 13pt; font-family: Arial;" lang="EN"><span style="color: #333333;">Pick Your Team For the US Open of Supercross and Win Great Prizes </span></span></em></span></p>
<p style="margin: 0in 0in 0pt; background: white none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; line-height: 15pt; text-align: center;" align="center"><span><em><span style="font-size: 13pt; font-family: Arial;" lang="EN"><span style="color: #333333;"><br />
</span></span></em></span></p>
<p style="margin: 0in 0in 0pt; background: white none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; line-height: 15pt;"><span><strong><span style="font-family: Arial;" lang="EN"><span style="color: #333333; font-size: small;"> </span></span></strong></span></p>
<p style="margin: 0in 0in 0pt; background: white none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; line-height: 15pt;"><span style="color: #333333;"><span><strong><span style="font-size: 10pt; font-family: Arial;" lang="EN">(September 29, 2009)</span></strong></span><span><span style="font-size: 10pt; font-family: Arial;" lang="EN"> MotoPicks.com has been launch with its first event, the US Open of Supercross! Fans can sign up and PLAY FOR FREE to win motocross prizes from AXO, Smith Optics, Thor, Answer Racing, and Monster Energy! Sign up and select your riders today! Oct 8th is the deadline for the US Open of Supercross.</span></span></span></p>
<p style="margin: 0in 0in 0pt; background: white none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; line-height: 15pt;"><span><span style="font-size: 10pt; font-family: Arial;" lang="EN"><span style="color: #333333;"> </span></span></span></p>
<p style="margin: 0in 0in 0pt; background: white none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; line-height: 15pt;"><span><span style="font-size: 10pt; font-family: Arial;" lang="EN"><span style="color: #333333;">MotoPicks has made it easy to pick your team and become your very own race team manager. All you will need to do is register an account so we know where to send your prize. Once that’s completed, simply select then series and event you would like (the US Open) and all that’s left is creating your teams name and hiring and firing your riders as you receive a 1,000,000 budget! </span></span></span></p>
<p style="margin: 0in 0in 0pt; background: white none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; line-height: 15pt;"><span><span style="font-size: 10pt; font-family: Arial;" lang="EN"><span style="color: #333333;"> </span></span></span></p>
<p style="margin: 0in 0in 0pt; background: white none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; line-height: 15pt;"><span style="color: #333333;"><span><span style="font-size: 10pt; font-family: Arial;" lang="EN">The top ten teams who scores the most points at each event will be sent prizes courtesy of our sponsors <span> </span>AXO, Smith Optics, Thor, Answer, </span></span><span><span style="font-size: 10pt; font-family: Arial;" lang="EN">MPI</span></span><span><span style="font-size: 10pt; font-family: Arial;" lang="EN"> Sport Management, MotoHeaven.net and Monster Energy.</span></span></span></p>
<p style="margin: 0in 0in 0pt; background: white none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; line-height: 15pt;"><span><span style="font-size: 10pt; font-family: Arial;" lang="EN"><span style="color: #333333;"> </span></span></span></p>
<p style="margin: 0in 0in 0pt; background: white none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; line-height: 15pt;"><span><span style="font-size: 10pt; font-family: Arial;" lang="EN"><span style="color: #333333;">Join in the racing action and see how your fantasy team will place!</span></span></span></p>
<p style="margin: 0in 0in 0pt; background: white none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; line-height: 15pt;"><span><span style="font-size: 10pt; font-family: Arial;" lang="EN"><span style="color: #333333;"> </span></span></span></p>
<p style="margin: 0in 0in 0pt; background: white none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; line-height: 15pt;"><span><span style="font-size: 10pt; font-family: Arial;" lang="EN"><span style="color: #333333;">Good Luck to All Participates! </span></span></span></p>
<p style="margin: 0in 0in 0pt; background: white none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; line-height: 15pt;"><span><span style="font-size: 10pt; font-family: Arial;" lang="EN"><span style="color: #333333;"> </span></span></span></p>
<p style="margin: 0in 0in 0pt; background: white none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; line-height: 15pt;"><span><span style="font-size: 10pt; font-family: Arial;" lang="EN"><a href="http://www.motopicks.com/" target="_blank">www.MotoPicks.com</a></span></span></p>
<p style="margin: 0in 0in 0pt; background: white none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; line-height: 15pt;"><span><span style="font-size: 10pt; font-family: Arial;" lang="EN"><br />
</span></span></p>
<p style="margin: 0in 0in 0pt; background: white none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; line-height: 15pt;"><span><span style="font-size: 10pt; font-family: Arial;" lang="EN"><span style="color: #333333;"> </span></span></span></p>
<p style="margin: 0in 0in 0pt; background: white none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; line-height: 15pt;"><span><span style="font-size: 10pt; font-family: Arial;" lang="EN"><span style="color: #333333;"> </span></span></span></p>
<p style="margin: 0in 0in 0pt; background: white none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; line-height: 15pt;"><span><strong><span style="font-size: 10pt; font-family: Arial;" lang="EN"><span style="color: #333333;">About MotoPicks</span></span></strong></span></p>
<p style="margin: 0in 0in 0pt; background: white none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; line-height: 15pt;"><span><span style="font-size: 10pt; font-family: Arial;" lang="EN"><span style="color: #333333;">MotoPicks is an online fantasy motorsports website. Fans can register and create profiles becoming their own Team Managers giving you have the power to hire and fire riders for each event. In 2009 MotoPicks will have the following series available for fans to participate in – 2009 US Open of Supercross, 2010 Monster Energy Supercross Series, 2010 Lucas Oil AMA Motocross Series and the 2010 Monster Energy Canadian Motocross Nationals. </span></span></span></p>
<p style="margin: 0in 0in 0pt; background: white none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; line-height: 15pt;"><span><span style="font-size: 10pt; font-family: Arial;" lang="EN"><span style="color: #333333;"><br />
</span></span></span></p>
<p style="margin: 0in 0in 0pt; background: white none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; line-height: 15pt;"><span><span style="font-size: 10pt; font-family: Arial;" lang="EN"><span style="color: #333333;">Join MotoPicks Facebook group: </span><a href="http://www.facebook.com/pages/MotoPicks/85714871747?ref=mf" target="_blank">http://www.facebook.com/pages/MotoPicks/85714871747?ref=mf</a></span></span></p>
<p style="margin: 0in 0in 0pt; background: white none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; line-height: 15pt;"><span><span style="font-size: 10pt; font-family: Arial;" lang="EN"><br />
</span></span></p>
<p style="margin: 0in 0in 0pt; background: white none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; line-height: 15pt;"><span><span style="font-size: 10pt; font-family: Arial;" lang="EN"><span style="color: #333333;"><span> </span></span></span></span></p>
<p style="margin: 0in 0in 0pt; background: white none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; line-height: 15pt;"><span><span style="font-size: 10pt; font-family: Arial;" lang="EN"><span style="color: #333333;">Follow MotoPicks on Twitter:<span> </span></span><a href="http://twitter.com/MotoPicks" target="_blank">http://twitter.com/MotoPicks</a></span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lwp.ca/james/2009/09/motopicks-launch-press-release/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>First things I do on a clean Linux install</title>
		<link>http://www.lwp.ca/james/2008/12/first-things-i-do-on-a-clean-linux-install/</link>
		<comments>http://www.lwp.ca/james/2008/12/first-things-i-do-on-a-clean-linux-install/#comments</comments>
		<pubDate>Fri, 12 Dec 2008 07:27:50 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[ProTip]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.lwp.ca/james/?p=294</guid>
		<description><![CDATA[Doing a clean install of Linux is not that bad of a task&#8211;if you know what you need and you have your files properly organized. I just completed a new clean install and figured I would write it all down in one place, great for me, and might be helpful for you. I can be [...]]]></description>
			<content:encoded><![CDATA[<p>Doing a clean install of Linux is not that bad of a task&#8211;if you know what you need and you have your files properly organized.</p>
<p>I just completed a new clean install and figured I would write it all down in one place, great for me, and might be helpful for you.</p>
<p>I can be pretty picky when it comes to setting up my linux workstations so the process is a long one (a couple hours), but in the end I have what I need and isn&#8217;t that the point?</p>
<p>Most of the applications I use are for server management and web development, however the things the average user may want to read about is file sharing with NFS drives and dropbox, FireFox extensions and media codecs.</p>
<p>Here is a direct link to the new page: <a href="http://www.lwp.ca/james/?page_id=282">http://www.lwp.ca/james/?page_id=282</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lwp.ca/james/2008/12/first-things-i-do-on-a-clean-linux-install/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Websites Birthed from CSS Hell</title>
		<link>http://www.lwp.ca/james/2008/10/websites-birthed-from-css-hell/</link>
		<comments>http://www.lwp.ca/james/2008/10/websites-birthed-from-css-hell/#comments</comments>
		<pubDate>Mon, 20 Oct 2008 22:09:02 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[ProTip]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Firefox]]></category>

		<guid isPermaLink="false">http://www.lwp.ca/james/?p=241</guid>
		<description><![CDATA[Over the years I have come across a few websites that I want to visit on a regular basis. These websites are designed by &#8220;web designers&#8221; with no skill whatsoever. Infact, I sincerely believe that a retarded monkey with carpal tunnel and OCD could tap out a clear and functional design that would greatly out [...]]]></description>
			<content:encoded><![CDATA[<p>Over the years I have come across a few websites that I want to visit on a regular basis. These websites are designed by &#8220;web designers&#8221; with no skill whatsoever. Infact, I sincerely believe that a retarded monkey with carpal tunnel and OCD could tap out a clear and functional design that would greatly out perform the hideous creation of this so called human &#8220;web designer.&#8221;</p>
<p>In this post you will learn how to take matters into your own hands and fix these websites so they are at least bearable. We will learn how to change the font and font size for a particular website.</p>
<h2>Requirements:</h2>
<ul>
<li><a href="http://www.mozilla.com/en-US/firefox/">Firefox</a></li>
<li>Firefox extension: <a href="https://addons.mozilla.org/en-US/firefox/addon/2108">Stylish</a></li>
<li>Knowledge of CSS (cascading style sheets)</li>
</ul>
<h2>Getting started with Stylish</h2>
<p>After the extension has been installed and Firefox has been restarted. Go to the bottom right hand corner and click on the Stylish icon. In the menu, click on the Manage Styles&#8230;</p>
<p><a href="http://www.lwp.ca/james/wp-content/uploads/2008/10/stylish_menu.png"><img class="alignnone size-medium wp-image-244" title="stylish_menu" src="http://www.lwp.ca/james/wp-content/uploads/2008/10/stylish_menu.png" alt="" width="246" height="168" /></a></p>
<p>Because we do not have any scripts, there is nothing to display, so click on the Write&#8230; button and lets get started.</p>
<p>Write out the following code as show in the example below. Here, we are using example.com as well, our example. The trusty folks over there have provided us with a simple boring page. Substitute <em>example.com</em> with the URL that will apply to your case.</p>
<p><a href="http://www.lwp.ca/james/wp-content/uploads/2008/10/stylish_edit.png"><img class="alignnone size-full wp-image-242" title="stylish_edit" src="http://www.lwp.ca/james/wp-content/uploads/2008/10/stylish_edit.png" alt="" width="499" height="353" /></a></p>
<p>By pressing Save, you should have no error messages and be presented with a list of scripts installed. In our case, it looks like so.</p>
<p><a href="http://www.lwp.ca/james/wp-content/uploads/2008/10/stylish_manage.png"><img class="alignnone size-full wp-image-243" title="stylish_manage" src="http://www.lwp.ca/james/wp-content/uploads/2008/10/stylish_manage.png" alt="" width="499" height="353" /></a></p>
<p>Go back to the nightmarish website. You may have to refresh the page to see the results.</p>
<p>Example forum from hell, before:</p>
<p><a href="http://www.lwp.ca/james/wp-content/uploads/2008/10/stylish_dep_before.png"><img class="alignnone size-full wp-image-249" title="stylish_dep_before" src="http://www.lwp.ca/james/wp-content/uploads/2008/10/stylish_dep_before.png" alt="" width="392" height="99" /></a></p>
<p>Example forum from hell, after:</p>
<p><a href="http://www.lwp.ca/james/wp-content/uploads/2008/10/stylish_dep_after.png"><img class="alignnone size-full wp-image-248" title="stylish_dep_after" src="http://www.lwp.ca/james/wp-content/uploads/2008/10/stylish_dep_after.png" alt="" width="392" height="99" /></a></p>
<p>Don&#8217;t think you can have to stop here! CSS is very powerful and together with Stylish, you can virtually redesign any website the way YOU want it to look.</p>
<p>Check out the user submitted styles found here: <a href="http://userstyles.org/">http://userstyles.org/</a></p>
<h2>ProTip!</h2>
<ul>
<li>Look into the <a href="https://addons.mozilla.org/en-US/firefox/addon/1865">Adblock Plus</a> extension. Not only is this great for removing advertisements from websites, but allows you to block or hide obnoxious images and other content from displaying. Perfect for websites with a huge picture at the top forcing you to scroll every page view.</li>
</ul>
<ul>
<li>Read up on CSS, specifically the <em>display: none;</em> syntax for hiding elements within a page.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.lwp.ca/james/2008/10/websites-birthed-from-css-hell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
