<?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>Ryan Boswell &#187; Blog</title>
	<atom:link href="http://ryanboswell.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://ryanboswell.com</link>
	<description></description>
	<lastBuildDate>Mon, 28 May 2012 18:50:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>CodeIgniter Love Fest</title>
		<link>http://ryanboswell.com/blog/2012/05/28/codeigniter-love-fest/#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://ryanboswell.com/blog/2012/05/28/codeigniter-love-fest/#comments</comments>
		<pubDate>Mon, 28 May 2012 18:50:31 +0000</pubDate>
		<dc:creator>Ryan Boswell</dc:creator>
				<category><![CDATA[Posts]]></category>

		<guid isPermaLink="false">http://ryanboswell.com/?p=877</guid>
		<description><![CDATA[Four days ago I started working with the CodeIgniter PHP Framework in-depth for the first time. I&#8217;d worked with a few simple frameworks and built a few myself, but before now I&#8217;ve never worked with one as robust and fully featured as CodeIgniter. And let me just say, it is one of the most amazing [...]]]></description>
			<content:encoded><![CDATA[<p>Four days ago I started working with the <a title="CodeIgniter" href="http://codeigniter.com/" target="_blank">CodeIgniter PHP Framework</a> in-depth for the first time. I&#8217;d worked with a few simple frameworks and built a few myself, but before now I&#8217;ve never worked with one as robust and fully featured as CodeIgniter. And let me just say, it is one of the most amazing experiences ever.</p>
<p>Without giving too many details on what I&#8217;ve built so far (don&#8217;t worry, when it&#8217;s time to announce, announce I shall), I started Thursday evening by installing the framework on a dev server and casually reading through the documentation to acquaint myself with what it offers. It seemed rather complicated, but knowing how easy things can actually be once you dive in, I wasn&#8217;t too worried.</p>
<p>Friday afternoon I really got started. I built my first controller using the mini-tutorial included in the (rather amazing) documentation for static pages. Since I needed those anyway, I figured I&#8217;d start there. Less than 5 minutes later I had a cool 6 pages running on the site, and it all worked rather smoothly.</p>
<h3>Making Clean URLs</h3>
<p>Next I tried to tackle the URL annoyance I had with always having to have the &#8216;index.php&#8217; precede every URL for the application. Fortunately, there&#8217;s a nice section in the documentation <a title="Removing the index.php file" href="http://codeigniter.com/user_guide/general/urls.html" target="_blank">explaining how to do this</a>. Unfortunately I couldn&#8217;t get it to work at all. Instead, I kept getting errors thrown at me no matter what page I tried to go to about a missing Controller. Thinking about how htaccess rewrites work, I decided I would try swapping out the code it gave me for the code that WordPress uses to rewrite urls. I like it better anyway because I don&#8217;t have to specify files that I want exempt from being rewritten, but instead redirects anything that isn&#8217;t an actual file or directory.</p>
<p><code><br />
RewriteEngine On<br />
RewriteBase /<br />
RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteRule . /index.php [L]<br />
</code></p>
<p>It worked beautifully, but I still had another problem to figure out. CodeIgniter has a URL helper that automatically generates a link given a set of parameters, it&#8217;s nice because it makes things a bit simpler. My problem was that these links were still linking to &#8220;/index.php/controller/somemethod/random&#8221;, which completely voided my attempts at rewriting the URLs. This is one of the few points where the documentation failed me, I couldn&#8217;t find anything anywhere that hinted at what I should do next. So I went hunting through the code. Fortunately, the first place I checked gave me my answer. The main config file (/application/config/config.php) has the variable $config['index_page'], in the comments for the variable it explains to leave it empty if you want to use mod_rewrite. Of course it defaults to &#8216;index.php&#8217;, so I cleared it out and that solved my problems.</p>
<h3>Routing</h3>
<p>After building out a few controllers to handle different functions of the site, I discovered that while the URLs were better than &#8220;/index.php/pages/view/about&#8221;, they were still not really that pretty at &#8220;/pages/view/about&#8221;. So I tackled routing. CodeIgniter has a routing feature that lets you re-route specific URLs directly to methods. For example, I could route &#8220;/about&#8221; directly to &#8220;/pages/view/about&#8221;, making things simpler and prettier. After working through this a bit, I discovered another problem, some of my controllers are named the same as URLs I wanted to use, or were not named a URL that I wanted them to be located at. I could route things like &#8220;/auth/view_account&#8221; to &#8220;/account/&#8221;, but I would still have them accessible at the original URL.  My solution was to move all of my controllers into a sub-folder named something random that I would never use in an actual URL. So this placed them at &#8220;/application/controllers/somethingsupersecret/controller_name.php&#8221;, after updating all of my routing rules to point to the new location, I now had a little less &#8216;clutter&#8217; to deal with at my base URLs and it makes choosing my own way of routing calls much simpler.</p>
<p>It certainly isn&#8217;t the most elegant solution, but until I come up with something else, it&#8217;ll have to do. Worst case is that some enterprising visitor happens to guess the &#8220;super secret&#8221; folder name and happens upon the original locations of all of the controllers. There isn&#8217;t much else they could do with that information though, since it is essentially a second copy of the website in a sub-folder.</p>
<h3>Rapid and Simple Coding</h3>
<p>One of the things that surprised me about working with CodeIgniter was just how quickly and simply I could put things together. My methods previously with custom-built frameworks weren&#8217;t inefficient and bulky by any means, but the code I&#8217;m writing now can easily do the same things in sometimes less than half the number of lines of code. While CodeIgniter has a dazzling number of built-in classes and helpers, there really isn&#8217;t a lot of extra fluff. It is very lightweight, clocking in at around 1.4 MB for the base code (not including the 2.5 MB documentation folder), and it doesn&#8217;t include much that isn&#8217;t useful. Granted, there&#8217;s a few things I likely won&#8217;t use (<a title="CodeIgniter - Typography class" href="http://codeigniter.com/user_guide/libraries/typography.html" target="_blank">Typography class</a> I&#8217;m looking at you), but most of it is pretty useful and I will likely touch in some way or another.</p>
<p>In just the short few days since I started using it, I&#8217;ve managed to build at least 50% if not 100% faster than if I started from scratch. It is an exciting thing to be able to move so quickly, but there is still much work ahead of me.</p>
]]></content:encoded>
			<wfw:commentRss>http://ryanboswell.com/blog/2012/05/28/codeigniter-love-fest/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Day in Customer Support Hell</title>
		<link>http://ryanboswell.com/blog/2012/05/04/my-day-in-customer-support-hell/#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://ryanboswell.com/blog/2012/05/04/my-day-in-customer-support-hell/#comments</comments>
		<pubDate>Fri, 04 May 2012 23:21:28 +0000</pubDate>
		<dc:creator>Ryan Boswell</dc:creator>
				<category><![CDATA[Posts]]></category>

		<guid isPermaLink="false">http://ryanboswell.com/?p=868</guid>
		<description><![CDATA[I thought the worst experience with customer support I&#8217;d ever experience was with Register.com, I was so incredibly wrong. A few weeks ago, I had to re-install Microsoft Office on a company laptop because of some issues that had arisen. After uninstalling it, I put our installation disc in and proceeded to re-install Office. Upon [...]]]></description>
			<content:encoded><![CDATA[<p>I thought the <a title="Twitter Status" href="https://twitter.com/#!/rboswell/status/95544804468981761" target="_blank">worst experience</a> with <a title="Twitter Status" href="https://twitter.com/#!/rboswell/status/98505775168761856" target="_blank">customer support</a> I&#8217;d ever experience was with Register.com, I was so incredibly wrong.</p>
<p>A few weeks ago, I had to re-install Microsoft Office on a company laptop because of some issues that had arisen. After uninstalling it, I put our installation disc in and proceeded to re-install Office. Upon launching Word to finish activation, I was told that the installation code was invalid. I tried calling support, and the automated system insisted the same conclusion.</p>
<p>After a few weeks of re-installing Office many times to no success, I decided to try again. Rather than waste my time with the automated voice system like I had the past few weeks, I tried to get immediately transferred to an operator (hint, say &#8220;operator&#8221; three times to trigger it). The automated system tried to keep me from transferring, claiming it would be faster to go through it, but after insisting it finally connected me to a representative in India.</p>
<p>I spent probably 30 minutes repeating the installation code and product key over and over to the poor woman on the other end. Her English was terrible, so I don&#8217;t really blame her for having trouble. But she insisted that I was reading something wrong and continued. Finally she realized that it was her mistake and without apologizing I was abruptly disconnected.</p>
<p>On my second try, after being transferred to an operator (in India again) and insisting that I be elevated to the next level because of the issues I had previously, I was transferred to someone is the United States. After explaining my issue and giving the representative my product key and installation code, she determined that my key was valid and was in fact a Volume License key, which explains part of the problem I had had with the previous operators, since they didn&#8217;t have the capability to handle such license activations. Since I was a volume license customer, the representative said I would need to be transferred to the Volume License Support Center, who could help me further. That was the first time I was transferred to a disconnected line, fortunately she had given me a number for the support center before transferring me.</p>
<p>I tried re-dialing the number for the support center I was given, but it turns out it was also invalid, which explains why I couldn&#8217;t get through the first time. After a quick Google search, I found the real number for the support center. And then the real problems started. No less than 4 times did I call only to be ultimately transferred to a disconnected line before ever speaking to a real human.</p>
<p>On the 5th try, I was finally connected, but I was back with the first (non-Volume license) support center I dealt with in India. I explained to the representative that I had a volume license and that I needed to be transferred somewhere that could help me with that. She insisted she could help me, and so I went through the process of reading her my installation code (which I had half-memorized by the point). Once again, she said her system didn&#8217;t recognize the code and that I would need to be transferred somewhere else. I hung up after getting the all-to-familiar disconnected line message.</p>
<p>I gave up and decided to re-install Office one last time. Online activation failed again, so I tried calling the Volume License Support Center again. This time I was connected to a representative the first time. After reading him the Installation Code, it was found to be valid and I was finally given a confirmation code to activate the software.</p>
<p>Moral of the story: I never want to deal with Microsoft Customer Support again.</p>
]]></content:encoded>
			<wfw:commentRss>http://ryanboswell.com/blog/2012/05/04/my-day-in-customer-support-hell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft&#8217;s Cloud Storage Play</title>
		<link>http://ryanboswell.com/blog/2012/04/24/microsofts-cloud-storage-play/#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://ryanboswell.com/blog/2012/04/24/microsofts-cloud-storage-play/#comments</comments>
		<pubDate>Tue, 24 Apr 2012 07:15:46 +0000</pubDate>
		<dc:creator>Ryan Boswell</dc:creator>
				<category><![CDATA[Posts]]></category>

		<guid isPermaLink="false">http://ryanboswell.com/?p=864</guid>
		<description><![CDATA[Today Microsoft made a big play to advance their cloud storage offering, SkyDrive. With the release of their Desktop sync client for Windows and OS X Lion, ala Dropbox, as well as improved iOS and Windows Phone apps. The desktop app creates a &#8220;SkyDrive&#8221; folder that is constantly monitored for changes/additions/deletions that are then synced [...]]]></description>
			<content:encoded><![CDATA[<p>Today Microsoft made a big play to advance their cloud storage offering, <a title="SkyDrive" href="http://skydrive.live.com" target="_blank">SkyDrive</a>. With the release of their Desktop sync client for Windows and OS X Lion, ala <a title="Dropbox" href="http://dropbox.com" target="_blank">Dropbox</a>, as well as improved iOS and Windows Phone apps. The desktop app creates a &#8220;SkyDrive&#8221; folder that is constantly monitored for changes/additions/deletions that are then synced to SkyDrive in the cloud, pretty much exactly like Dropbox.</p>
<p><a href="http://ryanboswell.com/wp-content/uploads/2012/04/skydrive-filename-error.jpg#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed"><br class="Apple-interchange-newline" /><img class="alignleft size-medium wp-image-865" title="SkyDrive: Filename Error" src="http://ryanboswell.com/wp-content/uploads/2012/04/skydrive-filename-error-300x202.jpg" alt="" width="300" height="202" /></a></p>
<p>Despite my general distaste for most of what Microsoft makes, I figured I&#8217;d give it a shot and opened a Live account, signing up for SkyDrive. Unfortunately, new accounts are only allotted 7GB of space versus the 25GB Microsoft was handing out previously. After downloading and setting up SkyDrive, I dropped a 1.25GB batch of files into the SkyDrive folder. The first sync failed because apparently SkyDrive doesn&#8217;t support certain characters in file names ( \ / : * ? &#8221;  &lt; &gt; | ), and of course I used a few of those in some file names. After renaming the problem files it synced beautifully, taking just over half an hour to do so, which is a bit faster than Dropbox. While it wasn&#8217;t a problem for me to rename the files since there were only 4, that kind of thing represents a huge problem for Microsoft if they hope to win over Mac users. Since OS X natively supports file names with most of those characters, and users are not going to be happy about having to constantly rename their files.</p>
<p>Another problem I have with the desktop application is that runs from the Dock. While there is a menu bar icon that provides quick access to app functionality, the app itself does not run in the background as a service, which makes it cumbersome. There is a preference (in fact, the only preference you can set, aside from your account details) to run the app automatically at login, but I still don&#8217;t like that you have to have it running in the Dock at all times to have your files constantly in sync.</p>
<p>Where Microsoft does take the cake is storage space. As I mentioned, they&#8217;re now giving out 7GB of free space to new users, which is more than the 2GB Dropbox offers for free. SkyDrive also has premium options for 20GB at $10/year up to 100GB for $50/year. Dropbox, meanwhile, has 50GB for $99/year and 100GB for $199/year. What Dropbox does have is a generous referral program that gives you a nice bump in space (recently upped to 500MB) for every user you refer, for a max of 16GB. The coolest part about their program is that both you and your referral get the bump in space.</p>
<p>Another competitor in the space is <a title="Box" href="http://box.com" target="_blank">Box</a> who places closer to the middle with 5GB free and $120/year for 25GB, but loses to Dropbox with $240/year for just 50GB. Box also does not offer a desktop sync client to personal users, you need a Business or Enterprise account for that.</p>
<p>Dropbox is still my cloud storage service of choice, but if Microsoft continues to improve SkyDrive and/or Box decides to focus a little more on consumer users, I may re-evaluate that.</p>
<p>&nbsp;</p>
<p>For the time being,</p>
]]></content:encoded>
			<wfw:commentRss>http://ryanboswell.com/blog/2012/04/24/microsofts-cloud-storage-play/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google API Fun</title>
		<link>http://ryanboswell.com/blog/2012/04/23/google-api-fun/#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://ryanboswell.com/blog/2012/04/23/google-api-fun/#comments</comments>
		<pubDate>Tue, 24 Apr 2012 04:42:03 +0000</pubDate>
		<dc:creator>Ryan Boswell</dc:creator>
				<category><![CDATA[Posts]]></category>

		<guid isPermaLink="false">http://ryanboswell.com/?p=855</guid>
		<description><![CDATA[Over the past two weeks, I&#8217;ve been working on a number of projects for my employer that involve utilizing some APIs that Google has. Suffice it to say that I&#8217;ve had quite a lot of fun playing with them and getting creative with functionality. Maps One of my favorites was the Maps API. I used [...]]]></description>
			<content:encoded><![CDATA[<p>Over the past two weeks, I&#8217;ve been working on a number of projects for my employer that involve utilizing some APIs that Google has. Suffice it to say that I&#8217;ve had quite a lot of fun playing with them and getting creative with functionality.</p>
<h3>Maps</h3>
<p><a href="http://ryanboswell.com/wp-content/uploads/2012/04/google-maps-api-markers.jpg#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed"><img class="alignright size-medium wp-image-857" title="Google Maps API Example" src="http://ryanboswell.com/wp-content/uploads/2012/04/google-maps-api-markers-300x288.jpg" alt="" width="300" height="288" /></a>One of my favorites was the Maps API. I used two distinct parts of this API. The first was a location search functionality. Basically, I needed to take a location (zip code, address, city name, or landmark) and turn it into GPS coordinates. Fortunately, Google Maps does this very well, and is very good as finding the right location given only a partial set of information.</p>
<p>Then once I had these coordinates, I wanted to display a map of that location and plot a bunch of other nearby locations on it. This was probably the most fun, since I got to spend some time learning the ins and outs of the JavaScript Maps API and how to plot multiple markers and display appropriate info overlays when clicked. Overall, it was really easy to do (minus a few headaches caused by the marker generation loop), and in just under 2 hours I had it done. Another 30 minutes and I had styled everything to look nice and pretty and work out a few usability kinks (and sanity checks to make sure nothing broke with unexpected input) that I had overlooked at first.</p>
<h3>OpenID Authentication</h3>
<p>Another big project i wanted to do was to build a kind of single-sign-on system into our internal portal. All of our employees have a Google Apps account and a portal account. After all the work I did to integrate everything else we use into the portal, this connection was the last one I need to accomplish.</p>
<p>On this one, I did cheat a little bit. I downloaded a PHP class that handled all of the real OpenID work for me (<a title="OpenID Library for PHP" href="https://github.com/openid/php-openid" target="_blank">found here</a>). But I still had plenty of work to do on my end.</p>
<p><a href="http://ryanboswell.com/wp-content/uploads/2012/04/google-openid-login.jpg#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed"><img class="alignleft size-full wp-image-859" title="Google OpenID Login" src="http://ryanboswell.com/wp-content/uploads/2012/04/google-openid-login.jpg" alt="" width="274" height="114" /></a></p>
<p>I started out with the example login script that comes with the class and moded it from there to integrate with our login system. The process I needed to run was to let a portal user link their Google Apps account to their portal account. When you authenticate with Google, they return a unique string that identifies that account. The link process had the user login, approve the data access (name and email address) with Google, and then the portal stored the unique string (after encryption of course) in the user&#8217;s table record so that they could be verified when logging in later. But before the code was stored, I did a quick sanity check to ensure that the email address returned by Google was indeed on our company domain (just to make sure), if not, it prompted them to re-authenticate.<br />
Once this process was completed, the next time the user logged in to the portal, they could then choose to login using Google Apps. The portal would refer the user to the Google sign-in page for our domain, and then Google would return the newly authenticated user to the portal. If the string Google returned matched a user on record, it would then proceed through the remainder of the single-sign-on process and then send the user to the home-page.</p>
]]></content:encoded>
			<wfw:commentRss>http://ryanboswell.com/blog/2012/04/23/google-api-fun/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Finance App Flood</title>
		<link>http://ryanboswell.com/blog/2012/04/04/the-finance-app-flood/#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://ryanboswell.com/blog/2012/04/04/the-finance-app-flood/#comments</comments>
		<pubDate>Thu, 05 Apr 2012 01:33:47 +0000</pubDate>
		<dc:creator>Ryan Boswell</dc:creator>
				<category><![CDATA[Posts]]></category>

		<guid isPermaLink="false">http://ryanboswell.com/?p=826</guid>
		<description><![CDATA[It wasn&#8217;t too long ago I was singing the praises of Lemon for finally being a powerful receipt-tracking app that made the process of recording printed receipts almost drop-dead-simple. Now, I&#8217;ve stumbled upon a few others that include Slice and OneReceipt. And now I&#8217;m at a crossroads as to which service and app I am [...]]]></description>
			<content:encoded><![CDATA[<p>It wasn&#8217;t too long ago I was <a title="Receipt and Expense Tracking" href="/blog/2012/02/28/receipt-and-expense-tracking/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">singing the</a> <a title="An Update on Lemon" href="/blog/2012/03/01/an-update-on-lemon/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">praises of Lemon</a> for finally being a powerful receipt-tracking app that made the process of recording printed receipts almost drop-dead-simple. Now, I&#8217;ve stumbled upon a few others that include <a title="Slice" href="http://projectslice.com" target="_blank">Slice</a> and <a title="OneReceipt" href="http://onereceipt.com" target="_blank">OneReceipt</a>. And now I&#8217;m at a crossroads as to which service and app I am going to continue on with.</p>
<p>The problem I have is that I now use three different services for tracking two different types of receipts. Lemon excels in the physical receipt space with their iOS app that lets you easily snap a photo of your receipt on-the-go, but it loses out to both Slice and OneReceipt because you have to manually forward your email receipts to an email address assigned to your account before it will catalog them. The other two have the functionality of allowing you to provide them access to your Gmail account using OAuth so that they can automatically polls your email account for incoming receipts, with the added bonus of going back through all of your saved emails to grab everything in the past as well.</p>
<p>Slice adds an extra layer onto that and even pulls tracking data from your receipts and order confirmations and provides you automatic order tracking through their website and mobile app (which has push notifications for the important steps along the way). But, there is (currently) no functionality for adding physical receipts to Slice, ultimately making it more limited than Lemon.</p>
<p>OneReceipt on the other hand, has automatic email receipt importing and provides you with the ability to upload photos of receipts on their website. At the moment, OneReceipt has no mobile app, so adding your receipts on-the-go is a no-go so far, but they have promised a mobile app in the near future to do just that. But, as a bonus for OneReceipt, they just released a <a title="OneReceipt Chrome Extension" href="https://chrome.google.com/webstore/detail/pigaffoodfljdmhldbpjmkcmmglgcgch" target="_blank">Chrome extension</a> that adds some extra elements to your <a title="Mint.com" href="http://mint.com" target="_blank">Mint.com</a> transaction list that lets you see the details of your purchases. It also works with the websites for American Express, Citi Cards, and Bank of America. As a small disclaimer, I have yet to see it work for me on Mint (I don&#8217;t have accounts at the other supported institutions), but once it does, I have a feeling it will be invaluable.</p>
<p>From what I&#8217;ve seen, OneReceipt is the most likely to win my continued support and use once they actually get their mobile app out the door. Lemon is just too limited to paper receipts for the time being (plus the rather annoying prompting to upgrade to a &#8220;family plan&#8221;, when I don&#8217;t have a family) and while I really like the automatic delivery tracking of Slice, it also is too limited to just email receipts.</p>
<p><strong>Update:</strong> One thing I did forget to mention that I do rather like about Slice is that they encourage users to forward receipts to them that their algorithms can&#8217;t process correctly. One of the retailers I make purchases from semi-regularly is JackThreads, and there is something about their email receipts that didn&#8217;t play nicely with the rather impressive algorithms that Slice (and OneReceipt) use. I forwarded one of my JackThreads receipts to them and the next time I checked the website, all of these receipts had been properly processed. OneReceipt doesn&#8217;t offer that option, although I do wish they would, since it would save me a lot of time manually entering the details from the receipt into their system (a feature that Slice was missing).</p>
]]></content:encoded>
			<wfw:commentRss>http://ryanboswell.com/blog/2012/04/04/the-finance-app-flood/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Art of Up-selling Online</title>
		<link>http://ryanboswell.com/blog/2012/03/12/the-art-of-up-selling-online/#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://ryanboswell.com/blog/2012/03/12/the-art-of-up-selling-online/#comments</comments>
		<pubDate>Tue, 13 Mar 2012 03:01:30 +0000</pubDate>
		<dc:creator>Ryan Boswell</dc:creator>
				<category><![CDATA[Posts]]></category>

		<guid isPermaLink="false">http://ryanboswell.com/?p=822</guid>
		<description><![CDATA[Last week, a friend of mine told me that I should read The Hunger Games trilogy. The series has apparently become quite popular for Harry Potter fans, a cult group to which I identify quite closely, looking for something to fill the void left by the ending of the series both in print and film [...]]]></description>
			<content:encoded><![CDATA[<p>Last week, a friend of mine told me that I should read <a title="The Hunger Games - Wikipedia" href="http://en.wikipedia.org/wiki/The_Hunger_Games" target="_blank">The Hunger Games</a> trilogy. The series has apparently become quite popular for Harry Potter fans, a <del>cult</del> group to which I identify quite closely, looking for something to fill the void left by the ending of the series both in print and film form. So I bought the first book in paperback to try it out, Amazon is running quite the discount on it, and with Prime shipping, I paid $5.51 for it. Today I got an email from Amazon telling me about a $2 promotional credit I received towards the Hunger Games soundtrack for purchasing a &#8220;qualifying item&#8221;, aka the first book. Since it applies to both the standard and deluxe versions, and having already finished the first book (and very pleased with the series so far), I figured I might as well go for the deluxe since the credit make it the same price as the standard one without it.</p>
<p>Let&#8217;s stop here and take a moment to see what happened. I bought the first book at the recommendation of a friend. Being a not-so-well-off college student, I paid as little as possible by buying the paperback version and relying on my Prime membership for free two day shipping. But by simply offering me a small promotional credit towards something else, Amazon got me to buy something I probably wouldn&#8217;t have otherwise (not that I don&#8217;t want it, but it wasn&#8217;t something I was heavily anticipating). That&#8217;s a great up-sell.</p>
<p>But they didn&#8217;t stop there. Oh no. Apparently Amazon has a running promotion when you buy (almost) any audio CD that gives you a $1 Amazon MP3 credit. It isn&#8217;t much, but it&#8217;s worth at least one good song from their DRM-free store. Not that I&#8217;m likely to buy a single song, at $.99 per song, I&#8217;m giving up on a whole penny of free value if I do that. You&#8217;re probably thinking &#8220;Oh wow, a whole penny. What a crying shame to waste that.&#8221; But seriously, I&#8217;d rather put a whole dollar towards an album that I want to buy than spent $.99 on a single song (unless it is one kick-ass song). Ding. That&#8217;s another up-sell.</p>
<p>Congrats Amazon. You turned a $5.51 purchase into two more purchases totaling over $10 (I haven&#8217;t yet decided what album/artist is worth my money), probably somewhere just south of $20.</p>
]]></content:encoded>
			<wfw:commentRss>http://ryanboswell.com/blog/2012/03/12/the-art-of-up-selling-online/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>An Update on Lemon</title>
		<link>http://ryanboswell.com/blog/2012/03/01/an-update-on-lemon/#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://ryanboswell.com/blog/2012/03/01/an-update-on-lemon/#comments</comments>
		<pubDate>Fri, 02 Mar 2012 05:39:31 +0000</pubDate>
		<dc:creator>Ryan Boswell</dc:creator>
				<category><![CDATA[Posts]]></category>

		<guid isPermaLink="false">http://ryanboswell.com/?p=816</guid>
		<description><![CDATA[I finally had some time to play with Lemon a little more and I wanted to add some more notes about it. Earlier this evening, I had the urge to scan in all of my paper receipts from this calendar year so far (only 25 or so for the first two months). At first I [...]]]></description>
			<content:encoded><![CDATA[<p>I finally had some time to play with <a title="Receipt and Expense Tracking" href="http://ryanboswell.com/blog/2012/02/28/receipt-and-expense-tracking/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">Lemon</a> a little more and I wanted to add some more notes about it. Earlier this evening, I had the urge to scan in all of my paper receipts from this calendar year so far (only 25 or so for the first two months). At first I was worried that it might try to date the receipts today, since that is when I am entering them, but every single one of them was correctly cataloged to the correct day and time. The OCR and semi-AI technology powering this app is simply amazing. Not only did it correctly pull the date/time, name, and total amount from every single receipt I threw at it, but it recognized handwritten totals from restaurant receipts as well as one awkward landscape receipt from the <a title="Performing Arts Center SLO" href="http://www.pacslo.org/" target="_blank">Performing Arts Center SLO</a>, which I was almost 90% sure it wouldn&#8217;t since it was difficult for me to read it because the printing was overlaid on top of each other and the title of the venue was sideways on the edge of the receipt.</p>
<p>In only two cases did I need to correct the merchant name it pulled from the receipt, the Performing Arts Center was one (I added SLO to the end, which technically wasn&#8217;t on the receipt, so it did it correctly), and the Habit Burger was another, for some reason it read the name differently for two different Habit receipts, one it stored as &#8220;Habit Burger Grill &#8221; and the other as &#8220;the Habit BURGER GRILL&#8221;. Both are technically correct, but to help with keeping things consistent I stuck to the first one. I also scanned in a two-part receipt (they allow you to scan in long receipts in segments) for Ralph&#8217;s (a grocery store), which is parsed wonderfully (even if it took a few extra minutes to parse than the others).</p>
<p>Speaking of speed, 90% of the receipts were parsed and viewable within 90-120 seconds of the upload finishing. A few exceptions were the longer Ralph&#8217;s receipt, the Performing Arts Center receipt, and one from El Corral Bookstore (Cal Poly&#8217;s campus bookstore) that I&#8217;m still waiting for (it&#8217;s going on 15 minutes now, I&#8217;m beginning to wonder if I even scanned it in or missed it in the rush of things).</p>
<p>Lastly, Lemon correctly categorized each of the merchants for the appropriate business type except for three cases. The Performing Arts Center and El Corral Bookstore were left as Uncategorized while Cowgirl Cafe was a coffee shop (it is a restaurant, but going off the name, a coffee shop is a very good guess).</p>
<p>Suffice to say, I am extremely impressed by Lemon and I am very excited to continue using it to scan in all of my receipts. My next step in testing is to try out their email-in feature that lets you forward copies of email receipts. After I get a chance to give that a whirl, I&#8217;ll do another post.</p>
]]></content:encoded>
			<wfw:commentRss>http://ryanboswell.com/blog/2012/03/01/an-update-on-lemon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Throttling Unlimited Data Plans</title>
		<link>http://ryanboswell.com/blog/2012/03/01/throttling-unlimited-data-plans/#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://ryanboswell.com/blog/2012/03/01/throttling-unlimited-data-plans/#comments</comments>
		<pubDate>Thu, 01 Mar 2012 19:42:42 +0000</pubDate>
		<dc:creator>Ryan Boswell</dc:creator>
				<category><![CDATA[Posts]]></category>

		<guid isPermaLink="false">http://ryanboswell.com/?p=811</guid>
		<description><![CDATA[Today, AT&#38;T announced plans to implement a strict throttling limit on unlimited data plans. Yeah, you read that right. They&#8217;re essentially limiting unlimited plans. What amazes me the most about this move is that it&#8217;s not like there are throngs of customers that still have these plans. AT&#38;T stopped selling them quite a while ago [...]]]></description>
			<content:encoded><![CDATA[<p>Today, AT&amp;T announced plans to implement a strict <a title="AT&amp;T Officially Makes Unlimited Data Plans Not So Unlimited With New Throttling Rules - TechCrunch" href="http://techcrunch.com/2012/03/01/you-are-doing-it-wrong-att/" target="_blank">throttling limit on unlimited data plans</a>. Yeah, you read that right. They&#8217;re essentially limiting unlimited plans. What amazes me the most about this move is that it&#8217;s not like there are throngs of customers that still have these plans. AT&amp;T stopped selling them quite a while ago in favor of limited plans (originally set at 200MB, 2GB and 4GB, but now 300MB, 3GB, and 5GB), but there were still a lot of people that held on to them (myself included). By now though, there are surely not many of us left, relatively speaking. And yet, they continue their assault on some of their most loyal customers, since the only people that have these unlimited plans are those who have had contracts for 2 years+. There is also a large portion of said customers that are likely near the end of their contracts, and a slap in the face like this so close to a major decision doesn&#8217;t look great for AT&amp;T.</p>
<p>My own data usage is still well within the limits that they set, so it&#8217;s not likely that I will experience any throttling in the near future (the highest I&#8217;ve hit since I got my first iPhone 2.5 years ago was 2.2GB), but the decision still doesn&#8217;t sit well with me. Unfortunately, I renewed my contract in October when I purchased my iPhone 4S, meaning that I stand to lose a lot of money if I try to switch to another carrier now. I&#8217;m betting that AT&amp;T is banking on the hope that most of the unlimited plan holders will think similarly to me and take this new change in stride. But I think that sometime this weekend I may take up a little light reading and just go over my contract and make sure that it isn&#8217;t a contract breach to do this. Given what&#8217;s at stake, I&#8217;m sure AT&amp;T&#8217;s lawyers have already ensured this, but I wouldn&#8217;t have a right to complain if I didn&#8217;t do my due diligence.</p>
]]></content:encoded>
			<wfw:commentRss>http://ryanboswell.com/blog/2012/03/01/throttling-unlimited-data-plans/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Receipt and Expense Tracking</title>
		<link>http://ryanboswell.com/blog/2012/02/28/receipt-and-expense-tracking/#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://ryanboswell.com/blog/2012/02/28/receipt-and-expense-tracking/#comments</comments>
		<pubDate>Wed, 29 Feb 2012 06:31:15 +0000</pubDate>
		<dc:creator>Ryan Boswell</dc:creator>
				<category><![CDATA[Posts]]></category>

		<guid isPermaLink="false">http://ryanboswell.com/?p=805</guid>
		<description><![CDATA[One of the thing I have wanted for a while now is a way to scan or take a picture of my receipts so that I can save space and eliminate physical clutter. Somehow I missed when Lemon was announced a few months ago, but fortunately I heard of it last week when it got [...]]]></description>
			<content:encoded><![CDATA[<p>One of the thing I have wanted for a while now is a way to scan or take a picture of my receipts so that I can save space and eliminate physical clutter. Somehow I missed when <a title="Lemon" href="http://lemon.com" target="_blank">Lemon</a> was announced a few months ago, but fortunately I heard of it last week when it got a major bump in features to make it more like <a title="Mint" href="http://mint.com" target="_blank">Mint</a>. I&#8217;ve only actually bought two things since downloading it last Thursday (I&#8217;m trying to keep my spending low), so I only have limited experience with it, but so far it seems pretty awesome and exactly what I&#8217;ve been looking for.</p>
<p>I&#8217;ve tried a few home-grown solutions for electronically storing and cataloging my receipts, mostly including Dropbox for uploading pictures of my receipts or scanning them at home with my scanner and saving them on my computer somewhere. But I never really liked these solutions since there was little advantage over keeping a box of all my receipts other than the physical clutter aspect. I&#8217;ve long wanted some way to throw all of these receipts at something that will make sense of them and make the information contained within them useful, and I finally have this in Lemon.</p>
<p><a href="http://ryanboswell.com/wp-content/uploads/2012/02/lemon-transactions.jpg#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed"><img class="alignright size-medium wp-image-806" title="Lemon: Transactions" src="http://ryanboswell.com/wp-content/uploads/2012/02/lemon-transactions-300x160.jpg" alt="" width="300" height="160" /></a></p>
<p>The process really is just as simple as loading the app on my iPhone, snapping a picture of my receipt and then an hour or so later the basic details for the transaction are gleaned from the receipt and structured in a useful way. The app attempts to automatically categorize each transaction based on the merchant&#8217;s information, and allows me to tag transactions with a label so I can easily group items based on whatever criteria I want. So far I&#8217;ve stuck to Personal and Business tags as well as a tag for my method of payment (Cash, Credit Card, Debt Card, Check, etc..), in the future I may or may not expand this.</p>
<p>While I love this functionality, it provides me with a small conundrum. I use Mint to track all of my spending and transactions across all of my accounts (both personal and business), and so every transaction I make is already tracked there. Now I&#8217;m introducing a second place that tracks some of my transactions (so far I&#8217;ve only use the service for physical receipts, they have the ability to forward email receipts to have them added, but I haven&#8217;t tried this out yet), which creates a duplicate set of transaction information. I would really love for Mint to implement this functionality into their product so that I can tie a receipt to a transaction on one of my cards, or have it automatically enter a transaction if I paid cash. Whether they do this on their own, through a partnership/integration with Lemon, or maybe just buy out Lemon doesn&#8217;t make much difference to me, but I would be a lot happier if I could keep everything consolidated in one place rather than have a separate service for each different thing.</p>
<p><strong>Update:</strong> I&#8217;ve <a title="An Update on Lemon" href="http://ryanboswell.com/blog/2012/03/01/an-update-on-lemon/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">added some more thoughts</a> after getting some more time with the app.</p>
]]></content:encoded>
			<wfw:commentRss>http://ryanboswell.com/blog/2012/02/28/receipt-and-expense-tracking/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Schedule Your Emails</title>
		<link>http://ryanboswell.com/blog/2012/02/22/schedule-your-emails/#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://ryanboswell.com/blog/2012/02/22/schedule-your-emails/#comments</comments>
		<pubDate>Thu, 23 Feb 2012 00:39:48 +0000</pubDate>
		<dc:creator>Ryan Boswell</dc:creator>
				<category><![CDATA[Posts]]></category>

		<guid isPermaLink="false">http://ryanboswell.com/?p=802</guid>
		<description><![CDATA[Personally, I can&#8217;t say that I&#8217;ve ever had the desire to schedule when an email gets sent. Usually I either send it after I finish composing it, or if I don&#8217;t, it&#8217;s because I&#8217;m waiting for something, usually a last bit of information to go in or an attachment of some kind, and I don&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>Personally, I can&#8217;t say that I&#8217;ve ever had the desire to schedule when an email gets sent. Usually I either send it after I finish composing it, or if I don&#8217;t, it&#8217;s because I&#8217;m waiting for something, usually a last bit of information to go in or an attachment of some kind, and I don&#8217;t always have a set time or date when I&#8217;ll have it by. But I can definitely see the  use-case for other people.</p>
<p>Either way, I got an email from Daniel over at Right Inbox yesterday and I thought I&#8217;d at least share what he had to say in case someone else is interested in the feature.</p>
<blockquote><p>Right Inbox enables users to schedule emails to be sent later from Gmail. It is very easy to use after a small browser extension is installed. Then, a button with the label &#8220;Send Later&#8221; is added right next to the original &#8220;Send&#8221; button in Gmail. We are also in progress of adding more features like response tracking, improvements for sending large files, finding bulky attachments, email marketing etc.</p>
<p>You may check our website (<a title="Right Inbox" href="http://rightinbox.com" target="_blank">http://rightinbox.com</a>) and/or check out this demo video (<a title="Right Inbox Demo - YouTube" href="http://youtu.be/w1zFFM36Hws" target="_blank">http://youtu.be/w1zFFM36Hws</a>)</p></blockquote>
<p>If I ever get the urge to schedule an email, I&#8217;ll be sure and check out their service. For the time being everything is free while it is in Beta, but their website does say that eventually there will be higher-tier plans for a small fee, although there will always be a free plan.</p>
]]></content:encoded>
			<wfw:commentRss>http://ryanboswell.com/blog/2012/02/22/schedule-your-emails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

