<?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>Curtis Tasker &#187; Technology</title>
	<atom:link href="http://curtistasker.com/blog/technology/feed" rel="self" type="application/rss+xml" />
	<link>http://curtistasker.com</link>
	<description>&#099;&#117;&#114;&#116;&#105;&#115; (at) &#099;&#117;&#114;&#116;&#105;&#115;&#116;&#097;&#115;&#107;&#101;&#114; (dot) &#099;&#111;&#109;</description>
	<lastBuildDate>Fri, 18 May 2012 21:50:18 +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>Killing Your Apps in iOS</title>
		<link>http://curtistasker.com/blog/technology/889/killing-your-apps-in-ios</link>
		<comments>http://curtistasker.com/blog/technology/889/killing-your-apps-in-ios#comments</comments>
		<pubDate>Mon, 09 Jan 2012 19:35:31 +0000</pubDate>
		<dc:creator>Curtis</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[apps]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://curtistasker.com/?p=889</guid>
		<description><![CDATA[I was poking around an Apple Store when an elderly gentleman came in and complained that his iPhone was frozen. The screen was locked to a running application, and pressing the home button did nothing. I hung nearby, curious as to the official tech support procedure for this type of issue. This wasn&#8217;t a genius [...]]]></description>
			<content:encoded><![CDATA[<p><div id="attachment_935" class="wp-caption alignnone" style="width: 521px"><img src="http://curtistasker.com/blog/wp-content/uploads/2012/01/overheard_tweet.png" alt="" title="overheard_tweet" width="511" height="381" class="size-full wp-image-935" /><p class="wp-caption-text">It all started with this</p></div><br />
I was poking around an Apple Store when an elderly gentleman came in and complained that his iPhone was frozen.  The screen was locked to a running application, and pressing the home button did nothing.  I hung nearby, curious as to the official tech support procedure for this type of issue.  This wasn&#8217;t a <a href="http://en.wikipedia.org/wiki/Genius_Bar">genius bar</a> appointment, it was simply a sales associate helping someone who walked up to them at the front of the store.<br />
<span id="more-889"></span></p>
<h2>Micromanging your Phone</h2>
<p>When queried, the gentleman said the phone hadn&#8217;t gotten wet, and it was fully charged, and he was not aware of how to reboot the device.  The sales associate plugged the phone into a dock cable (apparently it was very low on power), and the phone responded just fine.  He then proceeded to, without any further investigation, tell the gentleman the problem.  &#8220;You&#8217;ve got too many apps running.  You have to double tap the home button to bring up the task manager, then tap and hold on an app to make them wiggle, then tap to kill them.  You&#8217;ve got to kill your apps when you&#8217;re not using them, or the system will get full and freeze up.&#8221;</p>
<p>I was very shocked to hear this, because I actually <a href="https://developer.apple.com/library/ios/#DOCUMENTATION/iPhone/Conceptual/iPhoneOSProgrammingGuide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html">know</a> how <a href="http://en.wikipedia.org/wiki/IOS">iOS</a> manages its memory and processing power.  Clearly this sales associate didn&#8217;t have a clue.  I tweeted and walked away amused, only to have a very long twitter conversation with a friend about this issue.  Apparently he had been told the same thing, but by a <a href="http://en.wikipedia.org/wiki/Genius_Bar">genius</a>.  To make matters worse, he had shared the knowledge of how to kill tasks (which by design is pretty difficult to stumble upon) with a friend of his.  This friend now runs an app, and when he&#8217;s done, immediately kills it.  Every single app, every single time.  I was just flabbergasted.</p>
<p>I mean, I kill apps myself, but only in one specific instance: if the app has frozen and its quicker to kill it and restart than wait for iOS to decide its had enough and perform the kill itself.  The thing is, I know what I&#8217;m doing.  I would never tell a normal user how to kill their apps, unless I also included a hefty educational speech about when and why you do this.  In everyday usage, nobody should have to do it, period.  Even those rare instances should be infrequent<a href="http://en.wikipedia.org/wiki/Android_(operating_system)"></a> enough that the average user doesn&#8217;t encounter it.  Having a user forced to manage what apps are running strikes me as straying far into Android territory.  If iOS is failing so badly at memory management that the everyday user is forced to manage running processes, why not add in an activity monitor app so I can see memory and CPU usage while I&#8217;m at it.</p>
<h2>The Problem is Getting Attention</h2>
<p>I spent some time poking around the dark corners of the internet, and there were plenty of confused normals spouting this &#8220;kill your apps manually&#8221; nonsense.  To make matters worse, the people who knew better came off as condescending when trying to correct the normals, and every thread I found just devolved into name calling.  I didn&#8217;t feel up to wading into the mess, so I made sure to educate my relatives, then let sleeping dogs lie.  Fast forward a few months, and the problem is getting a little attention, at least in certain circles.</p>
<p>It started with <a href="http://speirs.org/blog/2012/1/2/misconceptions-about-ios-multitasking.html">Speirs</a>, got picked up by <a href="http://daringfireball.net/2012/01/ios_multitasking">Gruber</a>.  Then Speirs went and <a href="http://vimeo.com/34660348">documented the whole process</a> on video, which in my mind should lay to rest this issue, at least for anybody willing to watch the video in its entirety.</p>
<h2>Who is To Blame?</h2>
<p>The thing is that really bothers me is, how exactly are <abbr title="People who are not technically inclined">&#8220;normals&#8221;</abbr> getting educated about the app kill functionality?  I&#8217;m not sure, but my best guess is word of mouth many times removed, eventually traced back to uninformed apple employees or know it all children.</p>
<p>Clearly Apple needs to include the app kill method as part of their employee training, and make sure their employees know what it does and does not accomplish.  That would at least stop the misinformation at the source.</p>
<p>I know Apple would be happy if most users never knew about the app kill functionality, and perhaps its best that way.  However, in order to clean up the mess made by their well intentioned employees, consumers need to be educated on the facts, at least on a case by case basis.  People who overuse the app kill functionality are wasting massive amounts of their time, and this needs to be stopped.</p>
]]></content:encoded>
			<wfw:commentRss>http://curtistasker.com/blog/technology/889/killing-your-apps-in-ios/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Remote Access</title>
		<link>http://curtistasker.com/blog/technology/604/remote-access</link>
		<comments>http://curtistasker.com/blog/technology/604/remote-access#comments</comments>
		<pubDate>Sat, 27 Aug 2011 20:43:35 +0000</pubDate>
		<dc:creator>Curtis</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[dropbox]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[sugarsync]]></category>
		<category><![CDATA[sync]]></category>

		<guid isPermaLink="false">http://curtistasker.com/?p=604</guid>
		<description><![CDATA[Since high school, I&#8217;ve been dealing with the same old problem: How do I access my files when I&#8217;m not at my home computer? I started out with external storage; I used a 5.25&#8243; floppy disk for a year, and quickly upgraded to a 3.5&#8243; floppy. It held all of my documents and programming files, [...]]]></description>
			<content:encoded><![CDATA[<p>Since high school, I&#8217;ve been dealing with the same old problem: How do I access my files when I&#8217;m not at my home computer?  I started out with external storage; I used a 5.25&#8243; <a href="http://en.wikipedia.org/wiki/Floppy_disk">floppy disk</a> for a year, and quickly upgraded to a 3.5&#8243; floppy.  It held all of my documents and programming files, all meticulously organized.  The disk itself has long since failed, but the files it contained are still with me to this day (though I&#8217;ve long since converted them to modern <a href="http://en.wikipedia.org/wiki/File_format">file formats</a>).  I moved to a laptop for some time as my primary machine, and backups were few and far between.  I&#8217;ve only suffered data loss once:  a <a href="http://en.wikipedia.org/wiki/RAID#Standard_levels">RAID 0</a> crashed and 3 months of files were lost.  I still rue that day, as I knew full well the RAID was failing, but I was too busy to run a backup and investigate further.<br />
<span id="more-604"></span><br />
In college I kept some of my files on the school servers, and used a <a href="http://www.ftpedit.com/">text editor</a> which could edit files over ftp to edit them remotely.  I had a brief stint using web based file storage, where the provider offered a way to mount the storage to a drive letter in Windows.  The service didn&#8217;t last more than a few years, but it definitely gave me a taste of things to come.  I&#8217;ve run custom <a href="http://en.wikipedia.org/wiki/Rsync">rsync</a> scripts, <a href="http://en.wikipedia.org/wiki/Secure_shell">SSH</a> servers mounted as drives, and owned a variety of external media.  Buying a Mac made the whole problem slightly more annoying, as I had to maintain cross platform compatibility.</p>
<h2>The Rise of the Syncing Services</h2>
<p>Eventually I stumbled upon a service called <a href="http://en.wikipedia.org/wiki/Sugarsync">SugarSync</a>, and I fell in love.  I was able to specify certain folders, and these folders would automagically stay in sync across multiple computers and multiple OSs, without effort.  I even had access to the files through a website.</p>
<p>I set up a client with SugarSync to mirror their documents to several business computers, and used a script to make backup copies of critical files, which are then backed up to the web via SugarSync.  Coupled with its file versioning support, it has on more than one occasion allowed me to recover files and undo drastic mistakes that would have otherwise crippled the business.</p>
<p>I ended up getting into an invite-only service called <a href="http://en.wikipedia.org/wiki/Dropbox_(service)">Dropbox</a> not long before it went public, and to date it is my primary solution to the remote access problem.  I still maintain SSH server and <a href="http://en.wikipedia.org/wiki/Remote_desktop">remote desktop</a> access to my desktop, but I almost never need to bother.</p>
<p>My roommate recently had her notebook stolen, and was rather devastated.  She&#8217;s starting a new business, and one of the lost files was the most recent copy of her business plan.  She asked me to <a href="http://en.wikipedia.org/wiki/Optical_character_recognition">OCR</a> an older copy she had lying around, and I was a little confused;  I had set her up with Dropbox several months prior, and I don&#8217;t think she fully understood the benefits.  Sure enough, all of her files were fine, safely mirrored to her old desktop and the web.</p>
<p>While these services are highly useful, they have yet to hit the mainstream.  Both <a href="http://en.wikipedia.org/wiki/Windows_Live_Skydrive">Microsoft</a> and <a href="http://en.wikipedia.org/wiki/Icloud">Apple</a> have their own competing versions, and moving forward we&#8217;re going to see this kind of sync become a key part of the computing experience.  Already you can log into your online photo gallery or email account from anywhere and have access to all your data.  Eventually all of your files will be stored in the <a href="http://en.wikipedia.org/wiki/Cloud_computing">cloud</a>, and will be automatically accessed by any device you own.  You&#8217;ll be able to log onto a friend&#8217;s computer, and all of your files, applications, and settings will be the same as if you were using your own computer.</p>
<p>I don&#8217;t see computers all becoming dumb terminals like the early days of computing, but the effect will be much the same.  It will no longer matter if we&#8217;re using a tablet, phone, desktop, or laptop.  It will no longer matter where we are, or who owns the device we&#8217;re using.  We&#8217;ll no longer be constrained to any particular device or location to accomplish our tasks.</p>
]]></content:encoded>
			<wfw:commentRss>http://curtistasker.com/blog/technology/604/remote-access/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Touchpad Scrolling</title>
		<link>http://curtistasker.com/blog/technology/612/touchpad-scrolling</link>
		<comments>http://curtistasker.com/blog/technology/612/touchpad-scrolling#comments</comments>
		<pubDate>Wed, 20 Jul 2011 17:33:21 +0000</pubDate>
		<dc:creator>Curtis</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[touchpad]]></category>
		<category><![CDATA[ux]]></category>

		<guid isPermaLink="false">http://curtistasker.com/?p=612</guid>
		<description><![CDATA[I&#8217;ve only switched to a touchpad within the last few years, and only then when faced with the clear superiority of Apple&#8217;s product. I&#8217;ve grown so enamored of multitouch gestures that I even have a touchpad for the desktop, sitting alongside my mouse, which I use mostly for browsing. There are programs out there that [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve only switched to a touchpad within the last few years, and only then when faced with the clear superiority of Apple&#8217;s <a href="http://en.wikipedia.org/wiki/Magic_Trackpad">product</a>.  I&#8217;ve grown so enamored of multitouch gestures that I even have a touchpad for the desktop, sitting alongside my mouse, which I use mostly for browsing.</p>
<p>There are programs out there that allow you to customize your systemwide gestures, but I&#8217;ve always been kind of a purist when it comes to input solutions.  I&#8217;d rather learn to use what &#8216;the masses&#8217; use, so I&#8217;m equally at home on someone&#8217;s stock install as I am on my highly customized one.  Recent self discovery has made me rethink my position a bit, but I digress.<br />
<span id="more-612"></span></p>
<h2>Up or Down</h2>
<p>With the release of <a href="http://en.wikipedia.org/wiki/Osx_lion">OSX Lion</a>, millions of people are quickly discovering that scrolling with the trackpad doesn&#8217;t work like it used to.  In fact, it works opposite.  Years of scrolling with the touchpad, in multiple OSs, has taught us that dragging your fingers top to bottom should scroll the page down, and dragging your fingers bottom to top should scroll the page up.  Amusingly, on all <a href="http://en.wikipedia.org/wiki/List_of_iOS_devices">iOS devices</a>, the opposite is true.  With a touchscreen, you grab and drag the page with your finger.  Thus, dragging bottom to top scrolls the page down by pushing the content up and off the screen.  Apple has decided to force this scrolling paradigm on its OSX users, and I can&#8217;t say I disagree with them.  Honestly it takes all of a day to get used to the new direction; Your brain is quick to adapt.</p>
<p>The exception, of course, is if you have to use another computer: An older copy of OSX, or a Windows machine where the scroll directions are now &#8216;backwards&#8217;.  Your brain can compensate with a little difficulty, but its confusing to go back and forth every day.  The simple solution is to swap your Mac to match the Windows default, but this causes problems moving forward.  If you spend a lot of time working on different Macs, you&#8217;re going to spend a lot of time being annoyed with the scroll direction.  You can of course change the Windows scroll direction to match the Mac default, but you&#8217;re going to have the same problems if you end up working on a lot of different Windows machines.  The best solution (other than waiting for Microsoft to mirror Apple&#8217;s change, or waiting for Apple to capitulate and change back), is to just pick what world you spend most of your time in, and set your scroll directions to give you the least amount of change.</p>
<p>My roommate had this very problem, but was unable to change his Windows scroll direction.  His mouse driver didn&#8217;t support it, and he lacked the registry access necessary to flip the proper bit.  I wrote a fix for him in my head a few seconds after he complained about it:</p>
<pre>WheelDown::WheelUp
WheelUp::WheelDown</pre>
<p>  Running this script in <a href="http://www.autohotkey.com/">AutoHotkey</a> reverses the scroll direction for almost all cases (ignoring a few games that grab low level mouse input).</p>
<h2>Backwards or Forwards</h2>
<p>In addition to the scroll direction changes, OSX also changed the default forward/backwards direction for webpages in Safari.  Before, three fingers right to left would go backwards a page, and three fingers left to right would move you forward a page.  Now, two fingers right to left moves you forward a page (by pushing the old page offscreen), and two fingers left to right moves you backwards a page.  My big problem here is with Apple&#8217;s <a href="http://en.wikipedia.org/wiki/Finder_(software)">Finder</a> application.  Two finger forward/backwards does not work, and instead scrolls around the content in the window.  Honestly, this is exactly what I want and would expect, but it breaks rank with Safari.</p>
<h2>Two Fingers or Three</h2>
<p>To make matters even more confusing, there is an option to enable the old 3 finger scrolling gesture, which then allows Finder and Safari to both support 3 finger scrolling in the same direction: the old one.  Apparently 3 finger scrolling ignores the systemwide scroll reversal option.  There&#8217;s also a 2 and 3 finger option that allows you to use both gestures, but it ends up being an ungainly mess.  You end up scrolling backwards with 3 fingers, forwards with 2.</p>
<h2>Consistency</h2>
<p>Honestly I&#8217;m not sure what they were thinking here.  Consistency is one thing I value highly, and this is anything but.  For now, I&#8217;ve accepted reverse up/down scrolling, but I&#8217;ve kept backwards left/right 3 finger scrolling.  A mess to be sure, but its the smallest mess I could make.</p>
]]></content:encoded>
			<wfw:commentRss>http://curtistasker.com/blog/technology/612/touchpad-scrolling/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ye Olde Command Line</title>
		<link>http://curtistasker.com/blog/technology/607/ye-olde-command-line</link>
		<comments>http://curtistasker.com/blog/technology/607/ye-olde-command-line#comments</comments>
		<pubDate>Thu, 12 May 2011 18:29:52 +0000</pubDate>
		<dc:creator>Curtis</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[command line]]></category>
		<category><![CDATA[scp]]></category>
		<category><![CDATA[vi]]></category>

		<guid isPermaLink="false">http://curtistasker.com/?p=607</guid>
		<description><![CDATA[I set up someone&#8217;s new Macbook Pro recently, and I ended up having to do a little command line work to move some files over from my desktop, and do a little vi editing. The funny thing is, I was unable to actually use the terminal on this brand new install of OSX until I [...]]]></description>
			<content:encoded><![CDATA[<p>I set up someone&#8217;s new Macbook Pro recently, and I ended up having to do a little command line work to <a href="http://en.wikipedia.org/wiki/Secure_copy">move</a> some files over from my desktop, and do a little <a href="http://en.wikipedia.org/wiki/Vi">vi</a> editing.  The funny thing is, I was unable to actually use the terminal on this brand new install of OSX until I had customized the terminal.<br />
<span id="more-607"></span><br />
I&#8217;m perfectly fine with white on black for most things: coding, writing documents, reading webpages.  When it comes to executing terminal commands, it just doesn&#8217;t feel right unless its a black background with white or green text.  I know its silly, but its what I grew up on.  It just feels awkward without that familiar interface.</p>
<p>The default <a href="http://en.wikipedia.org/wiki/Apple_Terminal">OSX Terminal</a> application is a great little program, with plenty of features.  It even comes with a selection of themes to style the look and feel of the app, and years ago I may have just changed to the Pro theme and been done with it.  However, I&#8217;ve long since developed my own terminal theme, very similar to the <a href="http://blog.toddwerth.com/entries/6">IR_Black</a> theme.  I have some mild look and feel differences, and I&#8217;ve altered the keybindings to more closely mirror what happens in the rest of the OS.  In addition to this, I also copy over a .bash_profile with some useful settings (prompt colors, aliases for ls variants), a .vimrc file with some minor tweaks, and a .inputrc file to help with keybindings.  In particular, standardized keybindings for home/end and pgup/pgdown are necessary to preserve my sanity at the command line (yay laptop keyboards).</p>
<p>Only after this ritual is complete can I really settle down and get any sort of command line work done.  Some day in the distant future, perhaps someone else besides me will launch the terminal on this laptop and say a little prayer of thanks.</p>
]]></content:encoded>
			<wfw:commentRss>http://curtistasker.com/blog/technology/607/ye-olde-command-line/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>News Overload</title>
		<link>http://curtistasker.com/blog/technology/731/news-overload</link>
		<comments>http://curtistasker.com/blog/technology/731/news-overload#comments</comments>
		<pubDate>Tue, 15 Mar 2011 19:36:41 +0000</pubDate>
		<dc:creator>Curtis</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[feed]]></category>
		<category><![CDATA[filtering]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[pipes]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[yahoo]]></category>

		<guid isPermaLink="false">http://curtistasker.com/?p=731</guid>
		<description><![CDATA[Several years past, my morning ritual involved launching a web browser and loading a dozen or more web pages. First as separate windows, and eventually as tabs, when they became part and parcel of the browser. Sites like cnn.com, slashdog.org were my launching point for broad swathes of news. I poured over arstechnica.com and anandtech.com [...]]]></description>
			<content:encoded><![CDATA[<p>Several years past, my morning ritual involved launching a web browser and loading a dozen or more web pages.  First as separate windows, and eventually as <a href="http://en.wikipedia.org/wiki/Tab_(GUI)">tabs</a>, when they became part and parcel of the browser.  Sites like <a href="http://cnn.com">cnn.com</a>, slashdog.org were my launching point for broad swathes of news.  I poured over <a href="http://arstechnica.com">arstechnica.com</a> and <a href="http://anandtech.com">anandtech.com</a> for more in-depth information to sate my technothirst.  Enthusiast sites like <a href="http://nvnews.net">nvnews.net</a> and <a href="http://tomshardware.com">tomshardware.com</a> kept me up to date on the minutia of gaming hardware.<br />
<span id="more-731"></span><br />
I would spend my morning catching up on news from all of these sites and more.  As the day wore on, I would periodically hit refresh on each of these pages, then swap to a new page, hit refresh, and continue.  By the time I got through the list, the content on the first page would be done loading, and I could start reading.  I would consume a site until I hit an overlap point from my previous viewing, then continue on to the next.  God forbid I skipped reading a high volume site for a day, I&#8217;d have too much to catch up on.  Taking a break from this ritual was not an option; eventually I&#8217;d have to accept the fact that I missed some news, and start anew at today&#8217;s news.<br />
<!--more--></p>
<h2>An Easier Way</h2>
<p>I&#8217;m still a bit crazy about missing news, but thankfully <a href="http://en.wikipedia.org/wiki/Rss">RSS</a> has at least made this process manageable.  It amuses me to no end that the average user has no idea that this technology exists, despite the fact that it is used so widely.  That said, not every page puts out a <a href="http://en.wikipedia.org/wiki/Web_feed">feed</a>.  Sometimes they do publish one, but its riddled with information you don&#8217;t want:  Occasional advertisements, rants about off-topic issues, and other information that doesn&#8217;t interest you.  While stumbling my way to a solution for this problem, I discovered <a href="http://pipes.yahoo.com/">Yahoo Pipes</a>.</p>
<p>Imagine if you could take a source of information, anything from a webpage to a <a href="http://en.wikipedia.org/wiki/Comma-separated_values">CSV</a> file, and filter out what you don&#8217;t want.  The resulting data can then be merged with another data source, and then republished as a single new data source.  With Yahoo Pipes, you can do exactly this.</p>
<p><a href="http://www.tor.com/">Tor</a> doesn&#8217;t offer feeds for its authors, so I my first pipe took their master feed and filtered by the author I wanted.  I created a pipe to filtered out a friend&#8217;s blog posts from a collaborative site.  I made a pipe to watch the price change feed for <a href="http://appshopper.com">appshopper.com</a>, and filter out only applications I was interested in buying.  I even made a pipe that takes a calendar and strips out events I don&#8217;t want to attend.  You can take most any published data as input, transform and combine it at will, and output it in whatever format you desire.  It isn&#8217;t exactly the most user friendly of tools, but its got enough power to make up for that.</p>
<h2>Overlap</h2>
<p>There&#8217;s a serious amount of overlap in my feeds;  I&#8217;ll read about news from its original source, from someone reporting on that source, from someone reporting twice removed, and then it&#8217;ll hit mainstream media, and I&#8217;ll read about it 10x over the next few weeks as it gets repeated.  I like knowing about bleeding edge technology news before the mainstream media does.  Often I&#8217;ll hear about things days or weeks before they hit CNN.  Often rather than follow a pundit and read the news he puts out, I&#8217;ll go straight to his sources and follow them instead.  I have to constantly prune my sources, lest I become overwhelmed. Do I want to read information from sources that are among the first to report it, or would I rathe read a more critical analysis from a site that reports thirdhand a few days later?  Often the best choice still involves some level of overlap.</p>
<h2>Filtering</h2>
<p>I&#8217;ve tried to create pipes to handle this overlap, but its not easy.  Assuming two sites publish a story and use the same title, the stories are easily matched and one can be discarded.  This rarely happens.  Even using lots of metadata (author, source link, rough date/time, categories), its a beast of a matching problem and difficult to do consistently.  Also, there&#8217;s the problem of comments, which offer actual useful information from time to time.  If you discard one article, you lose the comments of all the other duplicate articles.</p>
<p>Clearly this issue needs to be handled at a higher level than pipes was intended to solve.  The underlying data to solve this problem is there.  Most reputable sites link back to their sources.  Brute force comparison of articles can easily establish if they&#8217;re discussing the same topic.  I want an engine that sees all news from all sources, and groups them together by common threads.  For critical topics, an actual person could serve to quickly make links between related stories.</p>
<p>As a story develops, additional sources and comments can be added to the aggregate news source.  If I read about a product, and it is mentioned a dozen times over the course of the next month, with each source offering no new information, I shouldn&#8217;t have to see any of the duplicate articles.  If these new sources offer actual new information, or a decent amount of analysis, I&#8217;d like the information to be merged with the original story, and the story marked as <em>updated with new information</em>.  No matter what site you visit to learn about a news story, you should be able to easily link to the master source of all news on that story.</p>
<p>Someday soon I hope to have my overlap handled automatically and seamlessly.  Perhaps then I&#8217;ll free up a few more minutes each day to do something besides reading.  Then again, perhaps I&#8217;ll just broaden my horizons and start reading new topics.</p>
<h2>Update 9/2011</h2>
<p>A tool far less powerful than pipes, but quite interesting, has cropped up recently: <a href="http://ifttt.com/">ifft.com</a>.  You can use <a href="http://ifttt.com/recipes">recipes</a> which allow you to have triggered actions happen on pre-specified events.  It has only a small overlap with pipes in terms of functional uses, but you can do some interesting things with it.  Feeds can be created from every post you star in <a href="http://en.wikipedia.org/wiki/Twitter">Twitter</a>.  <a href="http://en.wikipedia.org/wiki/Instagram">Instagram</a> pictures can auto save to your <a href="http://en.wikipedia.org/wiki/Dropbox_(service)">Dropbox</a>.  Checking in on <a href="http://en.wikipedia.org/wiki/Foursquare">Foursquare</a> can trigger a <a href="http://en.wikipedia.org/wiki/Facebook">Facebook</a> status change.  A text message can be sent if the weather report says its going to rain.  If someone tags you in a picture in Facebook, you can have the picture emailed to your mom.  I&#8217;ve found ways to use this service to complement pipes, by creating quick and easy to use data sources that pipes can then work with.</p>
]]></content:encoded>
			<wfw:commentRss>http://curtistasker.com/blog/technology/731/news-overload/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Don&#8217;t Steal My Focus</title>
		<link>http://curtistasker.com/blog/technology/565/dont-steal-my-focus</link>
		<comments>http://curtistasker.com/blog/technology/565/dont-steal-my-focus#comments</comments>
		<pubDate>Tue, 04 Jan 2011 00:03:54 +0000</pubDate>
		<dc:creator>Curtis</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[focus]]></category>
		<category><![CDATA[multitasking]]></category>
		<category><![CDATA[os]]></category>

		<guid isPermaLink="false">http://curtistasker.com/?p=565</guid>
		<description><![CDATA[I&#8217;m not the first to complain about this, but I won&#8217;t be the last. There is no worse sin for an OS than to let an application take control of my focus. Nothing is quite like the exquisite torment of being in the middle of giving your program commands, and nothing happens. Perhaps another program [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m <a href="http://www.codinghorror.com/blog/2007/12/please-dont-steal-my-focus.html">not</a> the <a href="http://radio-weblogs.com/0103807/stories/2002/06/07/dontStealMyFocus.html">first</a> to <a href="http://wiki.clarolab.com/people/emilio.moretti/blog/2010/12/10/please-dont-steal-my-focus">complain</a> about <a href="http://kinrowan.net/blog/2005/01/31/dont-steal-my-focus/">this</a>, but I <a href="http://useful-sounds.de/pivot/entry.php?id=102">won&#8217;t</a> be the <a href="http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2008/07/24/10634.aspx">last</a>.</p>
<p>There is no worse sin for an OS than to let an application take control of my <a href="http://en.wikipedia.org/wiki/Focus_(computing)">focus</a>.  Nothing is quite like the exquisite torment of being in the middle of giving your program commands, and nothing happens.  Perhaps another program popped up in a second window when I wasn&#8217;t looking and took focus from me.  Sometimes I launch a program, then switch to a web browser and start navigating, only to have my focus is lost to a <a href="http://en.wikipedia.org/wiki/Modal_window">modal</a> popup.  I switch back to the web browser, continue navigating, and the <em>same</em> app opens another modal popup, breaking up my browsing experience yet again.<br />
<span id="more-565"></span><br />
Seriously, I&#8217;m trying to get some work done here.  I swapped away from your slow, bloated program, because it takes 20 seconds to fully launch.  I don&#8217;t want to sit there wasting time while you finish.  Just do your load, and don&#8217;t steal my focus, is that so hard?</p>
<p>Besides being horribly annoying, its been known to cause serious problems for people.  My personal low involved me setting my away message in my messaging program to my banking website password for two days.  Currently most of the onus of this problem is on the application developer, but I think that&#8217;s just passing the buck.  OS developers need to make a stand and put in place protections to prevent this sort of thing.</p>
]]></content:encoded>
			<wfw:commentRss>http://curtistasker.com/blog/technology/565/dont-steal-my-focus/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iTunes Frustrates Me</title>
		<link>http://curtistasker.com/blog/technology/579/itunes-frustrates-me</link>
		<comments>http://curtistasker.com/blog/technology/579/itunes-frustrates-me#comments</comments>
		<pubDate>Sun, 12 Dec 2010 00:26:46 +0000</pubDate>
		<dc:creator>Curtis</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[itunes]]></category>
		<category><![CDATA[multitasking]]></category>
		<category><![CDATA[updates]]></category>
		<category><![CDATA[ux]]></category>

		<guid isPermaLink="false">http://curtistasker.com/?p=579</guid>
		<description><![CDATA[So I fire up iTunes, and see there are 17 updates for my iOS apps. I click on the Apps sidebar option, then click on the little 17 Updates Available link in the lower right. I then click the Download All Free Updates button in the upper right. The Enter Password box pops up. I [...]]]></description>
			<content:encoded><![CDATA[<p>So I fire up <a href="http://en.wikipedia.org/wiki/Itunes">iTunes</a>, and see there are 17 updates for my <a href="http://en.wikipedia.org/wiki/IOS">iOS</a> apps.  I click on the Apps sidebar option, then click on the little <code>17 Updates Available</code> link in the lower right.  I then click the <code>Download All Free Updates</code> button in the upper right.  The <code>Enter Password</code> box pops up.  I enter it, then switch back to browsing the web while it updates.  I switch back to iTunes a few minutes later greeted with a <code>Some of these apps contain age restricted material, please click OK to continue</code> box.  I click OK, switch back to browsing.<br />
<span id="more-579"></span><br />
I switch back later, <code>You've used iTunes on another computer recently, please verify your billing information.</code>  I enter my credit card&#8217;s CSD, click OK, task out.  Back again later, it wants my CSD <strong>and</strong> my salutation.  I enter them, task out.  Task back, nothing is happening.  I click <code>Download All Free Updates</code> again.  I&#8217;m now back at step 1.</p>
<p>This time I babysit iTunes through all the steps in sequence, though this time there&#8217;s an extra step 4 in there (unsure how that happened).</p>
<h2>Ideas</h2>
<p>I know you have some <a href="http://en.wikipedia.org/wiki/User_experience_design">UX</a> guys working for you Apple;  Perhaps you could throw them at this problem for a while?  My thoughts:</p>
<ul>
<li>Make iTunes more responsive.  I kept tasking out because of the huge lag between clicking OK and actual things happening.</li>
<li>Keep my apps up to date, automatically, in the background.  At least make it an option.  And please, delta sync.</li>
<li>Get rid of the age restricted warnings.  Ask me once, per account (or even per app), and that&#8217;s it.  Never ask me again.</li>
<li>Remember where I am.  If the user happens to sit at the <code>Enter password to continue</code> box for 10 minutes, comes back, and clicks OK&#8230; <strong>continue with what they asked you to do 10 minutes ago</strong>, don&#8217;t just sit there.</li>
</ul>
<p>Its my sincere hope that somewhere deep in the bowels of Apple, there&#8217;s a skunkworks team that has spent years rewriting iTunes from the ground up.  Its responsive, easy to use, performs simple tasks with little to no effort, and doesn&#8217;t require holding down option to delete a song from within a smart playlist.  Any day now, it&#8217;ll drop.  <em>Please.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://curtistasker.com/blog/technology/579/itunes-frustrates-me/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Place for Everything</title>
		<link>http://curtistasker.com/blog/technology/572/a-place-for-everything</link>
		<comments>http://curtistasker.com/blog/technology/572/a-place-for-everything#comments</comments>
		<pubDate>Sat, 16 Oct 2010 17:06:11 +0000</pubDate>
		<dc:creator>Curtis</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[blizzard]]></category>
		<category><![CDATA[file system]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[office]]></category>
		<category><![CDATA[steam]]></category>

		<guid isPermaLink="false">http://curtistasker.com/?p=572</guid>
		<description><![CDATA[It never fails; Every time I reinstall Microsoft Office on, I completely forget about the fact that it creates a folder called Microsoft User Data inside my Documents folder. This is just unacceptable. I sync my Documents folder to several computers, and I only want actual documents in there. After all, this folder is explicitly [...]]]></description>
			<content:encoded><![CDATA[<p>It never fails;  Every time I reinstall Microsoft Office on, I completely forget about the fact that it creates a folder called <code>Microsoft User Data</code> inside my <code>Documents</code> folder.  This is just unacceptable.  I sync my <code>Documents</code> folder to several computers, and I only want actual <em>documents</em> in there.  After all, this folder is explicitly designed to store documents, not settings.  There&#8217;s a nice little folder called <code>Library</code> if you want to store your application settings somewhere.  Or if you&#8217;re bound and determined to ignore the <a href="http://developer.apple.com/library/mac/documentation/FileManagement/Conceptual/FileSystemProgrammingGUide/FileSystemOverview/FileSystemOverview.html#//apple_ref/doc/uid/TP40010672-CH2-SW6">OS guidelines</a>, you can just store your settings inside your completely unnecessary <code>/Applications/My Application</code> folder.<br />
<span id="more-572"></span><br />
So, if you try to delete this offending <code>Microsoft User Data</code> folder, it just gets recreated whenever you launch Office.  A quick search brings up all sorts of ways to work around this.  You can move the folder while the application is running, and sometimes the application detects and saves the new location.  You can move the folder to <code>~/Library</code> and set up a hidden alias to point from the <code>~/Documents/Microsoft User Data</code> folder to <code>~/Library/Microsoft User Data</code> folder, and then you can hide the alias using <a href="http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/SetFile.1.html">SetFile</a>.  If you do enough digging through the comments of various posts, the easy solution bubbles to the surface.  If you just move the entire folder to <code>~/Library/Preferences</code>, Office will detect it there on startup and load it, and leave your <code>Documents</code> folder pristine.</p>
<h2>Not Just Microsoft</h2>
<p>Microsoft isn&#8217;t the only company guilty of misusing this folder, and it doesn&#8217;t just happen on OSX.  Back when I was in pc-land, I remember games trying to constantly take over my Documents folder to store not just game saves, but all sorts of settings (log files, downloaded maps, configuration files, etc).</p>
<p>This problem is apparently persisting to this day, as the recent <a href="http://en.wikipedia.org/wiki/StarCraft_II:_Wings_of_Liberty">Starcraft 2</a> Beta puts a nice fat Blizzard folder in <code>Documents</code>, storing maps, replays, campaign progress, system information, graphics settings.  Steam just launched for the Mac, and lo and behold, I&#8217;ve got this silly <code>Steam Content</code> folder in my <code>Documents</code>.  Thanks guys!  I really wanted every game I download via <a href="http://en.wikipedia.org/wiki/Steam_(software)">Steam</a> to be stuck here.</p>
<p>Some of the tricks I discovered for Office work equally well for these other offenders.  Sometimes its just easier to set up exceptions for these folders in my syncing process.  Other times I&#8217;ll just uninstall the software making a mess, especially if I don&#8217;t need to use it often.  I&#8217;ve been sorely tempted to move all of my actual documents to a completely different folder, but that would irk me to no end.</p>
<h2>Update 10/2011</h2>
<p>Blizzard was nice enough to move the offending files out of the <code>Documents</code> folder and into the <code>Library</code> folder in this <a href="http://us.battle.net/sc2/en/blog/842870">patch</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://curtistasker.com/blog/technology/572/a-place-for-everything/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What is a Web App?</title>
		<link>http://curtistasker.com/blog/technology/593/what-is-a-web-app</link>
		<comments>http://curtistasker.com/blog/technology/593/what-is-a-web-app#comments</comments>
		<pubDate>Thu, 01 Apr 2010 01:16:55 +0000</pubDate>
		<dc:creator>Curtis</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[ipod]]></category>
		<category><![CDATA[web app]]></category>

		<guid isPermaLink="false">http://curtistasker.com/?p=593</guid>
		<description><![CDATA[Late one night, restlessly pouring over my feeds, I came across this contest. I didn&#8217;t have a handy html5 app or chrome extension to enter, but the third option required no preparatory work: Tell us how you would explain what a &#8220;web app&#8221; is to your grandmother. My grandmother passed away a few years ago, [...]]]></description>
			<content:encoded><![CDATA[<p>Late one night, restlessly pouring over my feeds, I came across this <a href="http://www.webmonkey.com/2010/02/win-a-free-ticket-to-google-io-2010/">contest</a>.  I didn&#8217;t have a handy html5 app or chrome extension to enter, but the third option required no preparatory work: Tell us how you would explain what a &#8220;web app&#8221; is to your grandmother.<br />
<span id="more-593"></span><br />
My grandmother passed away a few years ago, and honestly I don&#8217;t think she ever got a chance to really use a computer.  When I visited her as a child, I never brought my computer, or got technical with her.  Instead, we sat eating stale popcorn and watching <a href="http://en.wikipedia.org/wiki/Gunsmoke">Gunsmoke</a> reruns and <a href="http://en.wikipedia.org/wiki/The_price_is_right">The Price Is Right</a>.  During it all, she knitted constantly.  From afghans to sweaters to warm winter hats and mittens, she pumped out garments all year long.  I was reminded of this, and wrote the following entry:</p>
<blockquote><p>When you pull out your iPod and hit the Knit Buddy button to manage your needles and yarn, that&#8217;s what we call an &#8220;app&#8221;. Now, let&#8217;s say you&#8217;re at the yarn store and you need to access your yarn and needle inventory to figure out what you need to buy for your latest creation. You realize you forgot your iPod at home. There&#8217;s no easy way to get access to the information you stored there. You could drive home and get your iPod, but it’s a long way. You could call Grandpa and attempt to have him look up the information, but what if he’s napping, or has the TV turned up too loud again? What if you could access your knitting inventory from your iPod, or your friends phone, or by the store&#8217;s computer? That&#8217;s what we call a &#8220;web app&#8221;. Instead of being stuck running an &#8220;app&#8221; on a single device, and having your information locked to that device, you run a &#8220;web app&#8221; on any device attached to the web, and you can access your information anywhere.</p></blockquote>
<p>Now I did take a little poetic license here, and I assumed that my grandmother at least understood what an iPod and the internet were.  Who knows; if she had lived a little longer, I may have gotten around to explaining them to her.</p>
<p>In any event, while I didn&#8217;t win the grand prize, I did have my entry <a href="http://www.webmonkey.com/2010/03/meet-the-winners-of-webmonkeys-google-io-giveaway/">published</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://curtistasker.com/blog/technology/593/what-is-a-web-app/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Permalinks</title>
		<link>http://curtistasker.com/blog/technology/562/permalinks</link>
		<comments>http://curtistasker.com/blog/technology/562/permalinks#comments</comments>
		<pubDate>Mon, 14 Dec 2009 01:18:44 +0000</pubDate>
		<dc:creator>Curtis</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[url rewriting]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://curtistasker.com/?p=562</guid>
		<description><![CDATA[Linking to from one document to another is basically the foundation of the internet. The URL of a document is the address you point your browser at to retrieve some content. Content on the internet is meant to be read. You drive readers to your content by publishing the URL. Ideally you want your content [...]]]></description>
			<content:encoded><![CDATA[<p>Linking to from one document to another is basically the foundation of the internet.  The <a href="http://en.wikipedia.org/wiki/Url">URL</a> of a document is the address you point your browser at to retrieve some content.  Content on the internet is meant to be read.  You drive readers to your content by publishing the URL.  Ideally you want your content to be available to readers not only now, but for years hence.<br />
<span id="more-562"></span><br />
The problem  lies with the issue of permanency.  Lets say you have a small company that sells products over the internet.  You put your return and exchange policies at <code>example.com/help/returns.htm</code>.  You buy a large batch of paper invoices, and have your return policy URL proudly displayed at the bottom of each invoice.  A few months down the road, the website is re-designed, and the new return policy is now at <code>example.com/returns</code>.  Apparently nobody remembered that your invoices are pointing to a resource that no longer exists.  This happens more often than you might think, and often involves both digital and physical links which are broken.</p>
<h2>Common Reasons For Removal</h2>
<ul>
<li>The content of the page becomes outdated, and is removed entirely.</li>
<li>The website is redesigned, and old information is moved to an entirely new location</li>
<li>The type of information changes (a pdf becomes a web page)</li>
<li>Static content becomes dynamic</li>
</ul>
<h2>Coping With The Problem</h2>
<p>There are a few basic ways to cope with out of date URLs.  You can display a custom <a href="http://en.wikipedia.org/wiki/HTTP_404">404 error</a>, perhaps with a search box to allow the user to more easily find the page he was looking for.  You can redirect the user back to the root of your website, and hope they can find their way from there.  Ideally, you can configure your web-server to redirect all requests from the old URL to the new URL.  Unfortunately, the latter process can become quite unwieldy, and is often just ignored, especially on larger websites and over long time periods.</p>
<p>The best solution is to plan ahead when first launching your website.  With proper planning, you can configure your website&#8217;s URL structure to cope with changes in underlying design and technology without changing the basic URL structure.</p>
<p>If a piece of content is going to be advertised or linked to, its URL should be a folder.  <code>example.com/resume</code> is far preferable to <code>example.com/resume.htm</code> or <code>example.com/resume/resume.pdf</code>.  </p>
<p>If your website is highly dynamic, generating content on the fly, then your URL structure is even more critical.  <code>example.com/home.php?page=intro&#038;lang=en&#038;spash=yes</code> is confusing, and painful to type by hand.  <code>example.com/intro</code> is simple and easy to type.</p>
<h2>How I Handle It</h2>
<p>Everybody seems to have their own opinions on how to set up your blog with permanent links. The main concerns seem to be <a href="http://en.wikipedia.org/wiki/SEO">SEO</a>, which isn&#8217;t terribly important to me, but I took it into account.  I&#8217;ve never had a lot of publicly accessible links on my website, so there weren&#8217;t many links to preserve.  I did choose to maintain most of the hosted files and private content, as I&#8217;d planned for that ages ago.</p>
<p>I settled on this structure: <code>http://curtistasker.com/blog/%category%/%post_id%/%posttitle%</code>. I wanted the word &#8216;blog&#8217; in the url somewhere, to indicate at a glance (and to search engines) that this was a blog post.  I plan on using a small number of categories with little overlap, so having the category in the URL is reasonable.  It provides an additional keyword for search engines, and offers users a bit more information to go along with the post title.  Post ID is there mostly to make search engines happy, as quite a few people seemed to think a three or more digit numeric in your URL was beneficial.  And finally it closes with the post title.</p>
<p>Tweaking WordPress to handle this structure wasn&#8217;t terribly bad, though its since gotten easier.  I&#8217;ve been able to get rid of a custom plugin I wrote to handle category links, as newer versions of WordPress can handle what I want by default.  I also use a lot <a href="http://curtistasker.com/blog/programming/109/url-rewriting-using-apache">URL Rewriting</a> to help prevent duplicate links, by forcing <code>www.example.com/file1</code> and <code>example.com/file1</code> and <code>example.com/files/file1</code> to all redirect to the same URL.  I also discourage duplicate indexing of content (category and tag pages with summaries).</p>
]]></content:encoded>
			<wfw:commentRss>http://curtistasker.com/blog/technology/562/permalinks/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

