<?xml version="1.0" encoding="utf-8"?>
			
			<rss version="2.0">
			<channel>
			<title>SamSpeak - Personal</title>
			<link>http://sam.curren.ws/index.cfm</link>
			<description>What I Gotta Say</description>
			<language>en-us</language>
			<pubDate>Thu, 09 Sep 2010 02:52:38-0700</pubDate>
			<lastBuildDate>Wed, 17 Mar 2010 08:36:00-0700</lastBuildDate>
			<generator>BlogCFC</generator>
			<docs>http://blogs.law.harvard.edu/tech/rss</docs>
			<managingEditor>telegramsam@byu.edu</managingEditor>
			<webMaster>telegramsam@byu.edu</webMaster>
			
			<item>
				<title>Amazing Things happening at Kynetx - Come to Impact</title>
				<link>http://sam.curren.ws/index.cfm/2010/3/17/Amazing-Things-happening-at-Kynetx--Come-to-Impact</link>
				<description>
				
				Over sushi a few nights ago, I had the opportunity to bring Drummond Reid up to speed with what Kynetx has been doing. After several months in the trenches, it was a revealing experience to climb a tower and see just how far we&apos;ve come. As I unfolded item after item, I was surpised to find another thing to describe.

At our last Impact Conference, we unfolded the Kynetx Engine, and demonstrated some ways to use Kynetx in your quest to do amazing things.

At this next Impact Conference, we will deliver an update on the progress with the engine, the improvement of our tools, and all of the things that have kept us busy over the last few months. If you want to hear about some of the stuff I downloaded to Drummond, you&apos;ll want to attend the conference. If you came to the last Impact, this one will be better. If you didn&apos;t, then it&apos;s time for you to understand what we are doing and what it means for the world.

Oh, and the food will be worth the price of admission alone. Seriously. Sign up for Impact.

&lt;a href=&quot;http://kynetximpactspring2010.eventbrite.com/&quot;&gt;Kynetx Impact Spring 2010&lt;/a&gt;&lt;br/&gt;
April 27-28 2010&lt;br/&gt;
Miller Free Enterprise Center (MFEC)&lt;br/&gt;
at Salt Lake Community College&lt;br/&gt;
9750 South 300 West&lt;br/&gt;
Sandy, UT 84070&lt;br/&gt;

Use Code FOK2010 for a 33% discount on the conference price. 
				</description>
				
				<category>Web-Applications</category>				
				
				<category>Development</category>				
				
				<category>Personal</category>				
				
				<category>Technology</category>				
				
				<pubDate>Wed, 17 Mar 2010 08:36:00-0700</pubDate>
				<guid>http://sam.curren.ws/index.cfm/2010/3/17/Amazing-Things-happening-at-Kynetx--Come-to-Impact</guid>
				
			</item>
			
			<item>
				<title>On Being 30</title>
				<link>http://sam.curren.ws/index.cfm/2010/1/3/On-Being-30</link>
				<description>
				
				&lt;p&gt;I had my 30th birthday this last week. I was frequently asked how I has handling it. Turning 30 seems to carry some serious mental baggage for many people, and seems to cause reflection on one&apos;s progress through life.&lt;/p&gt;

&lt;p&gt;I&apos;m very happy with my life. I have an &lt;a href=&quot;http://picturememine.com/&quot;&gt;awesome wife&lt;/a&gt;, two great kids (and one on the way!), a Masters Degree, a house, a job where I work on &lt;a href=&quot;http://kynetx.com/&quot;&gt;exciting things with good people&lt;/a&gt;, good neighbors and friends, and a small but growing collection of tools in my workshop. I have a relationship with &lt;a href=&quot;http://jesuschrist.lds.org/&quot;&gt;my Savior&lt;/a&gt;, and I&apos;m grateful for all he has blessed and granted me with.&lt;/p&gt;

&lt;p&gt;I&apos;m don&apos;t remember having any specific goals to meet by the time I was 30, so I declare them met.&lt;/p&gt;

&lt;p&gt;Perhaps the only downside is that I&apos;m no longer considered a 20-something. Apparently everyone expects the next big &apos;thing&apos; to come from a 20-something. I&apos;m no off the radar, leaving me free to surprise everyone when I do awesome things.&lt;/p&gt;

&lt;p&gt;Being 30 is just fine with me.&lt;/p&gt;

&lt;p&gt;On a side note: My 4 year old asked how old I was on my birthday. We told her that I was &apos;old&apos;. She then asked if I was going to die soon. Ahh, the relativity of things.&lt;/p&gt; 
				</description>
				
				<category>Personal</category>				
				
				<pubDate>Sun, 03 Jan 2010 08:07:00-0700</pubDate>
				<guid>http://sam.curren.ws/index.cfm/2010/1/3/On-Being-30</guid>
				
			</item>
			
			<item>
				<title>Changing the World at Kynetx</title>
				<link>http://sam.curren.ws/index.cfm/2009/10/20/Changing-the-World-at-Kynetx</link>
				<description>
				
				I&apos;ve been pretty quiet on my blog lately, and I have a really good excuse. Now that I&apos;ve graduated and have time to get involved in some serious endeavors, I&apos;ve joined the folks at &lt;a href=&quot;http://www.kynetx.com&quot;&gt;Kynetx&lt;/a&gt;. I&apos;ve been contributing in their efforts to change the world. Indeed, this does change everything.

&lt;img src=&quot;http://kynetx.com/images/logo.gif&quot;/&gt;

At Kynetx, we believe that experiences can be made better through better use and understanding of context. (&lt;a href=&quot;http://www.gartner.com/it/page.jsp?id=1190313&quot;&gt;Gartner agrees...&lt;/a&gt;) Context is data in time and space: who we are, what we are doing, and what our purpose is. Kynetx has what we call a Context Automation Engine, which does the heavy lifting required to produce intelligent applications. Using our engine, you can create complex applications easily, and deploy them fast.

I&apos;ll take a break now and again from my work to post more info, including examples and more information about what we are doing. If you want to learn more, attend the &lt;A href=&quot;http://kynetximpact.eventbrite.com/&quot;&gt;Kynetx Impact developer conference&lt;/a&gt; Nov 18-19. We will cover our technology and our vision. 

If you are interested in using our platform to add contextual intelligence to your applications, go &lt;a href=&quot;http://kynetximpact.eventbrite.com/&quot;&gt;sign up&lt;/a&gt;. Use code Windley50 for a 50% discount, and I&apos;ll see you there! 
				</description>
				
				<category>Web-Applications</category>				
				
				<category>Development</category>				
				
				<category>Personal</category>				
				
				<category>Technology</category>				
				
				<pubDate>Tue, 20 Oct 2009 16:00:00-0700</pubDate>
				<guid>http://sam.curren.ws/index.cfm/2009/10/20/Changing-the-World-at-Kynetx</guid>
				
			</item>
			
			<item>
				<title>Sam Rides 1000: The Numbers</title>
				<link>http://sam.curren.ws/index.cfm/2009/8/30/Sam-Rides-1000-The-Numbers</link>
				<description>
				
				&lt;p&gt;I&apos;ve now finished my 1,000 mile challenge, and like any self-respecting geek, I ran a few numbers about my ride. I&apos;ve posted them here, as well as some thoughts about the experience. &lt;/p&gt;  &lt;h3&gt;Stats&lt;/h3&gt;  &lt;p&gt;Start Date: 15 May 2009    &lt;br /&gt;Days: 100 Calendar Days     &lt;br /&gt;Time: 66.5 riding hours     &lt;br /&gt;Final Mileage: 1,003 miles     &lt;br /&gt;Miles from Commuting: 830     &lt;br /&gt;Miles in organized rides: 79 (Tour de Donut, ULCER 60 mile option)    &lt;br /&gt;Number of tire rotations: 792,300     &lt;br /&gt;Flats: 0* (After a small celebration at the park, I got a flat on the way home....)     &lt;br /&gt;Weight lost: ~10lbs.    &lt;br /&gt;Average length of ride: 10 miles    &lt;br /&gt;Average Moving Speed: 15 mph     &lt;br /&gt;Riding Hours: 66.5     &lt;br /&gt;Miles I didn&apos;t drive in my car: ~400     &lt;br /&gt;Time I didn&apos;t spend in my car: 16 hours &lt;/p&gt;  &lt;h3&gt;Random Facts&lt;/h3&gt;  &lt;p&gt;Many of my commuting miles were spent on the Jordan River Pathway in Utah County.    &lt;br /&gt;I did not listen to music (or anything else) at all.     &lt;br /&gt;My legs are now in the best shape they have ever been.     &lt;br /&gt;Because there is always a breeze, temperature didn&apos;t bother me as much as I thought it would. &lt;/p&gt;  &lt;h3&gt;Thoughts&lt;/h3&gt;  &lt;p&gt;When I started this challenge, I felt like 1,000 miles was a huge goal. After having completed it, I still feel like it was a huge goal, but in a different way then expected. Pedaling 1,000 miles was not really that difficult. More difficult was my willingness to sacrifice the time it took to ride each day. I cheated to make it work. By trading 10 minutes of drive time for ~45min of riding, I got 45 min of riding in while only sacrificing 35 minutes of time. Added up cumulatively, 16 hours not spent in a car is quite a lot of time recovered and put to better use exercising. &lt;/p&gt;  &lt;p&gt;Part of the reason I enjoyed this challenge so much is the route I take to work. I only travel through one major intersection, and most of my riding is on low traffic country roads or paved pathways. My route allows for many variations I can take for various distances. Having a variety of routes breaks things up, and I didn&apos;t get too bored of any one route. &lt;/p&gt;  &lt;p&gt;With my route and the fact that I was on a bike, I rarely dealt with traffic. After driving more this last week, I have begun to remember how bad commuting traffic can be while driving home. On a bike, I experience almost none of it. &lt;/p&gt;  &lt;p&gt;I accomplished my goal in just over three months. Utah has plenty of weather not conducive to cycling, so part of the year it is very painful to ride. Even so, I feel like almost anyone willing to make a consistent effort can accomplish this same goal. I&apos;ll write about my gear in another post, but my bike is a simple mountain bike, and I spent very little on gear, especially when you consider comparable gym fees. How much time did you spend exercising in a gym this year? 66 hours? How much did you spend on membership fees? Yeah, my gear was pretty cheap. &lt;/p&gt;  &lt;p&gt;So, will I do it again next year? Definitely. I do hope to be on a road bike though...&lt;/p&gt; 
				</description>
				
				<category>Bikes</category>				
				
				<category>Personal</category>				
				
				<category>Android</category>				
				
				<pubDate>Sun, 30 Aug 2009 19:52:57-0700</pubDate>
				<guid>http://sam.curren.ws/index.cfm/2009/8/30/Sam-Rides-1000-The-Numbers</guid>
				
			</item>
			
			<item>
				<title>Sam Rides 1000: Mountain Bike Commuting Tires</title>
				<link>http://sam.curren.ws/index.cfm/2009/7/28/Sam-Rides-1000-Mountain-Bike-Commuting-Tires</link>
				<description>
				
				&lt;img src=&quot;http://www.conti-online.com/generator/www/de/en/continental/bicycle/themes/tires/hidden/traffic/img/traffic_uv.ief&quot; style=&quot;width:200px;border:3px solid black;float:right;&quot;/&gt;
Early on in my 1,000 mile quest, one of my tires needed to be replaced. I had heard someplace that you could be tires designed for pavement for a mountain bike, and I started poking around. 

My good friends at &lt;a href=&quot;http://www.infinitecycles.com/&quot;&gt;Infinite Cycles&lt;/a&gt; recommended that I buy some &lt;a href=&quot;http://www.conti-online.com/generator/www/de/en/continental/bicycle/themes/tires/hidden/traffic/traffic_en.html&quot;&gt;Continental Traffic Tires&lt;/a&gt;. I have been completely happy with these tires. 

After installing the tires, I was immediately impressed with the lower rolling resistance, when compared to the knobby bike tires I was used to. The road felt smooth, my downhill speeds increased, and the tires feel very stable cornering. It leads to a much more pleasant experience. They perform well on wet streets as well.
&lt;img src=&quot;http://twitpic.com/show/thumb/acneg.jpg&quot; style=&quot;float:left;&quot;/&gt;
After more then a month of commuting on these tires, we took a vacation to Colorado for some singletrack sans kids. With a very few exceptions, these tires performed as well as my previous knobbys! It did slip more then expected as I rode over smooth branches and rocks, but I was very happy with my experience.

The reviews that I&apos;ve read indicate that these tires last for years, and I&apos;m looking forward to enjoying them on my commute!

If you are among those of us that commute on a mountain bike, do yourself a favor and buy a pair of these tires. The riding experience is much more enjoyable, and you&apos;ll find yourself riding more! 
				</description>
				
				<category>Bikes</category>				
				
				<category>Personal</category>				
				
				<pubDate>Tue, 28 Jul 2009 12:32:00-0700</pubDate>
				<guid>http://sam.curren.ws/index.cfm/2009/7/28/Sam-Rides-1000-Mountain-Bike-Commuting-Tires</guid>
				
			</item>
			
			<item>
				<title>Sam Rides 1000: Augmenting the Web</title>
				<link>http://sam.curren.ws/index.cfm/2009/6/30/Sam-Rides-1000-Augmenting-the-Web</link>
				<description>
				
				&lt;p&gt;In my previous two posts, I introduced my project and described data collection using my G1 and Google Spreadsheets. Today, I&apos;m going to show you how I used Kynetx Network Services to add my ride stats to my personal blog and to the Google homepage.&lt;/p&gt;

&lt;h2&gt;Dataset Conversion&lt;/h2&gt;

&lt;p&gt;Google Spreadsheets, where my stats are calculated, can publish data in a variety of formats. It cannot publish JSON data, so I use Yahoo&apos;s YQL to convert the data from CSV to json, with the following statement:&lt;/p&gt;
&lt;code&gt;
select * from csv where url=&apos;http://spreadsheets.google.com/pub?key=rxzHBMZyj1S-HVLy9lFEU7A&amp;single=true&amp;gid=1&amp;range=A12%3AC16&amp;output=csv&apos; and columns=&apos;period,miles,hours&apos; and period != &quot;&quot;
&lt;/code&gt;
&lt;p&gt;(See the &lt;a href=&quot;http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20csv%20where%20url%3D&apos;http%3A%2F%2Fspreadsheets.google.com%2Fpub%3Fkey%3DrxzHBMZyj1S-HVLy9lFEU7A%26single%3Dtrue%26gid%3D1%26range%3DA12%253AC16%26output%3Dcsv&apos;%20and%20columns%3D&apos;period%2Cmiles%2Chours&apos;%20and%20period%20!%3D%20%22%22&amp;format=json&amp;callback=&quot;&gt;raw JSON results&lt;/a&gt;)&lt;/p&gt;

&lt;h2&gt;Building the App&lt;/h2&gt;

&lt;p&gt;I then build my Kynetx App in &lt;a href=&quot;http://appbuilder.kynetx.com&quot;&gt;AppBuilder&lt;/a&gt;, defining the following datasource in the Global block:&lt;/p&gt;

&lt;code&gt;
dataset ridestats &lt;- &quot;http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20csv%20where%20url%3D&apos;http%3A%2F%2Fspreadsheets.google.com%2Fpub%3Fkey%3DrxzHBMZyj1S-HVLy9lFEU7A%26single%3Dtrue%26gid%3D1%26range%3DA12%253AC16%26output%3Dcsv&apos;%20and%20columns%3D&apos;period%2Cmiles%2Chours&apos;%20and%20period%20!%3D%20%22%22&amp;format=json&amp;callback=&quot; cachable for 2 hours
&lt;/code&gt;

&lt;p&gt;Since I ride in the morning and the evening, I cache the dataset for 2 hours. This keeps the data fairly current, but still keeps the service fast.&lt;/p&gt;

&lt;h2&gt;Annotating My Blog&lt;/h2&gt;

&lt;p&gt;I have two rules, the first of which adds stats to my personal blog:&lt;/p&gt;
&lt;code&gt;
select using &quot;http://sam.curren.ws/&quot; setting ()

pre {
    daymiles = ridestats.pick(&quot;$..results.row[0].miles&quot;);
    weekmiles = ridestats.pick(&quot;$..results.row[1].miles&quot;);
    monthmiles = ridestats.pick(&quot;$..results.row[2].miles&quot;);
    totalmiles = ridestats.pick(&quot;$..results.row[3].miles&quot;);
milesmessage = &lt;&lt;
&lt;h2&gt;Sam is riding 1,000 miles. Progress:
#{(daymiles &gt; 0 ? daymiles + &quot; Today, &quot; : &quot;&quot;)}
#{(weekmiles &gt; 0 &amp;&amp; weekmiles != daymiles ? weekmiles + &quot; This Week, &quot; : &quot;&quot;)}
#{(monthmiles &gt; 0 ? monthmiles + &quot; This Month, &quot; : &quot;&quot;)}
#{totalmiles} Total.&lt;/h2&gt;
&gt;&gt;

}

replace_html(&quot;#logo h2&quot;, milesmessage);
&lt;/code&gt;

&lt;p&gt;I set the rule to fire on my blog&apos;s domain, and then use the pick() method to extract different totals from the json dataset declared in the Global block. I construct a message string that varies depending on the different stat values. Finally, I replace the text at the top of my blog page with the message.&lt;/p&gt;

&lt;p&gt;To run the Kynetx application on my blog, I plant Kynetx tags on my blog. This enables everyone to see the Kynetx Application with no installs or Action Cards. The html tags are available within AppBuilder, and I simply copied them into the template for my blog.&lt;/p&gt;

&lt;h2&gt;Annotating Google&apos;s Homepage&lt;/h2&gt;

&lt;p&gt;My second rule is activated by an Action Card installed on the user&apos;s computer (instructions for installing this are in my first post). My second rule is very similar to the first rule, with some minor difference in inserted HTML and appending the message to the existing site, instead of replacing anything on the page.&lt;/p&gt;

&lt;code&gt;
select using &quot;http://www.google.com/&quot; setting ()

pre {
    daymiles = ridestats.pick(&quot;$..results.row[0].miles&quot;);
    weekmiles = ridestats.pick(&quot;$..results.row[1].miles&quot;);
    monthmiles = ridestats.pick(&quot;$..results.row[2].miles&quot;);
    totalmiles = ridestats.pick(&quot;$..results.row[3].miles&quot;);
milesmessage = &lt;&lt;
&lt;h2&gt;Sam is riding 1,000 miles.&lt;/h2&gt;&lt;p&gt; Progress:
#{(daymiles &gt; 0 ? daymiles + &quot; Today, &quot; : &quot;&quot;)}
#{(weekmiles &gt; 0 &amp;&amp; weekmiles != daymiles ? weekmiles + &quot; This Week, &quot; : &quot;&quot;)}
#{(monthmiles &gt; 0 ? monthmiles + &quot; This Month, &quot; : &quot;&quot;)}
#{totalmiles} Total.&lt;/p&gt;
&gt;&gt;

}

append(&quot;#body&gt;center&quot;, milesmessage);
&lt;/code&gt;

&lt;p&gt;Activating Kynetx Rules with an Action Card also requires an update to the Dispatch block of the rule, adding this line:&lt;/p&gt;

&lt;code&gt;
domain &quot;www.google.com&quot;
&lt;/code&gt;

&lt;p&gt;I also generate the card inside AppBuilder, providing a custom image that I created using &lt;a href=&quot;http://pixlr.com&quot;&gt;Pixlr&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And there you have it. Sam rides 1000 miles, with automated stats provided by Android MyTracks, Google Spreadsheets, YQL, and Kynetx Network Services.&lt;/p&gt;

&lt;h2&gt;Shameless Plug&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;http://www.kynetx.com&quot;&gt;Kynetx&lt;/a&gt; is a cloud based automation engine, capable of doing the things I&apos;ve demonstrated and much, much more. If you&apos;d like to use Kynetx Network Services, &lt;a href=&quot;http://accounts.kynetx.com&quot;&gt;sign up for an account&lt;/a&gt;, and start using &lt;a href=&quot;http://appbuilder.kynetx.com&quot;&gt;AppBuilder&lt;/a&gt;. 
				</description>
				
				<category>Web-Applications</category>				
				
				<category>Javascript</category>				
				
				<category>Android</category>				
				
				<category>Development</category>				
				
				<category>Personal</category>				
				
				<category>Technology</category>				
				
				<pubDate>Tue, 30 Jun 2009 09:19:00-0700</pubDate>
				<guid>http://sam.curren.ws/index.cfm/2009/6/30/Sam-Rides-1000-Augmenting-the-Web</guid>
				
			</item>
			
			<item>
				<title>Sam Rides 1000: Collecting Ride Data using the Android Powered G1</title>
				<link>http://sam.curren.ws/index.cfm/2009/6/26/Sam-Rides-1000-Collecting-Ride-Data-using-the-Android-Powered-G1</link>
				<description>
				
				&lt;p&gt;On my Android powered T-Mobile G1, I&apos;m using the free &lt;a href=&quot;http://mytracks.appspot.com/&quot;&gt;My Tracks&lt;/a&gt; application to record my rides. I start recording just before I start, then throw it in my pocket or bag. I stop recording at the end of my ride, then use the Upload to Google option in the map menu. You can upload the track to My Maps within Google Maps, but my rides are very similar, so I usually only upload to Google Spreadsheets.&lt;/p&gt;
&lt;img src=&quot;http://mytracks.appspot.com/images/phones_with_all_views.png&quot;/&gt;
&lt;p&gt;Uploading to Google Spreadsheets creates a new spreadsheet in Google Docs, with one page for ride data, and another for stats. The program creates a new spreadsheet for each activity type, so I make sure and select Cycling when I stop recording at the end of my ride.&lt;/p&gt;

&lt;h2&gt;Additional Stats&lt;/h2&gt;

&lt;p&gt;It&apos;s important not to manually change too much on the Log sheet, as the program will get confused, but everything else in the spreadsheet is open to tinkering. In addition to the total miles and total time stats, I wanted to calculate daily, weekly, and monthly totals.&lt;/p&gt;

&lt;p&gt;Before I computed those stats, I had to handle the date field uploaded by the My Tracks application. Google Spreadsheets cannot parse the provided date as a date value, so I had to help it along. I created a Dates sheet to accomplish that task. Rather then try and explain what I did, see this spreadsheet, which contains my modifications and formulas:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://spreadsheets.google.com/ccc?key=rHobEIYHkJxRwJ8_4EuSNtQ&quot;&gt;Sample Spreadsheet with modifications.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I then added some additional stats, first by calculating the start of the date range I wanted to sum, then using SumIf() to only add the mileage and time from the period I wanted.&lt;/p&gt;

&lt;p&gt;Finally, I published the Stats sheet of my spreadsheet, so I could use it as a dataset for my Kynetx Application, which I&apos;ll explain in a future post.&lt;/p&gt; 
				</description>
				
				<category>Web-Applications</category>				
				
				<category>Android</category>				
				
				<category>Development</category>				
				
				<category>Personal</category>				
				
				<category>Technology</category>				
				
				<pubDate>Fri, 26 Jun 2009 20:06:00-0700</pubDate>
				<guid>http://sam.curren.ws/index.cfm/2009/6/26/Sam-Rides-1000-Collecting-Ride-Data-using-the-Android-Powered-G1</guid>
				
			</item>
			
			<item>
				<title>Progressive Spatial Networks</title>
				<link>http://sam.curren.ws/index.cfm/2009/5/30/Progressive-Spatial-Networks</link>
				<description>
				
				&lt;p&gt;I&#xe2;¬"ve been pretty silent the last few months here on my blog. I&#xe2;¬"ve been pretty busy with things like settling into our new house and starting full-time at &lt;a href=&quot;http://www.kynetx.com&quot;&gt;Kynetx&lt;/a&gt;. A major sap on my free time both recently and for the last several years has been my Master&#xe2;¬"s Thesis. I&#xe2;¬"ve graduated now, and finally carved out some time to update my blog.&lt;/p&gt;  &lt;p&gt;In my efforts in resuming regular blogging, I find it appropriate to post my Thesis for all the world. First, a little backstory.&lt;/p&gt;  &lt;p&gt;For my thesis work, I worked on an algorithm to combine GPS tracklogs into what I call a spatial network. I chose this work because of my experience building &lt;a href=&quot;http://www.activetrails.com&quot;&gt;ActiveTrails.com&lt;/a&gt;. As any excited graduate student (pre-thesis student, that is) I had grand ideas about what I was going to accomplish with my thesis work. Luckily for me, my graduate advisor guided me properly through the process, and I finally completed my work. &lt;/p&gt;  &lt;p&gt;I do find it strange that only a written Thesis is required for an MS in Computer Science. I&#xe2;¬"ve decided that it only makes sense to post my code, that others might be able to experiment with my work without having to rewrite it from scratch. Now, I&#xe2;¬"m sure I&#xe2;¬"ve made plenty of mistakes in my code, and I hope that others can produce much better results then I, and not fall into the same lines of thinking that perhaps restricted my results. &lt;/p&gt;  &lt;p&gt;I originally had plans to organize my code, clean it up, flush it full of comments, and organize my result files. And then I realized it might never happen. I&#xe2;¬"ve packaged my code, source files, and results into a zip file, and though it isn&#xe2;¬"t perfectly clean, I hope it&#xe2;¬"s useful for those who want to use it.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://sam.curren.ws/enclosures/ProgressiveSpatialNetworks.pdf&quot;&gt;Progressive Spatial Networks: Learning from GPS Tracklogs&lt;/a&gt; (pdf link)&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://sam.curren.ws/enclosures/SamsThesis.zip&quot;&gt;Source data, python source code, and result files&lt;/a&gt; (zip file).&lt;/p&gt; 
				</description>
				
				<category>Development</category>				
				
				<category>Personal</category>				
				
				<category>School</category>				
				
				<pubDate>Sat, 30 May 2009 00:00:39-0700</pubDate>
				<guid>http://sam.curren.ws/index.cfm/2009/5/30/Progressive-Spatial-Networks</guid>
				
			</item>
			
			<item>
				<title>Non-technical friends on Twitter</title>
				<link>http://sam.curren.ws/index.cfm/2009/2/11/Nontechnical-friends-on-Twitter</link>
				<description>
				
				&lt;p&gt;When Twitter was new, the only people that followed me were early adopter, technical people. As twitter has become more mainstream, I have more and more non-technical friends that see my tweets. This is also a result of hooking my twitter feed into Facebook (to keep up appearances), where the tech-to-non ration is very low.&lt;/p&gt;

&lt;p&gt;I&apos;ll occasionally get a response to a technical tweet that reads &quot;I don&apos;t understand any of your updates!&quot; or &quot;Whatever!&quot; and I usually just ignore them. (Seriously people, you know who I am!)&lt;/p&gt;

&lt;p&gt;Yesterday, I posted a technical tweet, and the response made me chuckle. My tweet:&lt;/p&gt;

&lt;img src=&quot;http://sam.curren.ws/images/funnytweet-sam.png&quot;/&gt;

&lt;p&gt;The response, posted by my Paramedic Fireman Brother:&lt;/p&gt;

&lt;img src=&quot;http://sam.curren.ws/images/funnytweet-zach.png&quot;/&gt;

&lt;p&gt;Until Twitter (and Facebook) give us better tools to manage different circles of friends, I do enjoy a sense of humor!&lt;/p&gt; 
				</description>
				
				<category>Personal</category>				
				
				<category>Technology</category>				
				
				<pubDate>Wed, 11 Feb 2009 06:12:00-0700</pubDate>
				<guid>http://sam.curren.ws/index.cfm/2009/2/11/Nontechnical-friends-on-Twitter</guid>
				
			</item>
			
			<item>
				<title>The Right Tool</title>
				<link>http://sam.curren.ws/index.cfm/2008/10/26/The-Right-Tool</link>
				<description>
				
				&lt;p&gt;My Father has a garage full of tools and years of experience using them for good. I grew up spending many hours in his workshop; some of them voluntary, some of then conscripted. Having moved too far away for quick tool loans, I frequently find myself without the drill, level, saw, or other various tools that I need for some project. Over the last few years I&apos;ve gradually built up my own small collection of tools. &lt;/p&gt;  &lt;p&gt;I appreciate the value of quality tools and my cash supply is limited, and so I must make my purchases carefully. More then a few times in the past few years I&apos;ve called my Father and said: &amp;quot;I need some bar clamps to fix a drawer. If I&apos;m going to buy a single pair, which size should I get?&amp;quot; This question has been asked about laser levels, bar clamps, crescent wrenches, and other&apos;s I&apos;ve forgotten. His advice has never failed me in choices of brands, sizes, and knowing when getting the cheaper option isn&apos;t going to eat me in the long run.&lt;/p&gt;  &lt;p&gt;I do appreciate my Father for things other then his tool advice, but in this post, I highlight his excellent guidance in getting the right tool for the job. &lt;/p&gt;  &lt;p&gt;&lt;img src=&quot;/images/barclamps.jpg&quot;/&gt;&lt;/p&gt;  &lt;p&gt;I took a moment with my new bar clamps to practice my photography skills. Jess let me borrow the camera for a few minutes, and also gave me feedback on my editing.&lt;/p&gt; 
				</description>
				
				<category>Photography</category>				
				
				<category>Personal</category>				
				
				<pubDate>Sun, 26 Oct 2008 15:07:00-0700</pubDate>
				<guid>http://sam.curren.ws/index.cfm/2008/10/26/The-Right-Tool</guid>
				
			</item>
			
			<item>
				<title>CA Proposition 8 - Legal Definition of Marriage</title>
				<link>http://sam.curren.ws/index.cfm/2008/10/25/CA-Proposition-8--Legal-Definition-of-Marriage</link>
				<description>
				
				&lt;p&gt;I&apos;ve been asked several times what I think about California&apos;s Proposition 8. Proposition 8 is a State Constitutional Amendment that legally defines marriage as between a man and woman. While I live in Utah, I grew up in the SF Bay Area and I&apos;ve maintained CA residency and have voted in absentee while attending school. I&apos;ve thought carefully about how to express my thoughts, as I have no desire to offend anyone or start a war. I have friends in a wide variety of circumstances that will be affected by the success or failure of Prop 8. I rarely post on political issues, but feel strongly enough on this issue to voice my opinions and reasons. I also realize that many who read this will disagree with me, and request responses and/or questions to be civil in nature.&lt;/p&gt;  &lt;p&gt;I am pro-family. I believe that families are the fundamental unit of society, and that the breakdown of the family will enable the problems of the world to tear apart our society and way of life. Being pro-family, I am against anything that fails to support it in our society. This includes dead-beat-dads, couples unwilling to invest time in a strong relationship, parents who abandon their spouse and/or children, individuals who sleep around and refuse to settle down, young adults who refuse to grow up, and gay and lesbian individuals.&lt;/p&gt;  &lt;p&gt;When I say that I am &apos;against&apos; these things, let me be clear in saying that I do not hate these people, attack them in public or in private, think that they are evil, or anything of the sort. I am against &lt;em&gt;supporting&lt;/em&gt; these behaviors. I am fully aware that many people feel differently then I do on these issues, and each of us is entitled to our own beliefs. As mentioned, I have friends and associates in nearly every one of the situations mentioned. I work with, associate, laugh with, respect, and love them. Disapproving of their actions and/or disagreeing with their beliefs is no reason to sever our relationship or treat them unkindly.&lt;/p&gt;  &lt;p&gt;The reason I support Proposition 8 is that failing to do so is the same thing as me supporting these behaviors. Even more important to me is the loss of religious freedom that has resulted from the efforts to legalize gay marriage. In 2000, the voice of the voters in California passed laws preventing gay marriage. The voice of the people was overturned by the California Supreme Court, declaring the laws to be unconstitutional. I get upset when the government goes against the voice of the people. The response to this is Proposition 8, which will amend the constitution of California with a legal definition of Marriage as being between a man and a woman.&lt;/p&gt;  &lt;p&gt;As a Dad with 2 kids, I am worried about what they will be taught in school as they grow up. While there were certainly things that I was taught that went against my religious beliefs, recent changes in some CA schools have crossed the line of what is acceptable to me. &apos;Age appropriate&apos; materials discussing gay marriage have made their way into curriculum that in my opinion is not appropriate to children of that age. While I am willing to teach my children the difference between what is taught in school and what we believe, I would rather wait till a more appropriate age to have those conversations.&lt;/p&gt;  &lt;p&gt;A failure to pass Prop 8 will force the majority of Californians to be force fed gay propaganda, even though the percentage of the population which gays represent is quite small. The awful behavior of those that oppose Prop 8 in CA has made it clear that they will persecute those that believe in traditional families. Citing discrimination laws, gay rights activists have and will attack churches that refuse to marry gay couples. I refuse to allow governments to control the teachings of my religion, especially when considering the religious reasons for founding this Great Nation.&lt;/p&gt;  &lt;p&gt;The parties opposing Prop 8 have advertised that anyone who supports the measure surely &apos;hates&apos; gays and lesbians. Their tactics have fallen to new lows to accuse others of such hate. Nowhere in any of my reasons to support Prop 8 is hate an issue, and I certainly do not hate people because I disagree with their actions. Would I hate a drug user because I disapproved of their drug use? Of course not. Neither do I hate anyone because of their choice of beliefs.&lt;/p&gt;  &lt;p&gt;I hope that I have not offended anyone, and that I have clearly expressed the way I feel on this issue. However you feel, please make your voice heard on Nov 4th by voting on this and other important issues. I will be voting in favor of Prop 8.&lt;/p&gt; 
				</description>
				
				<category>Personal</category>				
				
				<pubDate>Sat, 25 Oct 2008 12:57:35-0700</pubDate>
				<guid>http://sam.curren.ws/index.cfm/2008/10/25/CA-Proposition-8--Legal-Definition-of-Marriage</guid>
				
			</item>
			
			<item>
				<title>I&apos;m enjoying my T-Mobile G1</title>
				<link>http://sam.curren.ws/index.cfm/2008/10/22/Im-enjoying-my-TMobile-G1</link>
				<description>
				
				&lt;p&gt;I was one of the folks to pre-order the first Android phone, the T-Mobile G1. The G1 launched today and is available at T-Mobile locations. I pre-ordered mine (and one for my wife) and received it yesterday afternoon. I&apos;ve had several requests for a review, so I&apos;ll post a few initial thoughts here.&lt;/p&gt;  &lt;p&gt;First, I love the phone. Early reviews called it brickish, ugly, and all sorts of horrible names. I find it to be none of those things. In fact, the phone is smaller then I was expecting.&lt;/p&gt;  &lt;p&gt;Getting the phone setup was VERY EASY. On first boot, you enter your Google account information, or set up an account if you don&apos;t already have one. Within a minute or so, my contacts were downloaded from Gmail, I had a mail alert, and my calendar was available.&lt;/p&gt;  &lt;p&gt;I bought a black phone, and my wife the bronze color so we could tell them apart. The bronze color is much nicer then I expected, but the lighter keyboard on the bronze model was slightly harder to read. The keys on the black model were very easy.&lt;/p&gt;  &lt;p&gt;I&apos;m not in a T-Mobile 3G area, and I knew that when I ordered the phone. I find the EDGE speeds to be just fine for most uses of the phone. I was able to listen to a podcast within seconds of starting the download, and I find most apps to be responsive when sending and receiving data. The mail app is particularly nice, as it caches data locally and handles sending email in the background.&lt;/p&gt;  &lt;p&gt;The capacitive screen is flush mounted, like the iPhone. It&apos;s a little smaller then the iPhone screen, but the same resolution. It doesn&apos;t feel cramped, and the color is great.&lt;/p&gt;  &lt;p&gt;The selection of apps in the &lt;a href=&quot;http://www.android.com/market.html&quot;&gt;Android Marketplace&lt;/a&gt; is a little thin at the moment, but user submission will open on Monday. There will also be an &lt;a href=&quot;http://forums.t-mobile.com/tmbl/board/message?board.id=87&amp;amp;thread.id=3212&quot;&gt;Over The Air firmware update&lt;/a&gt; in the next day or so, which contains minor updates and fixes.&lt;/p&gt;  &lt;p&gt;I&apos;m sure I&apos;ll have more to say later, but I wanted to mention these few things that I hadn&apos;t found on other websites and reviews.&lt;/p&gt; 
				</description>
				
				<category>Android</category>				
				
				<category>Personal</category>				
				
				<category>Technology</category>				
				
				<pubDate>Wed, 22 Oct 2008 14:04:18-0700</pubDate>
				<guid>http://sam.curren.ws/index.cfm/2008/10/22/Im-enjoying-my-TMobile-G1</guid>
				
			</item>
			
			<item>
				<title>AndroidGuys.com: Getting Ready for the T-Mobile G1</title>
				<link>http://sam.curren.ws/index.cfm/2008/10/14/AndroidGuyscom-Getting-Ready-for-the-TMobile-G1</link>
				<description>
				
				&lt;p&gt;This morning, AndroidGuys.com posted an article describing a few things you can do to &lt;a href=&quot;http://androidguys.com/?p=2080&quot;&gt;get ready for the T-Mobile G1&lt;/a&gt;. I draw special attention to this article, as it is my first blog post on a blog besides my own.&lt;/p&gt;  &lt;p&gt;I look forward to participating with the rest of the AndroidGuys, and you should see more of my posts there in the future. I am eagerly awaiting my G1 (8 Days!), and I&apos;ll be sure to post some thoughts and reviews.&lt;/p&gt; 
				</description>
				
				<category>Personal</category>				
				
				<category>Android</category>				
				
				<pubDate>Tue, 14 Oct 2008 07:58:05-0700</pubDate>
				<guid>http://sam.curren.ws/index.cfm/2008/10/14/AndroidGuyscom-Getting-Ready-for-the-TMobile-G1</guid>
				
			</item>
			
			<item>
				<title>My Android App Wishlist</title>
				<link>http://sam.curren.ws/index.cfm/2008/9/22/My-Android-App-Wishlist</link>
				<description>
				
				&lt;p&gt;As I&apos;ve been impatiently waiting for the impending announcement of T-Mobile&apos;s G1 Android phone, I&apos;ve been thinking about which apps I will find (or build) and install. While current iPhone users might scoff at my lack of apps, there are a few here that are not currently possible with the current iPhone SDK. My list of desired phone abilities, with commentary:&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;strong&gt;Automagically publish my location to an online service.&lt;/strong&gt; An obvious service would be &lt;a href=&quot;http://fireeagle.yahoo.net/&quot;&gt;Yahoo&apos;s FireEagle&lt;/a&gt;. By Automagic, I mean that no user interaction is required. This will enable me to write programs that respond to my change in location, such as automatically forwarding my work extension to my cell when I&apos;m out of the office. It will also make it easier to find my phone when I&apos;ve left it somewhere. This background functionality is not possible with the current iPhone SDK.    &lt;br /&gt;Find cheap gas. The first thing this app should do is find my location and then show me gas prices, with price and distance to station. Simple enough.    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Maintain a car maintenance log.&lt;/strong&gt; I&apos;d like to record oil changes, repairs, tire rotations and similar info, for multiple cars. The ability to log tank info to calculate mileage is a plus.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;strong&gt;Record business mileage logs.&lt;/strong&gt; This would help me keep track of business miles without that pesky paper log book in the glove box.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;strong&gt;Allow updating a personal health log.&lt;/strong&gt; Weight is required, and a quick way to enter exercise and gym workouts would be great. If I don&apos;t update my weight in awhile, it ought to pester me.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;strong&gt;Provide an intelligent to-do list.&lt;/strong&gt; This list should also be available online. List sharing between multiple people(phones) is a must. Location aware lists are a plus.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;strong&gt;A real Twitter client.&lt;/strong&gt; Being able to post and read tweets is required, but what I want here is a client that will monitor in the background, and update me to new tweets as if they were sent via SMS. Tweets should show as notifications in the background. Again, the ability of an app to receive updates and post them to the notifications bar (without launching a screen) is beyond the current abilities of the iPhone SDK.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;strong&gt;Provide on-the-spot reviews and price comparisons.&lt;/strong&gt; I&apos;m cheating a little here, as one of the Android Developer Challange winners is &lt;a href=&quot;http://code.google.com/android/adc_gallery/app.html?id=8&quot;&gt;CompareEverywhere&lt;/a&gt;, which fits this nicely.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;strong&gt;Behave appropriately to the situation.&lt;/strong&gt; Cheating again. When I&apos;m at church, be silent. When at home and plugged into power, connect via Wifi. See &lt;a href=&quot;http://code.google.com/android/adc_gallery/app.html?id=25&quot;&gt;Locale&lt;/a&gt;.    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Make &lt;a href=&quot;http://www.geocaching.com/&quot;&gt;Geocaching&lt;/a&gt; dead simple.&lt;/strong&gt; Allow viewing nearby geocaches, help me find it, and make it easy to log on the spot. A little recreation for a free moment here and there.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;strong&gt;Post pictures online.&lt;/strong&gt; Many online services for this, and I suspect this might be built into the phone upon delivery.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;strong&gt;Calendar that talks with Google Calendar.&lt;/strong&gt; Getting alerts via the phone instead of SMS would be great, as being able to easily add and edit on the phone. I know the mobile version of Google Calendar does this, but having a native app would be nice.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;strong&gt;Contacts that sync online.&lt;/strong&gt; I&apos;m tired of entering all my contact info into each new phone that I buy. I&apos;d like to be able to edit them online, and have them easily (and quickly) move to a new phone. This is a no-brainer with the &lt;a href=&quot;http://code.google.com/apis/contacts/&quot;&gt;Google Contacts API&lt;/a&gt;, and I suspect this might be baked in as well.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Well, there you have it. As you can see, I&apos;m easily pleased. I&apos;ve been waiting since the first Android announcement for the experience, and I&apos;m looking forward to my new phone.&lt;/p&gt; 
				</description>
				
				<category>Development</category>				
				
				<category>Personal</category>				
				
				<category>Technology</category>				
				
				<pubDate>Mon, 22 Sep 2008 01:31:02-0700</pubDate>
				<guid>http://sam.curren.ws/index.cfm/2008/9/22/My-Android-App-Wishlist</guid>
				
			</item>
			
			<item>
				<title>Cardboard Castles</title>
				<link>http://sam.curren.ws/index.cfm/2008/8/20/Cardboard-Castles</link>
				<description>
				
				&lt;p&gt;&lt;a href=&quot;http://sam.curren.ws/enclosures/rachelcastle_2.jpg&quot;&gt;&lt;img style=&quot;border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px&quot; height=&quot;461&quot; alt=&quot;rachelcastle&quot; src=&quot;http://sam.curren.ws/enclosures/rachelcastle_thumb.jpg&quot; width=&quot;644&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;For Rachel&apos;s Birthday party this year, we had a princess/prince party. We made a castle cake, had some theme related crafts, and we made a cardboard castle. I had several comments on the castle, mostly asking where we got the cardboard and how we held it together. The cardboard came from the backs of local department stores, and we used &lt;a href=&quot;http://www.mrmcgroovys.com/&quot;&gt;Mr. McGroovy&apos;s Box Rivets&lt;/a&gt; to hold it together. These amazing plastic rivets hold the cardboard together very well, and are reusable. &lt;/p&gt;  &lt;p&gt;This is the largest project we used them for, and we ran out of rivets! Most of our previous creations have been small enough to fit in our apartment (which isn&apos;t very big). I had lots of leftover boxes, and resolved to buy some more. Since we bought them a few years ago, they have made a few different sizes, which will probably work better on smaller projects. We love these things, and definitely recommend them to anyone with kids. &lt;/p&gt; 
				</description>
				
				<category>Personal</category>				
				
				<pubDate>Wed, 20 Aug 2008 22:01:37-0700</pubDate>
				<guid>http://sam.curren.ws/index.cfm/2008/8/20/Cardboard-Castles</guid>
				
			</item>
			</channel></rss>