<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom">
 
  <title>Click On Tyler</title>
  <link href="http://clickontyler.com/" />
  
  <updated>2013-04-26T17:05:19+00:00</updated>
  <id>http://clickontyler.com/</id>
  <author>
    <name>Tyler Hall</name>
    <email>tylerhall@gmail.com</email>
  </author>

  
  <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/clickontyler" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="clickontyler" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry>
    <id>http://clickontyler.com/blog/2013/04/pebblecam/pebblecam</id>
    <link type="text/html" rel="alternate" href="http://clickontyler.com" />
    <title>PebbleCam</title>
    <updated>2013-04-08T20:57:14+00:00</updated>
    <author>
      <name>Tyler Hall</name>
      <uri>http://clickontyler.com/</uri>
    </author>
    <content type="html">&lt;p&gt;My &lt;a href='http://getpebble.com/'&gt;Pebble&lt;/a&gt; arrived last week and I&amp;#8217;ve been geeking out over it ever since. I&amp;#8217;ve been thinking a lot about wearable tech the last few years and signed up immediately when Pebble was first announced last year. (I can&amp;#8217;t wait to see what Apple can do in this space.)&lt;/p&gt;

&lt;p&gt;So with a full week of Pebble use under my belt, I decided it was time to do something super geeky with my new smart watch. PebbleCam is the result of a few hours this afternoon tinkering around in Xcode.&lt;/p&gt;

&lt;p&gt;In a nutshell, PebbleCam is an iPhone app that lets you use your Pebble as a remote shutter for the phone&amp;#8217;s camera. You launch the app and it displays the camera. Prop the phone up, put it on a tripod, whatever, then get you and your friends in to frame. As long as you&amp;#8217;re in Bluetooth range, clicking the &amp;#8220;play/pause&amp;#8221; button on your Pebble will snap a photo and save it to your phone&amp;#8217;s photo library.&lt;/p&gt;

&lt;p&gt;How does it work?&lt;/p&gt;

&lt;p&gt;Currently, there&amp;#8217;s no way to communicate from Pebble back to the phone except for the music control buttons. To take advantage of that, the app plays a blank MP3 file in the background and then listens for any remote control events (play, pause, next, previous) to come in via the Pebble. When a play/pause event occurs, the app snaps a photo and saves it to your phone&amp;#8217;s photo library.&lt;/p&gt;

&lt;p&gt;The code is fairly straightforward and is &lt;a href='https://github.com/tylerhall/PebbleCam'&gt;available on GitHub&lt;/a&gt;. Anyone in the iOS developer program can download the code and install the app on their phone. And for you jailbreakers out there, I&amp;#8217;ve committed an &lt;code&gt;.ipa&lt;/code&gt; file &lt;a href='https://github.com/tylerhall/PebbleCam/blob/master/PebbleCam.ipa?raw=true'&gt;you can download&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the next update, I plan on assigning the next track button to change the camera from rear-facing to front-facing. That leaves one button left (previous track) to play with. Any ideas on what I could assign it to?&lt;/p&gt;

&lt;p&gt;If there is enough interest, I&amp;#8217;m not opposed to submitting the app to Apple for inclusion in the App Store. (I don&amp;#8217;t see any reason why it wouldn&amp;#8217;t be accepted.) However, before I do that, I&amp;#8217;d need someone to create an icon for the app. Right now I&amp;#8217;m using the official Pebble iOS app icon with a camera photoshopped on top.&lt;/p&gt;

&lt;p&gt;Here&amp;#8217;s a video of the app in action.&lt;/p&gt;
&lt;object height='315' width='560'&gt;&lt;param name='movie' value='http://www.youtube.com/v/_1zl_Hk9_xc?version=3&amp;amp;hl=en_US' /&gt;&lt;param name='allowFullScreen' value='true' /&gt;&lt;param name='allowscriptaccess' value='always' /&gt;&lt;embed src='http://www.youtube.com/v/_1zl_Hk9_xc?version=3&amp;amp;hl=en_US' allowfullscreen='true' type='application/x-shockwave-flash' allowscriptaccess='always' height='315' width='560' /&gt;&lt;/object&gt;&lt;img src="http://feeds.feedburner.com/~r/clickontyler/~4/ixzJQ1xrdng" height="1" width="1"/&gt;</content>
  </entry>
  
  <entry>
    <id>http://clickontyler.com/blog/2013/03/hazel-and-git/hazel-git</id>
    <link type="text/html" rel="alternate" href="http://clickontyler.com" />
    <title>Using Hazel to Highlight any Uncommitted git Changes</title>
    <updated>2013-03-04T20:57:14+00:00</updated>
    <author>
      <name>Tyler Hall</name>
      <uri>http://clickontyler.com/</uri>
    </author>
    <content type="html">&lt;p&gt;Today I thought I&amp;#8217;d share one of the more esoteric Hazel rules I use to monitor the files on my Mac. (If you&amp;#8217;re not familiar with Hazel, an indespensible Mac utility that everyone should own, here&amp;#8217;s a &lt;a href='http://www.macstories.net/stories/why-i-started-using-hazel-for-mac/'&gt;brief intro&lt;/a&gt;.)&lt;/p&gt;

&lt;p&gt;This rule monitors the folder containing all of my git repositories and highlights any sub-folders that have uncommitted changes. At the end of a work day, it&amp;#8217;s a great way to see at a glance which projects have unsaved changes.&lt;/p&gt;

&lt;p&gt;&lt;img src='http://cdn.clickontyler.com/blog/hazel0.png' alt='Hazel Screenshot 0' /&gt;&lt;/p&gt;

&lt;p&gt;Here&amp;#8217;s a screenshot of my Hazel rules&amp;#8230;&lt;/p&gt;

&lt;p&gt;&lt;img src='http://cdn.clickontyler.com/blog/hazel1.png' alt='Hazel Screenshot 1' /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src='http://cdn.clickontyler.com/blog/hazel2.png' alt='Hazel Screenshot 2' /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src='http://cdn.clickontyler.com/blog/hazel3.png' alt='Hazel Screenshot 3' /&gt;&lt;/p&gt;

&lt;p&gt;And here&amp;#8217;s the shell script that is embedded in rule #1&amp;#8230;&lt;/p&gt;
&lt;div class='highlight'&gt;&lt;pre&gt;&lt;code class='bash'&gt;&lt;span class='nv'&gt;dirname&lt;/span&gt;&lt;span class='o'&gt;=&lt;/span&gt;&lt;span class='nv'&gt;$1&lt;/span&gt;
&lt;span class='k'&gt;if&lt;/span&gt; &lt;span class='o'&gt;[&lt;/span&gt; -f &lt;span class='nv'&gt;$dirname&lt;/span&gt; &lt;span class='o'&gt;]&lt;/span&gt; ; &lt;span class='k'&gt;then&lt;/span&gt;
&lt;span class='k'&gt;	&lt;/span&gt;&lt;span class='nv'&gt;dirname&lt;/span&gt;&lt;span class='o'&gt;=&lt;/span&gt;&lt;span class='sb'&gt;`&lt;/span&gt;dirname &lt;span class='nv'&gt;$dirname&lt;/span&gt;&lt;span class='sb'&gt;`&lt;/span&gt;
&lt;span class='k'&gt;fi&lt;/span&gt;

&lt;span class='nb'&gt;cd&lt;/span&gt; &lt;span class='nv'&gt;$dirname&lt;/span&gt;

&lt;span class='k'&gt;if &lt;/span&gt;git status | grep --quiet &lt;span class='s2'&gt;&amp;quot;working directory clean&amp;quot;&lt;/span&gt;; &lt;span class='k'&gt;then&lt;/span&gt;
&lt;span class='k'&gt;	&lt;/span&gt;&lt;span class='nb'&gt;exit &lt;/span&gt;1
&lt;span class='k'&gt;else&lt;/span&gt;
&lt;span class='k'&gt;	&lt;/span&gt;&lt;span class='nb'&gt;exit &lt;/span&gt;0
&lt;span class='k'&gt;fi&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;As you can see in the first rule, the shell script changes directories into the git project and then pipes &lt;code&gt;git status&lt;/code&gt; through &lt;code&gt;grep&lt;/code&gt; to check for any changes. Any modified working directories are matched and highlighted red in the Finder.&lt;/p&gt;

&lt;p&gt;The second rule un-highlights any folders which don&amp;#8217;t get matched - folders with clean working directories.&lt;/p&gt;

&lt;p&gt;If you&amp;#8217;d like to import the rules into your own copy of Hazel, you can &lt;a href='http://cdn.clickontyler.com/blog/GitWorkingDirectory.hazelrules'&gt;download the rules here&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/clickontyler/~4/ixzJQ1xrdng" height="1" width="1"/&gt;</content>
  </entry>
  
  <entry>
    <id>http://clickontyler.com/blog/2013/02/omnifocus-work-from-home/omnifocus</id>
    <link type="text/html" rel="alternate" href="http://clickontyler.com" />
    <title>OmniFocus for People Who Work From Home</title>
    <updated>2013-02-20T20:57:14+00:00</updated>
    <author>
      <name>Tyler Hall</name>
      <uri>http://clickontyler.com/</uri>
    </author>
    <content type="html">&lt;p&gt;Two and a half years ago, when I first wrote about &lt;a href='http://clickontyler.com/blog/2010/10/how-i-use-omnifocus-to-organize-my-life/'&gt;how I use OmniFocus&lt;/a&gt;, I was working a full-time job in addition to my committments at home and my freelance work. A year ago this week, I left my day job and ventured out on my own &amp;#8212; devoting myself full-time to building my own apps and the occasional freelance job. That&amp;#8217;s neccessitated a change in my OmniFocus setup &amp;#8212; particularly with how I structure my contexts, start dates, and due dates. Today, I&amp;#8217;d like to go over how these things have changed and the system I&amp;#8217;ve settled on. &lt;em&gt;(I think I got the idea for this system from either &lt;a href='http://macsparky.com/'&gt;David Sparks&lt;/a&gt; or &lt;a href='http://simplicitybliss.com/'&gt;Simplicity Bliss&lt;/a&gt;. I can&amp;#8217;t find their original link right now if I did, my apologies.)&lt;/em&gt;&lt;/p&gt;

&lt;h3 id='contexts_for_people_who_work_at_home'&gt;Contexts for People Who Work at Home&lt;/h3&gt;

&lt;p&gt;The biggest change in my routine is that I no longer go into an office every day. Occasionally I&amp;#8217;ll work from a coffee shop, but the majority of my work day is now spent in my home office. This has caused me to rethink how I structure my contexts.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;m not a strict adherent to David Allen&amp;#8217;s &lt;a href='http://en.wikipedia.org/wiki/Getting_Things_Done'&gt;Getting Things Done&lt;/a&gt; system, but I follow it fairly closely. If you&amp;#8217;re familiar with the system you&amp;#8217;ll know that when choosing what to do next, he says there are four criteria you can apply, in this order:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Context&lt;/li&gt;

&lt;li&gt;Time available&lt;/li&gt;

&lt;li&gt;Energy available&lt;/li&gt;

&lt;li&gt;Priority&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Allen defines &lt;em&gt;Context&lt;/em&gt; as &amp;#8220;the first factors that limit your choices about what you &lt;em&gt;can&lt;/em&gt; do in the moment.&amp;#8221; He lists factors such as being at a specific location (home, work) or having a particular tool (phone, computer) at hand.&lt;/p&gt;

&lt;p&gt;Previously, I had seperate contexts for &lt;em&gt;Home&lt;/em&gt;, &lt;em&gt;Work&lt;/em&gt;, and &lt;em&gt;Phone&lt;/em&gt; &amp;#8212; plus contexts for &lt;em&gt;Errands&lt;/em&gt; and any people/coworkers I&amp;#8217;ve delegated tasks to. Now that I work from home, that&amp;#8217;s changed. Here&amp;#8217;s why.&lt;/p&gt;

&lt;p&gt;The location requirement makes sense for people who have a regular 9-5 office job, but not so much for folks who work at home. Except for errands, most everything on my todo list can be done at home.&lt;/p&gt;

&lt;p&gt;Also, as third-party apps improve and gain functionality on my iPhone and iPad, the requirement of having access to a specific tool is rapidly going away. I always have my phone with me, and if I&amp;#8217;m home, I always have ready access to a computer or iPad.&lt;/p&gt;

&lt;p&gt;Practically speaking, this means I&amp;#8217;ve gotten rid of my &lt;em&gt;Home&lt;/em&gt;, &lt;em&gt;Work&lt;/em&gt;, and &lt;em&gt;Phone&lt;/em&gt; contexts and replaced them instead with labels that borrow traits from Allen&amp;#8217;s &amp;#8220;Time available&amp;#8221; and &amp;#8220;Energy available&amp;#8221; criteria. My new context list looks like this:&lt;/p&gt;

&lt;p&gt;&lt;img src='http://cdn.clickontyler.com/blog/contexts.jpg' alt='OmniFocus Contexts' /&gt;&lt;/p&gt;

&lt;p&gt;Since I&amp;#8217;m now &amp;#8220;always&amp;#8221; at home, my next actions are better decided based on my mood and how much time I&amp;#8217;ve got available.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;High Energy&lt;/em&gt; is for actions that require my full attention. Things such as a writing this blog post, fixing a bug in one of my apps, etc.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Quick Hits&lt;/em&gt; are items that I can just bang my way through, quickly. Anything that will take less than two minutes to finish goes in here. Knocking this list out all at once in the morning is an easy morale boost for me.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Brain Dead&lt;/em&gt; is just what it sounds like. These are things I save for when I&amp;#8217;m low on energy at the end of the day or anytime I just don&amp;#8217;t have the mojo ready to do real work. Stuff like paying bills, scanning any papers I&amp;#8217;ve got laying around, or changing lightbulbs.&lt;/p&gt;

&lt;p&gt;Those three contexts encompass everything that was previously in my &lt;em&gt;Home&lt;/em&gt; and &lt;em&gt;Work&lt;/em&gt; buckets.&lt;/p&gt;

&lt;p&gt;The rest of my contexts haven&amp;#8217;t changed. I still keep my &lt;em&gt;Errands&lt;/em&gt; context organized by store &amp;#8212; each of which is &lt;a href='http://www.omnigroup.com/blog/entry/OmniFocus_for_iPhone_the_Coolest_Feature_Youre_Probably_Not_Using'&gt;GPS tagged in OmniFocus&lt;/a&gt;, so my tasks automatically pop-up on my home screen when I&amp;#8217;m near the store. And for any tasks I assign to another person, I keep a context for them under &lt;em&gt;People&lt;/em&gt;, which is on hold so the tasks don&amp;#8217;t show up in my list of available actions.&lt;/p&gt;

&lt;h3 id='start_and_due_dates'&gt;Start and Due Dates&lt;/h3&gt;

&lt;p&gt;The other big change in my OmniFocus habits I&amp;#8217;ve noticed since leaving my day job is how often I assign start and due dates.&lt;/p&gt;

&lt;p&gt;An amazing (and perhaps obvious) result of working for yourself is that you rarely find yourself up against hard due dates. Now that I&amp;#8217;m my own boss, I definitely push myself to get things done by a certain time, but if they aren&amp;#8217;t? It&amp;#8217;s not a big deal. I can just push them off to the next day.&lt;/p&gt;

&lt;p&gt;This means in almost every instance where I (or my boss) would normally assign a task a due date, I instead give it a start date. It&amp;#8217;s great because items I can&amp;#8217;t currently work on stay out of my view and only show up when I&amp;#8217;m ready to work on them.&lt;/p&gt;

&lt;p&gt;Replacing due dates with start dates has dramtically increased how often I add something to my inbox. I used to worry about adding trivial small reminders because I didn&amp;#8217;t want them clogging up my task list. But now that I&amp;#8217;ve discovered the power of start dates, I throw everything in there with a start date, knowing it won&amp;#8217;t appear until I can actually do something about it. An added bonus is that OmniFocus rarely shows an overdue or due soon badge, which means if one &lt;em&gt;does&lt;/em&gt; appear, I know I really do have something due. Less false positives mean I pay better attention and am less prone to ignoring the warning.&lt;/p&gt;

&lt;h3 id='mandatory_conclusion'&gt;Mandatory Conclusion&lt;/h3&gt;

&lt;p&gt;So that&amp;#8217;s it. Working from home has been a big and very much welcome change. And as my work habits have changed, so has the way I use OmniFocus. And, as usual, it&amp;#8217;s kept up like a champ.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/clickontyler/~4/ixzJQ1xrdng" height="1" width="1"/&gt;</content>
  </entry>
  
  <entry>
    <id>http://clickontyler.com/blog/2013/02/view-virtual-hosts-iphone-ipad/view-virtual-hosts-iphone-ipad</id>
    <link type="text/html" rel="alternate" href="http://clickontyler.com" />
    <title>How to View Your Virtual Hosts on Your iPhone and iPad</title>
    <updated>2013-02-12T20:57:14+00:00</updated>
    <author>
      <name>Tyler Hall</name>
      <uri>http://clickontyler.com/</uri>
    </author>
    <content type="html">&lt;p&gt;Today, &lt;a href='http://shawnblanc.net/2013/02/stokes-mamp/'&gt;Shawn Blanc&lt;/a&gt; linked to &lt;a href='http://esbueno.noahstokes.com/post/42930947028/test-your-local-web-sites-on-your-ipad-or-iphone-using'&gt;a post by Noah Stokes&lt;/a&gt; that explained how to test a locally hosted web site on your iOS device using MAMP Pro. His solution was to set MAMP&amp;#8217;s &lt;code&gt;localhost&lt;/code&gt; directory to point to the web site folder you want to view on your iOS device. Then, just browse to your Mac&amp;#8217;s IP address in Mobile Safari and voilà.&lt;/p&gt;

&lt;p&gt;That&amp;#8217;s a fine solution, but because you&amp;#8217;re accessing your web site via your Mac&amp;#8217;s IP address, you&amp;#8217;re limited to testing one web site at a time. You have to go into MAMP and change your document root to a new directory any time you want to test a different site.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;d like to show you a more robust solution that uses a new feature in &lt;a href='http://clickontyler.com/virtualhostx/'&gt;VirtualHostX 4.0&lt;/a&gt;. With it, you can test an unlimited number of web sites at the same time from your iOS devices. And, as an added bonus, anyone on your local network (coworkers perhaps?) can access your development sites, too. Here&amp;#8217;s how&amp;#8230;&lt;/p&gt;

&lt;p&gt;First, fire up your copy of VirtualHostX and create a new virtual host for each of your local web sites. Once done, this will let you preview your sites locally using a custom domain name such as &lt;code&gt;http://my-website.dev&lt;/code&gt;. Like &lt;a href='http://shawnblanc.net/2011/09/virtualhostx/'&gt;Shawn says&lt;/a&gt;, &amp;#8220;as any professional Web developer knows, doing your development locally is simply how it’s done.&amp;#8221;&lt;/p&gt;

&lt;p&gt;Once you&amp;#8217;ve got your virtual hosts working, sharing them to your iDevice is super simple. Just tick the &amp;#8220;Local Domain Name&amp;#8221; checkbox and click &amp;#8220;Apply Changes&amp;#8221; one more time. (Technically speaking, this will create a wildcard &lt;code&gt;ServerAlias&lt;/code&gt; for your virtual host that you can use to access it from other machines on your local network.) But, the technical details don&amp;#8217;t really matter. What&amp;#8217;s important is the end result. Next to that magic checkbox, VirtualHostX gives you a &lt;em&gt;Local Domain Name&lt;/em&gt; you can type into Mobile Safari on your iPhone or iPad to view your site.&lt;/p&gt;

&lt;p&gt;Give it a try. It really is magical the first time you see it work.&lt;/p&gt;

&lt;p&gt;&lt;img src='http://cdn.clickontyler.com/blog/vhx4-ldn.jpg' alt='VirtualHostX 4.0 Local Domain Name' /&gt;&lt;/p&gt;

&lt;p&gt;But, we&amp;#8217;re not done yet. One of my main goals with the latest version of VirtualHostX was to make sharing your web sites as drop-dead easy as possible. That local domain name you just typed into Mobile Safari? It&amp;#8217;s kind of long and ugly, isn&amp;#8217;t it? We can do better. So&amp;#8230;&lt;/p&gt;
&lt;img src='http://gallery.mailchimp.com/ac342b5d7c9307641ed81ad42/images/iphone_big.jpg' style='float:left;margin-right:1em;' /&gt;
&lt;p&gt;Open up the App Store on your iDevice and download the new &lt;a href='https://itunes.apple.com/us/app/virtualhostx/id597179860?ls=1&amp;amp;mt=8'&gt;VirtualHostX companion app&lt;/a&gt;. Don&amp;#8217;t worry, it&amp;#8217;s free.&lt;/p&gt;

&lt;p&gt;Open the app, and, as long as you&amp;#8217;re on the same local wifi network, the app will automatically discover your shared virtual hosts and give you a one-tap way to view them in Mobile Safari. Now there&amp;#8217;s no need to remember your site&amp;#8217;s local domain name or even a reason to type it in. It&amp;#8217;s all automatic!&lt;/p&gt;

&lt;p&gt;Like I said above, Noah&amp;#8217;s method works great if you only have one website to test. But, if you&amp;#8217;re developing more than one web site at a time (who isn&amp;#8217;t?), I think VirtualHostX is the way to go. Clearly I&amp;#8217;m biased, but as I&amp;#8217;ve been advocating for years now, skip MAMP Pro and just go with regular MAMP + VirtualHostX. I think the added benefit of sharing your virtual hosts is well worth it.&lt;/p&gt;
&lt;div style='clear:left;'&gt;&amp;nbsp;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/clickontyler/~4/ixzJQ1xrdng" height="1" width="1"/&gt;</content>
  </entry>
  
  <entry>
    <id>http://clickontyler.com/blog/2013/02/virtualhostx-4-now-available/VHX4</id>
    <link type="text/html" rel="alternate" href="http://clickontyler.com" />
    <title>VirtualHostX 4.0 is Now Available</title>
    <updated>2013-02-04T20:57:14+00:00</updated>
    <author>
      <name>Tyler Hall</name>
      <uri>http://clickontyler.com/</uri>
    </author>
    <content type="html">&lt;p&gt;Guess what? &lt;a href='http://clickontyler.com/virtualhostx/'&gt;VirtualHostX 4.0&lt;/a&gt; is now available for everyone to download and purchase! This major new release comes with a host of new features that I&amp;#8217;d like to introduce you to.&lt;/p&gt;

&lt;h3 id='autorefresh'&gt;AutoRefresh&lt;/h3&gt;

&lt;p&gt;First up, is AutoRefresh. This is a new feature designed to speed up your web development workflow. VirtualHostX now provides you with a snippet of JavaScript which you add to the websites you&amp;#8217;re working on locally. That snippet opens a connection back to VirtualHostX. Any time you make a change to your website files, VirtualHostX notices the change and sends a signal to your website telling it to refresh. It may sound like a simple thing, but when you experience it in action it&amp;#8217;s almost magical. You never have to save your changes, flip back to your browser, and hit reload. It&amp;#8217;s all automatic now.&lt;/p&gt;

&lt;p&gt;AutoRefresh is smart, too. You can optionally give it a command to run before it refreshes your site. So, if you&amp;#8217;re using a CMS like Jekyll or managing your CSS with SASS, you can tell VHX to compile your site whenever it detects a change.&lt;/p&gt;

&lt;h3 id='a_new_server_status_window'&gt;A New Server Status Window&lt;/h3&gt;

&lt;p&gt;One of my goals with this release is to give people more insight into Apache. The new Server Status window provides access to your Apache error and access logs. It also gives you on/off switches to control PHP and Perl. I often get emails from folks who have setup their virtual hosts, but can&amp;#8217;t get PHP working. Now it&amp;#8217;s just one click away.&lt;/p&gt;

&lt;p&gt;&lt;img src='http://cdn.clickontyler.com/blog/VHX4-SS.png' alt='Server Status Window' /&gt;&lt;/p&gt;

&lt;h3 id='permissions_doctor'&gt;Permissions Doctor&lt;/h3&gt;

&lt;p&gt;A common problem folks have when setting up virtual hosts is the dreaded 403 Forbidden error. This happens frequently when you store your website files in a non-standard location and accounts for nearly 50% of the support emails I receive. Now, in version 4.0, is a new feature I call the Permissions Doctor. VirtualHostX will automatically display a red warning light next to your virtual hosts&amp;#8217;s local path if it detects that folder&amp;#8217;s permissions are incorrect. You can also manually run this check by choosing &amp;#8220;Check Folder Permissions&amp;#8230;&amp;#8221; from the &amp;#8220;Virtual Host&amp;#8221; menu. This will bring up a new window that walks through your virtual host&amp;#8217;s folder structure and displays each folder&amp;#8217;s UNIX permissions. For any folders that seem out of whack, VirtualHostX will explain the problem and even offer the appropriate &lt;code&gt;chmod&lt;/code&gt; command to fix the error.&lt;/p&gt;

&lt;p&gt;&lt;img src='http://cdn.clickontyler.com/blog/VHX4-PD.png' alt='Permissions Doctor' /&gt;&lt;/p&gt;

&lt;h3 id='virtualhostx_for_iphone_and_ipad'&gt;VirtualHostX for iPhone and iPad&lt;/h3&gt;

&lt;p&gt;Finally, VHX 4.0 comes with a free companion app for your iPhone and iPad. VirtualHostX for iOS automatically discovers your shared virtual hosts and gives you a one-tap way to open them in Mobile Safari on your iDevice. This means you never have to worry about mistyping a long (xip.io) Local Domain Name or Lift Off URL.&lt;/p&gt;

&lt;p&gt;&lt;img src='http://cdn.clickontyler.com/blog/VX4-iPhone.jpg' alt='VirtualHostX for iOS' /&gt;&lt;/p&gt;

&lt;h3 id='upgrades_for_existing_customers'&gt;Upgrades for Existing Customers&lt;/h3&gt;

&lt;p&gt;I hope all the new features in version 4.0 have you excited to upgrade. I&amp;#8217;ve had a blast building and testing them these last few months. Existing customers can upgrade for 50% off. For those of you who recently purchased version 3.0 (since October 1, 2012), you can upgrade for free.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/clickontyler/~4/ixzJQ1xrdng" height="1" width="1"/&gt;</content>
  </entry>
  
  <entry>
    <id>http://clickontyler.com/blog/2012/12/virtualhostx-updates/vhx-updates</id>
    <link type="text/html" rel="alternate" href="http://clickontyler.com" />
    <title>VirtualHostX Updates</title>
    <updated>2012-12-14T20:57:14+00:00</updated>
    <author>
      <name>Tyler Hall</name>
      <uri>http://clickontyler.com/</uri>
    </author>
    <content type="html">&lt;p&gt;Here are three quick updates about VirtualHostX and our new app Hostbuddy&amp;#8230;&lt;/p&gt;
&lt;img src='http://cdn.clickontyler.com/blog/hostbuddy256.png' style='float:right;' /&gt;
&lt;h3 id='introducing_hostbuddy'&gt;Introducing Hostbuddy!&lt;/h3&gt;

&lt;p&gt;&lt;a href='http://clickontyler.com/hostbuddy/'&gt;Hostbuddy&lt;/a&gt; is a brand new app that works alongside VirtualHostX. It&amp;#8217;s the easiest way to manage and update the /etc/hosts file on your Mac. Add new entries and turn on and off existing ones with one click. It&amp;#8217;s perfect for switching between staging and production servers or just for testing out your new website before it goes live. Hostbuddy is &lt;a href='http://clickontyler.com/hostbuddy/'&gt;on sale this week for $9.95&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id='share_your_virtual_hosts_over_the_local_network'&gt;Share Your Virtual Hosts Over the Local Network&lt;/h3&gt;

&lt;p&gt;We recently released VirtualHostX version 3.3 which does away with the old local network Bonjour sharing option and replaces it with a brand new, much more reliable way of sharing your virtual hosts over the local network. It&amp;#8217;s a great way to test your sites on mobile devices like your iPhone or tablet. &lt;a href='http://support.clickontyler.com/a/31/virtual-hosts-share-local-network/'&gt;Read our two minute guide introducing the new feature&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id='brand_new_support_website'&gt;Brand New Support Website&lt;/h3&gt;

&lt;p&gt;We always try our best to answer your support emails (and phone calls!) as quickly as possible. But sometimes you want help without waiting for us to reply. So, we&amp;#8217;ve finally built &lt;a href='http://support.clickontyler.com'&gt;a new support website&lt;/a&gt; with frequently asked questions and other handy info. We&amp;#8217;ve covered over 30 FAQ&amp;#8217;s so far. Got a question you&amp;#8217;d like answered? Just let us know!&lt;/p&gt;

&lt;p&gt;As always, feel free to &lt;a href='http://clickontyler.com/contact/'&gt;email (or even call)&lt;/a&gt; if you have any questions or feedback about VirtualHostX or Hostbuddy.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/clickontyler/~4/ixzJQ1xrdng" height="1" width="1"/&gt;</content>
  </entry>
  
  <entry>
    <id>http://clickontyler.com/blog/2012/08/cutting-back-on-iphone-notifications/email</id>
    <link type="text/html" rel="alternate" href="http://clickontyler.com" />
    <title>Cutting Back on iPhone Notifications</title>
    <updated>2012-09-09T20:57:14+00:00</updated>
    <author>
      <name>Tyler Hall</name>
      <uri>http://clickontyler.com/</uri>
    </author>
    <content type="html">&lt;p&gt;Like most of you reading this, I have my iPhone with me 24/7. Lately, I&amp;#8217;ve caught myself compulsively checking it for new notifications. Even when it hasn&amp;#8217;t made a sound or buzzed recently, I still have the habit of hitting the home button just in case there&amp;#8217;s a missed notification on the lock screen. I was starting to remind myself of a gambler pulling a slot lever thinking just-one-more-time-maybe-this-time there will be something there for me. It&amp;#8217;s an addictive pattern and one that I wanted to try and curb if not break.&lt;/p&gt;

&lt;p&gt;I decided to try and pare down the number of notifications I get throughout the day by turning off everything that wasn&amp;#8217;t necessary. But what&amp;#8217;s necessary? I scrolled through my Notification preferences in Settings.app and was shocked at just how many apps are setup to send push alerts. Most, while well-meaning, aren&amp;#8217;t that important. I ended up turning off everything except SMS, Twitter, and email.&lt;/p&gt;

&lt;p&gt;I left those three enabled because I reasoned anything that comes through one of those channels requires an immediate/timely response. No one sends me text messages except friends, family, and my bank. And while I could probably do with fewer Twitter @replies, I do get quite a few tweets from customers looking for help. I definitely want to reply to those quickly when possible. That leaves email, which I started to think more about. I realized very rarely do I get any one email that requires a fast response. In most cases, I&amp;#8217;ve learned customers expect a reply within a business day. Responses within a few hours (or even less) are just gravy. With that in mind I turned off email notifications, too.&lt;/p&gt;

&lt;p&gt;But then I took it a step further and actually removed my email accounts entirely from my phone. It was a spur of the moment decision. The rationale being that I&amp;#8217;m already sitting in front of a computer nearly twelve hours a day with Mail.app open. Every time I got an email Mail.app would chime, my phone would buzz, and my iPad would ding as well. Definitely no need for all three. And for the time times I&amp;#8217;m out of the house with just my phone, I don&amp;#8217;t really &lt;em&gt;need&lt;/em&gt; email, do I?&lt;/p&gt;

&lt;p&gt;And so that&amp;#8217;s what I did for the next two weeks. No notifications except for texts and Twitter. And email completely removed from my device.&lt;/p&gt;

&lt;p&gt;How&amp;#8217;d it go? The best way to describe it is similar to cutting out caffeine cold-turkey. I have to admit I was a little twitchy that first week. Even though I knew there was nothing to look at, I still had to stop myself from tapping the home button from time to time. But eventually that feeling began to fade. In its place was a &amp;#8230; comfortable quiet. I found myself leaving my phone in other rooms rather than always keeping it in my pocket. Hours would go by without thinking about what I might be missing. It was a nice change.&lt;/p&gt;

&lt;p&gt;The only problem I encountered were a few times when I was out and needed to reference something in my email. In one case I had an address saved in an email I needed to lookup; another time I needed to show a barcode in a PDF attachment to get into a Washington Nationals baseball game.&lt;/p&gt;

&lt;p&gt;I figured those two cases were enough reason to re-enable email on the device. BUT, I didn&amp;#8217;t turn on email notifications. Instead, I set my email to only fetch manually when I open the app. I found that setting to be a nice compromise. No more unnecessary alerts but access when I need it.&lt;/p&gt;

&lt;p&gt;And so that&amp;#8217;s the way I&amp;#8217;ve left things for the last two weeks. Now, if my phone buzzes in my pocket, I know it&amp;#8217;s either a text or someone on Twitter trying to reach me. I no longer take my phone out just to find a useless spam email. It&amp;#8217;s taken some getting used to, but overall my mind feels less busy. And that&amp;#8217;s a good thing. I highly recommend it.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/clickontyler/~4/ixzJQ1xrdng" height="1" width="1"/&gt;</content>
  </entry>
  
  <entry>
    <id>http://clickontyler.com/blog/2012/08/five-years/five-years</id>
    <link type="text/html" rel="alternate" href="http://clickontyler.com" />
    <title>Five Years</title>
    <updated>2012-08-29T21:46:17+00:00</updated>
    <author>
      <name>Tyler Hall</name>
      <uri>http://clickontyler.com/</uri>
    </author>
    <content type="html">&lt;p&gt;I&amp;#8217;m a few days late writing about this, but I couldn&amp;#8217;t let this week go by without mentioning that Monday 8/27 was a big day for me. Not only was it the fifth anniversary of &lt;a href='http://clickontyler.com/virtualhostx/'&gt;VirtualHostX&lt;/a&gt;, but it also marked six months since I left my day job and began working on my own apps full-time.&lt;/p&gt;

&lt;p&gt;When I first built VirtualHostX, I had no idea that it would be the first of many apps and lead to me running my own small business. In fact, my original goal was just to earn enough on the side so we could refinish the wood floors in our (then new) house. It&amp;#8217;s crazy looking back on that goal because, at the time, I considered even that a stretch. I had no idea it would lead to &lt;a href='http://clickontyler.com/incoming/'&gt;Incoming!&lt;/a&gt;, &lt;a href='http://clickontyler.com/nottingham/'&gt;Nottingham&lt;/a&gt;, &lt;a href='http://clickontyler.com/commandq/'&gt;CommandQ&lt;/a&gt;, a suite of mobile &lt;a href='http://clickontyler.com/tennessee-traffic/'&gt;traffic apps&lt;/a&gt;, and six trips to WWDC.&lt;/p&gt;

&lt;p&gt;But it has.&lt;/p&gt;

&lt;p&gt;And for that I have all of you, my users, to thank. You&amp;#8217;re the reason we were able to move across the country and be closer to family; the reason we could repair our house when our basement and all of &lt;a href='http://en.wikipedia.org/wiki/2010_Tennessee_floods'&gt;Nashville flooded&lt;/a&gt;; the reason I&amp;#8217;m able to sleep in each morning and spend the whole day hacking away on projects that interest me rather than what my employer dictates. Will I ever get the itch to get a &amp;#8220;real&amp;#8221; job and be a part of a larger team again? Probably. But until then, I&amp;#8217;m having a blast working for myself and for all of you.&lt;/p&gt;

&lt;p&gt;So, thank-you!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/clickontyler/~4/ixzJQ1xrdng" height="1" width="1"/&gt;</content>
  </entry>
  
  <entry>
    <id>http://clickontyler.com/blog/2012/08/incoming-2/incoming</id>
    <link type="text/html" rel="alternate" href="http://clickontyler.com" />
    <title>Incoming! 2.0</title>
    <updated>2012-08-14T20:48:51+00:00</updated>
    <author>
      <name>Tyler Hall</name>
      <uri>http://clickontyler.com/</uri>
    </author>
    <content type="html">&lt;p&gt;Today, I&amp;#8217;m happy to announce that &lt;a href='http://clickontyler.com/incoming/'&gt;Incoming! 2.0&lt;/a&gt; is now available &lt;a href='http://itunes.apple.com/us/app/incoming!-2.0/id549327094?ls=1&amp;amp;mt=12'&gt;on the Mac App Store&lt;/a&gt;. It&amp;#8217;s been three years since Incoming! was initially released, and I&amp;#8217;m thrilled to finally get this major new release into the hands of users.&lt;/p&gt;

&lt;p&gt;This new version of Incoming! is more like a Snow Leopard than a Lion. What I mean by that is the focus for this release has been on speed, stability, and laying the groundwork for future improvements. The achilles heel of Incoming! 1.0 was its inability to react to changes in Twitter&amp;#8217;s API (and all the other web services that it taps into). So the core of the app has been completely to rewritten to be more flexible. In fact, for many situations, Incoming! can now adapt to API changes without me having to issue an app update at all. That&amp;#8217;s a relief for both myself and everyone using Incoming! since it means less time spent waiting on Apple to approve updates.&lt;/p&gt;

&lt;p&gt;If you&amp;#8217;ve never used Incoming! before, I encourage you to &lt;a href='http://clickontyler.com/blog/2009/07/incoming-twitter-search-client-for-mac/'&gt;read my original post introducing the app&lt;/a&gt;. It&amp;#8217;ll give you a good overview of how the app works and what it can do. Or, if you&amp;#8217;re a long time user of the app, head over to the Mac App Store and &lt;a href='http://itunes.apple.com/us/app/incoming!-2.0/id549327094?ls=1&amp;amp;mt=12'&gt;download the new version&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/clickontyler/~4/ixzJQ1xrdng" height="1" width="1"/&gt;</content>
  </entry>
  
  <entry>
    <id>http://clickontyler.com/blog/2012/02/web-sharing-mountain-lion/mountain-lion-web-sharing</id>
    <link type="text/html" rel="alternate" href="http://clickontyler.com" />
    <title>Web Sharing in OS X Mountain Lion</title>
    <updated>2012-02-18T20:48:51+00:00</updated>
    <author>
      <name>Tyler Hall</name>
      <uri>http://clickontyler.com/</uri>
    </author>
    <content type="html">&lt;p&gt;As &lt;a href='http://macminicolo.net'&gt;MacMiniColo&lt;/a&gt; &lt;a href='http://blog.macminicolo.net/post/17721333182/first-look-at-mountain-lion-os-x-server'&gt;first reported&lt;/a&gt;, Apple&amp;#8217;s preview release of OS X 10.8 Mountain Lion has quietly removed the &amp;#8220;Web Sharing&amp;#8221; option from System Preferences. That one little checkbox held a lot of power &amp;#8212; it turned your Mac into a full featured web server, perfect for testing your development sites locally.&lt;/p&gt;

&lt;p&gt;Lucky for us, while Apple may have removed the option to enable Web Sharing, they left the guts of the built-in Apache web server in tact. All you have to do is find a way to turn it on. And that&amp;#8217;s where I come in&amp;#8230;&lt;/p&gt;

&lt;p&gt;Because of &lt;a href='http://clickontyler.com/virtualhostx/'&gt;VirtualHostX&lt;/a&gt;, I happen to have all the code necessary to manage Apache on OS X. That includes turning the server on and off. So here&amp;#8217;s &lt;a href='http://amz.clickontyler.com/WebSharing.zip'&gt;a replacement System Preferences pane&lt;/a&gt; you can install that lets you manage Apache just like before. Enjoy.&lt;/p&gt;

&lt;p&gt;&lt;a href='http://amz.clickontyler.com/WebSharing.zip'&gt;&lt;img src='http://cdn.clickontyler.com/blog/websharingpane.png' alt='http://cdn.clickontyler.com/blog/websharingpane.png' /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/clickontyler/~4/ixzJQ1xrdng" height="1" width="1"/&gt;</content>
  </entry>
  
  <entry>
    <id>http://clickontyler.com/blog/2011/11/remember-to-backup/remember-to-backup</id>
    <link type="text/html" rel="alternate" href="http://clickontyler.com" />
    <title>Remember to Backup</title>
    <updated>2011-11-26T16:43:46+00:00</updated>
    <author>
      <name>Tyler Hall</name>
      <uri>http://clickontyler.com/</uri>
    </author>
    <content type="html">&lt;p&gt;I&amp;#8217;ve &lt;a href='http://clickontyler.com/blog/2010/07/how-i-backup-my-mac/'&gt;written&lt;/a&gt; &lt;a href='http://clickontyler.com/blog/2010/11/backblaze-saves-the-day/'&gt;twice&lt;/a&gt; before about how important it is to have reliable, automatic backups running on all of your machines. I&amp;#8217;m especilly thankful for mine this weekend.&lt;/p&gt;

&lt;p&gt;After travelling for the American holiday, I returned home to find my iMac in an unbootable state. I&amp;#8217;m not sure what happened exactly &amp;#8212; all I could tell is that a hard drive error occurred around 3am one night, corrupting the system. Disk Utility, which often works magic, couldn&amp;#8217;t fix the error. But, not to fear, four hours later Time Machine had me back up and running exactly where I left off.&lt;/p&gt;

&lt;p&gt;The best part of the whole situation is I was never once worried. Between Time Machine, &lt;a href='http://www.dropbox.com'&gt;Dropbox&lt;/a&gt;, &lt;a href='http://www.backblaze.com/'&gt;Backblaze&lt;/a&gt;, and GitHub, I knew all of my data was safe.&lt;/p&gt;

&lt;p&gt;I can&amp;#8217;t encourage you enough to take a moment right now during this holiday weekend and make sure your backups are in place and working. (Make sure you test them, too! A backup you can&amp;#8217;t recover from does you no good.) And, if they&amp;#8217;re not, take my advice and &lt;a href='http://clickontyler.com/blog/2010/07/how-i-backup-my-mac/'&gt;set them up&lt;/a&gt; now.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/clickontyler/~4/ixzJQ1xrdng" height="1" width="1"/&gt;</content>
  </entry>
  
 
</feed>
