<?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>David Beck&#039;s Blog</title>
	<atom:link href="http://davidbeckblog.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://davidbeckblog.com</link>
	<description>The ramblings of an obsessed programmer</description>
	<lastBuildDate>Thu, 22 Jul 2010 18:01:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Google Voice Messenger Status</title>
		<link>http://davidbeckblog.com/2010/07/gvmessenger-status/</link>
		<comments>http://davidbeckblog.com/2010/07/gvmessenger-status/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 04:13:24 +0000</pubDate>
		<dc:creator>David Beck</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[App Store]]></category>
		<category><![CDATA[Google Voice Messenger]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://davidbeckblog.com/?p=385</guid>
		<description><![CDATA[Time since Google Voice Messenger was submitted to Apple for approval: Most apps take about a week to get approved. This is what Apple claims, and my own experiences with Bubble Burster have been even better. However, I recently submitted an app that has taken a little longer. When I started it in January, I [...]]]></description>
			<content:encoded><![CDATA[<h4>Time since Google Voice Messenger was submitted to Apple for approval:</h4>
<p style="text-align: center">
<span class="count-around">
	<input type="hidden" value="1274802300" class="start-time" />
	<input type="hidden" value="" class="end-time" />
	
	
	
	<input type="hidden" value="true" class="show-weeks" />
	<input type="hidden" value="true" class="show-days" />
	<input type="hidden" value="true" class="show-hours" />
	<input type="hidden" value="true" class="show-minutes" />
	<input type="hidden" value="true" class="show-seconds" />
	
	
	<!-- whitespace be dambed
	--><!--
	--><span class="number weeks">
		<span class="value">9</span>
		<span class="label">weeks</span>
	</span><!--
	--><span class="number days">
		<span class="value">2</span>
		<span class="label">days</span>
	</span><!--
	--><span class="number hours">
		<span class="value">16</span>
		<span class="label">hours</span>
	</span><!--
	--><span class="number minutes">
		<span class="value">37</span>
		<span class="label">minutes</span>
	</span><!--
	--><span class="number seconds">
		<span class="value">40</span>
		<span class="label">seconds</span>
	</span><!--
	-->
</span>
</p>

<script type="text/javascript" src="http://davidbeckblog.com/wp-content/plugins/count-around/script.js"></script>
<p>Most apps take about a week to get approved. This is what Apple claims, and my own experiences with <a href="http://bubble.davidbeckblog.com/" onclick="pageTracker._trackPageview('/outgoing/bubble.davidbeckblog.com/?referer=');">Bubble Burster</a> have been even better. However, I recently submitted an app that has taken a little longer. When I started it in January, I figured there was a very likely chance that Apple would not allow it. I started the project knowing full well it may never make me any money, because I wanted to be able to use it myself.<span id="more-385"></span></p>
<p>I submitted the app, <a href="http://davidbeckblog.com/google-voice-messenger/">Google Voice Messenger</a>, to Apple on May 25, 2010. On June 2, 2010, the status went from &#8220;Waiting For Review&#8221; to &#8220;In Review&#8221;. That day, according to my analytics software, they opened the App twice on two different devices. That night, I received an email that read as follows.</p>
<blockquote><p>Dear David Beck,</p>
<p>We are currently reviewing an app that you submitted for inclusion on the App Store, and want to let you know that the review process will require additional time. We apologize for the delay and will provide you with an update on the status of your app as soon as possible.</p>
<p>Application Name: Google Voice Messenger</p>
<p>Application Version Number: 1.0</p>
<p>Application SKU: 100012010</p>
<p>Application Apple ID:372709006</p>
<p>If you have any questions or concerns regarding this notice please contact us at appreview@apple.com .</p>
<p>Sincerely,</p>
<p>The iPhone Developer Program</p></blockquote>
<p>This is a fairly common letter to receive from Apple, and given that it was the beginning of WWDC, their biggest event of the year where they introduced the iPhone 4, it&#8217;s no surprise that there were a surge of these letters. Following that there was the release of iOS 4.0 and the iPhone 4 itself. Needless to say Apple was a little bit busy. Nevertheless, while most apps were delayed about a week, I am still awaiting a reply.</p>
<p>On June 18, 2010, I sent the following letter to Apple.</p>
<blockquote><p>Dear App Review Team,</p>
<p>I received a notice that you would require more time to review my App, Google Voice Messenger on June 2, 2010. That was more than 2 weeks ago and more than 3 weeks since I first submitted the App. Is there any specific problems that I should know about? Can you give me any time frame for when it will be approved?</p>
<p>David Beck</p></blockquote>
<p>A few days later, I recieved a standerd reply.</p>
<blockquote><p>Dear Mr. Beck,</p>
<p>Thank you for the email. We apologize for the delay. Your application is still in review but is requiring unexpected additional time. You will be updated with further status as soon as we are able.</p>
<p>We appreciate your continued patience.</p>
<p>Best Regards,</p>
<p>Melody<br />
iPhone Developer Program</p></blockquote>
<p>Apple is nothing but consistent.</p>
<p>On July 8, 2010, out of desperation and friends prodding me, I sent an email to Steve Jobs asking him for any information. In order to maximize my chances I kept it short, sweet and to the point.</p>
<blockquote><p>I uploaded my app, &#8220;Google Voice Messenger&#8221; 6 weeks ago. What is taking so long? Do you have to approve it personally?</p>
<p>David Beck</p></blockquote>
<p>As expected, I have yet to receive a response. Perhaps he couldn&#8217;t download the email because he was holding his phone wrong.</p>
<p>If you aren&#8217;t aware, Google themselves got their <a href="http://techcrunch.com/2009/07/27/apple-is-growing-rotten-to-the-core-and-its-likely-atts-fault/" onclick="pageTracker._trackPageview('/outgoing/techcrunch.com/2009/07/27/apple-is-growing-rotten-to-the-core-and-its-likely-atts-fault/?referer=');">Google Voice app rejected</a> a year ago. The reason Apple cited was that the app “duplicate features that come with the iPhone,” but many surmised that AT&amp;T, the exclusive carrier for the iPhone in the US, had something to do with it.</p>
<p>Why did I even hope that my app would get approved? First and foremost, if you are to believe Apple, their reasoning was that the dialer looked and acted exactly like the built in phone. The problem here is that Google Voice is not a standalone phone service; it requires a phone to route calls through. This means that when you place a call in the Google Voice app, it opens the system phone app that looks just like the app you were just using. This obviously could get very confusing.</p>
<p>My app is a little different in this regard. First, it isn&#8217;t a dialer or a phone. It only focuses on text messages. Text messages don&#8217;t need to be routed through a phone and can be done completely over the internet, and more importantly, completely from within a single app. A user could hide the built in texting app and completely replace it with mine.</p>
<p>The other reason that Apple could have banned the app is if someone at AT&amp;T dennied it. This is definitely a possibility as AT&amp;T would be losing minutes and text messages to Google. Having said that, AT&amp;T has started to loosen the restrictions on their network. In October of 2009, 4 months after Google Voice was banned from the App Store, <a href="http://www.att.com/gen/press-room?pid=4800&amp;cdvn=news&amp;newsarticleid=27207" onclick="pageTracker._trackPageview('/outgoing/www.att.com/gen/press-room?pid=4800_amp_cdvn=news_amp_newsarticleid=27207&amp;referer=');">AT&amp;T lifted the ban on VOIP over the  3G network</a> (Voice Over IP is the ability to make phone calls over the internet without being charged minutes). Likewise, it has started to lift limitations on video over their network.</p>
<p>There could be any number of reason my app is being delayed. Apple certainly hasn&#8217;t communicated with me about any problems or reasoning, so I am left to guess. What seems most reasonable to me is that it requires approval from a lot of big players. Realize that this single app concerns not only Apple, but AT&amp;T and Google as well. Another possibility is that Apple knows something I don&#8217;t; perhaps Google is getting ready to release an official app and Apple is waiting for that to be ready to approve mine. It&#8217;s possible that they are trying to hold it as long as possible to avoid the PR hit when they denny it.</p>
<p>Even through all of this I am still a supporter of the &#8220;walled garden&#8221; approach to the App Store. While it is not without it&#8217;s faults, this instance certainly being one of them, the experience is, in my opinion, worth it. I like not having to worry about viruses as a user. I like not having to worry about payment processing and DRM as a developer. I like that when I tell someone about an app, big or small, no iPhone user ever has to ask how to get it because it&#8217;s the same for all apps. The App Store is a great equalizer for developers. Nowhere else would you find an independent developer facing the same problems as a multi-billion dollar company.</p>
<p>If you want to know the second (well day at least) that something changes, you can enter your email below:</p>
<form action="http://davidbeckblog.com/wp-admin/admin-ajax.php" onsubmit="submitNotify(this, 'gvmessenger'); return false;">
	<style type="text/css">
		
	</style>

	<p class="notify-me" id="gvmessenger" style="clear: both;">
		<input type="hidden" name="list" value="gvmessenger" class="id" />
		<input type="hidden" name="redirect" value="http://davidbeckblog.com/feed/" />
		<input type="hidden" name="action" value="notify_me_send" />
		<input type="submit" value="Notify Me:" class="section" /><!-- whitespace be dambed
		--><input type="text" name="email_address" size="35" class="email" /><!--
		--><span class="status section">
			<span class="loading" style="display: none;"></span>
			<span class="done" style="display: none;"></span>
			<span class="error" style="display: none;"></span>
		</span>
		<br />
	</p>
	<p class="legal privacy"><a href="http://davidbeckblog.com/privacy-policy/">Privacy Policy</a></p>
	<script type="text/javascript" src="http://davidbeckblog.com/wp-content/plugins/notify/script.js"></script>
</form>
]]></content:encoded>
			<wfw:commentRss>http://davidbeckblog.com/2010/07/gvmessenger-status/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>My EBook Conundrum</title>
		<link>http://davidbeckblog.com/2010/07/ebooks/</link>
		<comments>http://davidbeckblog.com/2010/07/ebooks/#comments</comments>
		<pubDate>Sun, 11 Jul 2010 16:03:49 +0000</pubDate>
		<dc:creator>David Beck</dc:creator>
				<category><![CDATA[User Experience]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[iPad]]></category>

		<guid isPermaLink="false">http://davidbeckblog.com/?p=348</guid>
		<description><![CDATA[I have never enjoyed reading physical books. The user experience is all wrong. My thumbs get soar from holding the pages open, you have to hold it to the light just right so the curl of the pages don&#8217;t cast a giant shadow, it&#8217;s difficult to search and you need your own light source. I [...]]]></description>
			<content:encoded><![CDATA[<p>I have never enjoyed reading physical books. The user experience is all wrong. My thumbs get soar from holding the pages open, you have to hold it to the light just right so the curl of the pages don&#8217;t cast a giant shadow, it&#8217;s difficult to search and you need your own light source. I really don&#8217;t understand people that are attached to the physical book.</p>
<p>This isn&#8217;t a recent feeling either; I&#8217;ve been looking forward to digital books as long as I can remember, but up until now I didn&#8217;t really have an option. The Kindle has done a lot to get books published in digital form bit up until recently it wasn&#8217;t possible to get a book legally for any device.<span id="more-348"></span></p>
<p>One of my favorite apps for the iPhone is <a title="Classics by Tap Tap Tap" href="http://click.linksynergy.com/fs-bin/stat?id=kFxOgkW6zx8&amp;offerid=146261&amp;type=3&amp;subid=0&amp;tmpid=1826&amp;RD_PARM1=http%253A%252F%252Fitunes.apple.com%252Fus%252Fapp%252Fclassics%252Fid294773236%253Fmt%253D8%2526uo%253D4%2526partnerId%253D30" onclick="pageTracker._trackPageview('/outgoing/click.linksynergy.com/fs-bin/stat?id=kFxOgkW6zx8_amp_offerid=146261_amp_type=3_amp_subid=0_amp_tmpid=1826_amp_RD_PARM1=http_253A_252F_252Fitunes.apple.com_252Fus_252Fapp_252Fclassics_252Fid294773236_253Fmt_253D8_2526uo_253D4_2526partnerId_253D30&amp;referer=');">Classics, by Tap Tap Tap</a>. Before iBooks, this was <em>the</em> reading experience for the iPhone. I have read entire books standing in line. Likewise, <a title="YouVersion iPhone App" href="http://click.linksynergy.com/fs-bin/stat?id=kFxOgkW6zx8&amp;offerid=146261&amp;type=3&amp;subid=0&amp;tmpid=1826&amp;RD_PARM1=http%253A%252F%252Fitunes.apple.com%252Fus%252Fapp%252Fbible%252Fid282935706%253Fmt%253D8%2526uo%253D4%2526partnerId%253D30" onclick="pageTracker._trackPageview('/outgoing/click.linksynergy.com/fs-bin/stat?id=kFxOgkW6zx8_amp_offerid=146261_amp_type=3_amp_subid=0_amp_tmpid=1826_amp_RD_PARM1=http_253A_252F_252Fitunes.apple.com_252Fus_252Fapp_252Fbible_252Fid282935706_253Fmt_253D8_2526uo_253D4_2526partnerId_253D30&amp;referer=');">YouVersion</a>, a digital bible application, is always at my side at studies and I am seeing more and more iPhones pop up doing the same. The biggest benefit is that you don&#8217;t have to plan to read in line. You don&#8217;t have to decide which book you&#8217;re going to read today, and with many readers, including iBooks, you don&#8217;t even have to buy the book ahead of time. Like the best camera is the one you have with you, the best book is the one you have in your hand.</p>
<p><a href="http://davidbeckblog.com/media/IMG_0001.jpg"><img class="size-medium wp-image-358 alignright" title="My Bookshelf" src="http://davidbeckblog.com/media/IMG_0001-223x300.jpg" alt="A Very Geeky Bookshelf" width="223" height="300" /></a></p>
<p>There is one thing though, that a digital copy of a book can&#8217;t replace. You see, for a lot of people, including myself, books are like trophies. When I look at my bookshelf I get rather nostalgic and think back to when I first <a title="PHP and MySQL Bible" href="http://www.amazon.com/gp/product/0764557467?ie=UTF8&amp;tag=dabesbl-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0764557467" onclick="pageTracker._trackPageview('/outgoing/www.amazon.com/gp/product/0764557467?ie=UTF8_amp_tag=dabesbl-20_amp_linkCode=as2_amp_camp=1789_amp_creative=390957_amp_creativeASIN=0764557467&amp;referer=');">learned PHP</a> or when I first became interested in <a title="Physics of the Impossible" href="http://www.amazon.com/gp/product/0385520697?ie=UTF8&amp;tag=dabesbl-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0385520697" onclick="pageTracker._trackPageview('/outgoing/www.amazon.com/gp/product/0385520697?ie=UTF8_amp_tag=dabesbl-20_amp_linkCode=as2_amp_camp=1789_amp_creative=390957_amp_creativeASIN=0385520697&amp;referer=');">quantum physics</a>. Even if those memories often involve me struggling to keep the book open while I copied code, they still give me the warm fuzzy feelings.</p>
<p>When people come to my house they see my bookshelf and immediately see a part of me. It&#8217;s just part of the scene of my home that reinforces that I live there. That top shelf sums up my resume better than anything else can. I always enjoy the laugh people get when they see <a title="Hacking Exposed" href="http://www.amazon.com/gp/product/0071613749?ie=UTF8&amp;tag=dabesbl-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0071613749" onclick="pageTracker._trackPageview('/outgoing/www.amazon.com/gp/product/0071613749?ie=UTF8_amp_tag=dabesbl-20_amp_linkCode=as2_amp_camp=1789_amp_creative=390957_amp_creativeASIN=0071613749&amp;referer=');">Hacking Exposed</a>.</p>
<p>When you are reading a paper book in public, people see what you&#8217;re reading. Some people don&#8217;t want people to know what they are reading, we call them anti social. Privacy always hinders communication, and someone seeing you reading the same book they are in the middle of is a conversation waiting to happen, and every conversation is a friend waiting to be made.</p>
<p>A social networking aspect may help the ebook&#8217;s case. It might not also. For now though, as much as I love reading digitally, I will continue to buy <em>real</em> books.</p>
<p style="text-align: center;">
]]></content:encoded>
			<wfw:commentRss>http://davidbeckblog.com/2010/07/ebooks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Voice Browser</title>
		<link>http://davidbeckblog.com/2010/05/google-voice-browser/</link>
		<comments>http://davidbeckblog.com/2010/05/google-voice-browser/#comments</comments>
		<pubDate>Thu, 06 May 2010 15:08:06 +0000</pubDate>
		<dc:creator>David Beck</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Google Voice]]></category>
		<category><![CDATA[Mac OS X]]></category>

		<guid isPermaLink="false">http://davidbeckblog.com/?p=243</guid>
		<description><![CDATA[I created a dedicated browser for Google Voice on the Mac. It&#8217;s nothing to fancy, just a WebKit view in a simple window. The best part is that it will update the badge icon in the dock so you don&#8217;t have to keep the window open. Refreshing from the menu will refresh like it does [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://davidbeckblog.com/media/Screen-shot-2010-05-06-at-8.02.58-AM.png"><img class="size-medium wp-image-244 alignleft" title="Screen shot 2010-05-06 at 8.02.58 AM" src="http://davidbeckblog.com/media/Screen-shot-2010-05-06-at-8.02.58-AM-300x202.png" alt="Google Voice Browser Screenshot" width="300" height="202" /></a></p>
<p>I created a dedicated browser for Google Voice on the Mac.</p>
<p>It&#8217;s nothing to fancy, just a WebKit view in a simple window. The best part is that it will update the badge icon in the dock so you don&#8217;t have to keep the window open.</p>
<p>Refreshing from the menu will refresh like it does when you click the refresh link rather than reload the entire page.</p>
<p>Download <a href="http://davidbeckblog.com/media/Google-Voice-Browser.zip">Google Voice Browser</a></p>
]]></content:encoded>
			<wfw:commentRss>http://davidbeckblog.com/2010/05/google-voice-browser/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Correct Paging</title>
		<link>http://davidbeckblog.com/2009/11/correct-paging/</link>
		<comments>http://davidbeckblog.com/2009/11/correct-paging/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 20:59:49 +0000</pubDate>
		<dc:creator>David Beck</dc:creator>
				<category><![CDATA[User Experience]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://davidbeckblog.com/?p=168</guid>
		<description><![CDATA[Paging is separating out content to multiple pages, and it is a really common task for websites. The problem is that like oh so many things on the web, it is rarely done well. Come with me on this journey (rant?) on the correct way to implement paging. Each page should have a &#8220;Next&#8221; and [...]]]></description>
			<content:encoded><![CDATA[<p>Paging is separating out content to multiple pages, and it is a really common task for websites. The problem is that like oh so many things on the web, it is rarely done well. Come with me on this journey (rant?) on the correct way to implement paging.</p>
<p>Each page should have a &#8220;Next&#8221; and &#8220;Previous&#8221; button. If you are referring to chronological content, such as blog posts, use &#8220;Newer&#8221; and &#8220;Older&#8221; to be more specific. They should be the most prominent part of the paging area, since anyone interacting with that area of the page will most likely be going back and forth through the results.</p>
<p>There should also be a list of the pages in between the next/previous button.</p>
<p>Here is an example from <a href="http://bubble.davidbeckblog.com" onclick="pageTracker._trackPageview('/outgoing/bubble.davidbeckblog.com?referer=');">Bubble Burster website</a>:</p>
<div id="attachment_169" class="wp-caption aligncenter" style="width: 356px"><img class="size-full wp-image-169 " title="Newer and Previous" src="http://davidbeckblog.com/wp-content/uploads/Screen-shot-2009-11-17-at-12.31.33-PM.png" alt="An example of using Newer and Previous buttons" width="346" height="53" /><p class="wp-caption-text">An example of using Newer and Previous buttons</p></div>
<p><span id="more-168"></span></p>
<p>Here I am using <a href="http://wordpress.org/extend/plugins/wp-page-numbers/" onclick="pageTracker._trackPageview('/outgoing/wordpress.org/extend/plugins/wp-page-numbers/?referer=');">WP Page Numbers</a>.</p>
<p>When the page is at the beginning or the end, leave the Next/Previous buttons in place, but disable the one that is no longer valid.</p>
<div id="attachment_171" class="wp-caption aligncenter" style="width: 322px"><img class="size-full wp-image-171 " title="Disable Previous" src="http://davidbeckblog.com/wp-content/uploads/Screen-shot-2009-11-17-at-12.32.38-PM.png" alt="Example of a disabled Newer button" width="312" height="55" /><p class="wp-caption-text">Example of a disabled Newer button</p></div>
<p>&#8220;First&#8221; and &#8220;Last&#8221; buttons should be 1&#8230; and &#8230;(last page number) because they are smaller than the entire word and more obvious than a symbol. This is best described by a picture:</p>
<div id="attachment_173" class="wp-caption aligncenter" style="width: 442px"><img class="size-full wp-image-173  " title="First and Last Example" src="http://davidbeckblog.com/wp-content/uploads/Screen-shot-2009-11-17-at-12.34.00-PM.png" alt="An example of using the first and last page number for first and last" width="432" height="56" /><p class="wp-caption-text">An example of using the first and last page number for first and last</p></div>
<p>Here you see that the first and last page numbers are present, even when they are many pages away from the current page. This replaces the need for first and last buttons and is a bit more obvious what they do. Clicking 1 goes to page 1. Just like clicking page 3 goes to page 3. You may not think about these kinds of things but every user has to learn how to user your interface and even if it only takes 10 seconds to understand what clicking &#8220;First&#8221; does, it is one more thing that makes your interface easier to use.</p>
<p>Also, it is more common for a user to want to go back or forward than to the first page. This is because they will only go to page 1 once (that is unless you have some really addictive content on page one that people keep trying to stop looking at but just can&#8217;t resist). If they were to go through your content page by page though, they would be hitting the &#8220;Next&#8221; button every page.</p>
<p>Finally, put a little padding on the numbers. This example is a little big and bubbly (for a <a href="http://bubble.davidbeckblog.com" onclick="pageTracker._trackPageview('/outgoing/bubble.davidbeckblog.com?referer=');">big and bubbly site</a>) but realize that you are putting a dozen links right next to each other. And while I&#8217;m at it, put a little effort into the appearance. Don&#8217;t just through raw links on a page, that&#8217;s ugly.</p>
]]></content:encoded>
			<wfw:commentRss>http://davidbeckblog.com/2009/11/correct-paging/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone Video Screen Capture</title>
		<link>http://davidbeckblog.com/2009/10/iphone-screen-capture/</link>
		<comments>http://davidbeckblog.com/2009/10/iphone-screen-capture/#comments</comments>
		<pubDate>Fri, 16 Oct 2009 03:54:57 +0000</pubDate>
		<dc:creator>David Beck</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Apple Developer Tools]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Screencast]]></category>
		<category><![CDATA[SIMBL]]></category>

		<guid isPermaLink="false">http://davidbeckblog.com/?p=146</guid>
		<description><![CDATA[You can see a demo of a video recorded with this tool. I recently had the misfortune of having to make a video to showcase Bubble Burster. The results were not pretty. I was literally laughed at by friends when they saw it. The problem is that while you can take screenshots of the iPhone screen, [...]]]></description>
			<content:encoded><![CDATA[<p><video controls="true" height="466" width="300" style="float:right; margin-left:20px;"><br />
  <source src="http://davidbeckblog.com/media/iphone-screen-capture-demo.mov" type="video/mp4"><br />
  </source><source src="http://davidbeckblog.com/media/iphone-screen-capture-demo.theora.ogg" type="video/ogg"><br />
You can see a <a href="http://davidbeckblog.com/media/iphone-screen-capture-demo.mov">demo</a> of a video recorded with this tool.</source></video></p>
<p>I recently had the misfortune of having to make a video to showcase <a href="http://bubble.davidbeckblog.com/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/bubble.davidbeckblog.com/?referer=');">Bubble Burster</a>. <a href="http://bubble.davidbeckblog.com/2009/09/new-youtube-video/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/bubble.davidbeckblog.com/2009/09/new-youtube-video/?referer=');">The results</a> were not pretty. I was literally laughed at by friends when they saw it. The problem is that while you can take screenshots of the iPhone screen, there is no way to capture video. I could have used a screen capture program but those cost around $100 (yes I am very cheap). The best solution I could come up with was to use the built in iSight on my MacBook to show the app.</p>
<p>In order to improve the quality of the video, I created a <a href="http://www.culater.net/software/SIMBL/SIMBL.php" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.culater.net/software/SIMBL/SIMBL.php?referer=');">SIMBL</a> plugin for the iPhone simulator. Basically it captures a screenshot every frame and then saves it to video. It overlays a circle for the pointer and a gloss iPhone frame.</p>
<p><span id="more-146"></span></p>
<p>It does not record audio at this time.</p>
<p>To install the plugin, place it in &#8220;~/Library/Application Support/SIMBL/Plugins&#8221;. create it if it doesn&#8217;t already exist. You will need to install SIMBL as well. Right now it is only for Snow Leopard but there isn&#8217;t anything major that is keeping it from working on Leopard other than some convenience methods.</p>
<p>If you end up using this plugin, please let me know in the <a href="#comments">comments</a>.</p>
<p><a class="button" href='http://davidbeckblog.com/media/iPhone-Simulator-Capture.zip'>Download</a></p>
<p>Update: I uploaded the <a href="http://www.youtube.com/watch?v=JwwcQSUgVWA" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.youtube.com/watch?v=JwwcQSUgVWA&amp;referer=');">demo video</a> I made for <a href="http://bubble.davidbeckblog.com" onclick="pageTracker._trackPageview('/outgoing/bubble.davidbeckblog.com?referer=');">Bubble Burster</a>. I used a custom build that ignores the accelerometer. I then used <a href="http://www.amazon.com/gp/product/B001EUDKT8?ie=UTF8&amp;tag=dabesbl-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B001EUDKT8" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.amazon.com/gp/product/B001EUDKT8?ie=UTF8_amp_tag=dabesbl-20_amp_linkCode=as2_amp_camp=1789_amp_creative=390957_amp_creativeASIN=B001EUDKT8&amp;referer=');">After Effects</a> to rotate the video to match my actions. I think I should have paused a little though, because in parts it looks unnaturally fast.</p>
<p>Update: Thanks to John Scott for getting it working with 3.2. It now works in 3.2 and 4.0. iPad, unfortunately, does not record correctly yet. The cosmetic settings, like setting a fake time, are not functioning either.</p>
<p>Update: Fake time, fake apps and fake carrier have been fixed for 4.0. A <a href="http://github.com/davbeck/iPhone-Simulator-Capture" onclick="pageTracker._trackPageview('/outgoing/github.com/davbeck/iPhone-Simulator-Capture?referer=');">Github repository</a> has also been created.</p>
]]></content:encoded>
			<wfw:commentRss>http://davidbeckblog.com/2009/10/iphone-screen-capture/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
<enclosure url="http://davidbeckblog.com/media/iphone-screen-capture-demo.mov" length="1127169" type="video/quicktime" />
<enclosure url="http://davidbeckblog.com/media/iphone-screen-capture-demo.theora.ogg" length="635588" type="audio/ogg" />
		</item>
		<item>
		<title>AVR and Xcode</title>
		<link>http://davidbeckblog.com/2009/10/avr-and-xcode/</link>
		<comments>http://davidbeckblog.com/2009/10/avr-and-xcode/#comments</comments>
		<pubDate>Sun, 11 Oct 2009 23:05:31 +0000</pubDate>
		<dc:creator>David Beck</dc:creator>
				<category><![CDATA[Electronics]]></category>
		<category><![CDATA[AVR]]></category>
		<category><![CDATA[Microcontroller]]></category>
		<category><![CDATA[Xcode]]></category>

		<guid isPermaLink="false">http://davidbeckblog.com/?p=130</guid>
		<description><![CDATA[I recently purchased the beginning embedded electronics kit from SparkFun Electronics. It is a kit that include everything to start programming AVR microcontrollers. A microcontroller lets you control the most simple, physical things, like an LED or a motor. Given my lust for control, you can see why this has quickly become my latest obsessive [...]]]></description>
			<content:encoded><![CDATA[<p>I recently purchased the <a href="http://www.sparkfun.com/commerce/tutorial_info.php?tutorials_id=57" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.sparkfun.com/commerce/tutorial_info.php?tutorials_id=57&amp;referer=');">beginning embedded electronics</a> kit from <a href="http://sparkfun.com" target="_blank" onclick="pageTracker._trackPageview('/outgoing/sparkfun.com?referer=');">SparkFun Electronics</a>. It is a kit that include everything to start programming AVR microcontrollers. A microcontroller lets you control the most simple, physical things, like an LED or a motor. Given my lust for control, you can see why this has quickly become my latest obsessive hobby.</p>
<p>The problem is that I want to be able to program the micro with my Mac, which presented a few problems. Here is how I got it working with Xcode on my Mac.<br />
<span id="more-130"></span><br />
The first step was getting the programmer to work.</p>
<p>The only problem? The kit screams Windows. By default it includes a <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=13" onclick="pageTracker._trackPageview('/outgoing/www.sparkfun.com/commerce/product_info.php?products_id=13&amp;referer=');">parallel programer</a>. The last time I had a computer with a parallel port was&#8230; well it was when I had a PC. Not only that but SparkFun only carries Windows compatible <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=8702" onclick="pageTracker._trackPageview('/outgoing/www.sparkfun.com/commerce/product_info.php?products_id=8702&amp;referer=');">USB programmers</a> (a programmer in this case is a device that transfers your code to the chip, not the skinny kid from high school with a Redbull IV in him). In fact, there are almost no AVR programmers that are Mac compatible.</p>
<p>Not knowing the days of frustration that I was getting myself into, I bought the <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=8702" onclick="pageTracker._trackPageview('/outgoing/www.sparkfun.com/commerce/product_info.php?products_id=8702&amp;referer=');">STK500 USB programmer</a>. Other options would be the now discontinued <a href="http://www.pololu.com/catalog/product/740" onclick="pageTracker._trackPageview('/outgoing/www.pololu.com/catalog/product/740?referer=');">Pololu programmer</a>, or build it yourself.</p>
<p>Luckily, <a href="http://www.olimex.com/" onclick="pageTracker._trackPageview('/outgoing/www.olimex.com/?referer=');">Olimex</a>, the company that made the STK500 USB programmer, has released an <a href="http://www.olimex.com/dev/soft/avr/AVR-ISP500/AvrIspFwUpdate_1_0_0_8.zip" onclick="pageTracker._trackPageview('/outgoing/www.olimex.com/dev/soft/avr/AVR-ISP500/AvrIspFwUpdate_1_0_0_8.zip?referer=');">update</a> that makes it Mac compatible. You can find info and instructions on how to install it on <a href="http://www.olimex.com/dev/avr-isp500.html" onclick="pageTracker._trackPageview('/outgoing/www.olimex.com/dev/avr-isp500.html?referer=');">their product page</a>. Be sure to follow the instructions <em>exactly</em>. You will need a Windows computer to do the upgrade. It worked fine in <a href="http://www.amazon.com/gp/product/B002Q72JB8?ie=UTF8&amp;tag=dabesbl-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B002Q72JB8" onclick="pageTracker._trackPageview('/outgoing/www.amazon.com/gp/product/B002Q72JB8?ie=UTF8_amp_tag=dabesbl-20_amp_linkCode=as2_amp_camp=1789_amp_creative=390957_amp_creativeASIN=B002Q72JB8&amp;referer=');">VMWare Fusion</a>.</p>
<p>The next step was to get the build tools woking in Mac OS X. These are the programs that will compile your code and transfer it to the microcontroller.</p>
<p>The easiest way to get the tools needed is to get <a href="http://www.obdev.at/products/crosspack/index.html" onclick="pageTracker._trackPageview('/outgoing/www.obdev.at/products/crosspack/index.html?referer=');">CrossPack</a>. CrossPack includes all the tools necessary to build and upload your projects. This also includes some tools to generate Xcode templates.</p>
<p>Basically, the Xcode templates create a project with an external build target. So in the background all that is happening is make is being called. I found two problems with the default templates. One is that you have to use the command line to generate your templates. That isn&#8217;t really necessary since Xcode has a built in template architecture. Basically place any templates you wan to show up in the new file window in &#8220;/Developer/Library/Xcode/Project Templates&#8221;. Just make sure to create a sub folder there to create the section. I called mine AVR.</p>
<p>The second problem I had was that there is no way to upload the code to the chip. Luckily there is an easy fix. Right click on executables and select &#8220;Add: New Custom Executable&#8221;. Use /usr/bin/make as the path. Under arguments, add &#8220;flash&#8221;. This will call make, just like the target does, but it will make for flash instead of compile. Now you can select Build and Go and it will upload the program to the connected microcontroller.</p>
<p>To get going, you need to edit the makefile in the project. Select your microcontroller, for DEVICE. Input the correct value for CLOCK. I also had to add a variable for the location of the tools. I called it TOOLS</p>
<pre>DEVICE     = atmega168
CLOCK      = 8000000
PROGRAMMER = -c stk500v2 -P /dev/tty.usbmodem*
OBJECTS    = main.o
FUSES      = -U hfuse:w:0xd9:m -U lfuse:w:0x24:m

TOOLS      = /usr/local/CrossPack-AVR/bin/

AVRDUDE = $(TOOLS)avrdude $(PROGRAMMER) -p $(DEVICE)
COMPILE = $(TOOLS)avr-gcc -std=c99 -Wall -Os -DF_CPU=$(CLOCK) -mmcu=$(DEVICE)</pre>
<p>In the PROGRAMMER line you will notice I used an asterisk (*) to select any connected programmer. I did this because the number changed on me a few times and I didn&#8217;t want to have to edit the makefile every time I plugged it in.</p>
<p>You should be good to go now. You can download <a title="Xcode AVR template" href="/wp-content/uploads/2009/10/Firmware.zip">my template</a>, but you will still need the CrossPack tools.</p>
<p>Update: <a rel="external nofollow" href="http://www.instepmusic.com/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.instepmusic.com/?referer=');">Jonathan</a> mentioned in the comments that you can use <a title="Engbedded Atmel AVR Fuse Calculator" href="http://www.engbedded.com/fusecalc/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.engbedded.com/fusecalc/?referer=');">http://www.engbedded.com/fusecalc/</a> to calculate the fuse bits.</p>
]]></content:encoded>
			<wfw:commentRss>http://davidbeckblog.com/2009/10/avr-and-xcode/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Lunarpages Review</title>
		<link>http://davidbeckblog.com/2009/10/lunarpages-review/</link>
		<comments>http://davidbeckblog.com/2009/10/lunarpages-review/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 20:00:44 +0000</pubDate>
		<dc:creator>David Beck</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[Lunarpages]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://davidbeckblog.com/?p=114</guid>
		<description><![CDATA[I have been using Lunarpages for over a year now and I really love it. I first started using it for work, and then for my personal sites like this one. I have really enjoyed it and will definitely be using it for a long time to come. It is what I recommend to anyone [...]]]></description>
			<content:encoded><![CDATA[<p>I have been using <a href="http://www.lunarpages.com/id/davbeck" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.lunarpages.com/id/davbeck?referer=');">Lunarpages</a> for over a year now and I really love it. I first started using it for work, and then for my personal sites like this one. I have really enjoyed it and will definitely be using it for a long time to come. It is what I recommend to anyone that dare ask my opinion.</p>
<p><span id="more-114"></span></p>
<p>The reason I first was attracted to <a href="http://www.lunarpages.com/id/davbeck" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.lunarpages.com/id/davbeck?referer=');">Lunarpages</a> is their cheap unlimited plan. For $5/month, you can get their basic hosting plan that includes <em>unlimited</em> storage space, bandwidth, email accounts, databases, add-on domains, sub-domains and ftp accounts. Basically, I don&#8217;t need to worry about any of that stuff. Even if I didn&#8217;t reach the limits of some more stingy providers, I would no doubt keep myself awake at night worrying about the possibility of one of my sites not appearing tomorrow because the bandwidth limit was reached.</p>
<p>The other reason I chose to risk a 2 year contract with yet another company is the long list of supported technologies. PHP in particular, and all of it&#8217;s libraries and extensions. Being that PHP is my language of choice when creating a site, it was a must. But they don&#8217;t stop at the bare minimum. Pretty much whatever your platform desires be, they have it.</p>
<p>Lunarpages also has many technologies that are a relief when dealing with a company. For instance their support for unlimited email storage (see above) combined with their support for IMAP and webmail make giving companies their own email address rather than that hobo looking Gmail account they have been printing on their business cards, a treat rather than a hassle. They also support forwarding to any other email address, so no one has to have several different email addresses and passwords and log in pages and and etc. This in particular has been a relief for me given that I maintain several dozen email addresses.</p>
<p>The uptime on the server is pretty good given the price of the service. I would be lying through my teeth if I told you I have never had a few hours of downtime. Luckily, when I do have a problem, I can call their customer support and get through in less than 15 minutes and usually they are already aware of the problem and on their way to fixing it.</p>
<p>Ever since I first saw <a href="http://www.lunarpages.com/id/davbeck" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.lunarpages.com/id/davbeck?referer=');">Lunarpages</a> I have been asking myself, &#8220;What&#8217;s the catch&#8221;. After a year of using them every day, I have yet to find one. The price really is that low. The space really is unlimited. They really are that good. I was even presently surprised the other day when they extended their free Facebook advertising promotion to current customers, otherwise known as me.</p>
]]></content:encoded>
			<wfw:commentRss>http://davidbeckblog.com/2009/10/lunarpages-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Early iPhone App Sales</title>
		<link>http://davidbeckblog.com/2009/10/early-iphone-app-sales/</link>
		<comments>http://davidbeckblog.com/2009/10/early-iphone-app-sales/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 16:33:55 +0000</pubDate>
		<dc:creator>David Beck</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[App Store]]></category>
		<category><![CDATA[Bubble Burster]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Marketing]]></category>

		<guid isPermaLink="false">http://davidbeckblog.com/?p=104</guid>
		<description><![CDATA[It has been about a month now since Bubble Burster was released to the App Store and early sales are not promising. Before I launched Bubble Burster, I did a lot of research into marketing and sales of iPhone Apps and I found very little information. Most of what is available in terms of sales [...]]]></description>
			<content:encoded><![CDATA[<p>It has been about a month now since <a href="http://bubble.davidbeckblog.com/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/bubble.davidbeckblog.com/?referer=');">Bubble Burster</a> was released to the App Store and early sales are not promising. Before I launched Bubble Burster, I did a lot of research into marketing and sales of iPhone Apps and I found very little information. Most of what is available in terms of sales numbers is from big companies with apps in the top 100, and almost no data from your average app developer.<br />
<span id="more-104"></span><br />
The hard truth is that in it&#8217;s first month, Bubble Burster sold only 6 copies. 2 were to my friends. At $.99 that means I earned $4.20 after Apple&#8217;s cut. Pretty bad for something that took me months to develop. Especially when you consider I spent $99 on the developer program to publish it in the first place. In other words, I am not quitting my day job.</p>
<p>I can&#8217;t say I am too surprised by the low turn out. My low end estimate was a little higher though, at $20 in the first month. I knew going in that there were 75,000 apps (well 80,000 by the time it actually released) on the store already, and that because the only ones visible to most people were the ones in the top 20 and you couldn&#8217;t get there unless you sold a lot of copies and you couldn&#8217;t sell very many unless you were in the top 20.</p>
<p>To combat the problem of visibility I used some advertising promotions I had been saving. Google gave me $100 ad credit to sign up for AdWords and my hosting company, <a href="http://www.lunarpages.com/id/davbeck" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.lunarpages.com/id/davbeck?referer=');">LunarPages</a>, gave me a $25 credit for FaceBook. Unfortunately, those have not been very successful and I think I will pull them when the promotions run out.</p>
<p>One thing that is often suggested is to make a &#8220;lite&#8221; version of your app for free. I am working on this right now. It is difficult for me as a programmer to create a lite version because it means taking functions out that I have spent a lot of time putting in. When it is finished, the lite version will have all the functionality of the full version but will cut the player off when they score more than 50 points. A score that takes a while to accomplish.</p>
<p>The other suggestion is to get blogs like <a href="http://toucharcade.com/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/toucharcade.com/?referer=');">Touch Arcade</a> to review your app. I plan to do this once I have released the lite version. Even still, most people don&#8217;t read these specialized blogs.</p>
<p>The original plan was to introduce what I had for $.99 and then, once I had updated the game with more features like saving score and games, I would raise the price to $1.99. I advertised that it was $.99 for &#8220;a limited time&#8221;. Well a few days ago I upped the price as planed when Apple approved version 1.2. So far no one has made a purchase at the new price, but that is not necessarily any different from when it was at $.99. We will se if I can make 3 sales next month to match the income (if you can call it that) of the app at $.99.</p>
]]></content:encoded>
			<wfw:commentRss>http://davidbeckblog.com/2009/10/early-iphone-app-sales/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Bubble Burster website now live</title>
		<link>http://davidbeckblog.com/2009/09/bubble-burster-website-now-live/</link>
		<comments>http://davidbeckblog.com/2009/09/bubble-burster-website-now-live/#comments</comments>
		<pubDate>Mon, 14 Sep 2009 21:33:58 +0000</pubDate>
		<dc:creator>David Beck</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Bubble Burster]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://davidbeckblog.com/?p=98</guid>
		<description><![CDATA[I finished up the Bubble Burster website today. You can find it at bubble.davidbeckblog.com. I built it with WordPress (same as this site) but I made the theme myself and wrote and edited several plugins to get it just right. I use to make sites by hand using PHP. I always figured any prebuilt package would [...]]]></description>
			<content:encoded><![CDATA[<p>I finished up the Bubble Burster website today. You can find it at <a href="http://bubble.davidbeckblog.com" onclick="pageTracker._trackPageview('/outgoing/bubble.davidbeckblog.com?referer=');">bubble.davidbeckblog.com</a>. I built it with WordPress (same as this site) but I made the theme myself and wrote and edited several plugins to get it just right.<br />
<span id="more-98"></span><br />
I use to make sites by hand using PHP. I always figured any prebuilt package would take you longer to learn the custom weirdness of the system that it would be quicker to do it yourself. But with wordpress, it is done so well that that isn&#8217;t really the truth. I plan to make all my sites with it from now on.</p>
]]></content:encoded>
			<wfw:commentRss>http://davidbeckblog.com/2009/09/bubble-burster-website-now-live/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>That pesky white space</title>
		<link>http://davidbeckblog.com/2009/09/that-pesky-white-space/</link>
		<comments>http://davidbeckblog.com/2009/09/that-pesky-white-space/#comments</comments>
		<pubDate>Fri, 11 Sep 2009 16:10:02 +0000</pubDate>
		<dc:creator>David Beck</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[HTML]]></category>

		<guid isPermaLink="false">http://davidbeckblog.com/?p=87</guid>
		<description><![CDATA[If your OCD like myself, and also suffer from the need to make websites, you may have run into this pesky problem when you lay out images and what not on a page. The problem comes when you try to mathematically determine the exact right padding so that all the objects are laid out evenly [...]]]></description>
			<content:encoded><![CDATA[<p>If your OCD like myself, and also suffer from the need to make websites, you may have run into this pesky problem when you lay out images and what not on a page. The problem comes when you try to mathematically determine the exact right padding so that all the objects are laid out evenly only to find that the last one falls off the end to the next line.<br />
<span id="more-87"></span><br />
What&#8217;s happening? You forgot about html white space. If you put any kind of space, tab or line break between elements, it ads a space. Even worse, you may try to adjust the padding so that it looks correct in your browser, and you go to a different computer and it is a completely different distance. This is because different browsers may have different font rendering.</p>
<p>The solution? Remove the white space.</p>
<pre>&lt;img src="first.png" /&gt;&lt;img src="second.png" /&gt;</pre>
<p>Make sure not to put any space in between.</p>
]]></content:encoded>
			<wfw:commentRss>http://davidbeckblog.com/2009/09/that-pesky-white-space/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
