<?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:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" version="2.0">

<channel>
	<title>Drew Has A Blog Too</title>
	
	<link>http://drewjoh.com/blog</link>
	<description>Words on your display</description>
	<lastBuildDate>Wed, 29 Jul 2009 19:25:59 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/drewjoh" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>PHP Time Based UUID Function (GUID)</title>
		<link>http://drewjoh.com/blog/2009/07/php-time-based-uuid-function-guid/</link>
		<comments>http://drewjoh.com/blog/2009/07/php-time-based-uuid-function-guid/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 21:50:27 +0000</pubDate>
		<dc:creator>Drew</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[WebDev]]></category>
		<category><![CDATA[guid]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[primary key]]></category>
		<category><![CDATA[uuid]]></category>

		<guid isPermaLink="false">http://drewjoh.com/blog/?p=74</guid>
		<description><![CDATA[In my desire to find the &#8220;right&#8221; UUID function to use in my application, I grew to like the MySQL UUID() results produced because they are partially time based.  But I didn&#8217;t like that I have to make a database call every time I want a new UUID.  I didn&#8217;t find any similar functionality [...]]]></description>
			<content:encoded><![CDATA[<p>In my desire to find the &#8220;right&#8221; <a href="http://en.wikipedia.org/wiki/Universally_Unique_Identifier" target="_self">UUID</a> function to use in my application, I grew to like the <a href="http://dev.mysql.com/doc/refman/5.1/en/miscellaneous-functions.html#function_uuid" target="_self">MySQL UUID()</a> results produced because they are partially time based.  But I didn&#8217;t like that I have to make a database call every time I want a new UUID.  I didn&#8217;t find any similar functionality in PHP or from user based PHP functions, so here&#8217;s my efforts.</p>
<p>It clocks in at 100,000 results in about 1.36 seconds on my 2.8Ghz Intel iMac.</p>
<p><code class=\'prettyprint\' >function uuid()<br />
{<br />
// Time based PHP Unique ID<br />
$uid = uniqid(NULL, TRUE);<br />
// Random SHA1 hash<br />
$rawid = strtoupper(sha1(uniqid(rand(), true)));<br />
// Produce the results<br />
$result = substr($uid, 6, 8);<br />
$result .= substr($uid, 0, 4);<br />
$result .= substr(sha1(substr($uid, 3, 3)), 0, 4);<br />
$result .= substr(sha1(substr(time(), 3, 4)), 0, 4);<br />
$result .= strtolower(substr($rawid, 10, 12));<br />
// Return the result<br />
return $result;<br />
}</code><br />
We produce results looking like this:</p>
<blockquote><p>
1f8fec61-4a6f-9bd5-7f8e-e12325c464c3<br />
1f8fed49-4a6f-9bd5-7f8e-d665dedc0297<br />
1f8fee17-4a6f-9bd5-7f8e-29d1ce3e9e30<br />
1f8feef2-4a6f-9bd5-7f8e-8ce03bebdbdf<br />
1f8fefc7-4a6f-9bd5-7f8e-c22fbedb5390
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://drewjoh.com/blog/2009/07/php-time-based-uuid-function-guid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Converting Ticks to a Timestamp</title>
		<link>http://drewjoh.com/blog/2009/05/converting-ticks-to-a-timestamp/</link>
		<comments>http://drewjoh.com/blog/2009/05/converting-ticks-to-a-timestamp/#comments</comments>
		<pubDate>Sat, 02 May 2009 21:12:39 +0000</pubDate>
		<dc:creator>Drew</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[WebDev]]></category>
		<category><![CDATA[convert]]></category>
		<category><![CDATA[ticks]]></category>
		<category><![CDATA[timestamp]]></category>

		<guid isPermaLink="false">http://drewjoh.com/blog/?p=57</guid>
		<description><![CDATA[I recently had to deal with a SQLite database that stored the timestamps as ticks.  Having to first research what a tick is, I created a simple function that will convert a tick value to a timestamp or MySQL datetime value since I couldn&#8217;t find anyone else who had done such a thing yet.
You can [...]]]></description>
			<content:encoded><![CDATA[<p>I recently had to deal with a SQLite database that stored the timestamps as ticks.  Having to first <a href="http://msdn.microsoft.com/en-us/library/system.datetime.ticks.aspx">research </a>what a <a href="http://www.flickr.com/photos/eastpole/2299787549/">tick is</a>, I created a simple function that will convert a tick value to a timestamp or MySQL datetime value since I couldn&#8217;t find anyone else who had done such a thing yet.</p>
<p>You can <a href="http://drewjoh.com/downloads/ticks_to_timestamp.zip">download it here</a>.</p>
<p>The only tricky part (aside from figuring out what a tick is) was calculating the number of ticks between 0001-01-01 to 1970-01-01. Also of note: a tick is apparently a popular way to store date/time values for Microsoft.</p>
]]></content:encoded>
			<wfw:commentRss>http://drewjoh.com/blog/2009/05/converting-ticks-to-a-timestamp/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Google Apps only gives 2GB to Safari users?</title>
		<link>http://drewjoh.com/blog/2008/11/google-apps-only-gives-2gb-to-safari-users/</link>
		<comments>http://drewjoh.com/blog/2008/11/google-apps-only-gives-2gb-to-safari-users/#comments</comments>
		<pubDate>Thu, 20 Nov 2008 17:27:05 +0000</pubDate>
		<dc:creator>Drew</dc:creator>
				<category><![CDATA[Apps]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Safari]]></category>
		<category><![CDATA[safari]]></category>
		<category><![CDATA[sign-up]]></category>
		<category><![CDATA[storage]]></category>

		<guid isPermaLink="false">http://drewjoh.com/blog/2008/11/google-apps-only-gives-2gb-for-safari-users/</guid>
		<description><![CDATA[I recently had a small need to sign up two new Google Apps accounts and setup calendar sharing between them. So I naturally open up Safari as my second browser of choice and go to the sign-up page, only to notice that rather than the standard 7.2GB of space, I only get 2.7GB when signing [...]]]></description>
			<content:encoded><![CDATA[<p>I recently had a small need to sign up two new Google Apps accounts and setup calendar sharing between them. So I naturally open up Safari as my second browser of choice and go to the sign-up page, only to notice that rather than the standard 7.2GB of space, I only get 2.7GB when signing up with Safari. Not willing to temp fate, I closed Safari and signed up through Firefox. Interesting!</p>
<p><a href="http://drewjoh.com/blog/wp-content/uploads/2008/11/google-apps-storage-safari.png" class="image-link"><img class="linked-to-original" src="http://drewjoh.com/blog/wp-content/uploads/2008/11/google-apps-storage-safari1.png" height="157" width="335" style=" text-align: center; display: block; margin: 0 auto 10px;" /></a></p>
<p><a href="http://drewjoh.com/blog/wp-content/uploads/2008/11/google-apps-storage-firefox2.png" class="image-link"><img class="linked-to-original" src="http://drewjoh.com/blog/wp-content/uploads/2008/11/google-apps-storage-firefox1.png" height="162" width="317" style=" text-align: center; display: block; margin: 0 auto 10px;" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://drewjoh.com/blog/2008/11/google-apps-only-gives-2gb-to-safari-users/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Bug with Adobe Flash on Mac when uploading files to a redirected URL</title>
		<link>http://drewjoh.com/blog/2008/09/bug-with-adobe-flash-on-mac-when-uploading-files-to-a-redirected-url/</link>
		<comments>http://drewjoh.com/blog/2008/09/bug-with-adobe-flash-on-mac-when-uploading-files-to-a-redirected-url/#comments</comments>
		<pubDate>Wed, 24 Sep 2008 07:00:34 +0000</pubDate>
		<dc:creator>Drew</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[WebDev]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[file]]></category>
		<category><![CDATA[mod_rewrite]]></category>
		<category><![CDATA[upload]]></category>

		<guid isPermaLink="false">http://drewjoh.com/blog/?p=37</guid>
		<description><![CDATA[Just spent almost the entire day trying to figure out what I was doing wrong when trying out many different flash multi-file uploading widgets. All of them would give me a 302 redirect http error, even when testing locally.
So after much searching and reading and studying&#8230; and finally testing this on my Windows machine (which [...]]]></description>
			<content:encoded><![CDATA[<p>Just spent almost the entire day trying to figure out what I was doing wrong when trying out <a href="http://swfupload.org/">many</a> <A href="http://digitarald.de/project/fancyupload/2-0/showcase/photoqueue/">different</a> <a href="http://www.element-it.com/MultiPowUpload.aspx">flash</a> multi-file uploading widgets. All of them would give me a 302 redirect http error, even when testing locally.</p>
<p>So after much searching and reading and studying&#8230; and finally testing this on my Windows machine (which works fine); I&#8217;ve decided this is a bug in Flash 9 for Mac.</p>
<p>There&#8217;s not a problem when it&#8217;s uploaded to a script directly which returns a 200 OK header response first. But when you use a framework that uses mod_rewrite for every URL, it&#8217;s not easy to get around that.</p>
<p>If anyone else has had experience with this I&#8217;d love to hear from you. Very frustrating! Maybe it&#8217;s fixed in the Flash 10 beta?  Maybe it&#8217;s not a bug; it&#8217;s a &#8220;feature&#8221;, right?</p>
<p><a href='http://drewjoh.com/blog/wp-content/uploads/2008/09/picture-1.png'><img src="http://drewjoh.com/blog/wp-content/uploads/2008/09/picture-1-300x208.png" alt="" title="flash-redirect-error-1" width="300" height="208" class="alignnone size-medium wp-image-38" /></a><a href='http://drewjoh.com/blog/wp-content/uploads/2008/09/picture-2.png'><img src="http://drewjoh.com/blog/wp-content/uploads/2008/09/picture-2-300x208.png" alt="" title="flash-redirect-error-2" width="300" height="208" class="alignnone size-medium wp-image-39" /></a></p>
<p><strong>UPDATE:</strong> I went ahead and installed Flash10 hoping for the best, but with no luck.  I was able to contact someone at Adobe who told me the Flash scripts will have to be recompiled in Flash10 to see if Flash10 would help.  So installing Flash10 on my computer won&#8217;t make the scripts any different.</p>
]]></content:encoded>
			<wfw:commentRss>http://drewjoh.com/blog/2008/09/bug-with-adobe-flash-on-mac-when-uploading-files-to-a-redirected-url/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Redirect all but used subdomains to primary domain using mod_rewrite and CodeIgniter</title>
		<link>http://drewjoh.com/blog/2008/09/redirect-all-but-used-subdomains-to-primary-domain-using-mod_rewrite-and-codeigniter/</link>
		<comments>http://drewjoh.com/blog/2008/09/redirect-all-but-used-subdomains-to-primary-domain-using-mod_rewrite-and-codeigniter/#comments</comments>
		<pubDate>Sun, 21 Sep 2008 20:10:12 +0000</pubDate>
		<dc:creator>Drew</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[WebDev]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[ci]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[mod_rewrite]]></category>
		<category><![CDATA[redirect]]></category>
		<category><![CDATA[regular expression]]></category>
		<category><![CDATA[subdomain]]></category>
		<category><![CDATA[www]]></category>

		<guid isPermaLink="false">http://drewjoh.com/blog/?p=35</guid>
		<description><![CDATA[I was recently playing with mod_rewrite and wanting a couple of subdomains to act as subdomains, but all others to redirect back to my site without the leading &#8220;www&#8221;. For example:
www.example.com => example.com
bad.example.com => example.com
api.example.com => api.example.com
Not being a regular expression or mod_rewrite expert (or any resemblance of such), this was a bit of a [...]]]></description>
			<content:encoded><![CDATA[<p>I was recently playing with mod_rewrite and wanting a couple of subdomains to act as subdomains, but all others to redirect back to my site without the leading &#8220;www&#8221;. For example:</p>
<p>www.example.com => example.com<br />
bad.example.com => example.com<br />
api.example.com => api.example.com</p>
<p>Not being a regular expression or mod_rewrite expert (or any resemblance of such), this was a bit of a challenge. But I did it with the help of a <a href="http://www.addedbytes.com/apache/mod_rewrite-cheat-sheet/">mod_rewrite</a> and <a href="http://www.addedbytes.com/cheat-sheets/regular-expressions-cheat-sheet/">regular expression</a> cheat sheet, as well as the excellent <a href="http://httpd.apache.org/docs/2.0/misc/rewriteguide.html">Apache URL Rewriting Guide</a>.</p>
<p>So here it is for anyone else that could benefit. Just replace the bold parts with your own subdomains (and example with your domain).</p>
<p><strong>Redirect without leading www</strong>:<br />
<code class=\'prettyprint\' ># Redirect deleting leading www to root domain if no specified subdomain is used&lt;br /&gt;<br />
RewriteCond %{HTTP_HOST} !^(<strong>subdomain1</strong>|<strong>subdomain2</strong>)\.example\.com$ [NC]&lt;br /&gt;<br />
RewriteCond %{HTTP_HOST} !^example\.com$ [NC]&lt;br /&gt;<br />
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]&lt;br /&gt;</code></p>
<p><strong>Redirect with leading www:</strong><br />
<code class=\'prettyprint\' ># Redirect adding leading www to root domain if no subdomain is specified&lt;br /&gt;<br />
RewriteCond %{HTTP_HOST} !^(<strong>subdomain1</strong>|<strong>subdomain2</strong>|www)\.example\.com$ [NC]&lt;br /&gt;<br />
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]&lt;br /&gt;</code></p>
<p>If you&#8217;re using <a href="http://codeigniter.com/">CodeIgniter</a> and <a href="http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html">mod_rewrite</a> for pretty URLs, you&#8217;ll need to be sure to add these subdomains to the list of directories that can be accessed directly.<br />
<code class=\'prettyprint\' ># CodeIgniter writing&lt;br /&gt;<br />
RewriteCond $1 !^(index\.php|images|robots\.txt|css|user_files|<strong>subdomain1</strong>|<strong>subdomain2</strong>)&lt;br /&gt;<br />
RewriteRule ^(.*)$ /index.php/$1 [L]&lt;br /&gt;</code></p>
]]></content:encoded>
			<wfw:commentRss>http://drewjoh.com/blog/2008/09/redirect-all-but-used-subdomains-to-primary-domain-using-mod_rewrite-and-codeigniter/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Serving a large file through PHP without hitting memory_limit</title>
		<link>http://drewjoh.com/blog/2008/09/serving-a-large-file-through-php-without-hitting-memory_limit/</link>
		<comments>http://drewjoh.com/blog/2008/09/serving-a-large-file-through-php-without-hitting-memory_limit/#comments</comments>
		<pubDate>Thu, 11 Sep 2008 05:44:15 +0000</pubDate>
		<dc:creator>Drew</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[WebDev]]></category>
		<category><![CDATA[coding]]></category>

		<guid isPermaLink="false">http://drewjoh.com/blog/?p=34</guid>
		<description><![CDATA[Ran into a little problem hitting the memory limit for PHP when serving 100MB+ files through a script like:
$file = @fopen($filename,"r");&#60;br/&#62;&#60;br /&#62;
if ($file)&#60;br /&#62;
{&#60;br /&#62;
    while(!feof($file))&#60;br /&#62;
        {&#60;br /&#62;
            print(fread($file, 1024*4));&#60;br /&#62;
       [...]]]></description>
			<content:encoded><![CDATA[<p>Ran into a little problem hitting the memory limit for PHP when serving 100MB+ files through a script like:</p>
<p><code class=\'prettyprint\' >$file = @fopen($filename,"r");&lt;br/&gt;&lt;br /&gt;<br />
if ($file)&lt;br /&gt;<br />
{&lt;br /&gt;<br />
    while(!feof($file))&lt;br /&gt;<br />
        {&lt;br /&gt;<br />
            print(fread($file, 1024*4));&lt;br /&gt;<br />
            flush();&lt;br /&gt;<br />
            ob_flush();&lt;br /&gt;<br />
        }&lt;br /&gt;<br />
    @fclose($file);&lt;br /&gt;<br />
}</code></p>
<p>Found that you need to call ob_flush() as well as flush() since flush() has <a href="http://us3.php.net/manual/en/function.flush.php">no effect on the buffering scheme of your web server</a>.</p>
<p>Just thought I&#8217;d throw that out there for anyone else.</p>
]]></content:encoded>
			<wfw:commentRss>http://drewjoh.com/blog/2008/09/serving-a-large-file-through-php-without-hitting-memory_limit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MultiTouch Trackpad Gestures For The Rest Of Your Apps</title>
		<link>http://drewjoh.com/blog/2008/04/multitouch-trackpad-gestures-for-the-rest-of-your-apps/</link>
		<comments>http://drewjoh.com/blog/2008/04/multitouch-trackpad-gestures-for-the-rest-of-your-apps/#comments</comments>
		<pubDate>Sat, 12 Apr 2008 20:28:47 +0000</pubDate>
		<dc:creator>Drew</dc:creator>
				<category><![CDATA[Apps]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[gestures]]></category>
		<category><![CDATA[macbook]]></category>
		<category><![CDATA[multiclutch]]></category>
		<category><![CDATA[multitouch]]></category>
		<category><![CDATA[navigation]]></category>
		<category><![CDATA[safari]]></category>
		<category><![CDATA[trackpad]]></category>

		<guid isPermaLink="false">http://drewjoh.com/blog/?p=18</guid>
		<description><![CDATA[If you&#8217;re one of the lucky ones to be able to get one of the latest MacBooks with Multi-Touch, you&#8217;ve probably asked the same question I have: &#8220;How can I get Firefox to use the swipe gesture to go forwards and backwards like Safari does?&#8221;
Answer: MultiClutch
This neat little Preference Pane addition will allow you to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://drewjoh.com/blog/wp-content/uploads/2008/04/mac_swipe_little.png"><img class="size-full wp-image-19" style="float:left; " title="Image" src="http://drewjoh.com/blog/wp-content/uploads/2008/04/mac_swipe_little.png" alt="" width="92" height="89" /></a>If you&#8217;re one of the lucky ones to be able to get one of the latest MacBooks with <a href="http://www.apple.com/macbookpro/features.html">Multi-Touch</a>, you&#8217;ve probably asked the same question I have: &#8220;How can I get Firefox to use the swipe gesture to go forwards and backwards like Safari does?&#8221;</p>
<p>Answer: <a href="http://wcrawford.org/2008/02/28/everytime-i-think-about-you-i-touch-my-cell/">MultiClutch</a></p>
<p>This neat little Preference Pane addition will allow you to associate trackpad gestures with keyboard shortcuts; <em>per application</em>.</p>
<p>So this gives you exactly what you&#8217;re looking for: navigation for Firefox 3 (beta) via trackpad gestures. Only apps built with Cocoa are supported right now, so this won&#8217;t work with Firefox 2, sorry!</p>
<p>If you found that app useful, please consider making a small donation to Will! It helps make the world go round. =)</p>
]]></content:encoded>
			<wfw:commentRss>http://drewjoh.com/blog/2008/04/multitouch-trackpad-gestures-for-the-rest-of-your-apps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cycle Your Batteries!</title>
		<link>http://drewjoh.com/blog/2008/04/cycle-your-batteries/</link>
		<comments>http://drewjoh.com/blog/2008/04/cycle-your-batteries/#comments</comments>
		<pubDate>Mon, 07 Apr 2008 16:49:52 +0000</pubDate>
		<dc:creator>Drew</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[batteries]]></category>
		<category><![CDATA[battery]]></category>
		<category><![CDATA[care]]></category>
		<category><![CDATA[macbook]]></category>
		<category><![CDATA[macbook pro]]></category>

		<guid isPermaLink="false">http://drewjoh.com/blog/?p=14</guid>
		<description><![CDATA[When buying portable products, I usually like to be (over) prepared for whatever situation may arrive.  When I bought my Panasonic HD camcorder, I also searched the web thoroughly and bought two extra batteries and a 16GB SD Card.  Plenty of power and plenty of space.
So I found myself looking at an extra battery for [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://drewjoh.com/blog/wp-content/uploads/2008/04/macbook_battery_usage.png"><img class="alignnone size-full wp-image-16" style="float:right;" title="macbook_battery_usage" src="http://drewjoh.com/blog/wp-content/uploads/2008/04/macbook_battery_usage.png" alt="MacBook Battery Usage" width="356" height="506" /></a>When buying portable products, I usually like to be (over) prepared for whatever situation may arrive.  When I bought my Panasonic HD camcorder, I also searched the web thoroughly and bought two extra batteries and a 16GB SD Card.  Plenty of power and plenty of space.</p>
<p>So I found myself looking at an extra battery for my recent MacBook Pro purchase so that I&#8217;m never caught dead.  As I do before buying anything electronic over $50 I started reading the reviews, which all seemed to be horrible, dating back to 2005 even.  I was a little confused since I went the entire weekend without having to charge my MacBook Pro, and even found myself on Sunday night waiting for the battery to die before I went to bed so I could give it a full cycle.</p>
<p><a href="http://drewjoh.com/blog/wp-content/uploads/2008/04/macbook_battery_history.png"><img class="size-full wp-image-15" style="float:left;" title="macbook_battery_history" src="http://drewjoh.com/blog/wp-content/uploads/2008/04/macbook_battery_history.png" alt="MacBook Battery History" width="264" height="421" /></a>Obviously I didn&#8217;t use my notebook more than 5 hours (the <a href="http://www.apple.com/macbookpro/specs.html" target="_self">rated time</a> it can/should last).  I didn&#8217;t do any work this weekend (that&#8217;s a first really), so nothing more than looking up movie times, checking bank statements and researching some thing (ok, so maybe I did a little work)&#8230; but battery life was more than adequate. So I didn&#8217;t quite understand all these reviews; especially some claiming &#8220;my battery doesn&#8217;t last more than 10 minutes!&#8221;.</p>
<p>For any MacBook user, you&#8217;ll find a wonderfully cool program called <a href="http://www.coconut-flavour.com/coconutbattery/">CoconutBattery</a> that tells you the actual and rated battery capacity at any time. (Just don&#8217;t leave the application open, I found that it locks up my entire system after prolonged use.) So armed with that, and with Apple&#8217;s <a href="http://www.apple.com/batteries/notebooks.html">battery notebook care</a>, you&#8217;ll have everything you need to help get the most out of your battery.</p>
<p>As you can see from my battery history, as I started to completely drain my battery (2008-04-04), my battery&#8217;s maximum capacity increased. April 06 was when I completely drained and charged the battery for the first time.  I&#8217;m willing to bet that many (the &#8220;average&#8221;?) user doesn&#8217;t know or understand how batteries work. They understand (and I remember thinking in my teenage years) that batteries fill up and drain; there&#8217;s nothing else to them.</p>
<p>And who knew you could <a href="http://docs.info.apple.com/article.html?artnum=86284">calibrate your battery</a> to ensure an accurate reading?</p>
<p>This is also great advice for <em>anyone</em> using <em>anything</em> that has a battery.  Batteries need to be used to be kept healthy.  Windows users can use tools like <a href="http://www.passmark.com/products/batmon.htm">BatteryMon</a> (30-day trial, $24) to get battery capacity monitoring and recording.</p>
<p>iPhone users should take <a href="http://www.apple.com/batteries/iphone.html">this advice</a> to heart also, especially since replacing the iPhone battery is only free within your first year of purchase under the <a href="http://www.apple.com/batteries/replacements.html">warranty</a>; and that&#8217;s only if the battery is holding less than 50% of what it should. Otherwise you&#8217;re looking at almost $90 and a week or two without your phone.</p>
<p>In short, use your batteries!</p>
]]></content:encoded>
			<wfw:commentRss>http://drewjoh.com/blog/2008/04/cycle-your-batteries/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting Organized with Spaces</title>
		<link>http://drewjoh.com/blog/2008/03/getting-organized-with-spaces/</link>
		<comments>http://drewjoh.com/blog/2008/03/getting-organized-with-spaces/#comments</comments>
		<pubDate>Sun, 02 Mar 2008 23:35:39 +0000</pubDate>
		<dc:creator>Drew</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[mouse]]></category>
		<category><![CDATA[os x]]></category>
		<category><![CDATA[spaces]]></category>
		<category><![CDATA[steermouse]]></category>

		<guid isPermaLink="false">http://drewjoh.com/blog/2008/03/02/getting-organized-with-spaces/</guid>
		<description><![CDATA[Upon getting my Mac, Spaces was one of the first things I checked out. I had tried Virtual Desktops in Windows and Linux, but never found them to be too terribly helpful. Not to mention I used a dual monitor setup with my Windows machine, so I felt I had plenty of room for things.
Despite [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://drewjoh.com/blog/wp-content/uploads/2008/03/spaces_navigation20071018.gif" alt="Spaces Image" style="float: left; margin-right: 5px" />Upon getting my Mac, <a href="http://www.apple.com/macosx/features/spaces.html">Spaces</a> was one of the first things I checked out. I had tried Virtual Desktops in Windows and Linux, but never found them to be too terribly helpful. Not to mention I used a dual monitor setup with my Windows machine, so I felt I had plenty of room for things.</p>
<p>Despite having a nice big 24&#8243; screen, I have often felt my desktop to be cramped and cluttered; especially coming from a dual monitor setup. So the idea of Spaces seemed perfect, except using the keyboard shortcuts felt too slow and like to much work just to get to another application or space. (F8 + Click on a space OR Cmd + Arrow) So this tip from <a href="http://www.macosxhints.com/article.php?story=20071107091110894">Mac Os X Hints</a> sounded like the perfect solution. Although they don&#8217;t actually offer a tip on how to do it (just the tip to do it), this is what I&#8217;ve done:</p>
<p>1. Assign Spaces to use the Cmd + Arrow keys too switch between Spaces.<br />
2. Use <a href="http://plentycom.jp/en/steermouse/">SteerMouse</a> to assign the right and left mouse scroller to use those combinations (Cmd + Right Arrow) (Cmd + Left Arrow)<br />
3. There is no three!</p>
<p>I&#8217;m using 6 spaces now, for web browsing, coding, FTP, RSS Feeds, iChat and iTunes.</p>
<p>Any other suggestions on a good/better way to do the key assigning let me know!</p>
]]></content:encoded>
			<wfw:commentRss>http://drewjoh.com/blog/2008/03/getting-organized-with-spaces/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>My Mac crashed on me, and I lived to tell about it.</title>
		<link>http://drewjoh.com/blog/2007/12/my-mac-crashed-on-me-and-i-lived-to-tell-about-it/</link>
		<comments>http://drewjoh.com/blog/2007/12/my-mac-crashed-on-me-and-i-lived-to-tell-about-it/#comments</comments>
		<pubDate>Fri, 07 Dec 2007 09:10:11 +0000</pubDate>
		<dc:creator>Drew</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[crash]]></category>
		<category><![CDATA[panic]]></category>
		<category><![CDATA[ram]]></category>

		<guid isPermaLink="false">http://www.yipdrew.com/blog/2007/12/07/my-mac-crashed-on-me-and-i-lived-to-tell-about-it/</guid>
		<description><![CDATA[I&#8217;ve been a Mac user now for 24 days; and I&#8217;m loving it. I&#8217;ve been anxious to write several blog posts about the highlights of my experience in switching to a Mac + PC workstation. I have several stickies on my desktop with notes about what to include in these blog posts; and to be [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been a Mac user now for 24 days; and I&#8217;m loving it. I&#8217;ve been anxious to write several blog posts about the highlights of my experience in switching to a Mac + PC workstation. I have several stickies on my desktop with notes about what to include in these blog posts; and to be sure I&#8217;ll still write them.</p>
<p>But my experience just 15 minutes ago with my brand new 24&#8243; iMac scared me like my Windows machine has never done before; and has prompted (or incited) me to be active on this blog.</p>
<p>I&#8217;m really getting the hang of the Mac OSX system. I&#8217;ve already purchased <a href="http://www.panic.com/coda">Coda</a> for a development environment and I have lots of things going on at once when I&#8217;m developing. This is about the time when  a <a href="http://docs.info.apple.com/article.html?artnum=106227">kernel panic</a> decided to happen. I&#8217;ve read about it before. The Mac equivalent of the famous Windows blue screen of death. But I have now experienced it first hand. Some people even think this is a <a href="http://www.doomlaser.com/?p=12">good joke</a> (and it is).</p>
<p>It happened when I had clicked on a link in my browser, so I figured perhaps some javascript had really done Firefox wrong and in turn messed everything else up. So per the on screen instructions, I held the power button down to reboot. I was greeted with 2 low beeps, followed by 3 beeps (repeated). Not cool. I was initially a bit upset (read: mad)&#8230; this is not supposed to happen. This is a Mac, right? I thought it&#8217;s just supposed to work.</p>
<p>I ran through standard problems: overheating (it does get hot), bad hard drive, bad motherboard. Unfortunately, it turns out the <a href="http://docs.info.apple.com/article.html?artnum=58442">beeps meant bad RAM</a>. I have switched over just about everything to my Mac (except e-mail), and I don&#8217;t have a backup Mac (yet) in case something like this happens. Lucky for me, I had bought 4GB of RAM to be used as a Christmas gift for my dad for his Mac. And lucky for me, the RAM is just about the only accessible thing on the iMac.</p>
<p>Sure enough, popped the 1GB stick out and put the new one in and it&#8217;s up and running again. Not cool Apple. Is this really the type of RAM you charge $700 for a 4GB upgrade? (No, I didn&#8217;t buy my 4GB from Apple). Could just be a fluke though, I&#8217;ll give them that. =) But it is frustrating&#8230; what if I didn&#8217;t happen to have that 4GB of RAM sitting around for Christmas? I would be dead in the water until I took it to an Apple service center or went and just bought (read: spent more money) for RAM.</p>
]]></content:encoded>
			<wfw:commentRss>http://drewjoh.com/blog/2007/12/my-mac-crashed-on-me-and-i-lived-to-tell-about-it/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
