<?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/"
	xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
>

<channel>
	<title>broken digits &#187; Development</title>
	<atom:link href="http://www.brokendigits.com/category/development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.brokendigits.com</link>
	<description>and broken promises</description>
	<lastBuildDate>Mon, 26 Apr 2010 17:34:33 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<!-- podcast_generator="Blubrry PowerPress/1.0.8" mode="advanced" entry="normal" -->
	<itunes:new-feed-url>http://www.brokendigits.com/category/music/feed/</itunes:new-feed-url>
	<itunes:summary>Listen to uninterrupted progressive house, tech house and electro mixsets, featuring the best and greatest of modern underground dance music mixed by DJ and all around great guy, DJBS</itunes:summary>
	<itunes:author>DJBS</itunes:author>
	<itunes:explicit>no</itunes:explicit>
	<itunes:image href="http://www.brokendigits.com/podcast.jpg" />
	<itunes:owner>
		<itunes:name>DJBS</itunes:name>
		<itunes:email>ben@brokendigits.com</itunes:email>
	</itunes:owner>
	<managingEditor>ben@brokendigits.com (DJBS)</managingEditor>
	<itunes:subtitle>broken digits</itunes:subtitle>
	<itunes:keywords>progressive house, electro, tech house, dj, mixset, dance, music</itunes:keywords>
	<image>
		<title>broken digits &#187; Development</title>
		<url>http://www.brokendigits.com/wp-content/plugins/powerpress/rss_default.jpg</url>
		<link>http://www.brokendigits.com/category/development/</link>
	</image>
	<itunes:category text="Music" />
		<item>
		<title>Cappuccino&#8217;s FlickrDemo in 45 lines of jQuery</title>
		<link>http://www.brokendigits.com/2008/09/05/cappucinos-flickrdemo-in-45-lines-of-jquery/</link>
		<comments>http://www.brokendigits.com/2008/09/05/cappucinos-flickrdemo-in-45-lines-of-jquery/#comments</comments>
		<pubDate>Fri, 05 Sep 2008 17:19:42 +0000</pubDate>
		<dc:creator>ben</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.brokendigits.com/?p=59</guid>
		<description><![CDATA[When I first saw 280 North&#8217;s &#8220;280 Slides&#8221; application, I have to admit I was very impressed. They built a truly native-feeling (well, if you&#8217;re on a Mac) tool on the standard web platform. Not an easy feat, and clearly some big brains operating on the problem.

But the more I read about their toolkit (Objective-J), [...]]]></description>
			<content:encoded><![CDATA[<p>When I first saw 280 North&#8217;s &#8220;<a href="http://280slides.com/">280 Slides</a>&#8221; application, I have to admit I was very impressed. They built a truly native-feeling (well, if you&#8217;re on a Mac) tool on the standard web platform. Not an easy feat, and clearly some big brains operating on the problem.</p>

<p>But the more I read about their toolkit (Objective-J), the more unsettled I felt. It&#8217;s the same feeling I get when I see tools like Flex. These are some seriously complicated development environments, meant to abstract away to the fundamental building blocks of the web.</p>

<p>When 280 North released their Objective-J toolkit a few days ago, called <a href="http://cappuccino.org/">Cappuccino</a>, I poured through their documentation and demos to get my head around what they had built. And it&#8217;s very impressive. But as a jQuery addict, I didn&#8217;t like their dismissal of it as at tool for making small adjustments to a web page. I feel that you can build a full-fledged web application in jQuery just as simply &#8212; or simpler &#8212; by embracing HTML/CSS as a layout engine, and JavaScript as a scripting language.</p>

<p>So I tackled re-implementing their FlickDemo application (several hundred lines of Objective-J) using jQuery and jQuery UI. It took about 3 hours to build, and ended up being about 45 lines of code (plus the frameworks, of course), and just under 200 lines of CSS declarations.</p>

<p><strong>What I didn&#8217;t do:</strong> I didn&#8217;t bother hacking the CSS to work in Internet Explorer. It&#8217;s not that it couldn&#8217;t be done &#8212; jQuery supports it just fine &#8212; I&#8217;m just lazy. So you&#8217;ll need a modern WebKit or Gecko browser to see the demo. I also didn&#8217;t implement the drop shadows that Cappuccino uses on their images.</p>

<p>Also, the jQuery version doesn&#8217;t take over all you keyboard shortcuts, so you can still navigate around in your browser.</p>

<p><a href="http://cappuccino.org/learn/demos/FlickrPhotoDemo/">Original Cappuccino version</a></p>

<p><a href="/flickrDemo-jQuery/index.html">My jQuery version</a></p>

<p>Download the source here: <a title="flickrDemo-jQuery.zip" href="http://www.brokendigits.com/wp-content/uploads/2008/09/flickrdemo-jquery.zip">flickrDemo-jQuery.zip</a></p>

<p><strong>Update</strong>: Due to popular demand, I&#8217;ve changed the behavior of the slider so the image size updates in realtime. Total change: one word.</p>

<p><strong>Update 2</strong>: Alexander Simmerl was nice enough to provide an upgrade to the image loading, bulking up the code by a few lines but greatly improving the load animation. In the comments, dak contributed a 2-line CSS fix for the inline-block layout problems in FF2 and IE7, which I&#8217;ve also merged.</p>

<p>I think this is as far as I&#8217;ll take the demo. Ultimately, it&#8217;s not that compelling of an application (but it does make a good demo). To respond to some of the criticism I&#8217;ve read, my point was not to argue that jQuery was a drop-in replacement for Cappuccino. Clearly there&#8217;s a ton of nuances to the Cappuccino runtime that would need to be carefully reimplemented if we wanted a 100% identical demo. My point is that it&#8217;s quite simple to do web application development in jQuery, and something as heavy as Cappuccino is not the only option (and in many cases, probably not the best option). I see Cappuccino as a kind of AIR-in-reverse (native apps that run in a web browser!) and possibly an interesting technology path for coders that are already familiar with Cocoa but don&#8217;t have experience with the nuances of direct web development. One thing I&#8217;m sure of is HTML/CSS/JavaScript are not going anywhere&#8230; they may be complimented by frameworks like Cappuccino, but the core will remain.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brokendigits.com/2008/09/05/cappucinos-flickrdemo-in-45-lines-of-jquery/feed/</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
		<item>
		<title>We don&#8217;t need IE8&#8217;s &#8220;Doctype 2.0&#8243;, we need effective browser deprication</title>
		<link>http://www.brokendigits.com/2008/01/24/we-dont-need-ie8s-doctype-20-we-need-effective-browser-deprication/</link>
		<comments>http://www.brokendigits.com/2008/01/24/we-dont-need-ie8s-doctype-20-we-need-effective-browser-deprication/#comments</comments>
		<pubDate>Thu, 24 Jan 2008 17:30:16 +0000</pubDate>
		<dc:creator>ben</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.brokendigits.com/2008/01/24/we-dont-need-ie8s-doctype-20-we-need-effective-browser-deprication/</guid>
		<description><![CDATA[A few days ago, the web development community exploded into an uproar concerning the IE team&#8217;s plan to introduce a new method of triggering standards compliance mode in Internet Explorer 8. Web developers, with  justifiable but thinly veiled vitriol, ripped into Microsoft and the Web Standards Project for going along with this scheme.

In essence, [...]]]></description>
			<content:encoded><![CDATA[<p>A few days ago, the web development community exploded into an uproar concerning the IE team&#8217;s plan to introduce a <a href="http://www.alistapart.com/articles/beyonddoctype/">new method of triggering standards compliance mode in Internet Explorer 8</a>. Web developers, with  justifiable but thinly veiled vitriol, ripped into Microsoft and the Web Standards Project for going along with this scheme.</p>

<p>In essence, what the IE team wants is web developers to &#8220;opt-in&#8221; to new renderer features using a custom meta tag or HTTP header. Pages will then be frozen at that renderer, ensuring they remain consistently rendered from now until the end of time (or at least, until Microsoft stops supporting that rendering model or breaks it accidentally). We went down this path once before, using the Doctype declaration to differentiate between &#8220;quirks&#8221; mode and &#8220;standards&#8221; mode. IE7 is, unfortunately, also quirky in standards mode, so apparently we need a new &#8220;super-standards&#8221; mode for the next version (and so forth).</p>

<p>From the perspective of the IE team, this solution makes sense. They can effectively freeze HTML rendering at today&#8217;s IE7 baseline and proceed with enhanced features in later releases. Maybe I&#8217;m looking at this the wrong way, but I never considered HTML content to perfect screenshots that should remain immutable. Well designed HTML is flexible &#8212; it can be rendered by a desktop browser, or stripped to it&#8217;s barest essentials by a mobile parser. (Note that I&#8217;m drawing a clear line between web content and web applications &#8212; web apps are by their very nature a snapshot of the present). The IE team should be encouraged to fix their mistakes at the expense of breaking badly developed content, just as users should be encouraged to update their rendering engines as frequently as possible. Notice that the IE team is the only browser developer that seems to have this problem.</p>

<p>As a web designer and developer, apparently I&#8217;m supposed to help Microsoft maintain their dominance in the web browser market by tagging my pages for their benefit. But what do I get out of the bargain?</p>

<p>Let&#8217;s assume for a moment that IE8 has been released with a spectacular new rendering engine, on par with Firefox or Safari or Opera in terms of &#8220;write once, render anywhere&#8221;. Let&#8217;s also assume I have a pretty good idea of what my target audience&#8217;s browser technology will be: 50% &#8220;IE8 compatible&#8221; (meaning IE8/FF/Safari etc), 30% IE7, and 20% IE6. None of these markets are small enough to ignore or deliver reduced functionality to. I would <em>still</em> need to optimize for three different version of Internet Explorer. IE7 doesn&#8217;t go away, and neither does IE6. I can&#8217;t just freeze the renderer at the IE7 level &#8212; I want to use all those fancy new features in IE8 that have been available in alternate browsers for years now.</p>

<p>So where does this leave me, the web developer? Still coding for multiple releases of IE. In fact, the problem gets <em>worse</em> as Microsoft accelerates it&#8217;s release schedule &#8212; people simply don&#8217;t update quickly enough. IE6 is still estimated to have a 35% market share &#8212; over a year after IE7&#8217;s release. How do we solve the problem of supporting multiple renderers?</p>

<p>Simple. We deprecate IE6. We no longer support it. And we provide a clear, direct upgrade path that involves little to no effort on the part of the user. Maybe this involves just swapping out the rendering engine, leaving the browser&#8217;s UI intact (to minimize the impact on the user&#8217;s day-to-day experience interacting with their browser). I&#8217;m certain part of the resistance to upgrading to IE7 today is the horrendous overhaul to the UI that occurred between versions. </p>

<p>Apple doesn&#8217;t seem to have any problems keeping it&#8217;s Safari users (or iTunes users) on the latest release through an effective software update system. Firefox also has a fairly effective system, although it could be improved. But web developers don&#8217;t complain about supporting multiple, ancient versions of those browsers because the system, and the users, are proactive about updates. </p>

<p>We need to get over the idea of preserving out-of-date content as a snapshot of the day it was released. We need to stop worrying about breaking 5-year-old browsers and just get on with it. </p>

<p><em>Update</em>: After further reflection, there is another (possibly better) approach Microsoft could take. They could include the IE6 and IE7 rendering engines in each new update, and provide a user-accessible toggle for enabling it on specific sites. Using the info bar, much in the same way they do when blocking popups or enabling ActiveX downloads, a message could be displayed along the lines of &#8220;This page may not be compatible with the Internet Explorer 8 display system. Would you like to switch to Internet Explorer 6 compatibility mode for this site?&#8221; IE would remember the setting and use it on subsequent visits. The compatibility message could be triggered by detecting known CSS hacks, or even based on the Last-Modified date of the document.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brokendigits.com/2008/01/24/we-dont-need-ie8s-doctype-20-we-need-effective-browser-deprication/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Calendar Synchronization, continued.</title>
		<link>http://www.brokendigits.com/2007/10/09/calendar-synchronization-continued/</link>
		<comments>http://www.brokendigits.com/2007/10/09/calendar-synchronization-continued/#comments</comments>
		<pubDate>Tue, 09 Oct 2007 21:28:41 +0000</pubDate>
		<dc:creator>ben</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://www.brokendigits.com/2007/10/09/calendar-synchronization-continued/</guid>
		<description><![CDATA[A few days ago I posted about using Spanning Sync and Proximity to synchronize iCal, Google Calendar and my cell phone (a k790, although any phone supported by iSync should work). 

It turns out there is a free alternative to Spanning Sync called GCALDaemon, which is a bit more work to get running but a [...]]]></description>
			<content:encoded><![CDATA[<p>A few days ago <a href="http://www.brokendigits.com/wp-admin/post.php?action=edit&#038;post=30">I posted about</a> using Spanning Sync and Proximity to synchronize iCal, Google Calendar and my cell phone (a k790, although any phone supported by iSync should work). </p>

<p><p>It turns out there is a free alternative to Spanning Sync called GCALDaemon, which is a bit more work to get running but a decent alternative if you don&#8217;t want to pay for Spanning Sync. </p></p>

<p><span id="more-32"></span></p>

<p><a href="http://gcaldaemon.sourceforge.net/">GCALDaemon</a> is, unfortunately, a Java application, which makes me a bit uncomfortable running it all the time on my Mac. My experience with doing development using Eclipse and Tomcat is that my machine would need to be rebooted almost exactly every 7 days or it would start behaving erratically. I have no idea if this is related to the Java runtime or not, but it was still less than ideal having GCALDaemon run in the background 24/7. </p>

<p><p>Luckily, for my purposes &#8212; since I wasn&#8217;t really concerned with keeping Google Calendar and iCal<strong> perfectly</strong> in sync &#8212; I could launch GCALDaemon in &#8220;standalone&#8221; mode using Proximity and sync all my devices at the same time.
To use this setup instead of Spanning Sync, do the following:</p>
<ol>
<li>Install GCALDaemon according to the instructions <a href="http://gcaldaemon.sourceforge.net/usage12.html">on their site</a>. Stop without setting it up as a service.</li>
<li>Setup GCALDaemon to sync your iCal calendars with Google Calendar by <a href="http://gcaldaemon.sourceforge.net/usage13.html">following the instructions</a>. There is a simpler method for determining which corestorage.ics file is mapped to your local calendars: next to it you will find an &#8220;info.plist&#8221; file which contains the name of the calendar.</li>
<li>GCALDaemon has a feature which will run some AppleScript after each update. This is necessary if you keep iCal running all the time, as iCal does not check for changes to the ics file except on load. The default installation contains some code for switching the calendar view, but on my machine this failed to reload the calendars. The only solution I could make work was restarting iCal. Change the contents of GCALDaemon/bin/reload-calendar.scpt to: <br/>
<code>tell application "iCal"
        save
        quit
        delay 2
end tell
tell application "iCal" to activate</code><br />
and ensure that you have turned on the Reload Calendar script option in the configuration editor.
</li>
<li>Now you can execute the full synchronization from the Entering Proximity script by adding the following line:<br />
    <code>
do shell script "/usr/local/sbin/GCALDaemon/bin/sync-now.sh"
    </code><br /></li>
</ol>
<p>The synchronization process will now take a few moments longer, but it&#8217;s worthwhile if you&#8217;re uncomfortable running a GCALDaemon as a service. It also solves the issue of refreshing iCal&#8217;s calendars after each update.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brokendigits.com/2007/10/09/calendar-synchronization-continued/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Perfect Storm of Calendar Synchronization: iCal, Google Calendar and Cell Phone</title>
		<link>http://www.brokendigits.com/2007/10/02/the-perfect-storm-of-calendar-synchronization-ical-google-calendar-and-cell-phone/</link>
		<comments>http://www.brokendigits.com/2007/10/02/the-perfect-storm-of-calendar-synchronization-ical-google-calendar-and-cell-phone/#comments</comments>
		<pubDate>Tue, 02 Oct 2007 20:31:56 +0000</pubDate>
		<dc:creator>ben</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://www.brokendigits.com/2007/10/02/the-perfect-storm-of-calendar-synchronization-ical-google-calendar-and-cell-phone/</guid>
		<description><![CDATA[There was a time when I could keep my entire schedule in my head. Years of university test times and due dates were dutifully tracked by my brain. In the intervening years, however, I seem to have killed most of my long and short term memory with booze &#8212; or maybe I&#8217;m just a whole [...]]]></description>
			<content:encoded><![CDATA[<p>There was a time when I could keep my entire schedule in my head. Years of university test times and due dates were dutifully tracked by my brain. In the intervening years, however, I seem to have killed most of my long and short term memory with booze &#8212; or maybe I&#8217;m just a whole lot busier.</p>

<p>In any case, I&#8217;ve been facing an increased sense of panic every time I try to book an appointment. What if I have a conflict? Krista keeps her entire life in the pages of a daily calendar, so I&#8217;ve attempted to follow suit, digital style.</p>

<p>This isn&#8217;t the first time I&#8217;ve tried, but every previous attempt failed for one reason or another:
<ul>
    <li>Google Calendar: I love having my schedule available from pretty much any machine with an internet connection, but launching it seems horribly slow and the whole experience is oddly divorced from everything else on my Mac. I could write a whole other post (and maybe I will) about my migration from Windows native apps to Web Applications, and back to native Mac apps. I think it says a lot about how good OS X&#8217;s integrated tools are, though, that I&#8217;ve taken that path.</li>
    <li>iCal: really, a beautiful calendar, but I missed the &#8220;everywhere-ness&#8221; of Google Calendar. I can do a one-way sync from Google to iCal using iCal&#8217;s Subscriptions, but anything I add to my local calendar won&#8217;t get reflected back. This is critical, as I&#8217;d like to be able to check the calendar from any other machine, including my cell.</li>
    <li>Sony Ericsson k790&#8217;s built-in Calendar application: a surprisingly full-featured little calendar tool. For my process to work, I need to be able to quickly add events on the go. iSync takes care of synchronizing iCal and the k790, but I&#8217;m too forgetful (and lazy) to sync it myself whenever changes are made.</li>
</ul>
<span id="more-30"></span>To achieve the Omega Point of calendar synchronization, I needed a few extra tools.
<ol>
    <li><a href="http://www.spanningsync.com/">Spanning Sync</a> &#8211; the only part of the system that will cost extra money, Spanning Sync works perfectly for two-way synchronization between iCal and Google Calendar.</li>
    <li><a href="http://www.apple.com/downloads/macosx/system_disk_utilities/proximity.html">Proximity</a> &#8211; a nice little free application that monitors the presence of a bluetooth enabled device (in most cases, a phone) and runs AppleScripts based on it&#8217;s appearance and disappearance.</li>
</ol>
Most of the heavy lifting was already done by Jesse Hollington at <a href="http://web.mac.com/jhollington/technocrat/The_Technocrat/The_Technocrat.html">The Technocrat</a>. A lot of what I&#8217;m presenting here regarding Proximity is a modification of <a href="http://web.mac.com/jhollington/technocrat/The_Technocrat/Entries/2007/3/18_Bluetooth_Proximity_Detection_on_OS_X.html">his work</a> for my own preferences. His posting gives a very thorough examination of Proximity and some of its other uses, and is well worth a read.</p>

<p>For my purposes, I was mostly interested in having iSync silently keep my phone updated, as well as keeping Address Book attached to the device so I could respond to SMS messages directly on the Mac.</p>

<p>After installing Proximity, I created an Entering Proximity script to manage iSync. I was primarily concerned with keeping the iSync process invisible, which was achieved by adding some application exit status detection to Jesse&#8217;s script. Here&#8217;s what I came up with:
<pre><code>
tell application "Address Book"
if not unsaved then
try
quit
delay 1
end try
end if
end tell
-- Reconnect to the Address Book
do shell script "defaults write com.apple.AddressBook
 ABCheckForPhoneNextTime -boolean true"
try
tell application "Address Book"
launch
end tell</p>

<p>tell application "System Events"
set the visible of process "Address Book" to no
end tell</p>

<p>end try</p>

<p>-- Synchronize the Device
tell application "iSync"
launch
tell application "System Events" to set visible of process
 "iSync" to false
if last sync is less than ((current date) - 900) then
synchronize</p>

<p>repeat while (syncing is true)
delay 5
end repeat
set syncStatus to sync status</p>

<p>if syncStatus = 2 then
-- Success
quit
else
if syncStatus = 3 then
set syncStatus to "completed with warnings"
else if syncStatus = 4 then
set syncStatus to "completed with errors"
else if syncStatus = 5 then
set syncStatus to "last sync cancelled"
else if syncStatus = 6 then
set syncStatus to "last sync failed to complete"
else if syncStatus = 7 then
set syncStatus to "never synced"
end if
display dialog "syncStatus: " &amp; syncStatus
syncStatus
end if
end if
end tell
</code></pre>
<code> </code></p>

<p>I didn&#8217;t bother with an Exiting Proximity script, although there are plenty of entertaining tasks that you could automate in this fashion. I also lowered to update frequency on Proximity to 60 seconds.</p>

<p>The beauty of this system is I can now
<ul>
    <li>add an event using iCal, Google Calendar, or directly on my phone and have it automagically appear across all devices.</li>
    <li>receive reminders, no matter my location.</li>
    <li>share my calendars with friends through Google Calendar.</li>
</ul>
Let&#8217;s hope my semi-functional brain can now recall important events occurring more than 2 days into the future. My relationship probably depends on it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brokendigits.com/2007/10/02/the-perfect-storm-of-calendar-synchronization-ical-google-calendar-and-cell-phone/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Did Music Piracy Fears Kill the iPhone SDK?</title>
		<link>http://www.brokendigits.com/2007/07/21/did-music-piracy-fears-kill-the-iphone-sdk/</link>
		<comments>http://www.brokendigits.com/2007/07/21/did-music-piracy-fears-kill-the-iphone-sdk/#comments</comments>
		<pubDate>Sat, 21 Jul 2007 16:56:24 +0000</pubDate>
		<dc:creator>ben</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://www.brokendigits.com/2007/07/21/did-music-piracy-fears-kill-the-iphone-sdk/</guid>
		<description><![CDATA[One of my favourite ways to get introduced to new music, and to introduce others, is through a simple game called &#8220;revolving DJ&#8221;. It can be played at parties, in your office, or anywhere you can hook an iPod up to a set of speakers. The rules are simple: each participant plays a 3 song [...]]]></description>
			<content:encoded><![CDATA[<p>One of my favourite ways to get introduced to new music, and to introduce others, is through a simple game called &#8220;revolving DJ&#8221;. It can be played at parties, in your office, or anywhere you can hook an iPod up to a set of speakers. The rules are simple: each participant plays a 3 song set in turn until the party ends and everyone goes home. By trying to choose music you think everyone else will enjoy, or is unfamiliar with, you pick up all kinds of new influences.</p>

<p>It was during a lazy Friday afternoon of Revolving DJ and beer than an idea was sparked in my head, regarding the iPhone and the lack of 3rd party native applications. It doesn&#8217;t take too many songs before you long for a method to effortlessly transfer tracks directly from one iPod to the next. A few moments later, someone will inevitably realize &#8220;hmmm, the Zune could actually <strong>do that</strong>&#8220;. Unfortunately, it&#8217;s implementation was so hopelessly crippled by the marketdroids and RIAA-fearing managers at Microsoft that the device was essentially stillborn.</p>

<p>Apple has also built an iPod with WiFi &#8212; it&#8217;s called the iPhone, and while most people are rightfully focusing on the new features of the device (phone, web browser, email client), it&#8217;s also considered one of the best iPods ever built (ignoring the anemic storage for now). The device runs a version of OS X, meaning the only preventing a mobile p2p application that can share music with friends or strangers is a smart programmer and a way to load the application onto the iPhone &#8212; conveniently left out. The Zune crippled it&#8217;s WiFi in firmware, but an open SDK on the iPhone would mean anyone could easily install such an app on their phone. Even better, if you didn&#8217;t already have the p2p app, you could easily jump on the web and download it the moment you needed it. It&#8217;s the viral-social, the dream application for music-heads everywhere, and Apple can&#8217;t stop it without throwing the baby out with the bathwater, which is pretty much what they did by not shipping an SDK for the phone.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brokendigits.com/2007/07/21/did-music-piracy-fears-kill-the-iphone-sdk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
