<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Monkeys Typing Shakespeare &#187; Monkey Tech</title>
	<atom:link href="http://www.100monkeys.org/category/monkey-tech/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.100monkeys.org</link>
	<description>The Search for Intelligent Monkeys on the Internet</description>
	<lastBuildDate>Sun, 16 Oct 2011 04:52:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>iPhone 4s Speed test between Verizon and AT&amp;T</title>
		<link>http://www.100monkeys.org/2011/10/15/iphone-4s-speed-test-between-verizon-and-att/</link>
		<comments>http://www.100monkeys.org/2011/10/15/iphone-4s-speed-test-between-verizon-and-att/#comments</comments>
		<pubDate>Sun, 16 Oct 2011 04:52:14 +0000</pubDate>
		<dc:creator>Dr. Safran</dc:creator>
				<category><![CDATA[Monkey Tech]]></category>

		<guid isPermaLink="false">http://www.100monkeys.org/?p=200</guid>
		<description><![CDATA[Before committing to a new 2 year contract, I wanted to be sure I could I use my new iPhone 4s in my apartment as my primary phone. Testing and fun with iMovie ensued.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.100monkeys.org/2011/10/15/iphone-4s-speed-test-between-verizon-and-att/"><em>Click here to view the embedded video.</em></a><br />
Before committing to a new 2 year contract, I wanted to be sure I could I use my new iPhone 4s in my apartment as my primary phone. Testing and fun with iMovie ensued.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.100monkeys.org/2011/10/15/iphone-4s-speed-test-between-verizon-and-att/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Joomla, YooTheme and Warp PHP Memory Exhausted Error When Caching Is Turned On</title>
		<link>http://www.100monkeys.org/2011/05/05/joomla-yootheme-and-warp-php-memory-exhausted-error-when-caching-is-turned-on/</link>
		<comments>http://www.100monkeys.org/2011/05/05/joomla-yootheme-and-warp-php-memory-exhausted-error-when-caching-is-turned-on/#comments</comments>
		<pubDate>Fri, 06 May 2011 06:27:11 +0000</pubDate>
		<dc:creator>Dr. Safran</dc:creator>
				<category><![CDATA[Monkey Rant]]></category>
		<category><![CDATA[Monkey Tech]]></category>

		<guid isPermaLink="false">http://www.100monkeys.org/?p=145</guid>
		<description><![CDATA[It’s like a dream within a dream within a dream where you dream you’re dreaming… Or, in this case, replace &#8220;dream&#8221; with &#8220;framework.&#8221; &#34;You created a work-around by over-riding a function to reference a function that wrapped around a function that we were over-riding? Genius!&#34; In Inception, the movie, if you die in a dream [...]]]></description>
			<content:encoded><![CDATA[<p>It’s like a dream within a dream within a dream where you dream you’re dreaming…</p>
<p>Or, in this case, replace &#8220;dream&#8221; with &#8220;framework.&#8221;</p>
<p><img class="size-large wp-image-163" title="Inception" src="http://www.100monkeys.org/wp-content/uploads/2011/05/inception1lg-1024x682.jpg" alt="" width="424" height="234" /></a><br />
<em>&quot;You created a work-around by over-riding a function to reference a function that wrapped around a function that we were over-riding? Genius!&quot;</em></p>
<p>In Inception, the movie, if you die in a dream within a dream within a dream you are stuck in limbo – never to wake up.  When dealing with a template with a custom framework that interfaces with Joomla that has its own framework, what happens if you have an error deep in the middle of all that code?</p>
<p>Most of the time PHP sends out friendly errors telling you what is broken, where and why. However, if code is stuck in infinite recursion you end up timing out and/or exhausting your available memory.  In simpler times, you would only have to sift through one or two scripts to find the break.  With frameworks within frameworks it&#8217;s a whole different story.  Good times…</p>
<p>My client wanted to move to the cloud.  I was happy to set them up on an instance with Amazon’s EC2 service. Their site uses Joomla (1.5.22) along with a YooTheme template which, in turn, uses Warp (5.5.15, developed by the YooTheme folks). Everything was moving along nice and smooth until I started to test the newly migrated site with the Joomla module caching turned on.</p>
<p>I load up the home page, no problem.  Then, refreshing the home page to pull it from cache…</p>
<p>Crash.</p>
<p>Memory exhausted?</p>
<blockquote><p>PHP Fatal error: Allowed memory size of xxxxxxxxx bytes exhausted (tried to allocate xxxxxx bytes)…</p></blockquote>
<p>It really didn’t matter how much memory I gave PHP by updating the “memory_limit” parameter in /etc/php.ini.  The application had a voracious appetite for memory.  Nothing could satisfy it.  That told me that I was dealing with either recursion or some ridiculous database issue (like pulling a million records into memory). I ruled out the database issue and started to focus on infinite recursion as the culprit.</p>
<p>Poking around the code, I found the break point was in the Warp framework’s directory in ./yoo_enterprise/warp/systems/joomla.1.5/helpers/system.php with the following code:</p>
<pre class="brush: php; title: ;">
if (!function_exists('mb_strpos')) {
     function mb_strpos($haystack, $needle, $offset = false) {
     return JString::strpos($haystack, $needle, $offset);
     }
}
</pre>
<p>I commented out that function to discover I hadn’t set up the new box with multibyte support (http://php.net/manual/en/book.mbstring.php).</p>
<blockquote><p>Call to undefined function mb_strpos()</p></blockquote>
<p>Oops.  However, it would seem the developers of Warp had accounted for this.  After all, the comment right above that nifty function stated the following: “mb_strpos function for servers not using the multibyte string extension”</p>
<p>How thoughtful.  So why was this failing?</p>
<p>Digging deeper, I looked into the JString method in the Joomla libraries in ./libraries/joomla/utilities/string.php and found this bit of useful code:</p>
<pre class="brush: php; title: ;">
function strpos($str, $search, $offset = FALSE)
{
     if ( $offset === FALSE ) {
          return utf8_strpos($str, $search);
     } else {
          return utf8_strpos($str, $search, $offset);
     }
}
</pre>
<p>Ah, I see. Joomla devs seemed to have created a useful function for dealing with utf8.  I wonder what that function looked like…</p>
<p>Digging into ./libraries/phputf8/mbstring/core.php I found the following:</p>
<pre class="brush: php; title: ;">
function utf8_strpos($str, $search, $offset = FALSE) {
     if(strlen($str) &amp;&amp; strlen($search)) {
          if ( $offset === FALSE ) {
               return mb_strpos($str, $search);
          } else {
               return mb_strpos($str, $search, $offset);
     }
} else
     return FALSE;
}
</pre>
<p>At this point in the movie Leonardo Dicaprio spins his totem and you wonder if it will ever stop spinning.  Well, it will… when it runs out of memory.  Yes, Warp’s mb_strpos calls Joomla’s utf8_strpos which, in turn, calls mb_strpos which, of course, has been overwritten by Warp’s mb_strpos which calls Joomla’s utf8_strpos and so on and so on…</p>
<p>Satisfied that I figured out what was the causing the error, I ran the following commands on the box:</p>
<pre class="brush: bash; title: ;">
sudo yum install php-mbstring.i686
sudo /etc/init.d/httpd restart
</pre>
<p>And… it works.  The site &#8212; not the code.  I left that broken and tried to report the bug to the devs. Now that I have multibyte support the site bypasses that first function that started this bad dream in the first place.</p>
<p>Of course, I could have just installed php-mbstring as soon as I figured out I needed it but where’s the fun in that when finding recursive black hole code is so much more fun and time consuming?</p>
<a href="http://www.100monkeys.org/2011/05/05/joomla-yootheme-and-warp-php-memory-exhausted-error-when-caching-is-turned-on/"><em>Click here to view the embedded video.</em></a>
<p><strong>Update&#8230; 5/6/2011 @ 9:25AM</strong><br />
After emailing the devs (I could find no bug tracking system), the devs replied that there actually is a core Joomla function to deal with this issue in libraries/phputf8/native/core.php.</p>
<pre class="brush: php; title: ;">
function utf8_strpos($str, $needle, $offset = NULL) {
    if ( is_null($offset) ) {
        $ar = explode($needle, $str);
        if ( count($ar) &gt; 1 ) {
            return utf8_strlen($ar[0]);
        }
        return FALSE;
    } else {
        if ( !is_int($offset) ) {
            trigger_error('utf8_strpos: Offset must be an integer',E_USER_ERROR);
            return FALSE;
        }
        $str = utf8_substr($str, $offset);

        if ( FALSE !== ( $pos = utf8_strpos($str, $needle) ) ) {
            return $pos + $offset;
        }
        return FALSE;
    }
}
</pre>
<p>He went on to tell me that the decision to include native/core.php resides in libraries/phputf8/utf8.php</p>
<p>Looking at utf8.php, I find the following:</p>
<pre class="brush: php; title: ;">
/**
* Load the smartest implementations of utf8_strpos, utf8_strrpos
* and utf8_substr
*/
if ( !defined('UTF8_CORE') ) {
    if ( function_exists('mb_substr') ) {
        require_once UTF8 . '/mbstring/core.php';
    } else {
        require_once UTF8 . '/native/core.php';
    }
}
</pre>
<p>Yes, that&#8217;s right&#8230; the native implementation is loaded if mb_substr is defined.  Since the Warp code is calling the JString method after it defines its own version of mb_substr&#8230; well, you get it.</p>
<a href="http://www.100monkeys.org/2011/05/05/joomla-yootheme-and-warp-php-memory-exhausted-error-when-caching-is-turned-on/"><em>Click here to view the embedded video.</em></a>
<p><strong>Update&#8230; 5/6/2011 @ 9:45AM</strong></p>
<p>The devs responded with the following fix:</p>
<p>This should be placed in warp/systems/joomla.1.5/helpers/system.php just before the first multibyte (mb_) check:</p>
<pre class="brush: php; title: ;">
/* Load string class */
require_once(JPATH_ROOT.'/libraries/joomla/utilities/string.php');
</pre>
<p>By loading that first, Joomla does its job by establishing the correct utf8 function call for the Warp system to use.  You can now wake up.</p>
<p>However, it should be noted that performance takes a big hit through the Joomla utf8 work-around.  If you can get multibyte support installed, do that first.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.100monkeys.org/2011/05/05/joomla-yootheme-and-warp-php-memory-exhausted-error-when-caching-is-turned-on/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Firefox and Quicktime Failed to Initiaize Error #0 Resolved</title>
		<link>http://www.100monkeys.org/2009/09/06/firefox-and-quicktime-failed-to-initiaize-error-0-resolve/</link>
		<comments>http://www.100monkeys.org/2009/09/06/firefox-and-quicktime-failed-to-initiaize-error-0-resolve/#comments</comments>
		<pubDate>Sun, 06 Sep 2009 22:04:12 +0000</pubDate>
		<dc:creator>Dr. Safran</dc:creator>
				<category><![CDATA[Monkey Tech]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[quicktime]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.100monkeys.org/?p=128</guid>
		<description><![CDATA[I started to get this really annoying error every time I went to page that had a Quicktime .mov embedded in it while using FireFox: QuickTime failed to initialize. Error #0 Turning to Google (the modern equivalent of asking my dad which would usually evoke a &#8220;look in the dictionary/encyclopedia&#8221;), I found several helpful tidbits [...]]]></description>
			<content:encoded><![CDATA[<p>I started to get this really annoying error every time I went to page that had a Quicktime .mov embedded in it while using FireFox:</p>
<pre style="text-align: center;">QuickTime failed to initialize. Error #0</pre>
<p>Turning to Google (the modern equivalent of asking my dad which would usually evoke a &#8220;look in the dictionary/encyclopedia&#8221;), <a href="http://kb.mozillazine.org/Quicktime">I found several helpful tidbits</a> that didn&#8217;t help.</p>
<p>One bit of advice called for uninstalling Quicktime, using <a href="http://support.microsoft.com/default.aspx?kbid=290301">Microsoft&#8217;s Windows Installer Cleanup</a> (which was useless since there were no remnants of Quicktime left to clean), restarting then reinstalling Quicktime.  No luck.  Same problem.</p>
<p>The next solution was to go to Control Panel&#8211;&gt;Quicktime&#8211;&gt;Browser Tab&#8211;&gt;MIME Types and reset that.  No luck.  Same problem.<span style="color: #339966;"> </span></p>
<p><span style="color: #000000;">The third solution has too many specific steps to paraphrase:</span></p>
<blockquote><p><span style="color: #339966;">1. Close Firefox or Mozilla Suite.<br />
2. Delete all &#8220;npqtplugin*.dll&#8221; files (npqtplugin.dll, npqtplugin2.dll, etc.) from your browser&#8217;s installation directory plugins folder.<br />
3. Delete all &#8220;npqtplugin*.dll&#8221; files from the Quicktime plugins folder (usually C:\Program Files\QuickTime\Plugins).<br />
4. Go to &#8220;Start -&gt; Control Panel -&gt; Quicktime -&gt; Browser (tab) -&gt; Mime Settings&#8221; and reselect your preferred media types.</span></p>
<p><span style="color: #339966;">If you still have problems, close Firefox or Mozilla Suite, open the &#8220;Mozilla&#8221; or &#8220;Firefox&#8221; folder in the profile folder location and delete the file &#8220;pluginreg.dat&#8221;</span></p></blockquote>
<p style="text-align: left;"><span style="color: #339966;"><span style="color: #000000;"> </span></span><span style="color: #339966;"><span style="color: #000000;">Then, while reading through a bunch of search results, I happened to read a summary that mentioned a different problem with Firefox when set in <strong>compatibility mode</strong>.  I suddenly remembered that I changed this setting because of performance issues with Firefox.  Righ-click Firefox&#8217;s Alias, Go to Compatibility Tab, Uncheck &#8220;Run this program in compatibility mode for:&#8221; and&#8230; Fixed!  Phew!</span></span></p>
<p style="text-align: left;"><span style="color: #339966;"></span><span style="color: #339966;"><span style="color: #000000;"><img class="alignnone size-full wp-image-131" title="firefox_properties" src="http://www.100monkeys.org/wp-content/uploads/2009/09/firefox_properties.png" alt="firefox_properties" width="367" height="509" /></span></span></p>
<p><span style="color: #339966;"><span style="color: #000000;"> </span></span><span style="color: #339966;"> </span></p>
<p><span style="color: #339966;"><span style="color: #000000;"><br />
</span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.100monkeys.org/2009/09/06/firefox-and-quicktime-failed-to-initiaize-error-0-resolve/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Remove My Way Search Assistant</title>
		<link>http://www.100monkeys.org/2009/09/03/remove-my-way-search-assistant/</link>
		<comments>http://www.100monkeys.org/2009/09/03/remove-my-way-search-assistant/#comments</comments>
		<pubDate>Thu, 03 Sep 2009 22:12:04 +0000</pubDate>
		<dc:creator>Dr. Safran</dc:creator>
				<category><![CDATA[Monkey Tech]]></category>
		<category><![CDATA[it]]></category>
		<category><![CDATA[remove]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.100monkeys.org/?p=123</guid>
		<description><![CDATA[I recently ran into &#8220;My Way Search Assistant&#8221; on a client&#8217;s computer and wanted it GONE.  However, the normal Add/Remove Programs option was a no-go as there was no button to actually press. I LOATH it when software is added without an easy way to remove it.  After much research (okay, I Googled the the [...]]]></description>
			<content:encoded><![CDATA[<p>I recently ran into <strong>&#8220;My Way Search Assistant&#8221;</strong> on a client&#8217;s computer and wanted it GONE.  However, the normal Add/Remove Programs option was a no-go as there was no button to actually press.</p>
<p>I LOATH it when software is added without an easy way to remove it.  After much research (okay, I Googled the the heck out of it), I came across this extremely easy and helpful tip:</p>
<blockquote><p><span style="color: #0000ff;">Start&gt;Run&#8230;&gt;Copy and paste the following<br />
msiexec.exe /x{78d944d7-a97b-4004-ab0a-b5ad06839940}</span></p></blockquote>
<p>Don&#8217;t forget to click, &#8220;OK.&#8221;</p>
<p>Ta-da and poof!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.100monkeys.org/2009/09/03/remove-my-way-search-assistant/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>T-Mobile Blackberry Curve 8320 on Wi-Fi UMA and Edge</title>
		<link>http://www.100monkeys.org/2007/12/20/t-mobile-blackberry-curve-8320-on-wi-fi-uma-and-edge/</link>
		<comments>http://www.100monkeys.org/2007/12/20/t-mobile-blackberry-curve-8320-on-wi-fi-uma-and-edge/#comments</comments>
		<pubDate>Fri, 21 Dec 2007 03:09:44 +0000</pubDate>
		<dc:creator>Dr. Safran</dc:creator>
				<category><![CDATA[Monkey Tech]]></category>

		<guid isPermaLink="false">http://www.100monkeys.org/2007/12/20/t-mobile-blackberry-curve-8320-on-wi-fi-uma-and-edge/</guid>
		<description><![CDATA[Yeah, yeah, I&#8217;ve gotten really nerdy in these posts &#8212; it&#8217;s what I do to support the SIMIProject. So, I&#8217;ve finally decided to start jotting down solutions for IT problems that I&#8217;ve had to deal with. This one was a really pain in a monkey&#8217;s butt: After successfuly destroying my trusty Treo 650 after three [...]]]></description>
			<content:encoded><![CDATA[<p align="left">Yeah, yeah, I&#8217;ve gotten really nerdy in these posts &#8212; it&#8217;s what I do to support the SIMIProject.  So, I&#8217;ve finally decided to start jotting down solutions for IT problems that I&#8217;ve had to deal with.</p>
<p>This one was a really pain in a monkey&#8217;s butt:</p>
<p>After successfuly destroying my trusty Treo 650 after three years, I decided to go BlackBerry.  Wow!  I&#8217;m surprised I converted so easily.  The Curve is just plain sweet.  I chose this model because I was already with T-Mobile for the uber cheap monthly plans they offer and something caught my eye: t-mobile@home.  This is the service that lets you use the wi-fi on the Curve to place and receive calls &#8212; basically, unlimited calling wherever you can hook up to a wi-fi connection for the added fee they charge ($20).</p>
<p><a target="_blank" id="p100" rel="attachment" title="Blackberry Curve" href="http://www.100monkeys.org/2007/12/20/t-mobile-blackberry-curve-8320-on-wi-fi-uma-and-edge/blackberry-curve/"><img width="293" height="192" align="left" id="image100" alt="Blackberry Curve" src="http://www.100monkeys.org/wp-content/uploads/2007/12/blackberry_curve.jpg" /></a>Excited as I was, I set up my phone and started playing with the connection features.  Then&#8230; wuh?  huh?  The little UMA symbol that tells me I&#8217;m getting free calling switches to Edge &#8212; NOT free calling.  Booooo!  Lame!  I spent hours googling the issue.  I spent hours on the phone with various T-Mobile tech support people.  &#8220;Well, we don&#8217;t support alternative solutions other than our own hotspots or the T-Mobile routers.&#8221;  Boooooooo!</p>
<p>The problem I was having was that the phone would bounce between UMA and Edge even if I was sitting right next to the wi-fi router.  In fact, sometimes it wouldn&#8217;t bounce to UMA at all.  The only way I could get UMA to stick was to turn off the T-Mobile service on the phone (cool feature, by the way).  Well, after dealing with two @home specialist (the second one called me by mistake not realizing that I just spent an hour on the phone with his colleague) I got my answer.  It seems, the second @home specialist (who called me by mistake) knew a LOT more about this service than the first (I love talking to tech support people who know what they&#8217;re talking about &#8212; mostly).</p>
<p>It turns out that the Curve will choose whichever signal is STRONGER &#8212; not which service is FREE&#8217;ER.  Seems logical enough.  So, there you go.  The phone is doing what it is SUPPOSED to be doing.  Wouldn&#8217;t it have been neat if the first three T-Mobile tech support people had told me that?</p>
<p>A few additional things I learned along the way:</p>
<p>1. You can test the quality of your internet connection using the FREE java applet at http://myvoipspeed.visualware.com/ (make sure you see the applet moving on the lower half of the page &#8212; you don&#8217;t need to buy the software on the top half).</p>
<p>2. You can use that site to help optimize your router settings.  Play around with the various features on your router and retest until you get all green lights on the test.  If you can&#8217;t, your Internet connection could be the problem.</p>
<p>3. The UMA feature was designed for users who have craptastic t-mobile reception at home.  The idea being, that your home wi-fi would always be stronger than the prevailing T-mobile signal.  In markets like Los Angeles, you&#8217;ll get a battle royal on your phone and Edge will often win.</p>
<p>4. You need to make sure your firewall is not blocking ports 500 or 4500 (UDP).</p>
<p>5. The last guy I spoke to freakin&#8217; LOVES his job and loves to share his wealth of info.</p>
<p>6. If you ask nicely, you can get lots of cool info that isn&#8217;t easily available to the general public like this from one of the @home Tech guys:</p>
<blockquote><p>The HotSpot @Home service relies on the IPsec security protocol to provide  secure calling over Wi-Fi. T-Mobile-branded wireless routers are configured to  permit IPsec communications by default, but other devices may be configured to  block IPSec. Similarly, the firewall policy on any router may have been  configured (intentionally or otherwise) to prevent IPsec communications.</p>
<p>In order for IPsec to work, the following ports need to be allowed through  the firewall in both directions:</p>
<ul>
<li>UDP port 500  (Internet Key Exchange or &#8220;IKE&#8221;)</li>
<li>UDP port 4500 (IPSec/IKE NAT-T)</li>
</ul>
<p>Many consumer-grade  routers, including the T-Mobile branded Wi-Fi routers, include a simple  check-box that will enable IPsec communications. This option is typically named  &#8216;Enable IPsec passthrough&#8217; or something similar.</p>
<p>For users of advanced corporate  firewalls or home-built firewalls (typically running a UNIX-like operating  system), IPSec may also require explicit rules to allow the following two  protocols (independent of port) through the firewall:</p></blockquote>
<ul>
<ul>
<li>IP protocol 50 (Encapsulating  Security Payload or &#8220;ESP&#8221;)</li>
<li>IP protocol 51 (Authentication  Header or &#8220;AH&#8221;)</li>
</ul>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.100monkeys.org/2007/12/20/t-mobile-blackberry-curve-8320-on-wi-fi-uma-and-edge/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>iPhone Sync on Windows Outlook with Exchange</title>
		<link>http://www.100monkeys.org/2007/12/20/iphone-sync-on-windows-outlook-with-exchange/</link>
		<comments>http://www.100monkeys.org/2007/12/20/iphone-sync-on-windows-outlook-with-exchange/#comments</comments>
		<pubDate>Fri, 21 Dec 2007 02:39:58 +0000</pubDate>
		<dc:creator>Dr. Safran</dc:creator>
				<category><![CDATA[Monkey Tech]]></category>

		<guid isPermaLink="false">http://www.100monkeys.org/2007/12/20/iphone-sync-on-windows-outlook-with-exchange/</guid>
		<description><![CDATA[The other day the monkeys were flinging more poo than usual. I walked up to a few of them as they were jumping around a computer screeching and banging on the screen. It seems Bongo had purchased a new iPhone and was trying to get it to sync with his Outlook 2003 calendars and contacts. [...]]]></description>
			<content:encoded><![CDATA[<p>The other day the monkeys were flinging more poo than usual.  I walked up to a few of them as they were jumping around a computer screeching and banging on the screen.  It seems Bongo had purchased a new iPhone and was trying to get it to sync with his Outlook 2003 calendars and contacts.  There was very little hair left on his head as he had pulled most of it out dealing with the fine folks at Apple.</p>
<p>First, he was getting a strange error (0xE8000025) whenever he attached the iPhone to his PC.  Then his phone would just disappear &#8212; not the real phone, the link in iTunes.  He dutifully followed the Apple Geniuses advice and went the Apple Genius Bar at an Apple store.  Why?  I have no idea.  The problem was with his iPhone connecting to HIS PC.</p>
<p>After about 12 hours of Apple Geniuses, Teir 1 support (1-800-myiphone), Tier 2 support, Googling every page in the known universe and using an entire bottle of Windex to wipe monkey poo off his monitor, we got his iPhone to sync.</p>
<p>Through our adventure, here is what we learned:</p>
<p>1. The iPhone needs a USB 2.0 port &#8212; if you only have USB 1.1 you may get the 0xE8000025 error when you plug in or the annoying &#8220;iTunes could not connect to the iPhone because an unknown error occurred.&#8221;  Since Bongo had an older computer we added a USB 2.0 card and we stopped getting this error and the disappearing iPhone routine.</p>
<p>2. iPhone requires iTunes to sync.  After installing it, you need to run Outlook at least once.  iTunes uses the local *.pst OR (this &#8220;OR&#8221; is really, really important) the local *.ost file from Outlook.  *.ost files are created when you have Exchange in &#8220;Cached Exchange Mode.&#8221;</p>
<p>3. To sync information from an Exchange server you must check the &#8220;Use Cached Exchange Mode&#8221; in the email setup dialog box (Tools &#8211;> Email Accounts &#8211;> View or Change&#8230;).  You must also be sure that Outlook has fully synced with the Exchange server to update the *.ost file on your local machine.  You can see this from the icon in your system tray.</p>
<p>4. iTunes deserves a lot of the monkey poo tossed at it for a problem dealing with repeating calendar events.  We ended up deleting all of these (In Outlook 2003: View &#8211;> Arrange By &#8211;> Current View &#8211;> Recurring Appointments).  For good measure, we also deleted all calendar events prior to the start of the year.  However, I think this was probably unnecessary and overkill.</p>
<p>In hindsight, it would have saved a LOT of time if the Mac Geniuses or the Teir 1 support person had told us about the USB 2.0 issue.  Props to Tier 1 Susan in Toronto for explaining that one to us (I want my t-shirt).  It would also have been a nice thing if the < Tier 2 had told us about the *.pst/*.ost issue.  We figured that one out talking to Susan.  She wasn&#8217;t an Exchange expert but when she told us that iTunes actually reads through the entire file, something just clicked &#8212; without Cached mode, this file does not get updated (or created).<br />
Bongo now loves his new iPhone with anti-monkey poo screen&#8230; me, I&#8217;m loving my BlackBerry Curve with wi-fi.  I got a post about that coming soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.100monkeys.org/2007/12/20/iphone-sync-on-windows-outlook-with-exchange/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

