<?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>Richard K Miller &#187; Programming</title>
	<atom:link href="http://richardkmiller.com/category/programming/feed" rel="self" type="application/rss+xml" />
	<link>http://richardkmiller.com</link>
	<description></description>
	<lastBuildDate>Mon, 05 Jul 2010 22:58:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>FamilyLink.com + Kynetx: How websites could be better with your family</title>
		<link>http://richardkmiller.com/860/familylink-com-kynetx-how-websites-could-be-better-with-your-family</link>
		<comments>http://richardkmiller.com/860/familylink-com-kynetx-how-websites-could-be-better-with-your-family#comments</comments>
		<pubDate>Thu, 07 Jan 2010 20:54:37 +0000</pubDate>
		<dc:creator>Richard K Miller</dc:creator>
				<category><![CDATA[Family]]></category>
		<category><![CDATA[FamilyLink.com]]></category>
		<category><![CDATA[Main]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://richardkmiller.com/?p=860</guid>
		<description><![CDATA[I&#8217;ve been playing around with Kynetx.com technology. I think it has a lot of cool potential for helping FamilyLink.com users see who their relatives are across multiple websites. For example, What if you could see your FamilyLink.com relatives directly in &#8230; <a href="http://richardkmiller.com/860/familylink-com-kynetx-how-websites-could-be-better-with-your-family">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class='microid-c328364b4ed2bc0cbbde125a8adbfa04eb597c0d'><p>I&#8217;ve been playing around with <a href="http://kynetx.com/">Kynetx.com</a> technology. I think it has a lot of cool potential for helping FamilyLink.com users see who their relatives are across multiple websites.</p>
<p>For example,</p>
<ul>
<li>What if you could see your FamilyLink.com relatives directly in Facebook?</li>
<li>If you knew which LinkedIn users were your relatives, would you be more likely to do business?</li>
<li>If you knew which Twitter users were your relatives, would you be more likely to follow them?</li>
<li>If you discovered that a comment on a political news story with which you strongly disagreed was from a relative, would you be more careful how you responded?</li>
</ul>
<p>Here&#8217;s a demo video:<br />
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/skDe5WGNbHg&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/skDe5WGNbHg&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
</div>]]></content:encoded>
			<wfw:commentRss>http://richardkmiller.com/860/familylink-com-kynetx-how-websites-could-be-better-with-your-family/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Reminiscing about Provo411.com and Scraping the Course Catalog</title>
		<link>http://richardkmiller.com/780/reminiscing-about-provo411-com-and-scraping-the-course-catalog</link>
		<comments>http://richardkmiller.com/780/reminiscing-about-provo411-com-and-scraping-the-course-catalog#comments</comments>
		<pubDate>Thu, 08 Oct 2009 17:58:11 +0000</pubDate>
		<dc:creator>Richard K Miller</dc:creator>
				<category><![CDATA[BYU]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Entrepreneurship]]></category>
		<category><![CDATA[Main]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://richardkmiller.com/?p=780</guid>
		<description><![CDATA[One of my first web development projects and biz partnerships with Brian Stucki was Provo411.com. We were roommates at BYU and conceived of a website where students could share events -- parties, concerts, football games, etc. We were already in &#8230; <a href="http://richardkmiller.com/780/reminiscing-about-provo411-com-and-scraping-the-course-catalog">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class='microid-094c99b227bd0f07e51e726ad993de96274495c3'><p>One of my first web development projects and biz partnerships with <a href="http://www.brianstucki.com/blog/">Brian Stucki</a> was <a href="http://www.provo411.com/">Provo411.com</a>. We were roommates at BYU and conceived of a website where students could share events -- parties, concerts, football games, etc. We were already in our beds for the night when the idea came, but we couldn't go to sleep before buying the domain. I think it was the first domain I ever bought. It was September 2002.</p>
<p>I developed a calendar in PHP and wrote a few scripts to scrape <a href="http://byucougars.com/">byucougars.com</a> and retrieve the sports schedules. I also developed a <a href="http://en.wikipedia.org/wiki/Wireless_Markup_Language">WML</a> app so Brian and I could add events to the calendar from our pre-iPhone mobile phones. I recall being at a party in south Provo, in a former dental office, and using my Nextel phone to add the party to Provo411. If you go back far enough, you can see <a href="http://www.provo411.com/2003/10">events on the calendar</a>. My brother Alan did the artwork.</p>

<a href='http://richardkmiller.com/780/reminiscing-about-provo411-com-and-scraping-the-course-catalog/byu' title='BYU'><img width="30" height="30" src="http://richardkmiller.com/wp-content/uploads/2009/10/BYU.jpg" class="attachment-thumbnail" alt="BYU" title="BYU" /></a>
<a href='http://richardkmiller.com/780/reminiscing-about-provo411-com-and-scraping-the-course-catalog/concert' title='Concert'><img width="30" height="30" src="http://richardkmiller.com/wp-content/uploads/2009/10/Concert.jpg" class="attachment-thumbnail" alt="Concert" title="Concert" /></a>
<a href='http://richardkmiller.com/780/reminiscing-about-provo411-com-and-scraping-the-course-catalog/dance' title='Dance'><img width="30" height="30" src="http://richardkmiller.com/wp-content/uploads/2009/10/Dance.jpg" class="attachment-thumbnail" alt="Dance" title="Dance" /></a>
<a href='http://richardkmiller.com/780/reminiscing-about-provo411-com-and-scraping-the-course-catalog/football' title='Football'><img width="30" height="30" src="http://richardkmiller.com/wp-content/uploads/2009/10/Football.jpg" class="attachment-thumbnail" alt="Football" title="Football" /></a>
<a href='http://richardkmiller.com/780/reminiscing-about-provo411-com-and-scraping-the-course-catalog/live_band' title='Live_Band'><img width="30" height="30" src="http://richardkmiller.com/wp-content/uploads/2009/10/Live_Band.jpg" class="attachment-thumbnail" alt="Live_Band" title="Live_Band" /></a>
<a href='http://richardkmiller.com/780/reminiscing-about-provo411-com-and-scraping-the-course-catalog/meal' title='Meal'><img width="30" height="30" src="http://richardkmiller.com/wp-content/uploads/2009/10/Meal.jpg" class="attachment-thumbnail" alt="Meal" title="Meal" /></a>
<a href='http://richardkmiller.com/780/reminiscing-about-provo411-com-and-scraping-the-course-catalog/soccer' title='Soccer'><img width="30" height="30" src="http://richardkmiller.com/wp-content/uploads/2009/10/Soccer.jpg" class="attachment-thumbnail" alt="Soccer" title="Soccer" /></a>
<a href='http://richardkmiller.com/780/reminiscing-about-provo411-com-and-scraping-the-course-catalog/talk' title='Talk'><img width="30" height="30" src="http://richardkmiller.com/wp-content/uploads/2009/10/Talk.jpg" class="attachment-thumbnail" alt="Talk" title="Talk" /></a>
<a href='http://richardkmiller.com/780/reminiscing-about-provo411-com-and-scraping-the-course-catalog/theater' title='Theater'><img width="30" height="30" src="http://richardkmiller.com/wp-content/uploads/2009/10/Theater.jpg" class="attachment-thumbnail" alt="Theater" title="Theater" /></a>
<a href='http://richardkmiller.com/780/reminiscing-about-provo411-com-and-scraping-the-course-catalog/volleyball' title='Volleyball'><img width="30" height="30" src="http://richardkmiller.com/wp-content/uploads/2009/10/Volleyball.jpg" class="attachment-thumbnail" alt="Volleyball" title="Volleyball" /></a>

<p>I always wanted Provo411.com to have a course schedule alert system. Perhaps students would pay $3 to receive an email or SMS alert when hard-to-get classes had an opening. It shouldn't have been hard technically, but the <a href="http://saas.byu.edu/classSchedule/schedule.php">publicly available course catalog</a> isn't updated in real-time. I could have scraped the authenticated course catalog on Route Y, but BYU might have objected and it'd be a fragile business model.</p>
<p>My brother Michael recently came home from <a href="http://www.youtube.com/watch?v=TbwT4j-mLdw">his mission</a> and started school at <a href="http://www.csn.edu/">CSN</a>. The business classes he wanted were full, so I put the old "course schedule alert" idea to the test with some new tools -- Ruby and Mac OS X's speech. Here's what I came up with:</p>
<div class="igBar"><span id="lruby-2"><a href="#" onclick="javascript:showPlainTxt('ruby-2'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">RUBY:</span>
<div id="ruby-2">
<div class="ruby">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#008000; font-style:italic;">#!/usr/bin/env ruby</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#008000; font-style:italic;"># a list of course call numbers to check</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">call_numbers = %w<span style="color:#006600; font-weight:bold;">&#123;</span> <span style="color:#006666;color:#800000;">46405</span> <span style="color:#006666;color:#800000;">46407</span> <span style="color:#006666;color:#800000;">46409</span> <span style="color:#006666;color:#800000;">46411</span> <span style="color:#006666;color:#800000;">46415</span> <span style="color:#006666;color:#800000;">46413</span> <span style="color:#006666;color:#800000;">53252</span> <span style="color:#006666;color:#800000;">53254</span> <span style="color:#006666;color:#800000;">53256</span> <span style="color:#006666;color:#800000;">53258</span> <span style="color:#006666;color:#800000;">53260</span> <span style="color:#006666;color:#800000;">53262</span> <span style="color:#006666;color:#800000;">53268</span> <span style="color:#006666;color:#800000;">53270</span> <span style="color:#006666;color:#800000;">53272</span> <span style="color:#006666;color:#800000;">53274</span> <span style="color:#006666;color:#800000;">46423</span> <span style="color:#006666;color:#800000;">46435</span> <span style="color:#006666;color:#800000;">53276</span> <span style="color:#006666;color:#800000;">46443</span> <span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#008000; font-style:italic;"># auth_token obtained via Firefox+TamperData while my brother logged into CSN</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">auth_token = <span style="color:#996600;">"123456789012345"</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">say <span style="color:#996600;">"Checking"</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">call_numbers.<span style="color:#9900CC;">uniq</span>.<span style="color:#9900CC;">sort</span>.<span style="color:#9900CC;">each</span> <span style="color:#9966CC; font-weight:bold;">do</span> |call_number|</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; c = <span style="color:#996600;">`curl -si -d CONVTOKEN=#{auth_token} -d AUDITT=N -d CALLT=#{call_number} -d CONTINUE=Continue &quot;https://bighorn.nevada.edu/sis_csn/XSMBWEBM/SIVRE04.STR&quot;`</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#CC0066; font-weight:bold;">print</span> <span style="color:#996600;">"Call number #{call_number}: "</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#9966CC; font-weight:bold;">if</span> <span style="color:#006600; font-weight:bold;">&#40;</span>c =~ /&lt;p <span style="color:#9966CC; font-weight:bold;">class</span>=<span style="color:#996600;">"p5"</span>&gt;<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#91;</span>^&lt;<span style="color:#006600; font-weight:bold;">&#93;</span>+<span style="color:#006600; font-weight:bold;">&#41;</span>&lt;br\/&gt;/m<span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#9966CC; font-weight:bold;">if</span> $<span style="color:#006666;color:#800000;">1</span>.<span style="color:#9900CC;">strip</span>.<span style="color:#9900CC;">empty</span>?</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#CC0066; font-weight:bold;">puts</span> <span style="color:#996600;">"May have openings<span style="color:#000099;">\n</span>"</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#006666;color:#800000;">3</span>.<span style="color:#9900CC;">times</span> <span style="color:#006600; font-weight:bold;">&#123;</span>say <span style="color:#996600;">"Michael, class number #{call_number} may be open!"</span><span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#9966CC; font-weight:bold;">else</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#CC0066; font-weight:bold;">puts</span> <span style="color:#996600;">"#{$1.strip}<span style="color:#000099;">\n</span>"</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#9966CC; font-weight:bold;">end</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#9966CC; font-weight:bold;">else</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#CC0066; font-weight:bold;">puts</span> <span style="color:#996600;">"could not find message"</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; say <span style="color:#996600;">"Help. I cannot access the C S N website."</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#0000FF; font-weight:bold;">return</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#9966CC; font-weight:bold;">end</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#CC0066; font-weight:bold;">sleep</span> <span style="color:#006666;color:#800000;">5</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#9966CC; font-weight:bold;">end</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#008000; font-style:italic;"># Ouput an audible message via Mac OS X's speech function</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#9966CC; font-weight:bold;">def</span> say<span style="color:#006600; font-weight:bold;">&#40;</span>message<span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#996600;">`say &quot;#{message}&quot;`</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#9966CC; font-weight:bold;">end</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>We set this to run every 15 minutes on the living room iMac, and we turned up the volume. Every 15 minutes we could hear "Checking" from the computer. A few hours later we heard the script announce that a class had opened up. Michael, I'm still waiting for my $3.</p>
</div>]]></content:encoded>
			<wfw:commentRss>http://richardkmiller.com/780/reminiscing-about-provo411-com-and-scraping-the-course-catalog/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>More Flow, More Happiness</title>
		<link>http://richardkmiller.com/296/more-flow-more-happiness</link>
		<comments>http://richardkmiller.com/296/more-flow-more-happiness#comments</comments>
		<pubDate>Thu, 30 Aug 2007 05:18:35 +0000</pubDate>
		<dc:creator>Richard K Miller</dc:creator>
				<category><![CDATA[Flow]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.richardkmiller.com/blog/archives/2007/08/more-flow-more-happiness</guid>
		<description><![CDATA[I usually spend only 20% of my workday programming, but this week I've been doing more of it and it's been awesome. There's something really rewarding about refactoring code -- making it more concise, more logical, more consistent. More beautiful. &#8230; <a href="http://richardkmiller.com/296/more-flow-more-happiness">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class='microid-dcf629c30e95c6c7df3e8f7af46bfb79d2f730b3'><p>I usually spend only 20% of my workday programming, but this week I've been doing more of it and it's been awesome. There's something really rewarding about refactoring code -- making it more concise, more logical, more consistent. More beautiful. This isn't even new code; I'm just pruning the old stuff in preparation for coming additions. Jon Udell says good programming is like good writing: you need multiple drafts.</p>
<p>For me, programming is the way I get into flow. Sometimes writing can do it for me too. For my grandmother, I think it was quilting. I believe much happiness comes from creating something.</p>
</div>]]></content:encoded>
			<wfw:commentRss>http://richardkmiller.com/296/more-flow-more-happiness/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Notes on Facebook</title>
		<link>http://richardkmiller.com/295/notes-on-facebook</link>
		<comments>http://richardkmiller.com/295/notes-on-facebook#comments</comments>
		<pubDate>Fri, 10 Aug 2007 13:29:40 +0000</pubDate>
		<dc:creator>Richard K Miller</dc:creator>
				<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Main]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.richardkmiller.com/blog/archives/2007/08/notes-on-facebook</guid>
		<description><![CDATA[Thursday evening I presented briefly at the Utah Facebook Developers Garage. Here are the links and articles I shared: How big is it? Paul Allen: Internet Entrepreneur » Prediction: Facebook will be the largest social network in the world blog.pmarca.com: &#8230; <a href="http://richardkmiller.com/295/notes-on-facebook">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class='microid-ca2b77be46d6441027fd7b874c80a53f21ac7831'><p>Thursday evening I presented briefly at the <a href="http://www.phil801.com/wpblog/2007/08/09/utah-facebook-developers-garage-tonight/">Utah Facebook Developers Garage</a>. Here are the links and articles I shared:</p>
<h4>How big is it?</h4>
<p><a href="http://www.paulallen.net/2007/05/25/prediction-facebook-will-be-the-largest-social-network-in-the-world/">Paul Allen: Internet Entrepreneur » Prediction: Facebook will be the largest social network in the world</a></p>
<p><a href="http://blog.pmarca.com/2007/06/analyzing_the_f.html">blog.pmarca.com: Analyzing the Facebook Platform, three weeks in</a></p>
<p><a href="http://www.marketingvox.com/archives/2007/06/11/ilike-loves-an-open-facebook/?rss1">iLike Loves an Open Facebook - MarketingVOX</a></p>
<h4>Current growth</h4>
<p><a href="http://blog.jonudell.net/2007/06/15/facebookizing-the-web-webifying-facebook/">Facebookizing the Web, Webifying Facebook « Jon Udell</a></p>
<p><a href="http://www.google.com/search?client=safari&#038;rls=en&#038;q=facebook+application+site:craigslist.org&#038;ie=UTF-8&#038;oe=UTF-8">facebook application site:craigslist.org - Google Search</a></p>
<p><a href="http://www.elance.com/p/?q=eolsearch&#038;matchType=project#matchKeywords=facebook%20application&#038;catFilter=100">Search Projects on Elance | Elance</a></p>
<p><a href="http://www.google.com/search?num=50&#038;hl=en&#038;client=safari&#038;rls=en&#038;q=facebook+application&#038;btnG=Search">facebook application - Google Search</a></p>
<h4>Interesting commentary</h4>
<p><a href="http://www.techcrunch.com/2007/07/27/how-much-is-a-facebook-user-worth-at-least-030/">How Much Is A Facebook User Worth? At Least $0.30</a></p>
<p><a href="http://www.techcrunch.com/2007/07/24/9-ways-to-build-your-own-social-network/">9 Ways to Build Your Own Social Network</a></p>
<p><a href="http://www.commoncraft.com/facebook-addiction-and-new-news">Facebook, Addiction and the New News | Common Craft - Video Production and Consulting</a></p>
<p><a href="http://www.danah.org/papers/essays/ClassDivisions.html">Viewing American class divisions through Facebook and MySpace</a></p>
<p><a href="http://www.socialdegree.com/2007/05/29/facebook-platform-the-challenges-ahead-for-developers/">Social Degree » Facebook Platform - The Challenges Ahead For Developers</a></p>
<h4>Where to learn more</h4>
<p><a href="http://www.facereviews.com/">FaceReviews.com :: Facebook Application Reviews, Facebook Widgets and Facebook News. Sharing the Facebook Blog love.</a></p>
<p><a href="http://scobleizer.com/?s=facebook">Scobleizer</a></p>
<p><a href="http://www.socialdegree.com/index.php?s=facebook">Social Degree</a></p>
<p><a href="http://mashable.com/?s=facebook">Mashable! - The Social Networking Blog search results: facebook</a></p>
<p><a href="http://www.commoncraft.com/video-social-networking">Video: Social Networking in Plain English | Common Craft - Video Production and Consulting</a></p>
</div>]]></content:encoded>
			<wfw:commentRss>http://richardkmiller.com/295/notes-on-facebook/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Amtrak series: Ruby on Rails on Rails</title>
		<link>http://richardkmiller.com/273/amtrak-series-ruby-on-rails-on-rails</link>
		<comments>http://richardkmiller.com/273/amtrak-series-ruby-on-rails-on-rails#comments</comments>
		<pubDate>Thu, 07 Jun 2007 17:00:50 +0000</pubDate>
		<dc:creator>Richard K Miller</dc:creator>
				<category><![CDATA[Amtrak]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Entrepreneurship]]></category>
		<category><![CDATA[Open source]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://www.richardkmiller.com/blog/archives/2007/06/amtrak-series-ruby-on-rails-on-rails</guid>
		<description><![CDATA[This will be the most technical of my posts in the Amtrak series, but it's not just for computer geeks so stay with me. Here we go. Ruby on Rails is a "web application framework", a way for programmers to &#8230; <a href="http://richardkmiller.com/273/amtrak-series-ruby-on-rails-on-rails">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class='microid-25ab5b4d4da0e906b96ef5184bc029a41a0bb498'><p>This will be the most technical of my posts in the Amtrak series, but it's not just for computer geeks so stay with me. Here we go.</p>
<p><a href="http://www.rubyonrails.org/">Ruby on Rails</a> is a "web application framework", a way for programmers to make web applications more easily and more quickly (and more enjoyably, as its creators would be quick to point out.) It was created by <a href="http://37signals.com/">37signals</a>, the makers of Basecamp and other fine web apps, and has been one of the fastest growing programming environments of the last couple years. "Ruby" is the programming language and "Rails" is the set of additions that make it "fast" and "easy," like a high-speed train. (Not a <a href="http://www.richardkmiller.com/blog/archives/2007/06/amtrak-series-pictures">sight-seeing Amtrak</a>.)</p>
<p><a href='http://www.richardkmiller.com/blog/wp-content/uploads/2007/06/img_0088.jpg' title='img_0088.jpg' rel='lightbox'><img src='http://www.richardkmiller.com/blog/wp-content/uploads/2007/06/img_0088.thumbnail.jpg' alt='img_0088.jpg' style='float:right; margin:1em;' /></a></p>
<p>You probably see where this is going. As an exercise in literalness, I though it would be interesting to do a little Ruby on Rails programming while on the train, or in other words, Ruby on Rails on Rails. (Mitch Hedberg said "I'd like to see a forklift lift a crate of forks. It'd be so...literal. 'Hey, you're using that machine for its exact purpose!'") See the pictures.</p>
<p>I have not delved into Rails as much as my local colleagues, but with the little I've used it, I've been impressed. By taking away the tedious parts of programming, it really does make programming more enjoyable. I know <a href="http://www.johntaber.com/">several</a> <a href="http://www.griffio.com/">good</a> <a href="http://www.apriux.com/">developers</a> who prefer it.</p>
<p>Ruby on Rails enforces an architecture called "Model-View-Controller" (MVC), which is used heavily in Mac applications and well written web applications. Though not built on Rails, <a href="http://wordpress.org/">WordPress</a> also uses an MVC architecture. If you have a WordPress blog, you know you can easily change the theme of your blog. This is thanks to the modular MVC architecture with which it was written.</p>
<p><a href='http://www.richardkmiller.com/blog/wp-content/uploads/2007/06/img_0096.jpg' title='img_0096.jpg' rel='lightbox'><img src='http://www.richardkmiller.com/blog/wp-content/uploads/2007/06/img_0096.thumbnail.jpg' alt='img_0096.jpg' style='float:right; margin:1em;' /></a></p>
<p>Here's where this applies to everyone: 37signals hasn't only extracted Rails from their best programming practices, they've also extracted a book from their best business practices. I highly recommend <a href="http://gettingreal.37signals.com/">Getting Real</a> by 37signals, availably entirely for free on their <a href="http://gettingreal.37signals.com/toc.php">website</a>. They've <a href="http://www.37signals.com/svn/posts/451-whats-your-cookbook">given away their "cookbook"</a> -- what they've learned about marketing, project management, time management, hiring, agility, task prioritization, and more. I finished the book believing that small teams can do great things.</p>
<p style='clear:both;'>
</div>]]></content:encoded>
			<wfw:commentRss>http://richardkmiller.com/273/amtrak-series-ruby-on-rails-on-rails/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
