<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-2604165907248121163</atom:id><lastBuildDate>Thu, 16 Feb 2012 19:53:54 +0000</lastBuildDate><category>linux</category><category>alias</category><category>asleep</category><category>reminder</category><category>location</category><category>key</category><category>downloads</category><category>find</category><category>commandline</category><category>iPhone</category><category>terminal</category><category>grep</category><category>shortcuts</category><category>xargs</category><category>ssh</category><category>iOS</category><category>pipe</category><category>Apple</category><category>Siri</category><category>bus</category><category>date</category><category>safaristand</category><category>safari</category><title>Hey Mac Guy!</title><description /><link>http://heymacguy.blogspot.com/</link><managingEditor>noreply@blogger.com (Jason Buckner)</managingEditor><generator>Blogger</generator><openSearch:totalResults>9</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/HeyMacGuy" /><feedburner:info uri="heymacguy" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2604165907248121163.post-7913208690313580660</guid><pubDate>Tue, 01 Nov 2011 14:37:00 +0000</pubDate><atom:updated>2011-11-01T10:51:53.044-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">bus</category><category domain="http://www.blogger.com/atom/ns#">asleep</category><category domain="http://www.blogger.com/atom/ns#">location</category><category domain="http://www.blogger.com/atom/ns#">Siri</category><category domain="http://www.blogger.com/atom/ns#">iPhone</category><category domain="http://www.blogger.com/atom/ns#">reminder</category><category domain="http://www.blogger.com/atom/ns#">iOS</category><category domain="http://www.blogger.com/atom/ns#">Apple</category><title>Siri on the Bus</title><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://qkme.me/BFD" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;" target="_blank"&gt;&lt;img border="0" height="200" src="http://3.bp.blogspot.com/-Z2sdckZ2wmI/TrACkavhpUI/AAAAAAAAE4I/Tx1k72wqxW8/s200/BFD.jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;
I have a fairly long bus ride to work, it typically takes around an hour. Sometimes I like to sleep on the bus, but I'm always scared of missing my stop. With the introduction of iOS 5, Apple added location-based reminders that can be activated with Siri, or manually if you're on an iPhone 4. &lt;b&gt;Location-based reminders don't work on the iPhone 3GS.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
My solution is to create a contact just before my bus stop and set a reminder to alert me when I've reached that spot. It's a 2-step process, but it's fairly easy:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://2.bp.blogspot.com/-pgTzRgAj0Pg/Tq__yF9_U6I/AAAAAAAAE3w/OFNl3dnpYMU/s1600/IMG_0951.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="http://2.bp.blogspot.com/-pgTzRgAj0Pg/Tq__yF9_U6I/AAAAAAAAE3w/OFNl3dnpYMU/s200/IMG_0951.jpg" width="133" /&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Step 1: Create a contact a mile or so before your stop&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Open the Maps app and drop a pin by touching and holding in one spot until the pin drops.&lt;/li&gt;
&lt;li&gt;Touch the right arrow and select "Add to Contacts"&lt;/li&gt;
&lt;li&gt;Name your new contact something easy. I called mine "Mills and 50"&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;a href="http://4.bp.blogspot.com/-fitWM033OJw/TrACIoxnCpI/AAAAAAAAE4A/bsGAbJFwsK4/s1600/IMG_0953.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="http://4.bp.blogspot.com/-fitWM033OJw/TrACIoxnCpI/AAAAAAAAE4A/bsGAbJFwsK4/s200/IMG_0953.jpg" width="133" /&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Step 2: Tell Siri to wake you up&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
When you get on the bus, simply tell Siri to wake you up when you reach your contact. I just have to say "&lt;b&gt;Remind me to wake up when I reach Mills and 50&lt;/b&gt;". If you're on an iPhone 4, just open the Reminders app and add a reminder manually.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;That's it! Get some rest without worrying about missing your stop!&lt;/b&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2604165907248121163-7913208690313580660?l=heymacguy.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/HeyMacGuy/~4/8oqE63EMMRw" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/HeyMacGuy/~3/8oqE63EMMRw/siri-on-bus.html</link><author>noreply@blogger.com (Jason Buckner)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-Z2sdckZ2wmI/TrACkavhpUI/AAAAAAAAE4I/Tx1k72wqxW8/s72-c/BFD.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://heymacguy.blogspot.com/2011/11/siri-on-bus.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2604165907248121163.post-7659844521869109543</guid><pubDate>Fri, 21 Oct 2011 17:30:00 +0000</pubDate><atom:updated>2011-10-21T13:31:03.933-04:00</atom:updated><title>Use Siri to Update Facebook and Twitter</title><description>I got my iPhone 4S on launch day and I absolutely love Siri! Unfortunately there is no Twitter or Facebook integration for Siri out of the box. There are some fairly straight forward workarounds, though.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Facebook&lt;/b&gt;&lt;br /&gt;
To update your Facebook status:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;&lt;b&gt;Create a new contact&lt;/b&gt; in your address book and name it something other than "Facebook". "Facebook" is a reserved word and Siri will tell you it can't interact with it. I named mine "Face".&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Find your Facebook email address&lt;/b&gt; on&amp;nbsp;the &lt;a href="https://www.facebook.com/mobile/"&gt;Facebook Mobile&lt;/a&gt; site and set that as the email address.&lt;/li&gt;
&lt;li&gt;Now you can just &lt;b&gt;email status updates to Facebook&lt;/b&gt; using Siri. Facebook uses the &lt;b&gt;Subject&lt;/b&gt; line as the status update.&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-jfCtyePqZWE/TqGrUZrbGWI/AAAAAAAAE3c/YBZggBAWV9o/s1600/IMG_0909.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-jfCtyePqZWE/TqGrUZrbGWI/AAAAAAAAE3c/YBZggBAWV9o/s320/IMG_0909.jpg" width="213" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Twitter&lt;/b&gt;&lt;br /&gt;
Twitter doesn't have native email updating capability so, instead, use SMS to send Twitter updates:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;&lt;b&gt;Link your phone to Twitter&lt;/b&gt; on the &lt;a href="https://twitter.com/devices"&gt;Devices&lt;/a&gt; page.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Create a new contact&lt;/b&gt; in your address book and name it something other than "Twitter" or "Tweet". These are both reserved words for Siri. I named mine "Toot"&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Set the phone number to 40404.&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Send a text message&lt;/b&gt; to your contact.&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-OuuNYru4Wgg/TqGrIZWtWqI/AAAAAAAAE3U/kYjtXk2uqFQ/s1600/IMG_0908.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/-OuuNYru4Wgg/TqGrIZWtWqI/AAAAAAAAE3U/kYjtXk2uqFQ/s320/IMG_0908.jpg" width="212" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2604165907248121163-7659844521869109543?l=heymacguy.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/HeyMacGuy/~4/7YLO9-fXPeI" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/HeyMacGuy/~3/7YLO9-fXPeI/use-siri-to-update-facebook-and-twitter.html</link><author>noreply@blogger.com (Jason Buckner)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-jfCtyePqZWE/TqGrUZrbGWI/AAAAAAAAE3c/YBZggBAWV9o/s72-c/IMG_0909.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://heymacguy.blogspot.com/2011/10/use-siri-to-update-facebook-and-twitter.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2604165907248121163.post-2346292613833478145</guid><pubDate>Wed, 19 Oct 2011 16:00:00 +0000</pubDate><atom:updated>2011-10-19T12:00:31.691-04:00</atom:updated><title>Python, Virtual Environments, and cx_Oracle on Lion</title><description>As of this writing, the 64-bit Oracle Instant Client segfaults under Lion. There is a fairly lengthy discussion thread on the &lt;a href="https://forums.oracle.com/forums/thread.jspa?threadID=2187558&amp;amp;start=0&amp;amp;tstart=0"&gt;Oracle support forums&lt;/a&gt; and the only solution currently is to use the 32-bit version.&lt;br /&gt;
&lt;br /&gt;
While the problem is &lt;a href="http://pyfly.blogspot.com/2011/05/osx-lion-cxoracle-and-pain.html"&gt;fairly easy to overcome&lt;/a&gt; if you use the system python, it presents a problem when using virtual environments. For the system Python, simply install the 32-bit Instant Client and tell the system to use the 32-bit python install:&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;defaults write com.apple.versioner.python Prefer-32-Bit -bool yes&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;export VERSIONER_PYTHON_PREFER_32_BIT=yes&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Python in a virtual environment, on the other hand, bypasses&amp;nbsp;the Prefer-32-bit flag and will always run in 64-bit mode. As &lt;a href="http://stackoverflow.com/questions/6594558/when-i-create-a-virtualenv-python-runs-in-64-bit-even-when-already-set-to-32-bi/6606937#6606937"&gt;suggested by Ned Deily&lt;/a&gt; on StackOverflow, you can remove the 64-bit binary from the virtual environment python to force it to use 32-bit.&lt;br /&gt;
&lt;br /&gt;
To remove the 64-bit binary, use &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;lipo&lt;/span&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;$ which python&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;/path/to/virtualenv/bin/python&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;$ file&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;/path/to/virtualenv/bin/python&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;python: Mach-O universal binary with 2 architectures&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;python (for architecture x86_64):&amp;nbsp;Mach-O 64-bit executable x86_64&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;python (for architecture i386):&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Mach-O executable i386&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;$ cp&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;/path/to/virtualenv/bin/python&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;/path/to/virtualenv/bin/python&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-universal&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;$ lipo&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;/path/to/virtualenv/bin/python&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-universal -thin i386 -output&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;/path/to/virtualenv/bin/python&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;$ file&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;/path/to/virtualenv/bin/python&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;/path/to/virtualenv/bin/&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;python: Mach-O executable i386&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
If you take this approach, you will probably need to reinstall any python libraries like mysql-python with their 32-bit versions. To install mysql-python 32-bit, make sure you are running the 32-bit MySQL server.&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2604165907248121163-2346292613833478145?l=heymacguy.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/HeyMacGuy/~4/9lCD78LVk-0" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/HeyMacGuy/~3/9lCD78LVk-0/python-virtual-environments-and.html</link><author>noreply@blogger.com (Jason Buckner)</author><thr:total>0</thr:total><feedburner:origLink>http://heymacguy.blogspot.com/2011/10/python-virtual-environments-and.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2604165907248121163.post-8031642564294979553</guid><pubDate>Thu, 02 Apr 2009 13:33:00 +0000</pubDate><atom:updated>2009-06-26T20:48:14.385-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">xargs</category><category domain="http://www.blogger.com/atom/ns#">linux</category><category domain="http://www.blogger.com/atom/ns#">pipe</category><category domain="http://www.blogger.com/atom/ns#">find</category><category domain="http://www.blogger.com/atom/ns#">commandline</category><category domain="http://www.blogger.com/atom/ns#">grep</category><category domain="http://www.blogger.com/atom/ns#">terminal</category><title>Finding text in files from the Command-Line</title><description>&lt;p&gt;This tip is posted everywhere, but for my love of copying and pasting, here's how to find any text in a directory of files quickly from the command line:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;find . -name "*.php" -print | xargs grep "text_to_find"&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;To break this down:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;find . -name "*.php" -print&lt;/code&gt;&lt;/strong&gt; finds all files in the current or sub-directories that has the filename *.php and print out the file name&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;|&lt;/code&gt;&lt;/strong&gt; This is the pipe.  It sends the output of the above find command to the next command:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;xargs&lt;/code&gt;&lt;/strong&gt; takes the input from the &lt;code&gt;find&lt;/code&gt; command and passes those files to the next command:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;grep "text_to_find"&lt;/code&gt;&lt;/strong&gt; searches in each of the files for the text "text_to_find"&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2604165907248121163-8031642564294979553?l=heymacguy.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/HeyMacGuy/~4/BzrWP7zB8o0" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/HeyMacGuy/~3/BzrWP7zB8o0/finding-text-in-files-from-command-line.html</link><author>noreply@blogger.com (Jason Buckner)</author><thr:total>0</thr:total><feedburner:origLink>http://heymacguy.blogspot.com/2009/04/finding-text-in-files-from-command-line.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2604165907248121163.post-1619618699898484099</guid><pubDate>Wed, 01 Apr 2009 01:35:00 +0000</pubDate><atom:updated>2009-06-26T20:50:23.309-04:00</atom:updated><title>Kensington Slimblade</title><description>&lt;p&gt;Trackballs seem to be a sensitive subject when it comes to computer users.  When I mention to people that I use trackballs regularly, I typically get a face of disgust.  The usual excuses are: "I can play games 10 times faster with my regular mouse!" or "Trackballs are so awkward!"  &lt;/p&gt;

&lt;p&gt;For me, I've never found a mouse that gives me the level of control when working in Photoshop or doing any precision work as I have with my trackball.  But I don't use just any trackball.  Most trackballs have a tiny ball that you maneuver with your thumb, which is totally awkward for me.  The rest have a tiny center-mounted ball that's just not large enough to really get any precise control out of.&lt;/p&gt;

&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_fqP1xSIfQWM/SdLAlyacluI/AAAAAAAAD4s/wj_TvRAI0CY/s1600-h/DSC_1421.JPG"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand; width: 200px; height: 133px;" src="http://4.bp.blogspot.com/_fqP1xSIfQWM/SdLAlyacluI/AAAAAAAAD4s/wj_TvRAI0CY/s200/DSC_1421.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5319525865298368226" /&gt;&lt;/a&gt;My trackball of choice is the Kensington series with the large center-mounted ball.  Over the years I've owned the &lt;a href="http://www.amazon.com/Kensington-K64210-Turbo-Mouse-Trackball/dp/B00000K4KU"&gt;Turbo Mouse&lt;/a&gt;, &lt;a href="http://www.amazon.com/Kensington-Expert-Mouse-Optical-Trackball/dp/B00009KH63/ref=sr_1_1?ie=UTF8&amp;s=electronics&amp;qid=1236984444&amp;sr=1-1"&gt;Expert Mouse&lt;/a&gt;, and as of recently, their new &lt;a href="http://www.slimbladetrackball.com/"&gt;Slimblade&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I was selected to be part of their Slimblade testing program so they sent me one to review and I absolutely love the design of this thing!  It's low profile, feels very well-built, and the color scheme is gorgeous.&lt;/p&gt;

&lt;p&gt;They've moved the mouse lasers to the side walls so dust doesn't build up inside of it, and they made the ball bearings even smoother than the Expert Mouse.&lt;/p&gt;

&lt;h4&gt;Scrolling About.&lt;/h4&gt;

&lt;p&gt;One of the greatest features of the Expert Mouse was the scroll wheel.  It was an incredibly intuitive and elegant solution for the lack of scrolling on the Turbo Mouse.  The Slimblade took a different approach.  They decided to remove the scroll wheel and let you just spin the ball to scroll.  I was very skeptical about spinning the ball causing the cursor to move a lot, but it's actually pretty stable during scrolling.  It does take some getting used to compared to the scroll wheel, but after a few days it felt very natural.  The mouse cursor does move around slightly when scrolling, but overall it's pretty stable.&lt;/p&gt;

&lt;h4&gt;Ergonomics.&lt;/h4&gt;

&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_fqP1xSIfQWM/SdK6WGudt1I/AAAAAAAAD4M/9ruKP699pjY/s1600-h/DSC_1445.JPG"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 200px; height: 133px;" src="http://2.bp.blogspot.com/_fqP1xSIfQWM/SdK6WGudt1I/AAAAAAAAD4M/9ruKP699pjY/s200/DSC_1445.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5319518998803363666" /&gt;&lt;/a&gt;I waited to write this part because I wanted a longer experience with the mouse.  At first it was very uncomfortable.  The way my hand sat on the Expert Mouse was tilted slightly to the right.  When I did that on the Slimblade, since my hand is sitting on the desk instead of the cushion, that hits a pressure point in my hand and it kinda hurt.  I seem to have either adjusted my grip or it went away because I don't notice that anymore.  I think they really should've shipped this with a wrist rest to help with this problem.&lt;/p&gt;

&lt;h4&gt;The Software.&lt;/h4&gt;

&lt;p&gt;One of the things I've always liked about the Kensington trackball series has been the quality of driver software.  The previous versions were infinitely customizable, being able to make any button do anything you want.  You could even assign multi-click actions so hitting the left and right buttons simultaneously would trigger an event.&lt;/p&gt;

&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_fqP1xSIfQWM/SdK891vyXTI/AAAAAAAAD4U/mVV2bvQm-pc/s1600-h/Trackball+Active.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 200px; height: 57px;" src="http://2.bp.blogspot.com/_fqP1xSIfQWM/SdK891vyXTI/AAAAAAAAD4U/mVV2bvQm-pc/s200/Trackball+Active.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5319521880463531314" /&gt;&lt;/a&gt;The Slimblade has, unfortunately, strayed from this path.  In fact the only way you even know the software is installed is a menubar icon.   The buttons are all preset functionality: Left-Click, Right-Click, View Mode, and Media Mode.  In the two weeks or so that I've been using this mouse, I really haven't found myself using either View or Media Mode.&lt;/p&gt;

&lt;p&gt;Media Mode (upper left button) lets you control iTunes.  If you use iTunes and don't already use hotkey apps like &lt;a href="http://www.yellowmug.com/sk4it/" target="_blank"&gt;SizzlingKeys&lt;/a&gt; or &lt;a href="http://wincent.com/a/products/synergy-classic/" target="_blank"&gt;Synergy&lt;/a&gt;, this is nice. I listen to Pandora much more than iTunes lately so this button isn't all that useful for me.&lt;/p&gt;

&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_fqP1xSIfQWM/SdK-rbjsqmI/AAAAAAAAD4k/3iwLe828lpA/s1600-h/Modes.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 68px;" src="http://2.bp.blogspot.com/_fqP1xSIfQWM/SdK-rbjsqmI/AAAAAAAAD4k/3iwLe828lpA/s200/Modes.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5319523763219114594" /&gt;&lt;/a&gt;
View Mode (upper right button) lets you zoom and pan in apps that are supported.  For some apps, like Photoshop, this is useful, yet for other apps, like Safari, not so much.  This mouse is very sensitive so it's hard to avoid zooming while you're panning around.  I don't think this mode adds a lot of value and I would really like to be able to change the behavior of this button.&lt;/p&gt;

&lt;p&gt;Overall, there is almost no customizability in the software and the customization options you are given require editing a text file.  Not cool, Kensington.  Not cool.&lt;/p&gt;

&lt;h4&gt;Final Thoughts&lt;/h4&gt;

&lt;p&gt;If this was my first interaction with Kensington trackballs, I don't think I'd be as much of an enthusiast as I am.  The software is severely lacking and the ergonomics really leave something to be desired.  If Kensington improves the software and starts shipping this mouse with a wrist rest to match the angle of the mouse, it will be a dream come true, but in it's current form, it feels unfinished.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2604165907248121163-1619618699898484099?l=heymacguy.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/HeyMacGuy/~4/tKfXoTkgaSw" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/HeyMacGuy/~3/tKfXoTkgaSw/kensington-slimblade.html</link><author>noreply@blogger.com (Jason Buckner)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_fqP1xSIfQWM/SdLAlyacluI/AAAAAAAAD4s/wj_TvRAI0CY/s72-c/DSC_1421.JPG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://heymacguy.blogspot.com/2009/03/kensington-slimblade.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2604165907248121163.post-7355062266756623996</guid><pubDate>Mon, 30 Mar 2009 14:23:00 +0000</pubDate><atom:updated>2009-06-26T20:51:00.581-04:00</atom:updated><title>Python Shell Class Caching</title><description>&lt;p&gt;I'm learning Python right now and one of the things that I thought was strange behavior was how, when you first imported a module in the shell, it would essentially be cached for the rest of your shell session.  Any changes you made to your class file would not be reloaded until I exited the shell and reopened it.&lt;/p&gt;

&lt;p&gt;There is a much simpler way to reload your class file, using the &lt;code&gt;reload()&lt;/code&gt; command:
&lt;code&gt;
reload(module)
&lt;/code&gt;
It would be nice if there were a 'development' mode where it never cached the class files while you were in the shell.  Any suggestions?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2604165907248121163-7355062266756623996?l=heymacguy.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/HeyMacGuy/~4/9C0iYlkc6Jw" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/HeyMacGuy/~3/9C0iYlkc6Jw/python-shell.html</link><author>noreply@blogger.com (Jason Buckner)</author><thr:total>0</thr:total><feedburner:origLink>http://heymacguy.blogspot.com/2009/03/python-shell.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2604165907248121163.post-7494135381519687013</guid><pubDate>Fri, 27 Mar 2009 18:44:00 +0000</pubDate><atom:updated>2009-06-26T20:51:57.101-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">commandline</category><category domain="http://www.blogger.com/atom/ns#">safari</category><category domain="http://www.blogger.com/atom/ns#">alias</category><category domain="http://www.blogger.com/atom/ns#">safaristand</category><category domain="http://www.blogger.com/atom/ns#">downloads</category><category domain="http://www.blogger.com/atom/ns#">date</category><category domain="http://www.blogger.com/atom/ns#">terminal</category><category domain="http://www.blogger.com/atom/ns#">shortcuts</category><title>SafariStand downloads and the Terminal</title><description>&lt;p&gt;I love SafariStand.  I love SafariStand's ability to organize downloads by date.  I hate trying to navigate to the current day's download directory via the terminal.  I typically don't delete downloads very often so my Downloads folder tends to get cluttered with a bunch of folders titled '2009-03-11', '2009-03-15', etc.&lt;/p&gt;

&lt;p&gt;If you're a heavy terminal user, it can be a pain to get into the current day's folder because tab-completion always stops at '2009-03-' if your folder spans just one month, '2009-' if it spans multiple months, or '200' if it spans multiple years. &lt;/p&gt;

&lt;p&gt;I decided to rectify this situation by making an alias to the date command to generate the current date in the same format.  It's pretty simple:&lt;/p&gt;

&lt;p&gt;In your .profile or .bash_profile file in your home directory simply add the line:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;alias today='date "+%Y-%m-%d"'&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Then when you're in the terminal, go to your downloads folder and type &lt;/p&gt;

&lt;p&gt;&lt;code&gt;cd `today`&lt;/code&gt; (note the back quotes around today) (the back quote is shift-tilde)&lt;/p&gt;

&lt;p&gt;and it will automatically generate the proper date string and take you right into your folder.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2604165907248121163-7494135381519687013?l=heymacguy.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/HeyMacGuy/~4/K-ndL7-jo44" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/HeyMacGuy/~3/K-ndL7-jo44/safaristand-downloads-and-terminal.html</link><author>noreply@blogger.com (Jason Buckner)</author><thr:total>0</thr:total><feedburner:origLink>http://heymacguy.blogspot.com/2009/03/safaristand-downloads-and-terminal.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2604165907248121163.post-1756395020156256916</guid><pubDate>Fri, 05 Dec 2008 05:32:00 +0000</pubDate><atom:updated>2010-03-04T09:17:25.584-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">key</category><category domain="http://www.blogger.com/atom/ns#">commandline</category><category domain="http://www.blogger.com/atom/ns#">ssh</category><category domain="http://www.blogger.com/atom/ns#">terminal</category><title>Quickly Adding SSH Keys</title><description>&lt;p&gt;Here's a quick way to create and add ssh keys to a server:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Generate your ssh key on your client machine: &lt;br /&gt;
&lt;code&gt;ssh-keygen -t dsa&lt;/code&gt; &lt;strong&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Note: Set a password for your key.&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; (see note)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Secure Copy (scp) the key to your ssh server: &lt;br /&gt;
&lt;code&gt;scp .ssh/id_dsa.pub username@server.com:.ssh/id_dsa.pub&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Add the key to your authorized_keys2 file: &lt;br /&gt;
&lt;code&gt;ssh username@server.com 'cat .ssh/id_dsa.pub &gt;&gt; .ssh/authorized_keys2'&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Shortcut: Combine steps 2 and 3: &lt;br /&gt;
&lt;code&gt;cat ~/.ssh/id_dsa.pub | ssh username@server.com 'mkdir -p ~/.ssh &amp;&amp; cat - &gt;&gt; ~/.ssh/authorized_keys2'&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;h4&gt;Note on SSH Key Passwords&lt;/h4&gt;&lt;p&gt;On step 1, you have the option to add a password to your key.  If you don't add a password and someone gets ahold of your private key, they will be able to access any server that you have given that key access to.  By setting a password, the user still has to know your key password to use it. Though the purpose of this tutorial is to speed up and secure your login, you will still have to type in that password you set in step 1 every time you log in to an ssh server.  This is where SSH Keychain comes into play.&lt;/p&gt;&lt;h4&gt;SSH Keychain on the Mac&lt;/h4&gt;&lt;p&gt;&lt;a href="http://www.sshkeychain.org/"&gt;&lt;img style="float:right; width: 128px; height: 128px; border:0" src="http://3.bp.blogspot.com/_fqP1xSIfQWM/STksa6LcRKI/AAAAAAAAD14/C-wtYrIOq78/s320/sshkeychain.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5276297279246714018" /&gt;&lt;/a&gt; Leopard has this functionality built into the Keychain, but if you are on 10.4 or older, you can use &lt;a href="http://www.sshkeychain.org/"&gt;SSH Keychain&lt;/a&gt; on the Mac to manage your SSH passwords.   This great little app lets you store your ssh passwords in your computer's Keychain so you're not constantly having to type it in.  Download it at &lt;a href="http://www.sshkeychain.org/"&gt;http://www.sshkeychain.org/&lt;/a&gt; and add your keys to it.&lt;/p&gt;&lt;h4&gt;Why Use SSH Keys Anyways?&lt;/h4&gt;&lt;p&gt;When you log into an SSH server , you have to send your password over the network at least once.  Any network traffic can be potentially captured and, given a long enough time span, decrypted.&lt;/p&gt;&lt;p&gt;SSH keys work on the principle of &lt;a href="http://en.wikipedia.org/wiki/Public-key_cryptography"&gt;Public Key Cryptography&lt;/a&gt;, which is beyond the scope of this article.  In general it allows the server to verify who you are based on this key trust you just set up.  Since your keys are cryptographically strong (usually 1024+ bit), it's much more difficult to hack than a short, memorable password.&lt;/p&gt;&lt;h4&gt;Multiple Users&lt;/h4&gt;&lt;p&gt;SSH keys also allow you to give multiple users access to a single account on your SSH server by simply adding everyone's keys to the single account.&lt;/p&gt;&lt;p&gt;For more in-depth information on SSH keys, see &lt;a href="http://www.unix.com.ua/orelly/networking_2ndEd/ssh/ch02_04.htm"&gt;Authentication by Cryptographic Key&lt;/a&gt; by O'REILLY.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2604165907248121163-1756395020156256916?l=heymacguy.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/HeyMacGuy/~4/eeKXRtxvpXM" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/HeyMacGuy/~3/eeKXRtxvpXM/quickly-adding-ssh-keys.html</link><author>noreply@blogger.com (Jason Buckner)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_fqP1xSIfQWM/STksa6LcRKI/AAAAAAAAD14/C-wtYrIOq78/s72-c/sshkeychain.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://heymacguy.blogspot.com/2008/12/quickly-adding-ssh-keys.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2604165907248121163.post-2734037916027768366</guid><pubDate>Tue, 22 Apr 2008 16:30:00 +0000</pubDate><atom:updated>2009-06-26T20:55:04.218-04:00</atom:updated><title>Cleansing Your Mac</title><description>&lt;p&gt;Steps for successful Mac cleaning:&lt;/p&gt;
&lt;div&gt;
  &lt;ol&gt;
    &lt;li&gt;Choose the "All Documents" Smart Folder in the Finder&lt;/li&gt;
    &lt;li&gt;Select All (Command-A or Edit Menu-&gt;Select All)&lt;/li&gt;
    &lt;li&gt;Delete All Files (Command-Delete or drag to Trash)&lt;/li&gt;
    &lt;li&gt;Empty Trash (Command-Shift-Delete or Right Click on Trash and choose "Empty Trash")&lt;/li&gt;
    &lt;li&gt;Tell your system admin you just completed steps 1-4.&lt;/li&gt;
  &lt;/ol&gt;
  
&lt;p&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;NOTE: Do not do this! &lt;/span&gt;This will not cleanse your Mac.  This is merely a warning for all those who've had the urge.  Learn from others as I have today.&lt;/p&gt;

&lt;p&gt;One of my users discovered the joy of Smart Folders and thought he'd do a bit of spring cleaning.  His computer is still running, but with 10,000 random files missing, we will be reformatting in the near future.&lt;/p&gt;

&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2604165907248121163-2734037916027768366?l=heymacguy.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/HeyMacGuy/~4/7dhmk_ghMzQ" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/HeyMacGuy/~3/7dhmk_ghMzQ/cleansing-your-mac.html</link><author>noreply@blogger.com (Jason Buckner)</author><thr:total>0</thr:total><feedburner:origLink>http://heymacguy.blogspot.com/2008/04/cleansing-your-mac.html</feedburner:origLink></item></channel></rss>

