<?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>Mac Daddy World &#187; Apple</title>
	<atom:link href="http://macdaddyworld.com/category/apple/feed/" rel="self" type="application/rss+xml" />
	<link>http://macdaddyworld.com</link>
	<description>Stand back, here come the MacDaddies from Ecamm Network</description>
	<lastBuildDate>Tue, 26 Jan 2010 18:14:47 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>BT-1 wins Macworld Best of Show</title>
		<link>http://macdaddyworld.com/2009/01/16/bt-1-wins-macworld-best-of-show/</link>
		<comments>http://macdaddyworld.com/2009/01/16/bt-1-wins-macworld-best-of-show/#comments</comments>
		<pubDate>Sat, 17 Jan 2009 01:50:42 +0000</pubDate>
		<dc:creator>ken</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[MacWorld]]></category>

		<guid isPermaLink="false">http://macdaddyworld.com/?p=213</guid>
		<description><![CDATA[The top secret BT-1 project was finally declassified at Macworld 2009.  After so much hard work by everyone involved, it was awesome to be officially recognized when it was awarded the Macworld Best of Show award.  On Thursday, we got to show off not only the camera, but our shiny lucite trophy.
If you [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://bt-1.com/"><img alt="" src="http://www.ecamm.com/images/bestofshow2009.png" title="Best of Show" class="alignright" width="89" height="83" /></a>The top secret <a href="http://www.bt-1.com">BT-1 project</a> was finally declassified at Macworld 2009.  After so much hard work by everyone involved, it was awesome to be officially recognized when it was awarded the Macworld Best of Show award.  On Thursday, we got to show off not only the camera, but our shiny lucite trophy.</p>
<p><a href="http://www.flickr.com/photos/foobar/3200975949/in/set-72157612585015068/"><img alt="" src="http://farm4.static.flickr.com/3454/3200975949_b4595c317f_m.jpg" title="Macworld Best of Show 2009" class="alignleft" width="240" height="160"/></a>If you haven&#8217;t read about it yet, the BT-1 is the world&#8217;s first wireless webcam. It&#8217;s a tiny Bluetooth video camera which can be positioned anywhere around the room and used with iChat, Skype, or for any purpose imaginable. </p>
<p>Although we won&#8217;t actually be shipping the cams for a few months, Glen, Ken, Jimmy, Midori, and Neil worked hard all week demoing the BT-1 to expo attendees. MacWorld visitors could see for themselves how great the wireless video looks and feels.  The general reaction to the camera ranged from &#8220;that&#8217;s really neat&#8221; to &#8220;that&#8217;s just what I need, I&#8217;ll take three!&#8221;  </p>
<p>So how does a software company like Ecamm end up selling a ground-breaking hardware product?  Making software is about designing user interfaces and moving bits around.  Hardware is a whole different ball game, and has a lot of my software friends asking &#8220;where did this camera come from?&#8221;  It helps to be working with a genius hardware engineer.  The camera was designed and created by Pico Instruments, with Ecamm Network doing the drivers, and also the sales and marketing.</p>
<p>In four fast-paced days, we burned through more than 3000 flyers and 1000 miniature coffee cups (our signature giveaway).  Check out <a href="http://www.flickr.com/photos/foobar/sets/72157612585015068/">Ken&#8217;s Flickr feed</a> for some pictures of Ecamm&#8217;s Macworld 2009 experience.</p>
<p>This was our 3rd Macworld, but is this the end of an era?<br />
<div class="wp-caption alignnone" style="width: 250px"><a href="http://www.flickr.com/photos/foobar/3197676877/in/set-72157612585015068/"><img alt="Macworld 2010: The start of a new era" src="http://farm4.static.flickr.com/3420/3197676877_51a0c3c71b_m.jpg" title="Macworld 2010: The start of a new era" width="240" height="180" /></a><p class="wp-caption-text">Macworld 2010: The start of a new era</p></div>  I guess the last 25 years was just the end of the beginning.</p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fmacdaddyworld.com%2F2009%2F01%2F16%2Fbt-1-wins-macworld-best-of-show%2F';
  addthis_title  = 'BT-1+wins+Macworld+Best+of+Show';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://macdaddyworld.com/2009/01/16/bt-1-wins-macworld-best-of-show/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Infinite Loop</title>
		<link>http://macdaddyworld.com/2008/06/15/wwdc-the-line/</link>
		<comments>http://macdaddyworld.com/2008/06/15/wwdc-the-line/#comments</comments>
		<pubDate>Sun, 15 Jun 2008 16:44:49 +0000</pubDate>
		<dc:creator>ken</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Leopard]]></category>

		<guid isPermaLink="false">http://macdaddyworld.com/?p=84</guid>
		<description><![CDATA[
You can separate the OS X feature engineering work done by Apple into two categories.  There&#8217;s the features that are exciting to the typical Mac user, and then there&#8217;s the features that are only exciting to software developers.  When Apple says that they&#8217;re &#8220;hitting the pause button on new features&#8221;, they&#8217;re talking about [...]]]></description>
			<content:encoded><![CDATA[<p>
You can separate the OS X feature engineering work done by Apple into two categories.  There&#8217;s the features that are exciting to the typical Mac user, and then there&#8217;s the features that are only exciting to software developers.  When Apple says that they&#8217;re &#8220;hitting the pause button on new features&#8221;, they&#8217;re talking about that first category of features.  From a developer&#8217;s perspective, Snow Leopard is overflowing with exciting system enhancements, tantalizing new goodies to allow for faster development and huge performance improvements.</p>
<table width=110 class=alignright cellpadding=10>
<tr>
<td><img src="http://macdaddyworld.com/wp-content/uploads/2008/06/bb497039ump0203_bigen-ustechnet10.gif" alt="" title="" width="110" height="84" class="alignnone size-full wp-image-85" /></td>
</tr>
<tr>
<td><b class=caption">The tradeoff triangle.<br />Image credit: Microsoft</b></td>
</tr>
</table>
<p>Pausing to focus on stability and performance is every large software company&#8217;s fantasy.  The typical process of software development is a cycle:  New feature requirements are handed down from on high, developers work furiously on the new features, cut corners to get them just to the point where they&#8217;re (mostly) working, and then rush them out the door on a slipped deadline.  Fixes to critical bugs come iteratively as point release updates, but the majority of the engineering team has already moved on to the next batch of new features.  There&#8217;s never any time to go back and improve on things.</p>
<p>It&#8217;s unprecedented for a company to have this luxury: To be able to pause the infinite loop and concentrate entirely on making the current feature set work better.  In the large part, working better means running faster. It also means adding new frameworks and paradigms to allow future features to be built on a firm foundation. They&#8217;re improving the underpinnings of the OS.  You can think of it like Verizon&#8217;s FIOS project.  Customers might not see a huge benefit today, but by replacing their copper infrastructure with fiber-optic, they&#8217;re enabling future technologies.  Similarly, Apple is building a powerful new infrastructure for the future of the platform.  Competitors are going to be left with crackly old wiring.</p>
<p><strong>A winning strategy<br />
</strong></p>
<p><img src="http://macdaddyworld.com/wp-content/uploads/2008/06/picture-10.png" alt="" title="" width="221" height="155" class="alignright size-full wp-image-86" /> Clearly, I&#8217;m very excited by this strategy.  By taking a whole engineering cycle to focus on enhancements and create performance-improving technologies, Apple is going to move so far ahead of competition that the competition might never be able to recover.  <strong>They&#8217;re going to skunk the competition.  </strong></p>
<p>Concentrating on performance improvements isn&#8217;t something new for Apple.  I haven&#8217;t verified this scientifically, but from personal experience, upgrading to Leopard actually results in a speed boost for things like boot time and application launch time.  This comes as a surprise to many people.  We just assume that a newer OS will require a faster machine and say things like: &#8220;I&#8217;m not sure my old laptop can handle Leopard.&#8221; In fact, Leopard is a faster operating system than its predecessors.  Upgrading will actually result in a performance increase.   </p>
<p>The things I saw this week at WWDC made my eyes bug out.  They&#8217;re determined to squeeze every last cycle out of the CPU (and the GPU for that matter), constantly asking the question &#8220;How can we make this faster?&#8221;.  I imagine a big banner, a la Office Space, hanging above the cubicle farm in Cupertino.  Another important focus is enabling 3rd party developers to easily (or even automatically) benefit from these new technologies.</p>
<p>With each normal development cycle, performance might move up by some small amount.  (In the competition&#8217;s case, it might actually go down.)  In the Snow Leopard release, it&#8217;s going to make a huge jump.  </p>
<p><strong>Putting all your cores in one basket<br />
</strong><br />
While every shipping Mac is now a multi-core machine, programming languages and application architectures have not kept up in a way that allows developers to easily take full advantage.  Until now, efficiently and properly taking advantage of all available cores has been a tricky and error-prone process even for the most brilliant of engineers.  Snow Leopard will solve this problem in many ways, with new language features, and a new operation paradigm which shifts the burden of threaded programming away from the developer and into the capable hands of the OS.</p>
<p><strong>Who needs so many bits?<br />
</strong><br />
For developers, moving to 64-bit is a cheerless and time consuming process, made even worse by the fact that consumers will not even notice an immediate difference. Apple is going to do it in Snow Leopard because they know it will make things better over the long run.  It&#8217;s like getting your wisdom teeth removed when they&#8217;re not yet causing any discomfort.  It&#8217;s going to need to happen at some point, and better to do it now when you can schedule a convenient time for the procedure.  You won&#8217;t feel better right afterwards. In fact, for a short period of time afterwards you&#8217;ll feel worse.  But once you&#8217;re recovered, you&#8217;ll be glad you did it.  Apple&#8217;s investing in a healthy future.  Competitors are going to end up wearing braces.</p>
<p><strong>As hip as a software engineer<br />
</strong><br />
<img src="http://macdaddyworld.com/wp-content/uploads/2008/06/images.jpeg" alt="" title="" width="111" height="118" class="alignright size-full wp-image-87" />I love that Apple doesn&#8217;t try to use the current buzzwords and trendy technologies. They could be trying to generate investor excitement with things like XML and social networking, but they&#8217;re not.  Instead they&#8217;re putting lay-people to sleep with things like OpenCL and gigaflops.  It&#8217;s as if they&#8217;ve put the developers in charge and everyone else is out to lunch.  </p>
<p>Way to go Apple.  Power to the Programmers!</p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fmacdaddyworld.com%2F2008%2F06%2F15%2Fwwdc-the-line%2F';
  addthis_title  = 'The+Infinite+Loop';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://macdaddyworld.com/2008/06/15/wwdc-the-line/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>WWDC: The Gathering</title>
		<link>http://macdaddyworld.com/2008/06/13/wwdc-the-gathering/</link>
		<comments>http://macdaddyworld.com/2008/06/13/wwdc-the-gathering/#comments</comments>
		<pubDate>Fri, 13 Jun 2008 06:03:33 +0000</pubDate>
		<dc:creator>ken</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Community]]></category>

		<guid isPermaLink="false">http://macdaddyworld.com/?p=78</guid>
		<description><![CDATA[Once a year, Apple hosts the Worldwide Developers Conference in San Francisco.  This year there are 5000+ developers here.  A lot of developers wonder if going to WWDC is a good use of time and money.  The short answer is that this is the event of the year for Apple developers and [...]]]></description>
			<content:encoded><![CDATA[<p>Once a year, Apple hosts the Worldwide Developers Conference in San Francisco.  This year there are 5000+ developers here.  A lot of developers wonder if going to WWDC is a good use of time and money.  The short answer is that this is the event of the year for Apple developers and it should not be missed. </p>
<p>Just as important as the sessions, lectures and labs is meeting and hanging out with the people who have gathered here.  The first WWDC I attended in 2005 was my initiation into the Apple dev community&#8230; I didn&#8217;t know a sole.  I started working on <a href="http://www.ecamm.com">Ecamm</a> full-time shortly afterwards and now, three years later, I&#8217;ve met so many great people both here and at other events that I can hardly turn a corner without seeing a familiar face.</p>
<p>I know I&#8217;ll see many of them later this year at <a href="http://www.rentzsch.com/c4/2dates">C4</a>, some of them at <a href="http://macworldexpo.com/">MacWorld</a> in January, and probably all of them next year at WWDC 2009.</p>
<p><img src="http://macdaddyworld.com/wp-content/uploads/2008/06/picture-9.png" alt="" title="" width="445" height="110" class="aligncenter size-full wp-image-82" /></p>
<p>Thanks to everyone for a great week!</p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fmacdaddyworld.com%2F2008%2F06%2F13%2Fwwdc-the-gathering%2F';
  addthis_title  = 'WWDC%3A+The+Gathering';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://macdaddyworld.com/2008/06/13/wwdc-the-gathering/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone SDK first thoughts</title>
		<link>http://macdaddyworld.com/2008/03/06/iphone-sdk-first-thoughts/</link>
		<comments>http://macdaddyworld.com/2008/03/06/iphone-sdk-first-thoughts/#comments</comments>
		<pubDate>Fri, 07 Mar 2008 00:25:33 +0000</pubDate>
		<dc:creator>ken</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://macdaddyworld.com/2008/03/06/iphone-sdk-first-thoughts/</guid>
		<description><![CDATA[I haven&#8217;t even downloaded the SDK yet, but many of my questions can be answered from simply reading the documentation and license agreement.
1) How does File System access work?
From the FAQ:How do I write information locally?You can write to your application's local storage area.
From the Agreement:An Application may write data on a device only to [...]]]></description>
			<content:encoded><![CDATA[<p>I haven&#8217;t even downloaded the SDK yet, but many of my questions can be answered from simply reading the documentation and license agreement.</p>
<p><H3>1) How does File System access work?</H3></p>
<p><b>From the FAQ:</b><br /><code><br />How do I write information locally?<br />You can write to your application's local storage area.<br /></code></p>
<p><b>From the Agreement:</b><br /><code><br />An Application may write data on a device only to the Application's designated container area, except as otherwise specified by Apple.<br /></code></p>
<p>So each application is sand-boxed.  You cannot modify data from another application; for example, to edit the Notepad database, access iTunes media, etc.</p>
<p><H3>2) What is Apple&#8217;s policy on using undocumented frameworks, classes or functions?</h3>
<p>The SDK is great, but us developers have already reverse engineered the iPhone and know the iPhone OS inside and out.  Can we still use routines we know about?</p>
<p><b>From the Agreement:</b><br /><code><br />Applications may only use Published APIs in the manner prescribed by Apple and must not use or call any unpublished or private APIs.<br /> </code></p>
<p>You are only allowed to do what is specified in the SDK manual.  Anything else is completely off limits.  Imagine if they had this rule on the Mac, just how stable things would be <img src='http://macdaddyworld.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><H3>3) How picky will Apple be about UI design?</H3></p>
<p><b>From the Agreement:</b><br /><code>Applications must comply with the Human Interface Guidelines and other Documentation provided by Apple.<br /></code></p>
<p>We are sorry to inform you that your app has been declined for inclusion in the App Store.  Reason: Your app scored a 4.3 for Aesthetic Integrity. An Aesthetic Integrity score of 5 or higher is required.   Please try again later.</p>
<p><H3>4) What&#8217;s the problem with having to get your apps approved by Apple?</H3></p>
<p>You  have to play by their rules. Kind of takes some of the fun out of it.</p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fmacdaddyworld.com%2F2008%2F03%2F06%2Fiphone-sdk-first-thoughts%2F';
  addthis_title  = 'iPhone+SDK+first+thoughts';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://macdaddyworld.com/2008/03/06/iphone-sdk-first-thoughts/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Sneak Preview: iPhoneCam</title>
		<link>http://macdaddyworld.com/2008/01/12/sneak-preview-iphonecam/</link>
		<comments>http://macdaddyworld.com/2008/01/12/sneak-preview-iphonecam/#comments</comments>
		<pubDate>Sat, 12 Jan 2008 19:06:56 +0000</pubDate>
		<dc:creator>ken</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://macdaddyworld.com/2008/01/12/sneak-preview-iphonecam/</guid>
		<description><![CDATA[Abstract:
Use your iPhone&#8217;s camera as a wireless Mac webcam!  Stream video over Wi-Fi to any Mac video application such as iChat, Photo Booth or Skype.Some History:
After the C4 Iron Coder contest where we made the video conferencing iPhone app, we put down our iPhones and got back to writing Mac software for the rest [...]]]></description>
			<content:encoded><![CDATA[<p><b>Abstract:</b></p>
<p>Use your iPhone&#8217;s camera as a wireless Mac webcam!  Stream video over Wi-Fi to any Mac video application such as iChat, Photo Booth or Skype.<br /><img src='http://macdaddyworld.com/wp-content/uploads/2008/01/meekus.thumbnail.jpg' alt='meekus.jpg' class="alignright" /><br /><b>Some History:</b></p>
<p>After the <a href="http://rentzsch.com/c4/">C4</a> Iron Coder contest where we made the <a href="http://macdaddyworld.com/2007/08/15/hooray-for-sample-app/">video conferencing iPhone app</a>, we put down our iPhones and got back to writing <a href="http://www.ecamm.com/">Mac software</a> for the rest of year.  Nobody knew, and we still don&#8217;t know, what the future of these iPhone apps would and will hold.</p>
<p>Last week I had a strange urge to get back on the iPhone again and solve some problems that had left us stumped this summer.  More specifically, I wanted to get <b>streaming video from the camera</b>. (If you remember our video demo at C4, the frame rate was quite low. This was because, under the strict time limit of the conferece, we weren&#8217;t able to grab from the camera any faster than a frame or two per second.)</p>
<p><b>Meet iPhoneCam:</b></p>
<table align=right border=0 width=128 hspace=10>
<tr>
<td><a target="_new" href="http://www.youtube.com/watch?v=XnNcsdAmpaA"><img src='http://macdaddyworld.com/wp-content/uploads/2008/01/clipping.thumbnail.jpg' alt='clipping' / BORDER=0></a></td>
</tr>
<tr>
<td><font size=-2>Click to <A target="_new" HREF="http://www.youtube.com/watch?v=XnNcsdAmpaA">download a recording</A> of an iChat video conference where I demo it to Glen.  </font></td>
</tr>
</table>
<p>I figured it out: Now we can stream at up to 30 fps.  My proof-of-concept is an iPhone app which <b>streams video over Wi-Fi</b> to a video driver component on the Mac.  This way, you can use the iPhone&#8217;s camera stream in any Mac video program like iChat, Photo Booth or Skype.  </p>
<p>Using <a href="http://www.ecamm.com/mac/ichatusbcam/">iChatUSBCam</a> (so that iChat can see non-iSight video sources), I did a video conference with Glen to show him how it looks.  He recorded it with <a href="http://www.ecamm.com/mac/conferencerecorder/">Conference Recorder</a> so that we could share it on the blog. You can <a target="_new" href="http://www.youtube.com/watch?v=XnNcsdAmpaA">download a demo video here</a>.</p>
<p>But I haven&#8217;t gotten to the clever bit yet. </p>
<p><b>The Clever Bit:</b></p>
<p><img src='http://macdaddyworld.com/wp-content/uploads/2008/01/images.jpeg' alt='bonjour' class="alignright"/>The iPhone app and the Mac component find each other using Bonjour (zeroconf).  There&#8217;s absolutely no configuration necessary.  If there&#8217;s an iPhone-based camera available, the Mac finds it and uses it automatically.  Glen had the idea to see if Bonjour could be used, and we noticed that <a href="http://poly.share.dj/wiki/index.php/Bonjour">IDMResearch</a> had already provided a nice wrapper around CFNetService.</p>
<p>FAA: (Frequently Answered Answers)</p>
<p>A: No, it only streams video.</p>
<p>A: No, it&#8217;s only for Mac users.</p>
<p>A: iPhoneCam is not yet available to download. We&#8217;ll have something for folks to try soon.  Stop by <A HREF="http://www.ecamm.com/mwsf08/">our booth at MacWorld Expo</A> and maybe we can give you a live demo!</p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fmacdaddyworld.com%2F2008%2F01%2F12%2Fsneak-preview-iphonecam%2F';
  addthis_title  = 'Sneak+Preview%3A+iPhoneCam';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://macdaddyworld.com/2008/01/12/sneak-preview-iphonecam/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Meet us a MacWorld, Get Free Stuff</title>
		<link>http://macdaddyworld.com/2008/01/07/meet-us-a-macworld-get-free-stuff/</link>
		<comments>http://macdaddyworld.com/2008/01/07/meet-us-a-macworld-get-free-stuff/#comments</comments>
		<pubDate>Mon, 07 Jan 2008 19:25:03 +0000</pubDate>
		<dc:creator>ken</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[MacWorld]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://macdaddyworld.com/2008/01/07/meet-us-a-macworld-get-free-stuff/</guid>
		<description><![CDATA[The whole Ecamm team is going to be exhibiting at MacWorld &#8216;08.  If you&#8217;re going to be at MacWorld, be sure to come by the booth and meet Glen, Midori, and myself.  If you&#8217;re not going to MacWorld, consider it!  This is the Mac enthusiast&#8217;s event of the year.
We&#8217;re doing a really [...]]]></description>
			<content:encoded><![CDATA[<p>The whole Ecamm team is going to be exhibiting at <A HREF="http://www.macworldexpo.com/">MacWorld &#8216;08</A>.  If you&#8217;re going to be at MacWorld, be sure to come by the booth and meet Glen, Midori, and myself.  If you&#8217;re not going to MacWorld, consider it!  This is the Mac enthusiast&#8217;s event of the year.</p>
<p><img src='http://macdaddyworld.com/wp-content/uploads/2008/01/shuffles.jpg' alt='Shuffles!' class="alignright" />We&#8217;re doing a <a href="http://www.ecamm.com/mwsf08/">really fun promotion</a> all week:  Stop by at any time during the expo and instantly win cool prizes.  Prizes include iPod Shuffles and completely free copies of our (not usually free) software.  So come and win a copy of <a href="http://ecamm.com/mac/dockstar/">DockStar</a>, <a href="http://ecamm.com/mac/iglasses/">iGlasses</a>, <a href="http://ecamm.com/mac/iphonedrive/">iPhoneDrive</a>, <a href="http://ecamm.com/mac/cardraider/">CardRaider</a>,  or if you&#8217;re lucky, an iPod!</p>
<p>We&#8217;ll also be demoing our software, showing off our <a href="http://www.ecamm.com/mac/imagewebcam/">iMage cameras</a>, giving a sneak peak at the very new, improved and the never-before seen <a href="http://www.ecamm.com/mac/huckleberry/">Huckleberry</a> 3.</p>
<p>We&#8217;ll also have various iPhones and iTouches available, showing off some cool new iPhone hacks we&#8217;re working on, and for anyone who wants to see a demo of our other <a href="http://macdaddyworld.com/2007/08/12/two-way-video-conferencing-for-iphone/">iPhone projects</a>.</p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fmacdaddyworld.com%2F2008%2F01%2F07%2Fmeet-us-a-macworld-get-free-stuff%2F';
  addthis_title  = 'Meet+us+a+MacWorld%2C+Get+Free+Stuff';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://macdaddyworld.com/2008/01/07/meet-us-a-macworld-get-free-stuff/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Leopard: How to be a super user</title>
		<link>http://macdaddyworld.com/2007/12/05/leopard-how-to-be-a-super-user/</link>
		<comments>http://macdaddyworld.com/2007/12/05/leopard-how-to-be-a-super-user/#comments</comments>
		<pubDate>Wed, 05 Dec 2007 23:07:09 +0000</pubDate>
		<dc:creator>ken</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Leopard]]></category>
		<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://macdaddyworld.com/2007/12/05/leopard-how-to-be-a-super-user/</guid>
		<description><![CDATA[I spent a lot of time working this issue, so I&#8217;ll go into some detail here in the hopes that it will help others.   
If you take a look at my previous post, you&#8217;ll see a list of new restrictions which Leopard puts on Input Manager plugins.  Number 3 is: Processes running [...]]]></description>
			<content:encoded><![CDATA[<p>I spent a lot of time working this issue, so I&#8217;ll go into some detail here in the hopes that it will help others.   </p>
<p><img src='http://macdaddyworld.com/wp-content/uploads/2007/12/picture-2.png' alt='picture-2.png' class="alignright" />If you take a look at my previous post, you&#8217;ll see a list of new restrictions which Leopard puts on Input Manager plugins.  Number 3 is: <b>Processes running with the root privilege (getuid() == 0 or geteuid() == 0) cannot load any bundle input manager.</b>  While I do consider this overkill (given #2), it seemed a very straightforward requirement and sensible if you&#8217;re trying to be as safe as possible.</p>
<p>A handful of users weren&#8217;t getting our plugins to load, so we created a test application to run down all of the requirements one by one and see which one was failing. To our surprise, we found the test application (and presumably all of their apps) was running geteuid() == 0!  <b>Yes, all running as super user, root, the big 0.</b> A quick check in Activity Monitor revealed that sure enough, most every process on the machines in question was running as root.  Now remember, they&#8217;re not logged in as root. They&#8217;re logged in as their normal user; let&#8217;s call him Steve.  Whenever Steve opens a program from the Dock, it runs with root privileges instead of Steve privileges.  This is nasty. Steve doesn&#8217;t even know it, but I&#8217;m sure his system is acting rather strange.  Most people with this problem reported &#8220;other stability issues&#8221; and eventually did a clean install of Leopard (which fixed the problem.)</p>
<p><img src='http://macdaddyworld.com/wp-content/uploads/2007/12/picture-3.png' alt='picture-3.png' class=alignleft /> I asked around on the Apple-cdsa listserv to see if anyone had seen this problem. I quickly heard from another developer who had already seen the same issue, but nobody else on the list had seen it and nobody had a quick solution.  </p>
<p>I went back on a few weeks later asking for any help with troubleshooting the problem.  This was fruitful.  Although it wasn&#8217;t entirely on topic, heads were scratched, hallway discussions were had, and I heard from an Apple engineer who quickly guessed at the actual cause of this.</p>
<p>Apparently, some major changes have been made to how Leopard launches applications.</p>
<p>If you&#8217;ve spent the last several years seeing Tiger crash reports, you&#8217;ve probably become quite familiar with seeing:</p>
<p><code>Parent:  WindowServer [123]</code></p>
<p>On Tiger, the very first process (PID 1) is launchd, which launches all daemons, including WindowServer, which is in turn the parent of all of your &#8220;apps&#8221;.  launchd runs as root, WindowServer runs as windowserver, and your apps should all be running as, well, as you.</p>
<p>On Leopard, you might have noticed that the parent process in crash reports has now become launchd.  When you login on Leopard, the PID 1 launchd forks a second launchd, which is the parent of all your apps.  This second launchd runs as your normal user.</p>
<p>In our messed up case, this second launchd was running as root.  </p>
<p><img src='http://macdaddyworld.com/wp-content/uploads/2007/12/picture-5.png' alt='picture-5.png' class="alignright" /> On these affected machines /sbin/launchd had its setuid bit set.  The setuid attribute is a permissions bit flag, which causes a program to run as root even if a non-privileged user executes it.  Sound like bad idea jeans to you too?  Set this bit on launchd, and that&#8217;s exactly what happens: It always runs as root no matter who starts it. </p>
<p>launchd is normally setuid on Tiger, but it&#8217;s not supposed to be on Leopard. I&#8217;m assuming this is some kind of 10.4 -> 10.5 migration issue.</p>
<p>It&#8217;s not hard to turn off the setuid bit and fix this problem, but the user will have lingering ownership issues.  Every file they&#8217;ve created since upgrading to Leopard is going to be owned by root and unwritable by their normal user. This isn&#8217;t hard to fix but who knows what other weird issues they&#8217;ll see.  Yuck.  Clean install highly recommended.</p>
<p>There are obvious reasons why having all your apps running with root privileges is bad, especially if your machine is being used by non-admin users.</p>
<p>It&#8217;s interesting that a single bit flag can give you super user privileges on your own machine.  If at least half dozen of my customers had this problem, then there must be thousands of users out there running as root.  At least one person at Apple is now aware of the issue, so hopefully there will eventually be a fix for this.</p>
<p>What exactly caused this bit to be set for these unfortunate users?  This is the one question we still don&#8217;t have an answer to.  </p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fmacdaddyworld.com%2F2007%2F12%2F05%2Fleopard-how-to-be-a-super-user%2F';
  addthis_title  = 'Leopard%3A+How+to+be+a+super+user';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://macdaddyworld.com/2007/12/05/leopard-how-to-be-a-super-user/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>There&#8217;s Something About Input Managers</title>
		<link>http://macdaddyworld.com/2007/11/06/theres-something-about-input-managers/</link>
		<comments>http://macdaddyworld.com/2007/11/06/theres-something-about-input-managers/#comments</comments>
		<pubDate>Wed, 07 Nov 2007 03:39:58 +0000</pubDate>
		<dc:creator>ken</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://macdaddyworld.com/?p=43</guid>
		<description><![CDATA[In brief, an Input Manager is a plugin architecture in Cocoa, originally intended as a way to provide alternative text input methods to NSTextViews.  Whenever a Cocoa application launches, it loads all the Input Managers that it finds in the InputManagers folders.  Apple provides sample code with their dev tools for making an [...]]]></description>
			<content:encoded><![CDATA[<p><img src='http://macdaddyworld.com/wp-content/uploads/2007/11/bundle.jpg' alt='Bundle' class="alignright" />In brief, an Input Manager is a plugin architecture in Cocoa, originally intended as a way to provide alternative text input methods to NSTextViews.  Whenever a Cocoa application launches, it loads all the Input Managers that it finds in the InputManagers folders.  Apple provides sample code with their dev tools for making an Input Manager called HexInputServer.</p>
<p>Input Manager plugins are now commonly used as a quick and easy way to make plugins for any Cocoa app.  At Ecamm, we use a single simple Input Manager, which loads any of our plugins that you have installed such as <a href="http://ecamm.com/mac/dockstar/">DockStar</a>, <a href="http://ecamm.com/mac/iglasses/">iGlasses</a>, or <a href="http://ecamm.com/mac/callrecorder/">Call Recorder</a> into their appropriate applications.  </p>
<p><b>The Mark Twain Effect</b></p>
<p>We received a lot of emails in the months leading up to Leopard with people asking, &#8220;Hey, I heard Input Managers are not going to work in Leopard. <img src='http://macdaddyworld.com/wp-content/uploads/2007/11/death.jpg' alt='paul' class="alignleft" /> What are you going to do?&#8221;  I don&#8217;t know where they heard this, because at no point in the many Leopard pre-releases did Apple completely remove Input Manager support.  In short, <b>rumors of their death were greatly exaggerated.</b>  </p>
<p>We worked our butts off and on October 26th, when the final release of OS X 10.5 rolled off the factory floor, all of our Input Manager-based plugins were ready for Leopard and working quite well.  </p>
<p><b>The Truth About Input Managers</b></p>
<p>So what&#8217;s the deal, what are we doing about it you might ask?<br />
<img src='http://macdaddyworld.com/wp-content/uploads/2007/11/images.jpg' alt='sharp edges' class="alignright" /><br />
In response to security concerns about InputManagers, Apple decided to place a whole slew of new restrictions on whether or not to allow them to load into apps.  These restrictions are very briefly summarized in the <A href="http://developer.apple.com/releasenotes/Cocoa/AppKit.html#NSInputManager">10.5 AppKit Release Notes</a>, and I&#8217;ll excerpt that here:</p>
<ol>
<li> The valid installation is now restricted to the /Library/InputManagers folder only. Bundles in other locations are silently ignored.</li>
<li> All the files in the bundle and /Library/InputManagers folder itself must be owned by the root user and admin group. No files inside the bundle can have group or other write permissions.</li>
<li> Processes running with the root privilege (getuid() == 0 or geteuid() == 0) cannot load any bundle input manager.</li>
<li> Processes running with the wheel group privilege cannot load any bundle input manager.</li>
<li> The process must be in the active workspace session at the time of loading the bundles.</li>
<li> The process must not be tainted by changing user or group id (checked by issetugid()).</li>
<li> No 64-bit processes can load any bundle input managers.</li>
</ol>
<p></p>
<p><b>So what does it all mean?</b></p>
<p>Let&#8217;s go over each restriction in detail:</p>
<p><b>1. The valid installation is now restricted to the /Library/InputManagers folder only. Bundles in other locations are silently ignored.</b></p>
<p>On 10.4 and earlier, Input Managers can be installed in the root Library (/Library/InputManagers) or your user Library (/Users/[your user]/Library/InputManagers).  If there is an Input Manager with the same name in both places, it completely ignores the one in the root Library and uses the home Library instead.</p>
<p>On 10.5, only Input Managers in the root Library are allowed to load.  However, if there&#8217;s an Input Manager with the same name in the home Library, it will ignore the one in the root Library and load neither.</p>
<p>Ecamm&#8217;s Input Manager has always lived in the root Library so this change did not affect us.  Additionally, because people sometimes manually move stuff around, our installer has always zapped any Ecamm Input Manager it finds in the home Library.</p>
<p>This change requires all Input Managers be global (affecting all users).  There&#8217;s no longer any way for developers to provide the option to install only for the current user.  This will be a real pain for unprivileged users, as they will no longer be able to install Input Managers without an admin password.  We did have a customer who is an instructor, and uses <a href="http://ecamm.com/mac/callrecorder">Call Recorder</a> in a locked-down computer lab environment. We had helped him install Call Recorder in the user Library. This will no longer be possible, at least not possible using Input Managers.</p>
<p><b>2. All the files in the bundle and /Library/InputManagers folder itself must be owned by the root user and admin group. No files inside the bundle can have group or other write permissions.</b></p>
<p>In 10.5, every file in an Input Manager plugin&#8217;s directory is recursively checked to make sure they meet these ownership and permissions requirements.  Additionally, the InputManagers directory itself must meet these same requirements.  </p>
<p>In a pinch, the following commands can be used to fix ownership and permissions of the InputManagers folder:</p>
<p><code>sudo chown -R root:admin /Library/InputManagers<br />
sudo chmod -R go-w /Library/InputManagers</code></p>
<p>As of their latest versions, the Ecamm installers automatically fix permissions and ownership.  </p>
<p>This requirement was the main hurtle to getting Input Managers working on Leopard, but it makes sense to have these requirements if the goal is make this all safer.</p>
<p><b>3. Processes running with the root privilege (getuid() == 0 or geteuid() == 0) cannot load any bundle input manager.</b></p>
<p>This one is pretty self explanatory as they&#8217;ve given the code they&#8217;re using to make the check.  If getuid() == 0 , it means you&#8217;re logged into your Mac as root.  I&#8217;m not sure why someone would do this or if it&#8217;s even possible.  geteuid() == 0 would indicate that the process is running effectively as root (e is for effective). A process is running effectively as root if you run it using sudo, if it is started programmatically using <code>AuthorizationExecuteWithPrivileges</code>, or if it&#8217;s running with the setuid bit.</p>
<p>This requirement seems like overkill.  The Input Manager has to be owned by root per #2, so why can&#8217;t root run its own plugin?  Oh well, no big deal.  This keeps Input Managers out of sketchy places like loginwindow.</p>
<p>UPDATE: We&#8217;ve had a handful of users with all their apps running with geteuid()==0.  We don&#8217;t yet know why it happens.</p>
<p><b>4. Processes running with the wheel group privilege cannot load any bundle input manager.</b></p>
<p>In 10.5, the process&#8217;s primary group cannot be wheel (wheel is the name of the root group, gid == 0).  Both getgid() and getegid() are checked for 0.<br />
Additionally, the process owner&#8217;s supplementary groups are checked for wheel. </p>
<p>This last bit is the one that caught us off guard.  We eventually determined that a handful of users who reported problems getting our plugins to load were actually failing this requirement.  Their main admin user was a member of the wheel group!  This situation is most likely the result of migrating a user account forward from OS X 10.1 (Puma) or earlier, where all admin users were added to the wheel group by default. </p>
<p>If our installer finds that the current user has wheel in its supplemental group list, it simply removes it.  Because of the way Cocoa is checking the supplemental groups, a full reboot is required before the change takes effect and Input Managers will load.</p>
<p><b>5. The process must be in the active workspace session at the time of loading the bundles.</b></p>
<p>Having an <b>inactive</b> workspace session means that your user is currently switched out via &#8220;Fast User Switching&#8221;.  Fast User Switching allows user B to login without making user A, who was already logged in, have to quit all his programs.  It&#8217;s then possible to quickly switch back and forth between the two users.</p>
<p>Since Input Managers load when an application starts, I&#8217;m not completely sure how an application can start while a user is switched out or what the implications of this are.  Anyone have an idea?  </p>
<p><b>6. The process must not be tainted by changing user or group id (checked by issetugid()).</b></p>
<p>issetugid() makes sure that neither setuid nor setgid have been called.  In short, this function makes sure that the process is currently running with the same uid and gid that it was given at birth (execve).</p>
<p><b>7. No 64-bit processes can load any bundle input managers.</b></p>
<p>This is an interesting requirement.  I can&#8217;t think of any good reason for this. </p>
<p>It turns out that checks 2 through 6 are not made when running in 64-bit. Instead, the validation routine simply returns NO.</p>
<p>If they were to allow 64-bit Input Managers, and we actually wanted to have them load into a 64-bit app, we&#8217;d simply have to rebuild them with 64-bit architectures.</p>
<p>If you thought things got confusing back when binaries were PowerPC, Intel, or both (Universal), then you&#8217;re in for a treat.  There&#8217;s now up to 4 possible architectures that can be in one mach-o file: PowerPC, Intel, PowerPC 64-bit, and Intel 64-bit. The dynamic loader can&#8217;t mix and match architecture types inside one process.  So if you want a plugin to load into a 64-bit application, the plugin will have to be built with 64-bit as one of its architectures.  To get people around problems like this, Apple has provided a &#8220;Open as 32 Bit&#8221; checkbox next to the &#8220;Open using Rosetta&#8221; checkbox.  If, for example, Photoshop is made 64-bit capable, then you&#8217;ll need to use this new checkbox if you want it to be able to load any of your &#8220;old&#8221; 32-bit-only plugins.</p>
<p>Another problem plugin developers are going to have on Leopard involves the new Garbage Collection (GC) in Objective-C 2.  A process running with GC turned on cannot load non-GC plugins. It&#8217;s a little bit more complicated than this, but I won&#8217;t go into details.</p>
<p><B>A strange turn of events</b></p>
<p>As a result of check #3, Input Managers no longer load into certain processes where you&#8217;d probably agree you don&#8217;t want Input Managers.  </p>
<p>For example, on 10.4 and earlier, Input Managers load into loginwindow. This is no longer the case on 10.5. </p>
<p>However, in a very interesting turn of events, Input Managers now load into the Finder.  Go figure. <img src='http://macdaddyworld.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fmacdaddyworld.com%2F2007%2F11%2F06%2Ftheres-something-about-input-managers%2F';
  addthis_title  = 'There%26%238217%3Bs+Something+About+Input+Managers';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://macdaddyworld.com/2007/11/06/theres-something-about-input-managers/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The World Before Later On</title>
		<link>http://macdaddyworld.com/2007/09/27/the-world-before-later-on/</link>
		<comments>http://macdaddyworld.com/2007/09/27/the-world-before-later-on/#comments</comments>
		<pubDate>Fri, 28 Sep 2007 02:25:47 +0000</pubDate>
		<dc:creator>ken</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Leopard]]></category>

		<guid isPermaLink="false">http://macdaddyworld.com/?p=42</guid>
		<description><![CDATA[To quote from the immortal words of They Might Be Giants:

&#8220;Where&#8217;s my hovercraft?
Where&#8217;s my jet pack?
Where&#8217;s the font of acquired wisdom that eludes me now?&#8221;
Sometimes it seems like we really are stuck in a World Before Later On, but then, when you least expect it, you realize that it&#8217;s the future. The future, suddenly, is [...]]]></description>
			<content:encoded><![CDATA[<p>To quote from the immortal words of <a href="http://tmbg.com/">They Might Be Giants</a>:<br />
<img src="http://upload.wikimedia.org/wikipedia/commons/6/61/Rocket_Belt_general_view.png" class=alignright width=150 height=176><br />
<em>&#8220;Where&#8217;s my hovercraft?<br />
Where&#8217;s my jet pack?<br />
Where&#8217;s the font of acquired wisdom that eludes me now?&#8221;</em></p>
<p>Sometimes it seems like we really are stuck in a World Before Later On, but then, when you least expect it, you realize that it&#8217;s the future. The future, suddenly, is now. </p>
<p><b>Secure Future</b></p>
<p>Take this comment from deep in the Security framework for example:<br />
<code><br />
/*<br />
...	You need to aquire [sic] this right to be able to perform a AuthorizationExecuteWithPrivileges() operation.  In addtion [sic] to this right you should obtain whatever rights the tool you are executing with privileges need to perform it's [sic] operation on your behalf.  Currently no options are supported but you should pass in the full path of the tool you wish to execute in the value and valueLength fields.  <b>In the future we will limit the right to only execute the requested path</b>, and we will display this information to the user.<br />
*/<br />
</code></p>
<p>I was in the process of debugging something that used to work but had stopped working on a new version of OS X.  Suddenly I realized that the future was here, now.  It sent shivers down my Spine.</p>
<p><b>Corrupt Future</b></p>
<p>Remember floppy disks?  Remember colorful 800kb floppy disks?  I clearly remember them, and will admit to having boxes full of hundreds of them. <a href="http://www.flickr.com/photos/foobar/300507294/" title="Disk Avalanche"><img src="http://farm1.static.flickr.com/109/300507294_abdcb31c78_m.jpg" width="240" height="180" alt="Disk Avalanche" class=alignright /></a> They&#8217;re filled with everything Glen and I did on a computer for 10 years: From 1988 when we got our first Mac, up until when floppy disks went the way of ADB, built-in modems, trackballs, Netscape, and the Palm Pilot.  In fact, as early as 1998, the <a href="http://support.apple.com/specs/imac/iMac.html">very first iMac</a> boldly omitted a floppy disk drive. So it&#8217;s been nearly 10 years since Apple began phasing out the little suckers. </p>
<p>To get back to my point: I also clearly remember conversations to the effect of, &#8220;Someday in the future we won&#8217;t be able to use these disks. We won&#8217;t have a computer that reads them or even programs that will open the files. Also, aren&#8217;t these things only supposed to last about 15 years before going bad?&#8221;</p>
<p>Well, I do still have a <a href="http://www.flickr.com/photos/foobar/300507794/">computer that can read the disks</a>&#8230; but all of the word processing files are in Microsoft Works 2.0 format.  Guess what?  Nothing reads that format anymore.  Most of the drawings I did when I was 10 are in SuperPaint 1.0 or CricketPaint.  Not sure how I&#8217;ll look at those again.  You might be interested to know that Preview.app will open MacPaint files.  Maybe a running inside joke at Apple?</p>
<p>Oh yeah, guess what else.  Most of the disks that date from before 1992 have bad blocks&#8230; Yeah&#8230; they&#8217;re dropping like flies.  </p>
<p>The future is now.</p>
<p><b>Unexpected Futures</b></p>
<p>With OS X 10.5 due out next month, and likely a team in Cupertino already hard at work on OS X 10.6, somebody in Apple marketing is tossing and turning in their sleep: &#8220;How long can we keep raising the number? How many big cat varieties are there anyways?  What if we run out of cool sounding species?  What happens when we get past 10.9?  10.10?  I just don&#8217;t think that sounds right. I still can&#8217;t even believe they went with 10.4.10. Oh god I think I&#8217;m going to be fired.&#8221;</p>
<p><b>Certain Future</b></p>
<p>If there&#8217;s one thing we can be sure of, it&#8217;s that the future will arrive.  </p>
<p>And I&#8217;ll close with some more They Might Be Giants:<br />
<em>You&#8217;re older than you&#8217;ve ever been.<br />
And now you&#8217;re even older.<br />
And now you&#8217;re older still.</em></p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fmacdaddyworld.com%2F2007%2F09%2F27%2Fthe-world-before-later-on%2F';
  addthis_title  = 'The+World+Before+Later+On';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://macdaddyworld.com/2007/09/27/the-world-before-later-on/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>We&#8217;re Renegades!</title>
		<link>http://macdaddyworld.com/2007/09/19/were-renegades/</link>
		<comments>http://macdaddyworld.com/2007/09/19/were-renegades/#comments</comments>
		<pubDate>Thu, 20 Sep 2007 02:41:55 +0000</pubDate>
		<dc:creator>glen</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://macdaddyworld.com/?p=41</guid>
		<description><![CDATA[Antone Gonsalves posted a great article to Information Week on Friday titled Renegade Developers Zero In On Apple iPhone OS.  It includes some hilarious and informative quotes from yours truly.  Here&#8217;s my favorite quote:
But so-called &#8220;native&#8221; applications are not for mainstream consumers. &#8220;There&#8217;s no easy way to get applications on the iPhone,&#8221; Aspeslagh [...]]]></description>
			<content:encoded><![CDATA[<p>Antone Gonsalves posted a great article</A> to Information Week on Friday titled <A HREF="http://www.informationweek.com/showArticle.jhtml?articleID=201806640"><B><I>Renegade Developers Zero In On Apple iPhone OS</i></B></A>.  It includes some hilarious and informative quotes from yours truly.  Here&#8217;s my favorite quote:<BR></p>
<p><IMG SRC="/rengd.jpg" CLASS=alignright><I>But so-called &#8220;native&#8221; applications are not for mainstream consumers. &#8220;There&#8217;s no easy way to get applications on the iPhone,&#8221; Aspeslagh said. &#8220;You have to make changes to your iPhone, and that really freaks people out. It&#8217;s a procedure that could turn your iPhone into a paperweight, if it&#8217;s not done correctly.&#8221;</I></p>
<p>Fun stuff.  Let&#8217;s just hope it all has a happy ending.</p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fmacdaddyworld.com%2F2007%2F09%2F19%2Fwere-renegades%2F';
  addthis_title  = 'We%26%238217%3Bre+Renegades%21';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://macdaddyworld.com/2007/09/19/were-renegades/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
