<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-18636729</id><updated>2010-09-01T23:21:53.233-07:00</updated><title type='text'>Nick Burwell Designs</title><subtitle type='html'>My thoughts on life, photography, web design, user interfaces, ruby on rails, javascript and other web development topics</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.nickburwell.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default'/><link rel='alternate' type='text/html' href='http://blog.nickburwell.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default?start-index=26&amp;max-results=25'/><author><name>Nick</name><uri>http://www.blogger.com/profile/12684976612873132375</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>73</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-18636729.post-1874399849658855219</id><published>2010-09-01T23:20:00.000-07:00</published><updated>2010-09-01T23:21:53.245-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='user interfaces'/><title type='text'>Web Browser UI differences: refresh / cancel buttons</title><content type='html'>A few weeks ago I wrote about the &lt;a href="http://blog.nickburwell.com/2010/06/web-browser-ui-differences-address-bar.html"&gt;differences in the 4 major browsers' search / address bar&lt;/a&gt;. &amp;nbsp;As promised, this is part 2 and highlights the subtle and not so subtle differences in how Firefox, Chrome, Safari and Internet Explorer handle the refresh and cancel actions.&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_aRxZdNxTSx8/THycDKmdT_I/AAAAAAAABD8/AJW9WJfxSYQ/s1600/browser_ie8.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="50" src="http://4.bp.blogspot.com/_aRxZdNxTSx8/THycDKmdT_I/AAAAAAAABD8/AJW9WJfxSYQ/s400/browser_ie8.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;IE 8 &amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;Refresh and cancel are on the right of the address&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;Next to each other as separate buttons&lt;br /&gt;Always available to press (no "go" button)&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_aRxZdNxTSx8/THycLE5n-PI/AAAAAAAABEE/uhIB6a_5ENc/s1600/browser_firefox.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="42" src="http://2.bp.blogspot.com/_aRxZdNxTSx8/THycLE5n-PI/AAAAAAAABEE/uhIB6a_5ENc/s400/browser_firefox.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Firefox 3.6&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;div style="text-align: center;"&gt;Refresh and cancel are on the right of the address&lt;br /&gt;Next to each other as separate buttons&lt;/div&gt;&lt;div style="text-align: center;"&gt;Always available to press (no "go" button)&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_aRxZdNxTSx8/THycm-p9SzI/AAAAAAAABEM/jigWs0ZCaQc/s1600/browser_firefox_loading.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="45" src="http://3.bp.blogspot.com/_aRxZdNxTSx8/THycm-p9SzI/AAAAAAAABEM/jigWs0ZCaQc/s400/browser_firefox_loading.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Firefox 3.6 &lt;i&gt;loading&lt;/i&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;div style="text-align: center;"&gt;Spinner in the tab, now refresh and cancel are both available&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_aRxZdNxTSx8/THycyd8ewtI/AAAAAAAABEU/xaIB8dWXRgw/s1600/browser_chrome.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="40" src="http://2.bp.blogspot.com/_aRxZdNxTSx8/THycyd8ewtI/AAAAAAAABEU/xaIB8dWXRgw/s400/browser_chrome.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Chrome 5&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;div style="text-align: center;"&gt;Single refresh button on the left of the address&lt;br /&gt;A "go" button exists&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_aRxZdNxTSx8/THyc6XGPZyI/AAAAAAAABEc/5UqPEpRNIjw/s1600/browser_chrome_loading.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="40" src="http://3.bp.blogspot.com/_aRxZdNxTSx8/THyc6XGPZyI/AAAAAAAABEc/5UqPEpRNIjw/s400/browser_chrome_loading.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Chrome 5 &lt;i&gt;loading&lt;/i&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;div style="text-align: center;"&gt;Spinner in tab, now the "go" is a cancel button&lt;/div&gt;&lt;div style="text-align: center;"&gt;I do not use the "go" button ever, instead rely more on the reload and back/forward buttons, therefore I find it inconvenient that the "cancel" is so far away and out of place compared to those buttons.&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_aRxZdNxTSx8/THydWZjyNII/AAAAAAAABEk/PwBpHVKsdX4/s1600/browser_safari.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="35" src="http://2.bp.blogspot.com/_aRxZdNxTSx8/THydWZjyNII/AAAAAAAABEk/PwBpHVKsdX4/s400/browser_safari.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Safari 5&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;div style="text-align: center;"&gt;Single refresh button inside the address bar, small target region&lt;br /&gt;No "go" button or cancel&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_aRxZdNxTSx8/THydh2K16JI/AAAAAAAABEs/Z2WERz4Vk2Q/s1600/browser_safari_loading.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="35" src="http://3.bp.blogspot.com/_aRxZdNxTSx8/THydh2K16JI/AAAAAAAABEs/Z2WERz4Vk2Q/s400/browser_safari_loading.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Safari 5 &lt;i&gt;loading&lt;/i&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;Spinner and text in address bar, entire region is a cancel button.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;Cancel in same place as the refresh, easy to click now as opposed to the initial refresh button&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;b&gt;Summary&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&amp;nbsp;Chrome's layout is too spread out and the least user-friendly in these regards. &amp;nbsp;Safari gets the loading part right (clear indication of loading, nice call to action to cancel and try again). &amp;nbsp; Overall, Safari is the only one to optimize for the "cancel and retry" action, which I find myself doing a lot when a site is struggling to load due to Internet connectivity issues or DNS hiccups.. however the initial refresh button is a bit small.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18636729-1874399849658855219?l=blog.nickburwell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.nickburwell.com/feeds/1874399849658855219/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nickburwell.com/2010/09/web-browser-ui-differences-refresh.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/1874399849658855219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/1874399849658855219'/><link rel='alternate' type='text/html' href='http://blog.nickburwell.com/2010/09/web-browser-ui-differences-refresh.html' title='Web Browser UI differences: refresh / cancel buttons'/><author><name>Nick</name><uri>http://www.blogger.com/profile/12684976612873132375</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16624996053548785495'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_aRxZdNxTSx8/THycDKmdT_I/AAAAAAAABD8/AJW9WJfxSYQ/s72-c/browser_ie8.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18636729.post-5604978316138708926</id><published>2010-08-29T23:13:00.000-07:00</published><updated>2010-08-29T23:15:46.036-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='photography'/><title type='text'>MLB up close</title><content type='html'>&lt;div style="margin: 0px auto 10px; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_aRxZdNxTSx8/THtLMPisMeI/AAAAAAAABD0/XQ3vybWzWWs/s800/2010-07-06+Dodger+Game.jpg"&gt;&lt;img alt="" border="0" height="250" src="http://2.bp.blogspot.com/_aRxZdNxTSx8/THtLMPisMeI/AAAAAAAABD0/XQ3vybWzWWs/s400/2010-07-06+Dodger+Game.jpg" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A recent trip to &lt;a href="http://mlb.mlb.com/la/ballpark/la_seating_pricing.jsp"&gt;Dodgers stadium&lt;/a&gt;. &amp;nbsp;We got decent seats at field level, but the best views by far were in the 9th inning when we stood in the walkway behind home page. &amp;nbsp;Broxton came in to save the game after the Rockies threatened to tie it late.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18636729-5604978316138708926?l=blog.nickburwell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.nickburwell.com/feeds/5604978316138708926/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nickburwell.com/2010/08/recent-trip-to-dodgers-stadium.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/5604978316138708926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/5604978316138708926'/><link rel='alternate' type='text/html' href='http://blog.nickburwell.com/2010/08/recent-trip-to-dodgers-stadium.html' title='MLB up close'/><author><name>Nick</name><uri>http://www.blogger.com/profile/12684976612873132375</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16624996053548785495'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_aRxZdNxTSx8/THtLMPisMeI/AAAAAAAABD0/XQ3vybWzWWs/s72-c/2010-07-06+Dodger+Game.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18636729.post-6245833088695061116</id><published>2010-08-25T22:40:00.000-07:00</published><updated>2010-08-25T22:40:26.839-07:00</updated><title type='text'>It's the little things: Part 2</title><content type='html'>A few weeks ago I wrote about how &lt;a href="http://blog.nickburwell.com/2010/07/its-little-things.html"&gt;Apple had made a subtle change to the reception bar graphics&lt;/a&gt; on the latest iPhone software update. &amp;nbsp;Today I discovered something in Snow Leopard's finder app that is even more subtle. &lt;br /&gt;&lt;br /&gt;In Finder, the icons next to the Shared devices are detailed down to the black bevel around the screen! I just upgraded from a &lt;a href="http://www.digitaltrends.com/wp-content/uploads/2009/11/apple-macbook-pro.jpg"&gt;2008 MacBook Pro&lt;/a&gt; that was all silver, to a shiny new aluminum &lt;a href="http://2.bp.blogspot.com/_y8tU7nBmGe4/S-bVA-02F4I/AAAAAAAAAPg/YEZJUjzYIOE/s1600/macbook-pro.jpg"&gt;MacBook Pro&lt;/a&gt; with the black screen. &amp;nbsp;With both devices connected, the icons were slightly different when viewing from my wife's computer. &amp;nbsp;(Note: OS X 10.5 does not support this, so yet another reason to upgrade to Snow Leopard...)&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_aRxZdNxTSx8/THX84wQxKSI/AAAAAAAABDQ/uXGo4Pp1EpA/s1600/finder_icons.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_aRxZdNxTSx8/THX84wQxKSI/AAAAAAAABDQ/uXGo4Pp1EpA/s320/finder_icons.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Given how many bugs and missing features plague finder (why can't you cut and paste a file?), it's a little depressing to think how much time may have gone into making these little icons work correctly. &amp;nbsp;Apparently the Bonjour protocol is rich enough to pass detailed information not only about the type of device that is being shared (computer), but also the kind of computer (laptop), as well as the line (macbook pro) and even the &lt;i&gt;generation&lt;/i&gt;&amp;nbsp;of macbook pro (aluminum unibody with black bevel around screen).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18636729-6245833088695061116?l=blog.nickburwell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.nickburwell.com/feeds/6245833088695061116/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nickburwell.com/2010/08/its-little-things-party-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/6245833088695061116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/6245833088695061116'/><link rel='alternate' type='text/html' href='http://blog.nickburwell.com/2010/08/its-little-things-party-2.html' title='It&apos;s the little things: Part 2'/><author><name>Nick</name><uri>http://www.blogger.com/profile/12684976612873132375</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16624996053548785495'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_aRxZdNxTSx8/THX84wQxKSI/AAAAAAAABDQ/uXGo4Pp1EpA/s72-c/finder_icons.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18636729.post-460185728655740543</id><published>2010-08-19T22:00:00.000-07:00</published><updated>2010-08-19T22:00:02.812-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><title type='text'>Mozilla Firefox exception when doing ajax call</title><content type='html'>If you have ever got the following exception in Firefox&lt;br /&gt;&lt;span class="Apple-style-span" style="color: red; font-family: Menlo, monospace; font-size: 11px; white-space: pre-wrap;"&gt;uncaught exception: [Exception... "Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIXMLHttpRequest.status]"  nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)"  location: "JS frame :: http://localhost:3000/ajax2.html :: anonymous :: line 21"  data: no]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;or if you get this in Chrome:&lt;br /&gt;&lt;span class="Apple-style-span" style="color: red; font-family: Menlo, monospace; font-size: 11px; white-space: pre-wrap;"&gt;Uncaught Error: INVALID_STATE_ERR: DOM Exception 11&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: red; font-family: Menlo, monospace; font-size: 11px; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Then you might be running into a bug where accessing "status" on the complete handler when the ajax request timed out causes a browser exception. &amp;nbsp;It is easy to reproduce using jQuery 1.3.2 (and 1.4.2) if you simply alert the xhr status after a timeout error.&lt;br /&gt;&lt;br /&gt;Javascript code:&lt;br /&gt;&lt;pre&gt;&amp;lt;script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"&amp;gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;  jQuery.ajax( {&lt;br /&gt;     url: "/sessions/new",&lt;br /&gt;     timeout: 1,&lt;br /&gt;     complete: function( xhr ) { alert( &lt;b&gt;&lt;span class="Apple-style-span" style="color: #990000;"&gt;xhr.status&lt;/span&gt;&lt;/b&gt; ); }&lt;br /&gt;  } );&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;&lt;br /&gt;I could not find a jQuery ticket or any bug reports. If you know of one, please post it in the comments!&lt;br /&gt;&lt;br /&gt;The workaround is to simply check the text status provided by jQuery before trying to access xhr.status (and perhaps this is the only supported way to safely check the ajax status):&lt;br /&gt;&lt;pre&gt;complete: function( xhr, text_status )&lt;br /&gt;{&lt;br /&gt;  if ( text_status == 'timeout' )&lt;br /&gt;  {&lt;br /&gt;    alert( 'TIMED OUT' );&lt;br /&gt;  }&lt;br /&gt;  else&lt;br /&gt;  {&lt;br /&gt;    alert( xhr.status );&lt;br /&gt;  }&lt;br /&gt;}&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18636729-460185728655740543?l=blog.nickburwell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.nickburwell.com/feeds/460185728655740543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nickburwell.com/2010/08/mozilla-firefox-exception-when-doing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/460185728655740543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/460185728655740543'/><link rel='alternate' type='text/html' href='http://blog.nickburwell.com/2010/08/mozilla-firefox-exception-when-doing.html' title='Mozilla Firefox exception when doing ajax call'/><author><name>Nick</name><uri>http://www.blogger.com/profile/12684976612873132375</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16624996053548785495'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18636729.post-905393596943613398</id><published>2010-08-18T22:00:00.000-07:00</published><updated>2010-08-18T22:00:01.488-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tech'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><title type='text'>Browser quirks: invalid CSS color syntax</title><content type='html'>I had a typo in CSS, which led me to discover that the following css works in Chrome but not Firefox:&lt;br /&gt;&lt;pre&gt;&lt;code&gt;.my_text {&lt;br /&gt;&amp;nbsp;&amp;nbsp;color: #white;&lt;br /&gt;}&lt;br /&gt;&amp;lt;span class="my_text"&amp;gt;Should be white text?&amp;lt;/span&amp;gt;&lt;/code&gt;&lt;/pre&gt;Obviously the valid CSS would be either &lt;code&gt;color: white&lt;/code&gt; or &lt;code&gt;color: #ffffff&lt;/code&gt; but Chrome allows a mixture which &lt;b&gt;may be dangerous&lt;/b&gt; if you are developing in Chrome and don't realize you have an invalid CSS style.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Note: Using Chrome 5.0 for Mac and Firefox 3.6 for Mac.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18636729-905393596943613398?l=blog.nickburwell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.nickburwell.com/feeds/905393596943613398/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nickburwell.com/2010/08/browser-quirks-invalid-css-color-syntax.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/905393596943613398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/905393596943613398'/><link rel='alternate' type='text/html' href='http://blog.nickburwell.com/2010/08/browser-quirks-invalid-css-color-syntax.html' title='Browser quirks: invalid CSS color syntax'/><author><name>Nick</name><uri>http://www.blogger.com/profile/12684976612873132375</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16624996053548785495'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18636729.post-3388126949206700694</id><published>2010-08-17T07:30:00.000-07:00</published><updated>2010-08-17T07:56:14.601-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='photography'/><title type='text'>Photo: Too Close For Comfort</title><content type='html'>&lt;div style="margin: 0px auto 10px; text-align: center;"&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_aRxZdNxTSx8/TGokkFO5c2I/AAAAAAAABBE/kY0MXWQlAYo/s1600/IMG_1007.JPG" style="margin-left: auto; margin-right: auto;"&gt;&lt;img alt="" border="0" height="310" src="http://2.bp.blogspot.com/_aRxZdNxTSx8/TGokkFO5c2I/AAAAAAAABBE/kY0MXWQlAYo/s400/IMG_1007.JPG" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Air Show at Pt. Mugu Air Force Base&lt;br /&gt;Ventura County, California&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;a href="http://thunderbirds.airforce.com/"&gt;USAF Thunderbirds&lt;/a&gt; showing off. &lt;br /&gt;Yes, they really did fly that close, speeding in from opposite directions, sometimes flying upside down!&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://lh5.ggpht.com/_aRxZdNxTSx8/TGolMJFmZZI/AAAAAAAABBM/JKS4zqM8uQY/s1600/IMG_1001.JPG" imageanchor="1" style="margin-left: .5em; margin-right: .5em;"&gt;&lt;img border="0" height="67" src="http://lh5.ggpht.com/_aRxZdNxTSx8/TGolMJFmZZI/AAAAAAAABBM/JKS4zqM8uQY/s200/IMG_1001.JPG" width="100" /&gt;&lt;/a&gt;&lt;a href="http://lh6.ggpht.com/_aRxZdNxTSx8/TGolMhmt0jI/AAAAAAAABBQ/9roS5SDHzOM/s1600/IMG_1025.JPG" imageanchor="1" style="margin-left: .5em; margin-right: .5em;"&gt;&lt;img border="0" height="67" src="http://lh6.ggpht.com/_aRxZdNxTSx8/TGolMhmt0jI/AAAAAAAABBQ/9roS5SDHzOM/s200/IMG_1025.JPG" width="100" /&gt;&lt;/a&gt;&lt;a href="http://lh5.ggpht.com/_aRxZdNxTSx8/TGolM1xjDpI/AAAAAAAABBU/Yfab0gPx540/s1600/IMG_1013.JPG" imageanchor="1" style="margin-left: .5em; margin-right: .5em;"&gt;&lt;img border="0" height="67" src="http://lh5.ggpht.com/_aRxZdNxTSx8/TGolM1xjDpI/AAAAAAAABBU/Yfab0gPx540/s200/IMG_1013.JPG" width="100" /&gt;&lt;/a&gt;&lt;a href="http://lh3.ggpht.com/_aRxZdNxTSx8/TGolNM1AXuI/AAAAAAAABBY/rWlmv6ziOJk/s1600/IMG_1032.JPG" imageanchor="1" style="margin-left: .5em; margin-right: .5em;"&gt;&lt;img border="0" height="67" src="http://lh3.ggpht.com/_aRxZdNxTSx8/TGolNM1AXuI/AAAAAAAABBY/rWlmv6ziOJk/s200/IMG_1032.JPG" width="100" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18636729-3388126949206700694?l=blog.nickburwell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.nickburwell.com/feeds/3388126949206700694/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nickburwell.com/2010/08/photo-too-close-for-comfort.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/3388126949206700694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/3388126949206700694'/><link rel='alternate' type='text/html' href='http://blog.nickburwell.com/2010/08/photo-too-close-for-comfort.html' title='Photo: Too Close For Comfort'/><author><name>Nick</name><uri>http://www.blogger.com/profile/12684976612873132375</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16624996053548785495'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_aRxZdNxTSx8/TGokkFO5c2I/AAAAAAAABBE/kY0MXWQlAYo/s72-c/IMG_1007.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18636729.post-8821118639076576007</id><published>2010-08-16T22:00:00.000-07:00</published><updated>2010-08-16T22:00:00.341-07:00</updated><title type='text'>Rails FormHelper with model relationships and has_many route</title><content type='html'>&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;Using Rails 2.3.5&lt;/span&gt;&lt;/i&gt;&lt;p&gt;To do things RESTfully in Rails and you have a model relationship like:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;class Post &amp;lt; ActiveRecord::Base&lt;br /&gt;  has_many :comments&lt;br /&gt;end&lt;/pre&gt;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;You can set up your routes like this:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;map.resources :post, :has_many =&amp;gt; :comments&lt;/pre&gt;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;This will generate URLs like:&lt;code&gt;&lt;pre&gt;/posts/2/comments      [ GET (index), PUT (new), UPDATE (edit)]&lt;br /&gt;/posts/2/comments/10   [ GET (show)]&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Then to construct your form for creating or editing comments, you can do this with form_for:&lt;code&gt;&lt;pre&gt;form_for [@post, @comment] do |f|&lt;br /&gt;  ...&lt;br /&gt;end&lt;/pre&gt;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;Then in your CommentsController::update action, you will automatically have params[:post_id] so that comments are associated with the correct post&lt;/p&gt;&lt;p&gt;By the way, if you need to create those restful URLs by hand using url_for, this is how you would specify the create one:&lt;code&gt;&lt;pre&gt;{ :controller =&amp;gt; :comments,&lt;br /&gt;  :action =&amp;gt; :create,&lt;br /&gt;  :post_id =&amp;gt; @post.id }&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Notice that the controller is 'comments', even though the URL created with start with /posts&lt;/p&gt;&lt;p&gt;see &lt;a href="http://apidock.com/rails/ActionView/Helpers/FormHelper/form_for"&gt;form_for (ActionView::Helpers::FormHelper) - APIdock&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18636729-8821118639076576007?l=blog.nickburwell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.nickburwell.com/feeds/8821118639076576007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nickburwell.com/2010/08/rails-formhelper-with-model.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/8821118639076576007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/8821118639076576007'/><link rel='alternate' type='text/html' href='http://blog.nickburwell.com/2010/08/rails-formhelper-with-model.html' title='Rails FormHelper with model relationships and has_many route'/><author><name>Nick</name><uri>http://www.blogger.com/profile/12684976612873132375</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16624996053548785495'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18636729.post-4017432170479969783</id><published>2010-08-11T01:10:00.000-07:00</published><updated>2010-08-11T01:10:53.453-07:00</updated><title type='text'>Sharing files as guest on Mac OS X 10.5/10.6</title><content type='html'>Tired of getting the "not connected" message when you click on a Mac computer on the "Shared" sidebar of finder? &amp;nbsp;I was.. and couldn't figure out how I had lost guest access to my public folders when using other Macs on my LAN.&lt;br /&gt;&lt;br /&gt;You don't configure that on the Sharing screen in System Preferences. &amp;nbsp;Instead it is as simple as checking "allow guests to connect to shared folders" on the Accounts &amp;gt; Guest Account screen. &amp;nbsp;I had somehow managed to turn that off (or maybe it's off by default?). &amp;nbsp;Now I can have other computers on my local network access my public folder and have a drop-box to put files into (with write access only). &amp;nbsp;Phew, my life is in order again. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_aRxZdNxTSx8/TGJaIG0H0GI/AAAAAAAAA_o/gqZ4PpWtoeI/s1600/Screen+shot+2010-08-11+at+1.06.20+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_aRxZdNxTSx8/TGJaIG0H0GI/AAAAAAAAA_o/gqZ4PpWtoeI/s320/Screen+shot+2010-08-11+at+1.06.20+AM.png" /&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/18636729-4017432170479969783?l=blog.nickburwell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.nickburwell.com/feeds/4017432170479969783/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nickburwell.com/2010/08/sharing-files-as-guest-on-mac-os-x.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/4017432170479969783'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/4017432170479969783'/><link rel='alternate' type='text/html' href='http://blog.nickburwell.com/2010/08/sharing-files-as-guest-on-mac-os-x.html' title='Sharing files as guest on Mac OS X 10.5/10.6'/><author><name>Nick</name><uri>http://www.blogger.com/profile/12684976612873132375</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16624996053548785495'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_aRxZdNxTSx8/TGJaIG0H0GI/AAAAAAAAA_o/gqZ4PpWtoeI/s72-c/Screen+shot+2010-08-11+at+1.06.20+AM.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18636729.post-2854542757571919622</id><published>2010-07-30T19:43:00.000-07:00</published><updated>2010-07-30T19:43:04.494-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opinions'/><category scheme='http://www.blogger.com/atom/ns#' term='user interfaces'/><category scheme='http://www.blogger.com/atom/ns#' term='random'/><title type='text'>It's the little things...</title><content type='html'>So Apple recently released an update to the iPhone 4.0 software (&lt;a href="http://www.apple.com/iphone/softwareupdate/"&gt;4.0.1&lt;/a&gt;), which came on the heels of the whole antenna fiasco with the iPhone 4, and I was pretty unimpressed by the 500+ megabytes of code that I just downloaded and put on my phone.&lt;br /&gt;&lt;br /&gt;First of all, the only feature/bug fix listed in the update was "improves the formula to determine how many bars of signal strength to display." (Note that the real signal strength is still the same. Note that the hardware design that allows bad signal has not been fixed.) &amp;nbsp;But wait, they also updated the signal bar graphics so that the smallest bars are now taller. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_aRxZdNxTSx8/TFOLm37cXxI/AAAAAAAAA9s/agmWHC9a9_A/s1600/iphone_software.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_aRxZdNxTSx8/TFOLm37cXxI/AAAAAAAAA9s/agmWHC9a9_A/s320/iphone_software.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;One bandaid on top of another.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Apple genius 1&lt;/i&gt;: "AT&amp;amp;T service is awful. We have made it worse by allowing a user to drop the already weak signal just by holding it naturally."&lt;br /&gt;&lt;i&gt;Apple genius 2&lt;/i&gt;: "I have an idea. Let's update the formula so that it rarely shows 0 or 1 bar and claim it is more accurate."&lt;br /&gt;&lt;i&gt;Apple genius 3&lt;/i&gt;: "Great! But we know AT&amp;amp;T is so bad users will still see just 1 bar pretty often. Let's tweak the graphics so it looks bigger! They will psychologically feel better because they have been trained for the last decade that a bar that is almost as high as the 3rd or 4th bar means you have really good signal."&lt;br /&gt;&lt;i&gt;Apple geniuses 1 &amp;amp; 2&lt;/i&gt;: "Yes.. excellent."&lt;br /&gt;&lt;br /&gt;Now, personally I have not had any problems with signal quality or dropped calls, and am happy with my phone and AT&amp;amp;T's service.. so I haven't really worried about this whole issue, but I find it fascinating that Apple's response to all the problems with the "death grip" is to give everyone a free case and then "fix" the signal strength formula so that you see 0 or 1 bar less often. But that won't fix people's problems that can't make a phone call. &amp;nbsp;And I think it's a really cheap trick to update the signal bar graphics. For one I feel that they are attempting to dupe the general population that don't notice small details and subtle UI design changes. &amp;nbsp;But also, I don't like that the shape of the signal bars now don't match other phones. &amp;nbsp;It's not the neat, symmetrical triangle of bars that I am used to and grown up with on my phones for years. &amp;nbsp;My eyes keep following the bars down and to the left, trying to see the rest of the graphic, but it just abruptly stops!&lt;br /&gt;&lt;br /&gt;I'm sure Jobs and the Apple team thought they were being clever and just helping out the users see that last tiny bar on their high resolution displays. &amp;nbsp;But I would rather see them focus their efforts on pushing AT&amp;amp;T to get more bars in more places, and without any more changes to the formula.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18636729-2854542757571919622?l=blog.nickburwell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.nickburwell.com/feeds/2854542757571919622/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nickburwell.com/2010/07/its-little-things.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/2854542757571919622'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/2854542757571919622'/><link rel='alternate' type='text/html' href='http://blog.nickburwell.com/2010/07/its-little-things.html' title='It&apos;s the little things...'/><author><name>Nick</name><uri>http://www.blogger.com/profile/12684976612873132375</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16624996053548785495'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_aRxZdNxTSx8/TFOLm37cXxI/AAAAAAAAA9s/agmWHC9a9_A/s72-c/iphone_software.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18636729.post-3798400225562409947</id><published>2010-07-25T23:11:00.000-07:00</published><updated>2010-07-25T23:23:42.154-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='photography'/><title type='text'>Photography: Nature Up Close</title><content type='html'>I recently took a trip to the &lt;a href="http://www.sbbg.org/"&gt;Santa Barbara Botanical Gardens&lt;/a&gt;.  The bees that swarmed the various flowers were fascinating to watch up close, as was the &lt;a href="http://dsc.discovery.com/news/2008/11/25/lizard-push-up.html"&gt;lizard doing push-ups&lt;/a&gt; on the rock. &lt;br /&gt;&lt;br /&gt;&lt;a href='http://2.bp.blogspot.com/_aRxZdNxTSx8/TE0JnEIiR9I/AAAAAAAAA84/h7Tj253gJN8/s600/IMG_9719.JPG'&gt;&lt;img src='http://2.bp.blogspot.com/_aRxZdNxTSx8/TE0JnEIiR9I/AAAAAAAAA84/h7Tj253gJN8/s160/IMG_9719.JPG' border='0' alt=''style='clear:both;float:left; margin:0px 10px 10px 0;' /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href='http://2.bp.blogspot.com/_aRxZdNxTSx8/TE0jq1b3fdI/AAAAAAAAA9A/bNtjdiS7uds/s800/IMG_9760.JPG'&gt;&lt;img src='http://2.bp.blogspot.com/_aRxZdNxTSx8/TE0jq1b3fdI/AAAAAAAAA9A/bNtjdiS7uds/s160/IMG_9760.JPG' border='0' alt=''style='float:left; margin:0px 10px 10px 0;' /&gt;&lt;/a&gt;&lt;a href='http://3.bp.blogspot.com/_aRxZdNxTSx8/TE0JmTzWqeI/AAAAAAAAA8o/ZxMF0taS-lk/s800/IMG_9732.JPG'&gt;&lt;img src='http://3.bp.blogspot.com/_aRxZdNxTSx8/TE0JmTzWqeI/AAAAAAAAA8o/ZxMF0taS-lk/s160/IMG_9732.JPG' border='0' alt=''style='float:left; margin:0px 10px 10px 0;' /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href='http://2.bp.blogspot.com/_aRxZdNxTSx8/TE0JmIIqICI/AAAAAAAAA8g/H13u_8kH-GM/s800/IMG_9767.JPG'&gt;&lt;img src='http://2.bp.blogspot.com/_aRxZdNxTSx8/TE0JmIIqICI/AAAAAAAAA8g/H13u_8kH-GM/s160/IMG_9767.JPG' border='0' alt=''style='clear:left; float:left; margin:0px 10px 10px 0;' /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href='http://4.bp.blogspot.com/_aRxZdNxTSx8/TE0Jm01VirI/AAAAAAAAA8w/dujsHn-s7ng/s800/IMG_9737.JPG'&gt;&lt;img src='http://4.bp.blogspot.com/_aRxZdNxTSx8/TE0Jm01VirI/AAAAAAAAA8w/dujsHn-s7ng/s160/IMG_9737.JPG' border='0' alt=''style='float:left; margin:0px 10px 10px 0;' /&gt;&lt;/a&gt;&amp;nbsp;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18636729-3798400225562409947?l=blog.nickburwell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.nickburwell.com/feeds/3798400225562409947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nickburwell.com/2010/07/photography-nature-up-close.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/3798400225562409947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/3798400225562409947'/><link rel='alternate' type='text/html' href='http://blog.nickburwell.com/2010/07/photography-nature-up-close.html' title='Photography: Nature Up Close'/><author><name>Nick</name><uri>http://www.blogger.com/profile/12684976612873132375</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16624996053548785495'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_aRxZdNxTSx8/TE0JnEIiR9I/AAAAAAAAA84/h7Tj253gJN8/s72-c/IMG_9719.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18636729.post-8818884579350574936</id><published>2010-06-25T21:00:00.000-07:00</published><updated>2010-06-25T21:00:02.017-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mac tips'/><title type='text'>iPhone 4 Tips and Tricks</title><content type='html'>&lt;div&gt;&lt;a href="http://www.apple.com/iphone/tips/"&gt;Apple iPhone 4 - Tips and Tricks&lt;/a&gt;&amp;nbsp;(official Apple site)&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://images.apple.com/iphone/tips/images/compass_20100624.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://images.apple.com/iphone/tips/images/compass_20100624.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;The above page has some neat tricks; some old and some new. My favorite that is either new or I didn't know about:&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;b&gt;quickly scroll to top by tapping the status bar&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;In a text message when you want to call someone, the 'call back' button is way at the top which I always found ridiculous. At least now you can get to it in an instant! (I think this feature was only in Safari before and now its more universal, because I do remember trying this before in the text message app and being frustrated.)&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18636729-8818884579350574936?l=blog.nickburwell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.nickburwell.com/feeds/8818884579350574936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nickburwell.com/2010/06/iphone-4-tips-and-tricks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/8818884579350574936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/8818884579350574936'/><link rel='alternate' type='text/html' href='http://blog.nickburwell.com/2010/06/iphone-4-tips-and-tricks.html' title='iPhone 4 Tips and Tricks'/><author><name>Nick</name><uri>http://www.blogger.com/profile/12684976612873132375</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16624996053548785495'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18636729.post-6389029263803437783</id><published>2010-06-18T07:00:00.000-07:00</published><updated>2010-06-18T07:00:06.313-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mac tips'/><category scheme='http://www.blogger.com/atom/ns#' term='tech'/><title type='text'>Tired of running out of memory constantly...</title><content type='html'>Does anyone else experience this?&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_aRxZdNxTSx8/TBsWq7B76tI/AAAAAAAAA3Q/1BuZSVTRz7s/s1600/no_free_memory.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="307" src="http://4.bp.blogspot.com/_aRxZdNxTSx8/TBsWq7B76tI/AAAAAAAAA3Q/1BuZSVTRz7s/s400/no_free_memory.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I have 4GB of memory, but I constantly will have ~1GB of inactive memory, which Apple and bloggers and fanboys claim is part of a great Mac OS X feature and will be reclaimed if the system is in need of memory. &amp;nbsp;Well, if I am out of free memory but have 25% inactive memory and try to open Word 2008 for Mac, it takes 5 to 10 minutes to open because the system gives it no memory! &lt;br /&gt;&lt;br /&gt;I know that with the development tools, I can type "&lt;code&gt;purge&lt;/code&gt;" at the command line...but how do I get my Mac to automatically give back inactive memory when I really need it!?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18636729-6389029263803437783?l=blog.nickburwell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.nickburwell.com/feeds/6389029263803437783/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nickburwell.com/2010/06/tired-of-running-out-of-memory.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/6389029263803437783'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/6389029263803437783'/><link rel='alternate' type='text/html' href='http://blog.nickburwell.com/2010/06/tired-of-running-out-of-memory.html' title='Tired of running out of memory constantly...'/><author><name>Nick</name><uri>http://www.blogger.com/profile/12684976612873132375</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16624996053548785495'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_aRxZdNxTSx8/TBsWq7B76tI/AAAAAAAAA3Q/1BuZSVTRz7s/s72-c/no_free_memory.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18636729.post-1554575417786474821</id><published>2010-06-17T23:42:00.000-07:00</published><updated>2010-06-17T23:42:17.426-07:00</updated><title type='text'>Real life LOLcat</title><content type='html'>My friend's cat, with his friend's kid (or niece?). &amp;nbsp;So great I had to share!&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_aRxZdNxTSx8/TBsVJv7YgmI/AAAAAAAAA3I/l-tFOswpJt4/s1600/kitty.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://4.bp.blogspot.com/_aRxZdNxTSx8/TBsVJv7YgmI/AAAAAAAAA3I/l-tFOswpJt4/s400/kitty.jpg" width="300" /&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/18636729-1554575417786474821?l=blog.nickburwell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.nickburwell.com/feeds/1554575417786474821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nickburwell.com/2010/06/real-life-lolcat.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/1554575417786474821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/1554575417786474821'/><link rel='alternate' type='text/html' href='http://blog.nickburwell.com/2010/06/real-life-lolcat.html' title='Real life LOLcat'/><author><name>Nick</name><uri>http://www.blogger.com/profile/12684976612873132375</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16624996053548785495'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_aRxZdNxTSx8/TBsVJv7YgmI/AAAAAAAAA3I/l-tFOswpJt4/s72-c/kitty.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18636729.post-5881506152164222319</id><published>2010-06-15T23:02:00.000-07:00</published><updated>2010-06-15T23:02:03.470-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='random'/><title type='text'>iPhone 4 has been preordered!</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://images.apple.com/iphone/pre-order/images/iphone-4-pre-order-20100611.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="320" src="http://images.apple.com/iphone/pre-order/images/iphone-4-pre-order-20100611.png" width="258" /&gt;&lt;/a&gt;&lt;/div&gt;I have jumped on the Apple bandwagon and succumbed to my first ever sign-up-for-a-preorder-on-the-first-day for a &lt;a href="http://www.apple.com/iphone/pre-order/"&gt;new product&lt;/a&gt;.  I currently have an iPhone 3G, which I love!  But I waited until it was out a few months, plus the original iPhone had already been out in the wild for over a year. &lt;br /&gt;&lt;br /&gt;The phone will be at the local Apple store on June 24th!  The signup process was very smooth. I was impressed with how easy it was to check upgrade eligibility, view my current contract plan with ATT, and even change my data or text plan all from within Apple's online store.  One thing I did notice that concerns me: I changed my data plan from unlimited to the 200MB/mo rate, and yet in my confirmation email it said I had an unlimited data plan.  We will see how that shakes down when I pick up the phone and sign a new contract with the "iPhone specialist."&lt;br /&gt;&lt;br /&gt;I read of many report of Apple and/or ATT's site being down and not being able to order a phone. I did not run into any problems at all, did anyone else?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18636729-5881506152164222319?l=blog.nickburwell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.nickburwell.com/feeds/5881506152164222319/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nickburwell.com/2010/06/iphone-4-has-been-preordered.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/5881506152164222319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/5881506152164222319'/><link rel='alternate' type='text/html' href='http://blog.nickburwell.com/2010/06/iphone-4-has-been-preordered.html' title='iPhone 4 has been preordered!'/><author><name>Nick</name><uri>http://www.blogger.com/profile/12684976612873132375</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16624996053548785495'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18636729.post-4518177236258882800</id><published>2010-06-15T22:00:00.000-07:00</published><updated>2010-06-15T22:00:05.891-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tech'/><category scheme='http://www.blogger.com/atom/ns#' term='ruby on rails'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><title type='text'>Rails url_for differences between controller and view/helper versions</title><content type='html'>In Rails, beware that url_for has slightly different default behavior depending on whether you call it from a template or a controller.When url_for is called in a template (ActionView or Helper):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;urls are escaped by default (ampersands become &amp;amp;amp;) &lt;/li&gt;&lt;li&gt;returns relative path by default, unless a host is specified&lt;/li&gt;&lt;/ul&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;&amp;gt; url_for( { :controller =&amp;gt;&amp;nbsp; "test",&lt;br /&gt;             :action =&amp;gt; "me",&lt;br /&gt;             :foo =&amp;gt; 1, &lt;br /&gt;             :bar =&amp;gt; 2 } )&lt;br /&gt;/test/me?foo=1&amp;amp;amp;bar=2&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;When url_for is called in a controller (ActionController):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;urls are not escaped by default&lt;/li&gt;&lt;li&gt;full path is returned unless only_path is specified&lt;/li&gt;&lt;/ul&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;&amp;gt; url_for( { :controller =&amp;gt;&amp;nbsp; "test",&lt;br /&gt;             :action =&amp;gt; "me",&lt;br /&gt;             :foo =&amp;gt; 1, &lt;br /&gt;             :bar =&amp;gt; 2 } )&lt;br /&gt;http://example.com/test/me?foo=1&amp;amp;bar=2&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;There are times in a view when you want the unescaped version (such as putting into a Javascript variable, or generating a plain text file).&amp;nbsp; Simply pass escape =&amp;gt; false:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;&amp;gt; url_for( { :controller =&amp;gt;&amp;nbsp; "test",&lt;br /&gt;             :action =&amp;gt; "me",&lt;br /&gt;             :foo =&amp;gt; 1, &lt;br /&gt;             :bar =&amp;gt; 2,&lt;br /&gt;             :escape =&amp;gt; false } )&lt;br /&gt;http://example.com/test/me?foo=1&amp;amp;bar=2&lt;/pre&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18636729-4518177236258882800?l=blog.nickburwell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.nickburwell.com/feeds/4518177236258882800/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nickburwell.com/2010/06/rails-urlfor-differences-between.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/4518177236258882800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/4518177236258882800'/><link rel='alternate' type='text/html' href='http://blog.nickburwell.com/2010/06/rails-urlfor-differences-between.html' title='Rails url_for differences between controller and view/helper versions'/><author><name>Nick</name><uri>http://www.blogger.com/profile/12684976612873132375</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16624996053548785495'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18636729.post-658133476798192499</id><published>2010-06-12T22:24:00.000-07:00</published><updated>2010-06-12T22:28:14.104-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='user interfaces'/><title type='text'>Web Browser UI differences: the address bar</title><content type='html'>As a web developer, I am used to developing and testing in multiple web browsers. If not part of my job, I honestly do not know which browser I would use on a daily basis. I find myself switching back and forth between &lt;a href="http://www.mozilla.com/"&gt;Firefox&lt;/a&gt; and &lt;a href="http://www.google.com/chrome"&gt;Chrome&lt;/a&gt;, with the occasional use of &lt;a href="http://www.apple.com/safari/"&gt;Safari&lt;/a&gt; because it's "native" and &lt;a href="http://www.computerworld.com/s/article/9142004/Safari_edges_Chrome_in_Mac_speed_trials"&gt;supposedly the fastest on the Mac&lt;/a&gt;, and now that Gmail finally supports &lt;a href="http://gmailblog.blogspot.com/2010/04/new-in-labs-nested-labels-and-message.html"&gt;hierarchical labels&lt;/a&gt; I don't need to rely on browser extensions for that, etc etc. But I digress.&lt;br /&gt;&lt;br /&gt;What I have been surprised by is how different all of the browsers are with the most basic of functions. &amp;nbsp;In this part 1 of a multi-part series, I would like to focus on the &lt;b&gt;address bar&lt;/b&gt;. &amp;nbsp;Each of the three major browsers on a Mac behave drastically differently! &amp;nbsp;I find it extremely confusing whenever I switch between browsers and quickly want to go to a specific site.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The simple test:&lt;/b&gt;&lt;br /&gt;type "reader" in the address bar and hit &amp;lt;enter&amp;gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The results:&lt;/b&gt;&lt;br /&gt;&lt;i&gt;Chrome 5&lt;/i&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Google search for "reader" - Google Reader is the top result&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Firefox 3.6&lt;/i&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Goes directly to google.com/reader - does not show a google search, it takes you to the best result [this may be based on my viewing history]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Note: this was the result I wanted in this case, and in general it is very accurate, but sometimes it can take you to pages you don't want to be at, in which case you need to use the google search toolbar in the top right&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Safari 4, &amp;nbsp;5&lt;/i&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Autocompletes what you type to add ".com", and goes to http://www.reader.com&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;i&gt;Internet Explorer 8&lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&amp;nbsp;&amp;nbsp;Google search for "reader" as well&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Summary:&lt;/b&gt;&lt;br /&gt;For me, Firefox's behavior is the best, because in the past couple years that is the browser I have used the most so it's what I have come to expect. &amp;nbsp;I like how it seems to know what I am thinking in regards to what site to go to. &amp;nbsp;It also saves typing and saves extra clicks by going directly to the site. &amp;nbsp;The second best option in my opinion is to do a Google search (Chrome, IE8), but the extra click annoys me when the top hit was where I wanted to go. &amp;nbsp; When wanting to go to sites with a slightly longer URL, Safari's behavior is the worst because it forces you to either fully type out the URL, or switch over to the google search box. &amp;nbsp;And since Chrome doesn't even have a search box, I have gotten used to not using it on other browsers!&lt;br /&gt;&lt;br /&gt;&amp;nbsp;Stay tuned for part 2: navigation usability. &amp;nbsp;(Hint: the "go", "refresh", and "cancel" buttons are all over the place, and in some browsers not user-friendly at all!)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18636729-658133476798192499?l=blog.nickburwell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.nickburwell.com/feeds/658133476798192499/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nickburwell.com/2010/06/web-browser-ui-differences-address-bar.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/658133476798192499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/658133476798192499'/><link rel='alternate' type='text/html' href='http://blog.nickburwell.com/2010/06/web-browser-ui-differences-address-bar.html' title='Web Browser UI differences: the address bar'/><author><name>Nick</name><uri>http://www.blogger.com/profile/12684976612873132375</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16624996053548785495'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18636729.post-5248626849636499661</id><published>2010-06-12T17:34:00.000-07:00</published><updated>2010-06-12T18:27:14.536-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='random'/><title type='text'>Some deals just aren't worth the trouble</title><content type='html'>I love free stuff. And I will usually go out of my way to get something for free even if I don't need it.  But even this was just too much for me:&lt;br /&gt;&lt;div class="separator" style="text-align: center;"&gt;&lt;a href="http://img.skitch.com/20100613-rfn89hfhs1ku717bkykukyrmtm.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="343" src="http://img.skitch.com/20100613-rfn89hfhs1ku717bkykukyrmtm.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="text-align: left;"&gt;At first glance, hey it's a free movie rental. &amp;nbsp;But wait, first you have to join their fan page on Facebook, so then all your friends know you are a sellout and will publish anything on your profile to get free stuff. That alone was about to stop me, but not quite. &amp;nbsp; Then, I remembered, "Hey &lt;a href="http://www.redbox.com/"&gt;redbox&lt;/a&gt; is only a dollar, this may not be worth it." &amp;nbsp;But then the final straw:&lt;/div&gt;&lt;div class="separator" style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="text-align: left;"&gt;The free rental is only good &lt;b&gt;on exactly a specific day&lt;/b&gt;, for just &lt;b&gt;1 day&lt;/b&gt;, and it is a &lt;i&gt;Monday night&lt;/i&gt; later this month! &amp;nbsp;You can't even choose when to use it? &amp;nbsp;And if you can't watch that Monday night, then you end up paying for a second night and there goes your free rental. &amp;nbsp;And did I mention that's just to &lt;a href="http://www.mcdonalds.com/us/en/food/meal_bundles/dollar_menu.html"&gt;save a buck&lt;/a&gt;?&lt;/div&gt;&lt;div class="separator" style="text-align: left;"&gt;&lt;i&gt;Deleted.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18636729-5248626849636499661?l=blog.nickburwell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.nickburwell.com/feeds/5248626849636499661/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nickburwell.com/2010/06/some-deals-just-arent-worth-trouble.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/5248626849636499661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/5248626849636499661'/><link rel='alternate' type='text/html' href='http://blog.nickburwell.com/2010/06/some-deals-just-arent-worth-trouble.html' title='Some deals just aren&apos;t worth the trouble'/><author><name>Nick</name><uri>http://www.blogger.com/profile/12684976612873132375</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16624996053548785495'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18636729.post-6878851911426584121</id><published>2010-05-21T07:00:00.000-07:00</published><updated>2010-05-21T07:00:04.355-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mac tips'/><category scheme='http://www.blogger.com/atom/ns#' term='tech'/><title type='text'>Mac Applications worth checking out</title><content type='html'>Links to check out:&lt;br /&gt;&lt;br /&gt;Quickly edit photos (especially for blogs, powerpoints, landing pages) to add perspective, shadows, and reflections without the hassle of Photoshop:&lt;br /&gt;&lt;a href="http://www.acqualia.com/picturesque/"&gt;http://www.acqualia.com/picturesque/&lt;/a&gt; [Mac]&lt;br /&gt;&lt;br /&gt;Intuitive calculator / notepad / spreadsheet combination app that is way better than the native Calculator app&lt;br /&gt;&lt;a href="http://www.acqualia.com/soulver/"&gt;http://www.acqualia.com/soulver/&lt;/a&gt; [Mac]&lt;br /&gt;&lt;br /&gt;Clone your hard drive for backup/recovery - free and paid options&lt;br /&gt;&lt;a href="http://www.shirt-pocket.com/SuperDuper/SuperDuperDescription.html"&gt;http://www.shirt-pocket.com/SuperDuper/SuperDuperDescription.html&lt;/a&gt; [Mac]&lt;br /&gt;&lt;br /&gt;Save and sync files in S3 (up to 2GB free!) - great interface, easy to use, highly recommended&lt;br /&gt;&lt;a href="http://www.dropbox.com/install"&gt;http://www.dropbox.com/install&lt;/a&gt; [Mac, Windows]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18636729-6878851911426584121?l=blog.nickburwell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.nickburwell.com/feeds/6878851911426584121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nickburwell.com/2010/05/mac-applications-worth-checking-out.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/6878851911426584121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/6878851911426584121'/><link rel='alternate' type='text/html' href='http://blog.nickburwell.com/2010/05/mac-applications-worth-checking-out.html' title='Mac Applications worth checking out'/><author><name>Nick</name><uri>http://www.blogger.com/profile/12684976612873132375</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16624996053548785495'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18636729.post-3820524089052690272</id><published>2010-05-20T07:00:00.000-07:00</published><updated>2010-05-20T07:00:05.237-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opinions'/><category scheme='http://www.blogger.com/atom/ns#' term='user interfaces'/><title type='text'>Chase Bank Procedure Failure</title><content type='html'>The other day I received a new ATM debit card in the mail from &lt;a href="http://www.chase.com"&gt;my bank&lt;/a&gt;.  The card came with a sticker saying to either call the 800 number or simply use the card at a bank ATM with the existing PIN # to activate it.  Having recently called an activation number for my credit card and getting transferred to a live agent that tried to upsell me on several "features", I opted for the ATM method of activation. &lt;br /&gt;&lt;br /&gt;So the next time I'm at the ATM, I enter my 4 digit PIN using my new card--the same PIN I have used for years. The system says the PIN was entered incorrectly.  (Thinking for a moment I had used the wrong ATM card, I tried my PIN number for my joint checking/savings ATM card). Also incorrect. I was afraid of getting locked out, but I tried the original PIN once more in case I just fat-fingered it the first time. No luck. So I went inside the bank.&lt;br /&gt;&lt;br /&gt;Once inside I explained the situation and asked if they had changed the PIN on the new card. The bank says no, and assumes that I have forgotten my PIN. I was sat down at the desk of a helpful woman who proceeded to read through what services I was using and try to push CDs and mutual funds on me.  No thank you, please just fix my PIN number.  So I enter a PIN into the keypad.  I tried using my existing PIN. The banker told me it was rejected because it was either a repeating pattern or a year starting with 19 or 20.  Ah, interesting. Not rejected because it was a previous PIN on my account. But funny, I've had that PIN for years and never been told that.  And why couldn't the ATM machine give me a helpful message like, "Hey we changed our requirements, and you must reset your PIN inside the bank".   The root of the problem: my old card was a WAMU debit card. Now I am holding a Chase debit card.  Same account number, but new bank (thanks to the merge). So I enter a new PIN that matches their stricter requirements and go back outside to the ATM.&lt;br /&gt;&lt;br /&gt;I enter the new PIN, and a new screen with red letters comes up saying to take your card to a bank representative inside immediately. Great.  So I go back inside and explain the error.  Someone else takes my card and says they will look into it.  Moments later a third person I have not seen yet comes by the chair I am sitting in (sporting an annoyed look I am sure). "May I help you?". "I'm already being helped, thanks".  "Oh, are you the ATM card guy?".  Yup, yup that's me.&lt;br /&gt;&lt;br /&gt;I get called up to the counter, and am told that my card has now been locked out for too many wrong attempts. They ask what I was doing, I explain that I was trying to activate my card and the PIN wasn't working, so I had it reset.  Apparently they can not reset a card that has been locked from the branch, so they call someone.. saying how this guy forgot his PIN and locked his card and it's not activated either so can you please activate and reset the card. They do not care that I &lt;i&gt;knew&lt;/i&gt; my old PIN. I attempt to tell them about my sleuthing, but they don't catch on to the fact that their bank system was rejecting a PIN I had been using for years, with no warning or help since my PIN was apparently in a rare subset of numbers that met WAMU's requirements but failed Chase's. &lt;br /&gt;&lt;br /&gt;Do they let everyone that was a WAMU customer with a PIN similar to mine fall into this trap? Are the bankers not warned or trained that this possibility exists?  The letter I got with the new card made no mention of WAMU customers possibly having invalid PINs.  I tried to bring it up to multiple people at the bank but they were just concerned with how stupid I was for both forgetting my PIN and locking myself out by trying multiple times.  I take this as a huge procedural failure.&lt;br /&gt;&lt;br /&gt;Then to make the story better, they told me that even corporate headquarters could not reset the card because you can not activate a locked card, and you can not unlock an unactivated card. Catch-22. So I was told to wait 24 hours for the lock to be automatically removed, then call the stupid 800 activation hotline to activate the card.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18636729-3820524089052690272?l=blog.nickburwell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.nickburwell.com/feeds/3820524089052690272/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nickburwell.com/2010/05/chase-bank-procedure-failure.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/3820524089052690272'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/3820524089052690272'/><link rel='alternate' type='text/html' href='http://blog.nickburwell.com/2010/05/chase-bank-procedure-failure.html' title='Chase Bank Procedure Failure'/><author><name>Nick</name><uri>http://www.blogger.com/profile/12684976612873132375</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16624996053548785495'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18636729.post-2709199087861085473</id><published>2010-05-18T22:23:00.000-07:00</published><updated>2010-05-18T22:29:03.873-07:00</updated><title type='text'>Traffic lights in Michigan: genius</title><content type='html'>A few years ago I blogged about &lt;a href="http://blog.nickburwell.com/2007/03/traffic-signals-needs-to-be-redesigned.html"&gt;how ridiculous most red left turn signals are&lt;/a&gt;.  I still get frustrated every time I sit at a red turn light when I have perfect visibility and there are no cars coming my direction.  I was just in Michigan this past weekend and they have exactly the system I have been wanting implemented in California (and elsewhere).  At any intersection that has a dedicated turn signal, it goes through the following cycles:&lt;br /&gt;&lt;a href="http://img.skitch.com/20100519-8gu23kkharq77ntsc2fbuansx1.png" imageanchor="1" style="float: right; margin-bottom: 1em; margin-left: 1em; margin-top: 1em;"&gt;&lt;img border="0" height="134" src="http://img.skitch.com/20100519-8gu23kkharq77ntsc2fbuansx1.png" width="200" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Solid red, for when the other direction has a green light&lt;/li&gt;&lt;li&gt;Green turn arrow, for when oncoming traffic is stopped and you can turn freely&lt;/li&gt;&lt;li&gt;Flashing red, for when oncoming traffic is green. You must come to a stop, but if the road is clear you can then make a left turn. &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;The third option is safe and efficient.  I definitely utilized it while driving around Grand Rapids, Michigan. I also like how they clearly label what traffic light is for cars turning left.  Clear, large text which gets the job done and is not ambiguous.&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/18636729-2709199087861085473?l=blog.nickburwell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.nickburwell.com/feeds/2709199087861085473/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nickburwell.com/2010/05/traffic-lights-in-michigan-genius.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/2709199087861085473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/2709199087861085473'/><link rel='alternate' type='text/html' href='http://blog.nickburwell.com/2010/05/traffic-lights-in-michigan-genius.html' title='Traffic lights in Michigan: genius'/><author><name>Nick</name><uri>http://www.blogger.com/profile/12684976612873132375</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16624996053548785495'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18636729.post-5677522921193393691</id><published>2010-05-18T09:14:00.000-07:00</published><updated>2010-06-12T18:09:30.557-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tech'/><title type='text'>Debugging Flash on New Google Chrome</title><content type='html'>&lt;p&gt;From Bit-101 blog&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.bit-101.com/blog/?p=2615"&gt;Debugging Flash on New Google Chrome&lt;/a&gt;: "If you’ve installed the latest version of Google Chrome, and you are having a problem debugging your Flash in it, there's a reason...&lt;/p&gt;&lt;p&gt;It seem's the built-in Flash player in Chrome will get used by default, despite whatever other version you might have installed. It's always going to go back to its own original version. To change this, type the following in the URL field: &lt;/p&gt;&lt;p&gt;&lt;code&gt;about:plugins&lt;/code&gt;&lt;/p&gt;&lt;p&gt;This will give you a list of plugins. Somewhere in there, you'll see "Shockwave Flash" with the version, location, etc. Underneath that is a "Disable" link. Go ahead and click it. You’re not disabling Flash all together, just the built-in version. Now, when you hit a SWF on a web page, it’ll go to the latest system-wide version you installed, i.e. the debug player.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18636729-5677522921193393691?l=blog.nickburwell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.nickburwell.com/feeds/5677522921193393691/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nickburwell.com/2010/05/debugging-flash-on-new-google-chrome.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/5677522921193393691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/5677522921193393691'/><link rel='alternate' type='text/html' href='http://blog.nickburwell.com/2010/05/debugging-flash-on-new-google-chrome.html' title='Debugging Flash on New Google Chrome'/><author><name>Nick</name><uri>http://www.blogger.com/profile/12684976612873132375</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16624996053548785495'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18636729.post-4444469224373589850</id><published>2010-05-04T22:05:00.000-07:00</published><updated>2010-05-04T22:05:16.456-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tech'/><category scheme='http://www.blogger.com/atom/ns#' term='ruby on rails'/><title type='text'>Ruby on Rails - ActiveSupport JSON decode odd behavior</title><content type='html'>Be aware that ActiveSupport JSON decoder returns false when given an empty string:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&gt;&gt; ActiveSupport::JSON::decode( "" )&lt;br /&gt;=&gt; false&lt;br /&gt;&gt;&gt; ActiveSupport::JSON::decode( "false" )&lt;br /&gt;=&gt; false&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Uh... really?&lt;br /&gt;&lt;br /&gt;This is using Rails 2.3.4.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18636729-4444469224373589850?l=blog.nickburwell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.nickburwell.com/feeds/4444469224373589850/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nickburwell.com/2010/05/ruby-on-rails-activesupport-json-decode.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/4444469224373589850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/4444469224373589850'/><link rel='alternate' type='text/html' href='http://blog.nickburwell.com/2010/05/ruby-on-rails-activesupport-json-decode.html' title='Ruby on Rails - ActiveSupport JSON decode odd behavior'/><author><name>Nick</name><uri>http://www.blogger.com/profile/12684976612873132375</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16624996053548785495'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18636729.post-2534686387597018948</id><published>2010-03-17T07:00:00.000-07:00</published><updated>2010-03-17T07:00:10.337-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='ext'/><title type='text'>Ext ComboBox - type ahead control with empty result set</title><content type='html'>When wiring up an Ext ComboBox as an ajax typeahead control, it was not obvious to me how to get the list to display a message when no results are returned by the server (the default behavior is to just roll up the list and give no user feedback).&lt;br /&gt;&lt;br /&gt;The trick is to use the following in the config options:&lt;br /&gt;&lt;code&gt;listEmptyText&lt;/code&gt;&lt;br /&gt;http://www.extjs.com/deploy/dev/docs/?class=Ext.form.ComboBox&lt;br /&gt;&lt;br /&gt;Don't be confused by "emptyText" or "invalidText" properties!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18636729-2534686387597018948?l=blog.nickburwell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.nickburwell.com/feeds/2534686387597018948/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nickburwell.com/2010/03/ext-combobox-type-ahead-control-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/2534686387597018948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/2534686387597018948'/><link rel='alternate' type='text/html' href='http://blog.nickburwell.com/2010/03/ext-combobox-type-ahead-control-with.html' title='Ext ComboBox - type ahead control with empty result set'/><author><name>Nick</name><uri>http://www.blogger.com/profile/12684976612873132375</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16624996053548785495'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18636729.post-6135787388488592414</id><published>2010-03-16T22:30:00.000-07:00</published><updated>2010-03-16T22:30:00.678-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><category scheme='http://www.blogger.com/atom/ns#' term='tech'/><title type='text'>Fixing MySQL error when trying to drop a database</title><content type='html'>If you ever get the following error when trying to drop a table (or perhaps when running rake test in an Rails app):&lt;br /&gt;&lt;code&gt;Mysql::Error: Error dropping database (can't rmdir './app_test/', errno: 17): DROP DATABASE IF EXISTS `app_test`&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Most likely your mysql server was killed or shutdown without properly cleaning up files. The error message is helpful, since it says it can not remove the directory "rr_test" (which is the name of my database table).  The reason is because the directory is not empty.&lt;br /&gt;&lt;br /&gt;1. Find the location of that table. For me on my Mac OS X 10.6 Snow Leopard, it was here:&lt;br /&gt;&lt;code&gt;/usr/local/mysql/data/app_test&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;2. View the file, and remove the file(s) - note the data directory is probably owned by root or a mysql group, so you will probably have to sudo to see or remove anything from it&lt;br /&gt;&lt;code&gt;&gt; cd /usr/local/mysql&lt;br /&gt;&gt; sudo ls data/rr_test&lt;br /&gt;&gt; sudo rm data/rr_test/TEMP_FILE_THAT_DIDNT_GET_CLEANED_UP~&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;3. Confirm the directly is empty:&lt;br /&gt;&lt;code&gt;&gt; sudo ls data/rr_test&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;4. Now try the command again and it should work!&lt;br /&gt;&lt;code&gt;mysql&gt; drop database rr_test; &lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18636729-6135787388488592414?l=blog.nickburwell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.nickburwell.com/feeds/6135787388488592414/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nickburwell.com/2010/03/fixing-mysql-error-when-trying-to-drop.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/6135787388488592414'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/6135787388488592414'/><link rel='alternate' type='text/html' href='http://blog.nickburwell.com/2010/03/fixing-mysql-error-when-trying-to-drop.html' title='Fixing MySQL error when trying to drop a database'/><author><name>Nick</name><uri>http://www.blogger.com/profile/12684976612873132375</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16624996053548785495'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18636729.post-1006524901773549741</id><published>2010-03-16T22:00:00.000-07:00</published><updated>2010-03-16T22:00:02.434-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tech'/><title type='text'>Origin of Microsoft Windows</title><content type='html'>Fascinating article on the origin of Microsoft Windows:&lt;br /&gt;&lt;a href="http://technologizer.com/2010/03/08/the-secret-origin-of-windows/"&gt;http://technologizer.com/2010/03/08/the-secret-origin-of-windows/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And while we're on the subject, I read the following book last year which I really enjoyed. It is a biography on Steve Jobs and Apple. Obviously a longer time commitment than the above 3 page article, but well worth the read!  Both companies share some humble beginnings and rough stretches, before taking their industries by storm.&lt;br /&gt;&lt;a href="http://www.amazon.com/gp/product/0471787841?ie=UTF8&amp;tag=ipaamptri-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0471787841"&gt;iCon: Steve Jobs - The Greatest Second Act in the History of Business&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=ipaamptri-20&amp;l=as2&amp;o=1&amp;a=0471787841" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18636729-1006524901773549741?l=blog.nickburwell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.nickburwell.com/feeds/1006524901773549741/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.nickburwell.com/2010/03/origin-of-microsoft-windows.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/1006524901773549741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18636729/posts/default/1006524901773549741'/><link rel='alternate' type='text/html' href='http://blog.nickburwell.com/2010/03/origin-of-microsoft-windows.html' title='Origin of Microsoft Windows'/><author><name>Nick</name><uri>http://www.blogger.com/profile/12684976612873132375</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16624996053548785495'/></author><thr:total>0</thr:total></entry></feed>