<!-- move these styles into a global definition -->

<style>
.hint {
	color: #ccc;
}

.sparkInput {
	font-size: 12px;
	padding: 5px;
	color: #222222;
	width: 500px;
	font-family: "Lucida Grande",verdana,arial,helvetica,sans-serif;
}

.sparkTextarea {
	width: 500px;
	height: 250px;
	font-size: 14px;
	padding: 3px;
	color: #222222;
	font-family: "Lucida Grande",verdana,arial,helvetica,sans-serif;
}

.sparkButton {
	font-size: 12px;
	padding: 5px;
	color: #222222;
	font-family: "Lucida Grande",verdana,arial,helvetica,sans-serif;
}

.required {
	color: red;
}

</style>

<script>
function toggleEndDate()
{
	if(	document.getElementById('endDateRow').style.display == 'none')
		document.getElementById('endDateRow').style.display = 'block';
	else
		document.getElementById('endDateRow').style.display = 'none';
}

function showNewVenue()
{
	document.getElementById('newVenue').style.display = 'block';
	document.getElementById('venueList').style.display = 'none';
	
}

function showNewLocation()
{
	document.getElementById('event_location_dropdown').style.display = 'none';
	document.getElementById('event_location_new').style.display = 'block';
	
}

</script>


<style>
	.sparkInput {
		width: 250px;
	}

</style>

<script>

function showNewLocation()
{
	document.getElementById('venue_location_dropdown').style.display = 'none';
	document.getElementById('venue_location_new').style.display = 'block';
	
}

</script>

<?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>Colin Loretz &#187; How-To</title>
	<atom:link href="http://colinloretz.com/category/how-to/feed/" rel="self" type="application/rss+xml" />
	<link>http://colinloretz.com</link>
	<description>Technology &#38; Life Hacking</description>
	<lastBuildDate>Thu, 17 Jun 2010 22:02:40 +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>50 Apps to Fuel Your Online Business</title>
		<link>http://colinloretz.com/2010/03/50-apps-to-fuel-your-online-business/</link>
		<comments>http://colinloretz.com/2010/03/50-apps-to-fuel-your-online-business/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 06:41:08 +0000</pubDate>
		<dc:creator>Colin Loretz</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[Serious Games]]></category>

		<guid isPermaLink="false">http://colinloretz.com/?p=603</guid>
		<description><![CDATA[Annie Vranizan and I presented &#8217;50 Apps to Fuel Your Online Business&#8217; at the Nevada Interactive Media Summit last weekend. I&#8217;ve posted the slides here and you can find the full list of 50 apps and their links on Annie&#8217;s website. 50 Apps to Fuel Your Online Business View more presentations from Colin Loretz.]]></description>
			<content:encoded><![CDATA[<div style = "margin-bottom: 15px"><a href="http://twitter.com/avranizan" onclick="pageTracker._trackPageview('/outgoing/twitter.com/avranizan?referer=');">Annie Vranizan</a> and I presented &#8217;50 Apps to Fuel Your Online Business&#8217; at the <a href="http://twitter.com/nevadainteract" onclick="pageTracker._trackPageview('/outgoing/twitter.com/nevadainteract?referer=');">Nevada Interactive Media Summit</a> last weekend. I&#8217;ve posted the slides here and you can find the <a href="http://www.annievranizan.com/2010/03/50-apps-to-fuel-your-business/" onclick="pageTracker._trackPageview('/outgoing/www.annievranizan.com/2010/03/50-apps-to-fuel-your-business/?referer=');">full list of 50 apps and their links on Annie&#8217;s website</a>.</div>
<div></div>
<div style="width: 425px;"><strong><a title="50 Apps to Fuel Your Online Business" href="http://www.slideshare.net/ColinLoretz/50-apps-to-fuel-your-online-business" onclick="pageTracker._trackPageview('/outgoing/www.slideshare.net/ColinLoretz/50-apps-to-fuel-your-online-business?referer=');">50 Apps to Fuel Your Online Business</a></strong><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=nevadaimpresentation-100307150813-phpapp02&amp;stripped_title=50-apps-to-fuel-your-online-business" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=nevadaimpresentation-100307150813-phpapp02&amp;stripped_title=50-apps-to-fuel-your-online-business" allowscriptaccess="always" allowfullscreen="true"></embed></object></div>
<div id="__ss_3359454" style="width: 425px;">
<div style="padding:5px 0 12px">View more <a href="http://www.slideshare.net/" onclick="pageTracker._trackPageview('/outgoing/www.slideshare.net/?referer=');">presentations</a> from <a href="http://www.slideshare.net/ColinLoretz" onclick="pageTracker._trackPageview('/outgoing/www.slideshare.net/ColinLoretz?referer=');">Colin Loretz</a>.</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://colinloretz.com/2010/03/50-apps-to-fuel-your-online-business/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Calendar Syncing Solution</title>
		<link>http://colinloretz.com/2009/12/my-calendar-syncing-solution/</link>
		<comments>http://colinloretz.com/2009/12/my-calendar-syncing-solution/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 18:03:02 +0000</pubDate>
		<dc:creator>Colin Loretz</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[basecamp]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[Salesforce.com]]></category>

		<guid isPermaLink="false">http://colinloretz.com/?p=529</guid>
		<description><![CDATA[Calendars and I are something that have never quite gotten along. I&#8217;ve tried using everything from iCal on my mac, the calendar on my iPhone, Google Calendar, Backpack Calendar, and to-do applications like Things or ToodleDo. With each system, I would eventually just resort to using a piece of paper or a notebook to track [...]]]></description>
			<content:encoded><![CDATA[<p>Calendars and I are something that have never quite gotten along. I&#8217;ve tried using everything from iCal on my mac, the calendar on my iPhone, Google Calendar, <a href="http://backpackit.com/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/backpackit.com/?referer=');">Backpack Calendar</a>, and to-do applications like <a href="http://culturedcode.com/things/" onclick="pageTracker._trackPageview('/outgoing/culturedcode.com/things/?referer=');">Things</a> or <a href="http://toodledo.com" target="_blank" onclick="pageTracker._trackPageview('/outgoing/toodledo.com?referer=');">ToodleDo</a>. With each system, I would eventually just resort to using a piece of paper or a notebook to track everything. I&#8217;m now starting two companies and I have a need to actually share/see both my availability and that of the people I&#8217;m working with. So unless moleskine notebooks someday become internet-enabled, I needed to teach myself to use something else.</p>
<p>I managed to sync my Google Calendar, iPhone, iCal on Mac, Salesforce calendar and Basecamp Milestones. Each one of the technologies supports integration without third-party applications except Salesforce, which I will show you below.<br />
<img class="aligncenter size-full wp-image-530" style="margin-bottom: 15px;" title="sync" src="http://colinloretz.com/wp-content/uploads/2009/12/sync.gif" alt="sync" width="400" height="294" /></p>
<h2>What You Will Be Able To Do</h2>
<p>As illustrated above, you will have bidirectional integration with each system except Basecamp, which will only be imported into Google Calendar as a read-only calendar (fortunately that is all I really need for Basecamp).</p>
<p>You will be able to create/edit/delete events most efficiently between iCal, GCal, and iPhone, as if they were all the exact same calendar. This includes being able to invite people to those events.</p>
<h2>How To Do It</h2>
<p>We&#8217;re now able to do this thanks to a wonderful technology called <a href="http://en.wikipedia.org/wiki/CalDAV" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/CalDAV?referer=');">CalDav</a> which is supported by most of these platforms.</p>
<h3>Setup Google Calendar</h3>
<p>I use Google Apps on my own domain but this should work with the regular Google Calendar as well. Simply setup Google Calendar how you would like to use it.</p>
<h3>Add Basecamp to Google Calendar</h3>
<p>Login to your Basecamp and scroll down to the bottom of the page to find your global feeds. Right-click on the <strong>Global iCal Feed</strong> and copy the link address. Go into Google Calendar and in the left sidebar, click the Add+ link and select <strong>Add by Url</strong>. Paste in your URL and you can select whether or not you&#8217;d like to make it publicly accessible. I would only enable this if you want to publish your GCal on a website somewhere.</p>
<p><img class="aligncenter size-full wp-image-531" style="padding-bottom: 10px;" title="add" src="http://colinloretz.com/wp-content/uploads/2009/12/add.gif" alt="add" width="315" height="100" /></p>
<h3>Add Salesforce to Google Calendar</h3>
<p>For this integration, I had to use <a href="http://sites.force.com/appexchange/apex/listingDetail?listingId=a0N300000016YPBEA2" target="_blank" onclick="pageTracker._trackPageview('/outgoing/sites.force.com/appexchange/apex/listingDetail?listingId=a0N300000016YPBEA2&amp;referer=');">Appirio Sync for Google Calendar</a>. It&#8217;s free on the AppExchange. Install the app inside of Salesforce and it will step you through the setup. You can select from bi-directional syncing or opt only for Salesforce to Google or Google to Salesforce functionality.</p>
<h3>Syncing Google Calendar and the iPhone calendar (<a target="_blank">link</a>)</h3>
<p>You must have at least the 3.0 version of the iPhone firmware for this to work.</p>
<p>These instructions were provided by Google:</p>
<ol>
<li>Open the <strong>Settings</strong> application on your device&#8217;s home screen.</li>
<li>Open <strong>Mail, Contacts, Calendars</strong>.</li>
<li>Select <strong>Add Account&#8230;</strong></li>
<li>Select <strong>Other</strong>.</li>
<li>Select <strong>Add CalDAV Account</strong>.</li>
<li>Enter your account information:
<ul>
<li>In the <strong>Server</strong> field, enter [ google.com ]</li>
<li>In the <strong>Username</strong> field, enter your full Google Account email address.</li>
<li>In the <strong>Password</strong> field, enter your Google Account password.</li>
<li>In the <strong>Description</strong> field, enter the name you&#8217;d like to appear on the account.</li>
</ul>
</li>
<li>Select <strong>Next</strong> at the top of your screen.</li>
</ol>
<p>After you&#8217;ve completed setup, open the Calendar application and syncing will automatically begin.</p>
<p>By default only your primary calendar will be synced to your device. You can sync additional calendars by visiting one of the following pages from any browser (via desktop or mobile device):</p>
<ul>
<li>For non-Google Apps users: <a style="color: #0000cc;" href="https://www.google.com/calendar/iphoneselect" onclick="pageTracker._trackPageview('/outgoing/www.google.com/calendar/iphoneselect?referer=');">https://www.google.com/calendar/iphoneselect</a></li>
<li>For Google Apps users: https://www.google.com/calendar/hosted/<strong>YOUR DOMAIN NAME</strong>/iphoneselect</li>
</ul>
<p>Select the calendars you&#8217;d like to sync, and click <strong>Save</strong>. The selected calendars will display on your device at the time of the next sync.</p>
<h3>Syncing Google Calendar and Ical (<a href="http://www.google.com/support/calendar/bin/answer.py?hl=en&amp;answer=99358#ical" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.google.com/support/calendar/bin/answer.py?hl=en_amp_answer=99358_ical&amp;referer=');">link</a>)</h3>
<ol>
<li>Open Apple iCal, go to <strong>Preferences</strong> and then the <strong>Accounts</strong> tab.</li>
<li>Click on the <strong>+</strong> button to add an account.</li>
<li>Under <strong>Account Information</strong>, enter your Google Account username and password.</li>
<li>Under <strong>Server Options</strong>, add the following URL:<br />
<em>https://www.google.com/calendar/dav/YOUREMAIL@DOMAIN.COM/user</em>Replace &#8216;youremail@domain.com&#8217; with the email address that you use to log in to Calendar. Make sure to include the &#8216;@domain.com&#8217; portion (which is @gmail.com for Gmail users) in this section.</li>
<li>Click <strong>Add</strong>.</li>
<li>Under the <strong>Delegation</strong> tab, select the calendars you&#8217;d like to add to iCal by checking the boxes next to them. You may need to hit <strong>refresh</strong> to get the latest list of calendars.</li>
<li>Add your email address to your Address Book card by selecting <strong>Add Email</strong>. You&#8217;ll be prompted to add your email address only if your address is not already in your Address Book.</li>
</ol>
<p>You won&#8217;t be able to invite or email guests to Google Calendar events within iCal if your address is not in your Address Book.</p>
<p>Your Google Calendar will now appear in iCal&#8217;s list of calendars, and changes you make to your Google Calendar in iCal will be reflected when you sign in to Google Calendar.</p>
<h3>Syncing &lt;Insert Name Here&gt; with Google Calendar</h3>
<p>If you use a web application that has dates and events as an iCal feed that you can subscribe to, you can add any of them to Google Calendar.</p>
<h2>A few things to note</h2>
<p>It&#8217;s not perfect but it works for me. Now, I can use whichever calendar is on-hand at the time and it will almost always be reflected elsewhere because my Google Calendar is acting as the master calendar.</p>
<p>Someone recommended I check out <a href="http://www.pocketinformant.com/products_info.php?p_id=pocketinformant_iphone" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.pocketinformant.com/products_info.php?p_id=pocketinformant_iphone&amp;referer=');">Pocket Informant</a> on the iPhone, which syncs with Google Calendar and looks like it has a better method for visualizing events and availability when you have a lot of calendars. I haven&#8217;t tried it yet as it costs $12 on the App Store but its worth taking a look at it if you use a lot of calendars.</p>
<p>Hope this helps!</p>
]]></content:encoded>
			<wfw:commentRss>http://colinloretz.com/2009/12/my-calendar-syncing-solution/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Ignite Reno: Diagnosing Technology as a Mental Disorder</title>
		<link>http://colinloretz.com/2009/07/ignite-reno-diagnosing-technology-as-a-mental-disorder/</link>
		<comments>http://colinloretz.com/2009/07/ignite-reno-diagnosing-technology-as-a-mental-disorder/#comments</comments>
		<pubDate>Fri, 17 Jul 2009 20:51:40 +0000</pubDate>
		<dc:creator>Colin Loretz</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[ignite]]></category>
		<category><![CDATA[Reno]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://colinloretz.com/?p=435</guid>
		<description><![CDATA[Here is the slide deck for the presentation I gave at Ignite Reno #2 on July 16th at Amendment 21. The video will come soon! Ignite Reno: Diagnosing Technology as a Mental Disorder View more presentations from ColinLoretz.]]></description>
			<content:encoded><![CDATA[<p>Here is the slide deck for the presentation I gave at <a href="http://ignitereno.com" onclick="pageTracker._trackPageview('/outgoing/ignitereno.com?referer=');">Ignite Reno</a> #2 on July 16th at Amendment 21. <del datetime="2009-07-24T05:39:22+00:00">The video will come soon!</del></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="300" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://blip.tv/play/gvMygZOzYgI" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="300" src="http://blip.tv/play/gvMygZOzYgI" allowfullscreen="true"></embed></object></p>
<div id="__ss_1736233" style="width: 425px; text-align: left;"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" title="Ignite Reno: Diagnosing Technology as a Mental Disorder" href="http://www.slideshare.net/ColinLoretz/ignite-reno-diagnosing-technology-as-a-mental-disorder" onclick="pageTracker._trackPageview('/outgoing/www.slideshare.net/ColinLoretz/ignite-reno-diagnosing-technology-as-a-mental-disorder?referer=');">Ignite Reno: Diagnosing Technology as a Mental Disorder</a><object style="margin:0px" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=3technologydisorder-090717154344-phpapp02&amp;stripped_title=ignite-reno-diagnosing-technology-as-a-mental-disorder" /><param name="allowfullscreen" value="true" /><embed style="margin:0px" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=3technologydisorder-090717154344-phpapp02&amp;stripped_title=ignite-reno-diagnosing-technology-as-a-mental-disorder" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/" onclick="pageTracker._trackPageview('/outgoing/www.slideshare.net/?referer=');">presentations</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/ColinLoretz" onclick="pageTracker._trackPageview('/outgoing/www.slideshare.net/ColinLoretz?referer=');">ColinLoretz</a>.</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://colinloretz.com/2009/07/ignite-reno-diagnosing-technology-as-a-mental-disorder/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A better shave using a single blade safety razor</title>
		<link>http://colinloretz.com/2009/06/a-better-shave-using-a-single-blade-safety-razor/</link>
		<comments>http://colinloretz.com/2009/06/a-better-shave-using-a-single-blade-safety-razor/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 06:33:39 +0000</pubDate>
		<dc:creator>Colin Loretz</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[razor]]></category>
		<category><![CDATA[shaving]]></category>

		<guid isPermaLink="false">http://colinloretz.com/?p=355</guid>
		<description><![CDATA[Shaving is usually something everyone hates to do. Who really enjoys scraping a piece of sharpened metal across their skin? My own experience has been less than pleasant. I&#8217;ve tried probably a dozen different brands of razors but all of them have been common safety razors with multiple blades. The razor I &#8220;enjoyed&#8221; most was the [...]]]></description>
			<content:encoded><![CDATA[<p><a style="float: right; margin: 10px;" href="http://colinloretz.com/wp-content/uploads/2009/06/sensor_excel_handle_2.jpg"><img class="alignnone size-full wp-image-357" title="sensor_excel_handle_2" src="http://colinloretz.com/wp-content/uploads/2009/06/sensor_excel_handle_2.jpg" alt="sensor_excel_handle_2" width="200" /></a>Shaving is usually something everyone hates to do. Who really enjoys scraping a piece of sharpened metal across their skin? My own experience has been less than pleasant. I&#8217;ve tried probably a dozen different brands of razors but all of them have been common safety razors with multiple blades.</p>
<p>The razor I &#8220;enjoyed&#8221; most was the Gillette Sensor Excel. Most new razors have pivoting heads that have led to some pretty painful hacking. The Sensor Excel&#8217;s head does not pivot so if you&#8217;re looking for a multi-blade razor, look for this one but do not fall for the Sensor3 which has more whizbang features and I believe a pivoting head. I used to buy 30 cartridges at a time for it at Costco but unfortunately they no longer seem to carry them here in Reno.</p>
<p><a style="float: left; margin: 10px;" href="http://colinloretz.com/wp-content/uploads/2009/06/razor.jpg"><img class="alignnone size-medium wp-image-356" title="razor" src="http://colinloretz.com/wp-content/uploads/2009/06/razor-225x300.jpg" alt="razor" width="200" /></a> I&#8217;ve recently discovered the problem was the multiple blades. Multi-blade razors function in such a manner that the first blade pulls the hair and the second, third, fourth (and so on) blades cut the hair. Ouch! <a href="http://twitter.com/dukeanddjango" onclick="pageTracker._trackPageview('/outgoing/twitter.com/dukeanddjango?referer=');">Earl Spriggs</a> gave me a single-blade straight razor along with shaving soaps and a brush as a graduation present and I&#8217;ve found it makes a significant difference during shaving. Before I started using the &#8220;new&#8221; razor, he suggested I check out videos from <a href="http://www.youtube.com/user/mantic59" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.youtube.com/user/mantic59?referer=');">Mantic59</a> on YouTube. Mantic59 has an entire channel of videos dedicated to shaving with multiple types of razors including a straight edge razor, for those of you brave souls looking for a barber shave.</p>
<p>While I doubt shaving will ever be an entirely pleasant experience, I&#8217;ve found that using a single-blade razor has made shaving much more enjoyable and my face doesn&#8217;t hate me (as much) afterward.</p>
<p>Everything I&#8217;ve watched and read about single-blade shaving stresses the importance of:</p>
<ul>
<li>Maintaing a 30-degree angle between the blade and the face</li>
<li>Proper <a style="text-decoration: none;" href="http://www.youtube.com/watch?v=y4ezJNJfygw" onclick="pageTracker._trackPageview('/outgoing/www.youtube.com/watch?v=y4ezJNJfygw&amp;referer=');">lathering</a></li>
<li>Have patience when shaving &#8211; it&#8217;s not a race</li>
<li>Do <strong>NOT </strong>apply pressure to the blade</li>
<li>Use an <strong>alcohol-free</strong> aftershave product to help soothe and condition the skin</li>
</ul>
<p><a style="float: right; margin: 10px;" href="http://colinloretz.com/wp-content/uploads/2009/06/safety.jpg"><img class="alignnone size-thumbnail wp-image-359" title="safety" src="http://colinloretz.com/wp-content/uploads/2009/06/safety-150x150.jpg" alt="safety" width="150" height="150" /></a></p>
<p>Not applying pressure to the blade might seem counterintuitive for most shavers because most of today&#8217;s safety razors are extremely light and require a little bit of pressure to pull and hack the hair off your face. When using a single-blade razor (as pictured right), the weight of the razor itself is enough pressure to provide a close shave without destroying the top layer of your skin. If you&#8217;re doing it right, you will know it&#8217;s working as you actually hear the blade cutting the hair, something you probably don&#8217;t hear with your multi-blade razor now. <em>The key to avoiding razor burn is to not apply pressure!</em></p>
<p><em>Happy shaving!</em></p>
]]></content:encoded>
			<wfw:commentRss>http://colinloretz.com/2009/06/a-better-shave-using-a-single-blade-safety-razor/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>LinkedIn as your living resume</title>
		<link>http://colinloretz.com/2009/05/linkedin-as-your-livin-resume/</link>
		<comments>http://colinloretz.com/2009/05/linkedin-as-your-livin-resume/#comments</comments>
		<pubDate>Mon, 18 May 2009 22:18:13 +0000</pubDate>
		<dc:creator>Colin Loretz</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[economy]]></category>
		<category><![CDATA[hiring]]></category>
		<category><![CDATA[job]]></category>
		<category><![CDATA[laid off]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[resume]]></category>

		<guid isPermaLink="false">http://colinloretz.com/?p=306</guid>
		<description><![CDATA[Did you create your resume using a Microsoft Word template? Stop right there. Really. Stop. Please. I&#8217;ve been using LinkedIn (sign up if you haven&#8217;t already!) for quite a while to keep track of my academic and professional history and while I frequently send people there to check out my qualifications, I always kept my [...]]]></description>
			<content:encoded><![CDATA[<p>Did you create your resume using a Microsoft Word template? Stop right there. Really. Stop. Please.</p>
<p>I&#8217;ve been using <a href="http://www.linkedin.com" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.linkedin.com?referer=');">LinkedIn</a> (sign up if you haven&#8217;t already!) for quite a while to keep track of my academic and professional history and while I frequently send people there to check out my qualifications, I always kept my resume up-to-date saved somewhere on my desktop. I use Apple&#8217;s iWork which has some cool resume templates but the hassle of keeping it up to date still exists.</p>
<p>Today I was on LinkedIn and I discovered you can export your LinkedIn profile to a print-friendly PDF version to use as a resume. This is great because you can print a copy today, make a change to LinkedIn next week and print a new, up-to-date copy. It will not be the most beautiful resume you&#8217;ve ever seen but it looks much nicer than many of the resumes I&#8217;ve seen others try to pass off.</p>
<p><a href="http://colinloretz.com/wp-content/uploads/2009/05/linkedin.jpg"><img class="alignnone size-medium wp-image-307" title="linkedin" src="http://colinloretz.com/wp-content/uploads/2009/05/linkedin-300x127.jpg" alt="linkedin" width="300" height="127" /></a></p>
<p>LinkedIn does throw their logo on the bottom of the resume but its a small price to pay for having your own &#8220;living document&#8221; and it provides a way for you to direct any resume readers to your LinkedIn page to view recommendations and extend your own personal network.</p>
<p><a href="http://www.linkedin.com/in/colinloretz"  onclick="pageTracker._trackPageview('/outgoing/www.linkedin.com/in/colinloretz?referer=');"><img src="http://www.linkedin.com/img/webpromo/btn_viewmy_120x33.gif" style="border: none; padding: 10px; " border="0" alt="View Colin Loretz's profile on LinkedIn" width="120" height="33" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://colinloretz.com/2009/05/linkedin-as-your-livin-resume/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Adobe Flex: Creating Widgets for the Desktop &amp; Web</title>
		<link>http://colinloretz.com/2009/03/adobe-flex-creating-widgets-for-the-desktop-web/</link>
		<comments>http://colinloretz.com/2009/03/adobe-flex-creating-widgets-for-the-desktop-web/#comments</comments>
		<pubDate>Fri, 13 Mar 2009 02:31:07 +0000</pubDate>
		<dc:creator>Colin Loretz</dc:creator>
				<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[How-To]]></category>
		<category><![CDATA[nim09]]></category>
		<category><![CDATA[Reno]]></category>

		<guid isPermaLink="false">http://colinloretz.com/?p=198</guid>
		<description><![CDATA[I presented the following presentation at the first-ever Nevada Interactive Media Summit last week. My presentation consisted mostly of demonstrations in Adobe Flex Builder but if you plug the code below into Flex, you should be able to follow along. A video of the presentation should be available soon. Adobe Flex: Creating Widgets for the [...]]]></description>
			<content:encoded><![CDATA[<p>I presented the following presentation at the first-ever <a href="http://nevadainteractivemedia.org" onclick="pageTracker._trackPageview('/outgoing/nevadainteractivemedia.org?referer=');">Nevada Interactive Media Summit</a> last week. My presentation consisted mostly of demonstrations in Adobe Flex Builder but if you plug the code below into Flex, you should be able to follow along. A video of the presentation should be available soon.</p>
<div id="__ss_1139347" style="width: 425px; text-align: left;"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" title="Adobe Flex: Creating Widgets for the Desktop and Web" href="http://www.slideshare.net/ColinLoretz/adobe-flex-creating-widgets-for-the-desktop-and-web?type=presentation" onclick="pageTracker._trackPageview('/outgoing/www.slideshare.net/ColinLoretz/adobe-flex-creating-widgets-for-the-desktop-and-web?type=presentation&amp;referer=');">Adobe Flex: Creating Widgets for the Desktop and Web</a><object width="425" height="355" data="http://static.slideshare.net/swf/ssplayer2.swf?doc=flexnim-090312211208-phpapp02&amp;stripped_title=adobe-flex-creating-widgets-for-the-desktop-and-web" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=flexnim-090312211208-phpapp02&amp;stripped_title=adobe-flex-creating-widgets-for-the-desktop-and-web" /><param name="allowfullscreen" value="true" /></object></p>
<div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/" onclick="pageTracker._trackPageview('/outgoing/www.slideshare.net/?referer=');">presentations</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/ColinLoretz" onclick="pageTracker._trackPageview('/outgoing/www.slideshare.net/ColinLoretz?referer=');">ColinLoretz</a>.</div>
</div>
<p><strong>Demo #1: RSS Reader</strong></p>
<p><strong></p>
<pre><span style="font-weight: normal;">&lt;?xml version="1.0" encoding="utf-8"?&gt;</span>

<span style="font-weight: normal;">&lt;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"&gt;</span>

<span><span style="font-weight: normal;"> </span></span><span style="font-weight: normal;">&lt;mx:HTTPService id="myRSSFeed" url="{rssURL.text}" /&gt;</span>

<span><span style="font-weight: normal;"> </span></span><span style="font-weight: normal;">&lt;mx:Label x="10" y="12" text="RSS URL:" fontWeight="bold" /&gt;</span>

<span><span style="font-weight: normal;"> </span></span><span style="font-weight: normal;">&lt;mx:TextInput id="rssURL" width="357" x="68" y="10" /&gt;</span>

<span><span style="font-weight: normal;"> </span></span><span style="font-weight: normal;">&lt;mx:Button x="371" y="40" label="GO !!" click="myRSSFeed.send()"/&gt;</span>

<span><span style="font-weight: normal;"> </span></span><span style="font-weight: normal;">&lt;mx:DataGrid id="myDataGrid" dataProvider="{myRSSFeed.lastResult.rss.channel.item}"</span>

<span><span style="font-weight: normal;"> </span></span><span style="font-weight: normal;">width="417.5" height="144"</span>

<span><span style="font-weight: normal;"> </span></span><span style="font-weight: normal;">click="{myTextArea.htmlText =</span>

<span><span style="font-weight: normal;"> </span></span><span style="font-weight: normal;">myRSSFeed.lastResult.rss.channel.item[myDataGrid.selectedIndex].description}"</span>

<span><span style="font-weight: normal;"> </span></span><span style="font-weight: normal;">x="7.5" y="70"&gt;</span>

<span><span style="font-weight: normal;"> </span></span><span style="font-weight: normal;">&lt;mx:columns&gt;</span>

<span><span style="font-weight: normal;"> </span></span><span style="font-weight: normal;">&lt;mx:DataGridColumn headerText="Date" dataField="pubDate" textAlign="left"/&gt;</span>

<span><span style="font-weight: normal;"> </span></span><span style="font-weight: normal;">&lt;mx:DataGridColumn headerText="Title" dataField="title" textAlign="center"/&gt;</span>

<span><span style="font-weight: normal;"> </span></span><span style="font-weight: normal;">&lt;/mx:columns&gt;</span>

<span><span style="font-weight: normal;"> </span></span><span style="font-weight: normal;">&lt;/mx:DataGrid&gt;</span>

<span><span style="font-weight: normal;"> </span></span><span style="font-weight: normal;">&lt;mx:TextArea id="myTextArea" width="415" height="162" x="10" y="222"/&gt;</span>

<span><span style="font-weight: normal;"> </span></span>

<span style="font-weight: normal;">&lt;/mx:Application&gt;</span>
<div></div>
</pre>
<p></strong></p>
<p><strong>Demo #2: Twitter Search Application</strong></p>
<p><strong></strong></p>
<p><strong></p>
<pre><span style="font-weight: normal;">&lt;?xml version="1.0" encoding="utf-8"?&gt;</span>

<span style="font-weight: normal;">&lt;mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" title = "Twitter @ NIM" layout="absolute"&gt;</span>

<span><span style="font-weight: normal;"> </span></span><span style="font-weight: normal;">&lt;mx:Script&gt;</span>

<span><span style="font-weight: normal;"> </span></span><span style="font-weight: normal;">&lt;![CDATA[</span><span><span style="font-weight: normal;"> </span></span>

<span><span style="font-weight: normal;"> </span></span><span style="font-weight: normal;">private function doSearch(e:MouseEvent):void</span>

<span><span style="font-weight: normal;"> </span></span><span style="font-weight: normal;">{</span>

<span><span style="font-weight: normal;"> </span></span><span style="font-weight: normal;">twitterService.url = "http://search.twitter.com/search.atom?q=" + twitterKeyword.text;</span>

<span><span style="font-weight: normal;"> </span></span><span style="font-weight: normal;">twitterService.send();</span>

<span><span style="font-weight: normal;"> </span></span><span style="font-weight: normal;">}</span>

<span><span style="font-weight: normal;"> </span></span><span style="font-weight: normal;">]]&gt;</span>

<span><span style="font-weight: normal;"> </span></span><span style="font-weight: normal;">&lt;/mx:Script&gt;</span>

<span><span style="font-weight: normal;"> </span></span>

<span><span style="font-weight: normal;"> </span></span><span style="font-weight: normal;">&lt;mx:HTTPService id="twitterService" /&gt;</span>

<span><span style="font-weight: normal;"> </span></span>

<span><span style="font-weight: normal;"> </span></span><span style="font-weight: normal;">&lt;mx:Label x="10" y="20" text="Twitter Search Term"/&gt;</span>

<span><span style="font-weight: normal;"> </span></span><span style="font-weight: normal;">&lt;mx:TextInput id = "twitterKeyword" x="10" y="38" width="295"/&gt;</span>

<span><span style="font-weight: normal;"> </span></span><span style="font-weight: normal;">&lt;mx:Button click = "doSearch(event)" x="379" y="38" label="Search" width="81"/&gt;</span>

<span><span style="font-weight: normal;"> </span></span><span style="font-weight: normal;">&lt;mx:List dataProvider = "{twitterService.lastResult.feed.entry}" labelField="title" x="10" y="68" width="450" height="282"&gt;&lt;/mx:List&gt;</span>

<span style="font-weight: normal;">
</span>

<span style="font-weight: normal;">&lt;/mx:WindowedApplication&gt;</span></pre>
<p></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://colinloretz.com/2009/03/adobe-flex-creating-widgets-for-the-desktop-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Salesforce Rollup Summary Fields using Apex Code</title>
		<link>http://colinloretz.com/2008/10/salesforce-rollup-summary-fields-using-apex-code/</link>
		<comments>http://colinloretz.com/2008/10/salesforce-rollup-summary-fields-using-apex-code/#comments</comments>
		<pubDate>Mon, 13 Oct 2008 19:50:00 +0000</pubDate>
		<dc:creator>Colin Loretz</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[salesforce apex code]]></category>

		<guid isPermaLink="false">http://colinloretz.com/?p=76</guid>
		<description><![CDATA[Creating APEX rollup summary fields in Salesforce]]></description>
			<content:encoded><![CDATA[<p><strong>Rollup Summary Fields on any field/object using APEX Code</strong><br />
Level: Intermediate</p>
<p><strong>Rollup Summary Fields<br />
<span style="font-weight: normal;">The Rollup Summary fields provided by Salesforce offer a great way to summarize relationship data. If you have two objects, &#8220;Timesheet&#8221; and &#8220;Time Entry&#8221;, a rollup summary field can total the number of hours assigned to any given timesheet.</span></strong></p>
<p><strong>What problem does this address?<br />
<span style="font-weight: normal;">Standard rollup summary fields require a master-detail relationship. Currently, you can not setup a master-detail-detail+ relationship so what happens when you have more than 2 objects that you want to summarize? You won&#8217;t be able to.</span></strong></p>
<p><strong><span style="font-weight: normal;">The following Apex code helps solve this situation by allowing you to summarize information on objects that are related by either a Master-Detail relationship or a Lookup relationship field. You can even summarize information in a cascading fashion, by linking more than 2 objects together. I&#8217;ve been working on a project management application on the Force.com platform and we have Projects-&gt;Tasks-&gt;Time Entries. The time entries are summarized by hours and dollars at both the Task and Project level.</span></strong></p>
<p>In tackling this problem, there are five use cases we must consider:<br />
1. Creating a new record that rolls up to the parent record<br />
2. Deleting an existing record that currently rolls up to the parent record<br />
3. Updating a record with a new value and remains under the same parent record<br />
4. Updating a record with a new value and changing the parent record that it rolls up to<br />
5. The child value remains the same and we change the parent record that is being rolled up to</p>
<p><strong>Disclaimer &amp; Warning:</strong><br />
There are other ways to accomplish this type of functionality so please feel free to critique the code in the comments. The code has been written for processing bulk records but has not been extensively tested for excessively large record sets. IE: A parent object that summarizes 100+ child records that summarizes another 100+ child records below that. The more objects you have cascading under one another, the greater the chances of running into the Salesforce governor limits. Please feel free to provide feedback and recommendations on this as you encounter them.</p>
<p><strong>GETTING STARTED</strong></p>
<p>Step 1: Create the Parent and Child objects<br />
1. Create a parent object:</p>
<ul>
<li>Object Label: Weekly Timesheet</li>
<li>Object Name: Weekly_Timesheet</li>
<li>Save</li>
</ul>
<p>2. In the <strong>Custom Fields &amp; Relationships</strong> area of the new object, click <strong>New</strong>.</p>
<p>3. Create a new field to store the summarized data:</p>
<ul>
<li>Field Type: Number</li>
<li>Field Label: Total Hours</li>
<li>Field Name: Total_Hours</li>
<li>Length: 16</li>
<li>Decimals: 2</li>
<li>Save</li>
</ul>
<p>4. Create a child object:</p>
<ul>
<li>Object Label: Time Entry</li>
<li>Object Name: Time_Entry</li>
<li>Save</li>
</ul>
<p>5. In the <strong>Custom Fields &amp; Relationships</strong> area of the new object, click <strong>New</strong>.</p>
<p>6. Create two fields on the child object:</p>
<ul>
<li>Field Type: Number</li>
<li>Field Label: Hours</li>
<li>Field Name: Hours</li>
<li>Length: 16</li>
<li>Decimals: 2</li>
<li>Follow prompts and Save</li>
</ul>
<div>
<ul>
<li>Field Type: Lookup Relationship</li>
<li>Field Label: Timesheet</li>
<li>Field Name: Timesheet</li>
<li>Follow prompts and Save</li>
</ul>
</div>
<p>7. Create a trigger (<a href="http://www.colinloretz.com/salesforce/rollupHoursToTimesheet.txt" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.colinloretz.com/salesforce/rollupHoursToTimesheet.txt?referer=');">Download formatted code here</a>)</p>
<pre>trigger rollupHoursToTimesheet on Time_Entry__c (after insert, after update, after delete) {
double sumTotalHours = 0.0;
Weekly_Timesheet__c [] sheetsToUpdate = new Weekly_Timesheet__c[]{};

//***********************************************
//Code for updating existing records and new records
//***********************************************

if(Trigger.isInsert)
{
Time_Entry__c [] teNew = trigger.new;

for(Time_Entry__c te : teNew)
{
for (Weekly_Timesheet__c timesheet : [select Id, Name, Total_Hours__c from Weekly_Timesheet__c where Id = :te.Timesheet__c])
{

//Sum all the timesheet entries
for (Time_Entry__c timeEntries: [select Id, Hours__c from Time_Entry__c where Timesheet__c = :timesheet.id])
{
sumTotalHours += timeEntries.Hours__c;
}

timesheet.Total_Hours__c = sumTotalHours;

//add timesheet to list to be updated outside of the loop
sheetsToUpdate.add(timesheet);
}
}

//commit the changes to Salesforce
update sheetsToUpdate;
}

//***********************************************
//Code for updating when a record is updated
//***********************************************

else if(Trigger.isUpdate)
{
//sum total both old and new
Time_Entry__c [] oldTime = Trigger.old;
Time_Entry__c [] newTime = Trigger.new;
Double newSum = 0.0;
Double oldSum = 0.0;

for(Time_Entry__c newTe: newTime)
{
for(Time_Entry__c oldTe : oldTime)
{

Weekly_Timesheet__c oldTimesheet = [Select Id, Name, Total_Hours__c from Weekly_Timesheet__c where Id = :oldTe.Timesheet__c];
Weekly_Timesheet__c newTimesheet = [Select Id, Name, Total_Hours__c from Weekly_Timesheet__c where Id = :newTe.Timesheet__c];

Time_Entry__c [] newSumHours = [Select Id, Name, Hours__c from Time_Entry__c where Timesheet__c = :newTimesheet.Id];
Time_Entry__c [] oldSumHours = [Select Id, Name, Hours__c from Time_Entry__c where Timesheet__c = :oldTimesheet.Id];

//sum premiums from child objects
for(Time_Entry__c oldSumHour : oldSumHours)
{
oldSum += oldSumHour.Hours__c;
}

for(Time_Entry__c newSumHour : newSumHours)
{
newSum += newSumHour.Hours__c;
}

newTimesheet.Total_Hours__c = newSum;
oldTimesheet.Total_Hours__c = oldSum;

sheetsToUpdate.add(newTimesheet);
sheetsToUpdate.add(oldTimesheet);
}
}

update sheetsToUpdate;
}

//***********************************************
//Code for updating when a record is deleted
//***********************************************

else if(Trigger.isDelete)
{

Time_Entry__c [] teOld = trigger.old;

for(Time_Entry__c te: teOld)
{

for (Weekly_Timesheet__c timesheet: [select Id, Name, Total_Hours__c from Weekly_Timesheet__c where Id = :te.Timesheet__c])
{
for (Time_Entry__c timeEntries: [select Id, Hours__c from Time_Entry__c where Timesheet__c = :timesheet.id])
{
sumTotalHours += timeEntries.Hours__c;
}

timesheet.Total_Hours__c = sumTotalHours;

sheetsToUpdate.add(timesheet);
}
}

update sheetsToUpdate;
}

}

trigger rollupHoursToTimesheet on Time_Entry__c (after insert, after update, after delete) {

double sumTotalHours = 0.0;
Weekly_Timesheet__c [] sheetsToUpdate = new Weekly_Timesheet__c[]{};

//***********************************************
//Code for updating existing records and new records
//***********************************************

if(Trigger.isInsert)
{
Time_Entry__c [] teNew = trigger.new;

for(Time_Entry__c te : teNew)
{
for (Weekly_Timesheet__c timesheet : [select Id, Name, Total_Hours__c from Weekly_Timesheet__c where Id = :te.Timesheet__c])
{

//Sum all the timesheet entries
for (Time_Entry__c timeEntries: [select Id, Hours__c from Time_Entry__c where Timesheet__c = :timesheet.id])
{
sumTotalHours += timeEntries.Hours__c;
}

timesheet.Total_Hours__c = sumTotalHours;

//add timesheet to list to be updated outside of the loop
sheetsToUpdate.add(timesheet);
}
}

//commit the changes to Salesforce
update sheetsToUpdate;
}

//***********************************************
//Code for updating when a record is updated
//***********************************************

else if(Trigger.isUpdate)
{
//sum total both old and new
Time_Entry__c [] oldTime = Trigger.old;
Time_Entry__c [] newTime = Trigger.new;
Double newSum = 0.0;
Double oldSum = 0.0;

for(Time_Entry__c newTe: newTime)
{
for(Time_Entry__c oldTe : oldTime)
{

Weekly_Timesheet__c oldTimesheet = [Select Id, Name, Total_Hours__c from Weekly_Timesheet__c where Id = :oldTe.Timesheet__c];
Weekly_Timesheet__c newTimesheet = [Select Id, Name, Total_Hours__c from Weekly_Timesheet__c where Id = :newTe.Timesheet__c];

Time_Entry__c [] newSumHours = [Select Id, Name, Hours__c  from Time_Entry__c where Timesheet__c = :newTimesheet.Id];
Time_Entry__c [] oldSumHours = [Select Id, Name, Hours__c from Time_Entry__c where Timesheet__c = :oldTimesheet.Id];

//sum premiums from child objects
for(Time_Entry__c oldSumHour : oldSumHours)
{
oldSum += oldSumHour.Hours__c;
}

for(Time_Entry__c newSumHour : newSumHours)
{
newSum += newSumHour.Hours__c;
}

newTimesheet.Total_Hours__c = newSum;
oldTimesheet.Total_Hours__c = oldSum;

sheetsToUpdate.add(newTimesheet);
sheetsToUpdate.add(oldTimesheet);
}
}

update sheetsToUpdate;
}

//***********************************************
//Code for updating when a record is deleted
//***********************************************

else if(Trigger.isDelete)
{

Time_Entry__c [] teOld = trigger.old;

for(Time_Entry__c te: teOld)
{

for (Weekly_Timesheet__c timesheet: [select Id, Name, Total_Hours__c from Weekly_Timesheet__c where Id = :te.Timesheet__c])
{
for (Time_Entry__c timeEntries: [select Id, Hours__c from Time_Entry__c where Timesheet__c = :timesheet.id])
{
sumTotalHours += timeEntries.Hours__c;
}

timesheet.Total_Hours__c = sumTotalHours;

sheetsToUpdate.add(timesheet);
}
}

update sheetsToUpdate;
}

}
</pre>
<p>8. Create the unit test for the trigger in an Apex class</p>
<p><strong>[COMING SOON]</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://colinloretz.com/2008/10/salesforce-rollup-summary-fields-using-apex-code/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Toolkit for House Hunting on the Web</title>
		<link>http://colinloretz.com/2008/09/toolkit-for-house-hunting-on-the-web/</link>
		<comments>http://colinloretz.com/2008/09/toolkit-for-house-hunting-on-the-web/#comments</comments>
		<pubDate>Wed, 17 Sep 2008 05:14:24 +0000</pubDate>
		<dc:creator>Colin Loretz</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[house hunting]]></category>
		<category><![CDATA[rent]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[Web Apps]]></category>

		<guid isPermaLink="false">http://colinloretz.com/?p=66</guid>
		<description><![CDATA[I&#8217;m about to move out of my apartment and I&#8217;ve been on the hunt for where I will end up next. With work and school, I haven&#8217;t had a lot of time to drive and look around for a new place but I have been able to check out a lot of places via the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m about to move out of my apartment and I&#8217;ve been on the hunt for where I will end up next. With work and school, I haven&#8217;t had a lot of time to drive and look around for a new place but I have been able to check out a lot of places via the web.</p>
<p>Here are the tools I&#8217;ve been using:</p>
<p><a onclick="pageTracker._trackPageview('/outgoing/craigslist.com?referer=');pageTracker._trackPageview('/outgoing/craigslist.com?referer=http://colinloretz.com/wp-admin/post-new.php?posted=66');" href="http://craigslist.com"><strong>Craigslist</strong></a><br />
If you haven&#8217;t heard of Craigslist by now, you&#8217;ve probably been living under a rock. Craigslist is an online provider of classified ads. The website lists items for sale and purchase from cities all over the world. I&#8217;m looking for another apartment so I&#8217;ve been searching <a onclick="pageTracker._trackPageview('/outgoing/reno.craigslist.org/apa/?referer=');pageTracker._trackPageview('/outgoing/reno.craigslist.org/apa/?referer=http://colinloretz.com/wp-admin/post-new.php?posted=66');" href="http://reno.craigslist.org/apa/">http://reno.craigslist.org/apa/</a> for something within my price range.</p>
<p><a onclick="pageTracker._trackPageview('/outgoing/maps.google.com/help/maps/streetview/?referer=');pageTracker._trackPageview('/outgoing/maps.google.com/help/maps/streetview/?referer=http://colinloretz.com/wp-admin/post-new.php?posted=66');" href="http://maps.google.com/help/maps/streetview/"><strong>Google Street View</strong></a><br />
When I find a place I like on Craigslist, I pop the address into Google Maps and pull up the street view option to get another perspective on the property and its surroundings.</p>
<p><a onclick="pageTracker._trackPageview('/outgoing/twitter.com?referer=');pageTracker._trackPageview('/outgoing/twitter.com?referer=http://colinloretz.com/wp-admin/post-new.php?posted=66');" href="http://twitter.com"><strong>Twitter</strong></a><br />
You never know what opportunities your friends may know about. I have been reminding my followers on Twitter that I&#8217;m looking for a new place to live and have had a few people respond with available options in their neighborhood.</p>
<p><a onclick="pageTracker._trackPageview('/outgoing/zillow.com?referer=');pageTracker._trackPageview('/outgoing/zillow.com?referer=http://colinloretz.com/wp-admin/post-new.php?posted=66');" href="http://zillow.com"><strong>Zillow</strong></a><br />
If you&#8217;re looking to actually buy or sell a house or condo, Zillow provides you with a few handy tools. First off, they provide an interactive map via Microsoft Virtual Earth that allows you to interact with properties that are currently for sale or have sold recently. The map shows estimates for each of these properties and can help in valuing your property. Second, Zillow can provide you with a Zestimate, which is a valuation of your property based on the data they have on similar properties nearby.</p>
<p>Keep in mind, while there are a lot of cool resources online, you can find some pretty cool deals out there the old fashioned way by hopping in your car and driving around.</p>
]]></content:encoded>
			<wfw:commentRss>http://colinloretz.com/2008/09/toolkit-for-house-hunting-on-the-web/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Secret to Making Money from Startup School 08</title>
		<link>http://colinloretz.com/2008/09/secret-to-making-money-from-startup-school-08/</link>
		<comments>http://colinloretz.com/2008/09/secret-to-making-money-from-startup-school-08/#comments</comments>
		<pubDate>Sun, 14 Sep 2008 18:38:07 +0000</pubDate>
		<dc:creator>Colin Loretz</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[37signals]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[startups]]></category>
		<category><![CDATA[Web Apps]]></category>

		<guid isPermaLink="false">http://colinloretz.com/?p=65</guid>
		<description><![CDATA[David Heinemeier Hansson at Startup School 08 on The A Secret to Making Money. His presentation is to the point and reinforces the direction I&#8217;m heading while working on my own web app in the little &#8220;spare/free&#8221; time I find. Quite inspiring. Share and annotate your videos with Omnisio!]]></description>
			<content:encoded><![CDATA[<p>David Heinemeier Hansson at Startup School 08 on <del datetime="2008-09-14T18:36:58+00:00">The</del> A Secret to Making Money.</p>
<p>His presentation is to the point and reinforces the direction I&#8217;m heading while working on my own web app in the little &#8220;spare/free&#8221; time I find. Quite inspiring.</p>
<p><object width='520' height='276'><param name='movie' value='http://www.omnisio.com/bin/Embed.swf?embedID=dvkTBcd0Sr3yehadbiFy2w' /><param name='bgcolor' value='#FFFFFF' /><param name='quality' value='high' /><param name='allowscriptaccess' value='always' /><param name='allowfullscreen' value='true' /><embed type='application/x-shockwave-flash' src='http://www.omnisio.com/bin/Embed.swf?embedID=dvkTBcd0Sr3yehadbiFy2w' bgcolor='#FFFFFF' quality='high' allowfullscreen='true' allowscriptaccess='always' width='520' height='276' ><noembed>
<div><a href='http://www.omnisio.com' onclick="pageTracker._trackPageview('/outgoing/www.omnisio.com?referer=');">Share and annotate your videos</a> with Omnisio!</div>
<p></noembed></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://colinloretz.com/2008/09/secret-to-making-money-from-startup-school-08/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing MySQL from source on Mac OS X Leopard</title>
		<link>http://colinloretz.com/2008/09/install-mysql-from-source-on-mac-os-x/</link>
		<comments>http://colinloretz.com/2008/09/install-mysql-from-source-on-mac-os-x/#comments</comments>
		<pubDate>Sun, 14 Sep 2008 18:08:45 +0000</pubDate>
		<dc:creator>Colin Loretz</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[leopard]]></category>
		<category><![CDATA[mac osx]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[ruby on rails]]></category>

		<guid isPermaLink="false">http://colinloretz.com/?p=64</guid>
		<description><![CDATA[I spent a few hours going through these steps with a friend of mine, Glenn, who is starting to learn Ruby on Rails. He wanted to install MySQL so we decided to do it from source. Glenn was trying to install MySQL using Dan Benjamin&#8217;s tutorial at Hivelogic. I found the same steps that Dan [...]]]></description>
			<content:encoded><![CDATA[<p>I spent a few hours going through these steps with a friend of mine, <a href="http://www.twitter.com/iamglenn" onclick="pageTracker._trackPageview('/outgoing/www.twitter.com/iamglenn?referer=');">Glenn</a>, who is starting to learn Ruby on Rails. He wanted to install MySQL so we decided to do it from source. Glenn was trying to install MySQL using Dan Benjamin&#8217;s tutorial at <a href="http://hivelogic.com/articles/2007/11/installing-mysql-on-mac-os-x" onclick="pageTracker._trackPageview('/outgoing/hivelogic.com/articles/2007/11/installing-mysql-on-mac-os-x?referer=');">Hivelogic</a>. I found the same steps that Dan posted on a few other websites but the remote source code his example tries to download no longer exists. This process does not take a few hours but we ran into a few issues trying to find a working copy of the version we used: <code>mysql-5.0.45.tar.gz</code>.</p>
<p>This is a quick post, which I hope may help anyone else trying to install MySQL, but I have not gone in depth on any of the steps. If you have any issues or questions, please feel free to comment below.</p>
<p>Disable any existing installs of MySQL:<br />
<code>sudo rm /usr/local/mysql</code></p>
<p>Remove the startup item:<br />
<code>sudo rm -rf /Library/StartupItems/MySQLCOM/</code></p>
<p>Setup your path by editing your .bash_login file, I&#8217;ll be using Textmate:<br />
<code>mate ~/.bash_login</code></p>
<p>Add to the end of the file:<br />
<code>export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH"</code></p>
<p>Save the file.</p>
<p>Create a directory called <code>src</code> in your home folder.<br />
<code>mkdir src</code><br />
<code>cd src</code></p>
<p>To download the mysql source:<br />
<code>curl -O http://mirror.provenscaling.com/mysql/community/source/5.0/mysql-5.0.45.tar.gz</code></p>
<p>Extrace the code from the gzip and enter the directory:<br />
<code>tar xzvf mysql-5.0.45.tar.gz</code><br />
<code>cd mysql-5.0.45</code></p>
<p>You now need to configure MySQL, paste the following into Terminal and press enter:<br />
<code>CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc \<br />
CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors \<br />
-fno-exceptions -fno-rtti" \<br />
./configure --prefix=/usr/local/mysql \<br />
--with-extra-charsets=complex --enable-thread-safe-client \<br />
--enable-local-infile --enable-shared</code></p>
<p>Now we will compile the code:<br />
<code>make</code></p>
<p>And install the code:<br />
<code>sudo make install</code></p>
<p>The last two steps may take a while.</p>
<p>Once all of this is complete, it&#8217;s time to setup the initial database user and privileges.<br />
<code>cd /usr/local/mysql<br />
sudo ./bin/mysql_install_db --user=mysql<br />
sudo chown -R mysql ./var</code></p>
<p>Now MySQL should be installed. In order to start the initial MySQL and have it start every time you restart your machine, do the following:</p>
<p>Create a file in /Library/LaunchDaemons named <code>com.mysql.mysqld.plist</code><br />
Paste the following XML into the new file:</p>
<pre>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"&gt;
&lt;plist version="1.0"&gt;
&lt;dict&gt;
    &lt;key&gt;KeepAlive&lt;/key&gt;
    &lt;true/&gt;
    &lt;key&gt;Label&lt;/key&gt;
    &lt;string&gt;com.mysql.mysqld&lt;/string&gt;
    &lt;key&gt;Program&lt;/key&gt;
    &lt;string&gt;/usr/local/mysql/bin/mysqld_safe&lt;/string&gt;
    &lt;key&gt;RunAtLoad&lt;/key&gt;
    &lt;true/&gt;
    &lt;key&gt;UserName&lt;/key&gt;
    &lt;string&gt;mysql&lt;/string&gt;
    &lt;key&gt;WorkingDirectory&lt;/key&gt;
    &lt;string&gt;/usr/local/mysql&lt;/string&gt;
&lt;/dict&gt;
&lt;/plist&gt;</pre>
<p>While still in the LaunchDaemons folder, enter:<br />
<code><span style="text-decoration: line-through;">sudo chown root /com.mysql.mysqld.plist</span><br />
sudo chown root com.mysql.mysqld.plist </code></p>
<p>Return to the top directory and enter:<br />
<code>sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysqld.plist</code></p>
<p>MySQL should now be running. To enter MySQL, enter in Terminal:<br />
<code>mysql -u root</code></p>
<p>You should see the following:<br />
<code>Welcome to the MySQL monitor.  Commands end with ; or \g.<br />
Your MySQL connection id is 1<br />
Server version: 5.0.45 Source distribution<br />
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.<br />
mysql&gt;</code></p>
<p>Congratulations, you&#8217;ve installed MySQL from binary source!</p>
<p>If you do not see the MySQL monitor, make sure you followed all the steps above. When I did this for the first time, it didn&#8217;t work so I disabled the install and started over from the top and it worked fine the second time around.</p>
]]></content:encoded>
			<wfw:commentRss>http://colinloretz.com/2008/09/install-mysql-from-source-on-mac-os-x/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
