<?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>Global Nerdy &#187; mobile</title>
	<atom:link href="http://www.globalnerdy.com/tag/mobile/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.globalnerdy.com</link>
	<description>Tech Evangelist Joey deVilla on software development, tech news and other nerdy stuff</description>
	<lastBuildDate>Thu, 19 Nov 2009 02:16:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>WinMoDevCamp Toronto&#8217;s Agenda</title>
		<link>http://www.globalnerdy.com/2009/11/11/winmodevcamp-torontos-agenda/</link>
		<comments>http://www.globalnerdy.com/2009/11/11/winmodevcamp-torontos-agenda/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 15:54:56 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Hardware and Gadgets]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software and Services]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[WinMoDevCamp]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2009/11/11/winmodevcamp-torontos-agenda/</guid>
		<description><![CDATA[ 
WinMoDevCamp Toronto, the Toronto edition of the workshop for developing applications for Windows Phone, takes place today at Microsoft Canada’s headquarters. 
If you can’r make it to WinMoDevCamp in person, you can attend virtually by watching the streaming video feed.
Here’s the agenda (all times are Eastern):




12:30 pm – 1:00 pm


Light Snacks and Event Registration




1:00 [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><strong><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Toronto WinMoDevCamp logo" border="0" alt="Toronto WinMoDevCamp logo" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/11/torontowinmodevcamp.jpg" width="471" height="117" /> </strong></p>
<p><strong>WinMoDevCamp Toronto</strong>, the Toronto edition of the workshop for developing applications for Windows Phone, takes place today at Microsoft Canada’s headquarters. </p>
<p><strong>If you can’r make it to WinMoDevCamp in person, you can attend virtually by </strong><a href="http://www.canitpro.ca/WinMoDevCamp.asx"><strong>watching the streaming video feed.</strong></a></p>
<p>Here’s the agenda (all times are Eastern):</p>
<table border="0" cellspacing="4" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="20%">
<p>12:30 pm – 1:00 pm</p>
</td>
<td>
<p><b>Light Snacks and Event Registration</b></p>
</td>
</tr>
<tr>
<td valign="top">
<p>1:00 pm – 1:15 pm</p>
</td>
<td>
<p><b>Opening Remarks &amp; Explanation of WinMoDevCamp purpose.</b></p>
</td>
</tr>
<tr>
<td valign="top">
<p>1:15 pm – 1:45 pm</p>
</td>
<td>
<p><b>Keynote by Microsoft Canada’s Joey deVilla, </b><b>Developer Evangelist</b><b>.              <br /></b>This session will give you an overview Microsoft’s commitment to mobility and the tools in place to assist developers in creating world class applications.</p>
</td>
</tr>
<tr>
<td valign="top">
<p>1:45 pm – 2:00 pm</p>
</td>
<td>
<p><b>Break</b></p>
</td>
</tr>
<tr>
<td valign="top">
<p>2:00 pm – 3:00 pm</p>
</td>
<td>
<p><b>Developing for Windows Mobile &#8211; Mark Arteaga, RedBit</b></p>
<p>Learn how to use the familiar Microsoft .NET Framework and .NET-based programming languages like Visual C#® development tools to develop world class applications. Learn about new features in Windows Mobile 6.5 such as the Gesture APIs and the Widget Framework and how to use them appropriately.</p>
</td>
</tr>
<tr>
<td valign="top">
<p>3:00 pm – 3:30 pm</p>
</td>
<td>
<p><b>Saviidesk – </b><b>Joe Compta, Bradon Technologies Ltd</b><b> (Bell Mobility)</b></p>
<p>Application presentation and demo</p>
</td>
</tr>
<tr>
<td valign="top">
<p>3:30 pm – 3:45 pm</p>
</td>
<td>
<p><b>Break</b></p>
</td>
</tr>
<tr>
<td valign="top">
<p>3:45 pm – 4:15 pm</p>
</td>
<td>
<p><b>Telus Application Developer Program Presentation</b></p>
<p>Program presentation and overview<b></b></p>
</td>
</tr>
<tr>
<td valign="top">
<p>4:15 pm – 4:45 pm</p>
</td>
<td>
<p><b>Merge Healthcare OEM – Atul Agarwal, Director Web Apps</b></p>
<p>Application presentation and demo</p>
</td>
</tr>
<tr>
<td valign="top">
<p>4:45 pm – 5:45 pm</p>
</td>
<td>
<p><b>Samsung TouchWiz and Widgets – Max Karlin, Samsung Canada              <br /></b>An in-depth look at Samsung’s TouchWiz UI and Widgets. How to develop widgets, upcoming features and functionality and how to distribute widgets for Samsung devices.<b></b></p>
</td>
</tr>
<tr>
<td valign="top">
<p>5:45 pm – 6:30 pm</p>
</td>
<td>
<p><b>Dinner</b> – <b>Windows Marketplace Overview, Anthony Bartolo, Microsoft</b></p>
</td>
</tr>
<tr>
<td valign="top">
<p>6:30pm – 7:00 pm</p>
</td>
<td>
<p><b>vPost, Sculpting Mobile Data Convergence – John Cousens, Vayyoo</b></p>
<p>Application presentation and demo</p>
</td>
</tr>
<tr>
<td valign="top">
<p>7:00pm – 7:30 pm</p>
</td>
<td>
<p><b>Sony Ericsson “Hero” Developer Program – Sean Cheddi, Sony Ericsson</b></p>
<p>Developer Program enrolment and Panel SDK overview</p>
</td>
</tr>
<tr>
<td valign="top">
<p>7:30pm – 8:00 pm</p>
</td>
<td>
<p><b>WinMoDevCamp wrap up and Prize Giveaway</b></p>
</td>
</tr>
</tbody>
</table>
<p class="alert"><a href="http://blogs.msdn.com/cdndevs/archive/2009/11/11/winmodevcamp-toronto-s-agenda.aspx">This article also appears in <em>Canadian Developer Connection</em>.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2009/11/11/winmodevcamp-torontos-agenda/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.canitpro.ca/WinMoDevCamp.asx" length="964" type="video/x-ms-asf" />
		</item>
		<item>
		<title>WinMoDevCamp Toronto This Wednesday!</title>
		<link>http://www.globalnerdy.com/2009/11/09/winmodevcamp-toronto-this-wednesday/</link>
		<comments>http://www.globalnerdy.com/2009/11/09/winmodevcamp-toronto-this-wednesday/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 13:03:16 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Hardware and Gadgets]]></category>
		<category><![CDATA[Meetups]]></category>
		<category><![CDATA[Software and Services]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[WinMoDevCamp]]></category>
		<category><![CDATA[workshops]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2009/11/09/winmodevcamp-toronto-this-wednesday/</guid>
		<description><![CDATA[
WinMoDevCamp Toronto, the free workshop where you can learn about Windows Phone Development, takes place this Wednesday at Microsoft Canada’s offices in Mississauga. Come learn about Windows Phone by participating in a development project, and come meet some of the faces (including me) at the local branch of The Empire! (And yes, we’ll serve snacks [...]]]></description>
			<content:encoded><![CDATA[<p></p><p align="center"><img alt="WinMoDevCamp banner" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/10/winmodevcamp2.jpg" width="600" height="117" /></p>
<p><strong>WinMoDevCamp Toronto, the free workshop where you can learn about Windows Phone Development, takes place this Wednesday</strong> at Microsoft Canada’s offices in Mississauga. Come learn about Windows Phone by participating in a development project, and come meet some of the faces (including me) at the local branch of The Empire! (And yes, we’ll serve snacks and dinner.)</p>
<p><strong>WinMoDevCamp is free of charge and takes place this Wednesday, November 11th, from 1 to 9 p.m. at Microsoft Canada Headquarters</strong> (<a href="http://www.bing.com/maps/default.aspx?v=2&amp;FORM=LMLTCC&amp;cp=43.61362~-79.753421&amp;style=r&amp;lvl=14&amp;tilt=-90&amp;dir=0&amp;alt=-1000&amp;phx=0&amp;phy=0&amp;phscl=1&amp;where1=1950%20Meadowvale%20Blvd%2C%20Mississauga%20ON&amp;encType=1">1950 Meadowvale Boulevard</a>, just off Mississauga Road north of the 401). To participate in WinMoDevCamp, please <a href="http://www.rsvpportal.com/microsoft/Windows_phone/nov11/">register</a>.</p>
<p><a href="http://www.rsvpportal.com/microsoft/Windows_phone/nov11/"><img alt="Click to register for WinMoDevCamp" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/10/Cliktoregisterforwinmodevcamp.jpg" width="600" height="55" /></a></p>
<p class="alert"><a href="http://blogs.msdn.com/cdndevs/archive/2009/11/09/winmodevcamp-toronto-this-wednesday.aspx">This article also appears in <em>Canadian Developer Connection</em>.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2009/11/09/winmodevcamp-toronto-this-wednesday/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The New Yorker&#8217;s Hallowe&#8217;en Cover and Why You Should Go to WinMoDevCamp</title>
		<link>http://www.globalnerdy.com/2009/11/02/the-new-yorkers-halloween-cover-and-why-you-should-go-to-winmodevcamp/</link>
		<comments>http://www.globalnerdy.com/2009/11/02/the-new-yorkers-halloween-cover-and-why-you-should-go-to-winmodevcamp/#comments</comments>
		<pubDate>Mon, 02 Nov 2009 19:36:12 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Hardware and Gadgets]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Software and Services]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[Pop Culture]]></category>
		<category><![CDATA[Windows Mobile]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2009/11/02/the-new-yorkers-halloween-cover-and-why-you-should-go-to-winmodevcamp/</guid>
		<description><![CDATA[The New Yorker’s Hallowe’en Cover
I make sure to keep an eye on how technology pops up in mainstream non-geek culture because it’s a good way to gauge the techno-cultural zeitgeist and see how technologies are being received by the public at large. As techies, we’re all too happy to be early adopters and are willing [...]]]></description>
			<content:encoded><![CDATA[<p></p><h3><em>The New Yorker’s</em> Hallowe’en Cover</h3>
<p><strong>I make sure to keep an eye on how technology pops up in mainstream non-geek culture because it’s a good way to gauge the techno-cultural <em><a href="http://en.wikipedia.org/wiki/Zeitgeist">zeitgeist</a></em> and see how technologies are being received by the public at large.</strong> As techies, we’re all too happy to be early adopters and are willing to put up with usability problems, annoyances and extra work just to have the latest and greatest gear for its own sake. We have a tendency to forget that many non-techies don’t adopt technologies while they’re still new and need a techie mindset to use; they&#8217; wait until technologies evolve to the point where the benefits outweigh the annoyances.</p>
<p>The current issue of <em>The New Yorker</em> has a Hallowe’en-themed cover that hints at how much smartphones have worked their way into everyday people’s lives:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="New Yorker Halloween Cover" border="0" alt="New Yorker Halloween Cover" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/11/NewYorkerHalloweenCover.jpg" width="500" height="687" /></p>
<p>Here&#8217;s a closeup:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="New Yorker Halloween Cover closeup" border="0" alt="New Yorker Halloween Cover closeup" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/11/NewYorkerHalloweenCovercloseup.jpg" width="500" height="382" /></p>
<p>(I’ll bet that at least one of you went out Saturday night trick-or-treating and checked your smartphone.)</p>
<p><strong>The practical upshot of all this: the mobile platform is in your future.</strong> It’s the one that people take everywhere and it’s growing in power in leaps and bounds the way desktop (and later, laptop) computers did in the ‘80s and ‘90s.</p>
<h3>WinMoDevCamp</h3>
<p align="center"><a href="http://www.globalnerdy.com/2009/10/29/winmodevcamp-toronto-wednesday-november-11th-at-microsofts-mississauga-office/"><img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="WinMoDevCamp banner" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/10/winmodevcamp2.jpg" width="600" height="117" /></a></p>
<p><strong>Speaking of mobile platforms, we’re holding a full-day workshop on Windows Phone development called WinMoDevCamp Toronto</strong> next Wednesday, November 11th&#160; from noon to 9 p.m. at the Microsoft Mississauga offices (<a href="http://www.bing.com/maps/default.aspx?v=2&amp;FORM=LMLTCP&amp;cp=43.61362~-79.753421&amp;style=r&amp;lvl=13&amp;tilt=-90&amp;dir=0&amp;alt=-1000&amp;phx=0&amp;phy=0&amp;phscl=1&amp;where1=1950%20Meadowvale%20Blvd%2C%20Mississauga%20ON&amp;encType=1">1950 Meadowvale Boulevard</a>). It’s free of charge and your chance to learn how to develop applications for Windows Phone.</p>
<ul>
<li><strong>For more information about WinMoDevCamp,</strong> <a href="http://www.globalnerdy.com/2009/10/29/winmodevcamp-toronto-wednesday-november-11th-at-microsofts-mississauga-office/">see my earlier WinMoDevCamp article</a>. </li>
<li><strong>To register for WinMoDevCamp (remember, it’s free!),</strong> <a href="http://www.rsvpportal.com/microsoft/Windows_phone/nov11/">visit the registration page</a>. </li>
</ul>
<p class="alert"><a href="http://blogs.msdn.com/cdndevs/archive/2009/11/02/the-new-yorker-s-hallowe-en-cover-and-why-you-should-go-to-winmodevcamp.aspx">This article also appears in <em>Canadian Developer Connection</em>.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2009/11/02/the-new-yorkers-halloween-cover-and-why-you-should-go-to-winmodevcamp/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>One-Handed Computing</title>
		<link>http://www.globalnerdy.com/2009/10/30/one-handed-computing/</link>
		<comments>http://www.globalnerdy.com/2009/10/30/one-handed-computing/#comments</comments>
		<pubDate>Fri, 30 Oct 2009 22:03:15 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Hardware and Gadgets]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software and Services]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[one hand]]></category>
		<category><![CDATA[user interface]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2009/10/30/one-handed-computing/</guid>
		<description><![CDATA[Yes, you probably went here as soon as you saw the phrase “One-Handed Computing”:
 
But in this case, I’m talking about what Jason Kottke is talking about &#8212; those times when you use mobile technology while your other hand isn’t free because you’re:

Eating 
Drinking 
Carrying or feeding a baby 
Walking the dog 
Carrying groceries 
“Straphanging” [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><strong>Yes, you probably went here as soon as you saw the phrase “One-Handed Computing”:</strong></p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="&quot;Successories&quot; style poster featuring a woman gasping as a man shows her something on his computer: &quot;Your Porn Collection. Probably best kept to yourself.&quot;" border="0" alt="&quot;Successories&quot; style poster featuring a woman gasping as a man shows her something on his computer: &quot;Your Porn Collection. Probably best kept to yourself.&quot;" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/10/YourPornCollection.jpg" width="600" height="509" /> </p>
<p><strong><a href="http://kottke.org/09/10/one-handed-computing-with-the-iphone">But in this case, I’m talking about what Jason Kottke is talking about</a></strong> &#8212; those times when you use mobile technology while your other hand isn’t free because you’re:</p>
<ul>
<li>Eating </li>
<li>Drinking </li>
<li>Carrying or feeding a baby </li>
<li>Walking the dog </li>
<li>Carrying groceries </li>
<li>“Straphanging” on a train or bus </li>
<li>Getting by with a broken arm </li>
</ul>
<p>In the cases above – and I’m sure you can think of many more – you’re accessing computing resources in a very undesktop-like way: with only one hand, and even then, a limited portion of that hand since most of your fingers are busy holding that phone. <strong>You’re likely using only your thumb,</strong> as shown below:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="windows mobile 6.5 and thumb" border="0" alt="windows mobile 6.5 and thumb" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/10/windowsmobile6.5andthumb.jpg" width="450" height="600" /> </p>
<p>There are lots of times when users are stuck in “one-thumb mode”. If you’re building mobile applications, you should keep that in mind and make sure you design your user interfaces accordingly. You might need to consider things like:</p>
<ul>
<li>The size of touchscreen controls: make them too small and they’re not thumb-friendly. </li>
<li>The number of controls on the screen; the maximum number is dictated by their size. </li>
<li>Navigation in your app. Hierarchical arrangements make sense to developers, but lots of user experience people will tell you that ordinary people don’t get hierarchies. </li>
<li>Which functions will your users use most often? You should make those very easily accessible. Which functions will your users use less often? You might be able to put them on a secondary or tertiary screen. </li>
<li>Can you get information without making the user enter it? For example, can you infer information based on the user’s location, which you can grab from GPS instead of asking for him/her to enter it? Can your application remember your user’s most often-used data? </li>
<li>Can you get other kinds of one-handed input, such as from the camera, accelerometer, magnetometer or other sensors? </li>
</ul>
<p>That’s a fair bit to think about, and I might have to present some ideas at <a href="http://www.globalnerdy.com/2009/10/29/winmodevcamp-toronto-wednesday-november-11th-at-microsofts-mississauga-office/">the upcoming Toronto WinMoDevCamp</a> (and yes, I’ll also blog them).</p>
<p class="alert"><a href="http://blogs.msdn.com/cdndevs/archive/2009/10/30/one-handed-computing.aspx">This article also appears in <em>Canadian Developer Connection</em>.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2009/10/30/one-handed-computing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WinMoDevCamp Toronto: Wednesday November 11th at Microsoft&#8217;s Mississauga Office</title>
		<link>http://www.globalnerdy.com/2009/10/29/winmodevcamp-toronto-wednesday-november-11th-at-microsofts-mississauga-office/</link>
		<comments>http://www.globalnerdy.com/2009/10/29/winmodevcamp-toronto-wednesday-november-11th-at-microsofts-mississauga-office/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 19:39:22 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Software and Services]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[Windows Phone]]></category>
		<category><![CDATA[WinMoDevCamp]]></category>
		<category><![CDATA[workshops]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2009/10/29/winmodevcamp-toronto-wednesday-november-11th-at-microsofts-mississauga-office/</guid>
		<description><![CDATA[ 
WinMoDevCamp, the worldwide series of development workshops for Windows-based mobile phones, is coming to Toronto on Wednesday, November 11th! If you want to learn how to develop applications for Windows Phone (the mobile operating system formerly known as Windows Mobile), this full-day workshop will give you the opportunity to get some hands-on training and [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://winmodevcamp.org/"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="winmodevcamp" border="0" alt="winmodevcamp" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/10/winmodevcamp2.jpg" width="600" height="117" /></a> </p>
<p><strong><a href="http://winmodevcamp.org/">WinMoDevCamp</a>, the worldwide series of development workshops for Windows-based mobile phones, is coming to Toronto on Wednesday, November 11th!</strong> If you want to learn how to develop applications for Windows Phone (the mobile operating system formerly known as Windows Mobile), this full-day workshop will give you the opportunity to get some hands-on training and experience. We’ll have all kinds of people speaking and attending, including:</p>
<ul>
<li>Mobile developers </li>
<li>Web developers </li>
<li>.NET developers </li>
<li>UI/WX specialists </li>
<li>Software testers </li>
<li>Device manufacturers </li>
<li>Canadian mobile carriers </li>
</ul>
<p>…all at this workshop, all working – either solo or in teams – on a Windows Phone project. (While you <em>can </em>choose to work solo, you’ll miss out on the brainpower, business and social opportunities that teaming up will provide).</p>
<p>At the event, you will:</p>
<ul>
<li><strong>Create</strong> a new application for the Windows Phone platform and mobile apps that support Windows enterprise applications </li>
<li><strong>Meet</strong> and work side-by-side team members from the Microsoft Mobile Developer Experience team </li>
<li><strong>Get help</strong> porting your existing iPhone, BlackBerry and Palm Pre apps to the Windows platform </li>
<li><strong>Interact</strong> with reps from a number of Canadian mobile carriers, including Bell, Telus, Rogers and WIND </li>
</ul>
<p><strong>This <em>free</em> event will take place on Wednesday, November 11th at Microsoft Canada’s headquarters in Mississauga (<a href="http://www.bing.com/maps/default.aspx?v=2&amp;FORM=LMLTCC&amp;cp=43.61362~-79.753421&amp;style=r&amp;lvl=14&amp;tilt=-90&amp;dir=0&amp;alt=-1000&amp;phx=0&amp;phy=0&amp;phscl=1&amp;where1=1950%20Meadowvale%20Blvd%2C%20Mississauga%20ON&amp;encType=1">1950 Meadowvale Boulevard</a>, just off Mississauga Road north of the 401) from 1:00 p.m. to 9:00 p.m..</strong> We’ll serve snacks and dinner, so you won’t starve while you create mobile apps. And yes, I’ll be there, helping out and even writing code.</p>
<p><strong>If you’d like to attend WinMoDevCamp Toronto, all you have to do is <a href="http://www.rsvpportal.com/microsoft/Windows_phone/nov11/">register</a>!</strong> (And if you need a lift out to Mississauga, drop me a line and I can give you a lift from High Park subway station to Microsoft and back.)</p>
<p><a href="http://www.rsvpportal.com/microsoft/Windows_phone/nov11/"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Clik to register for winmodevcamp" border="0" alt="Clik to register for winmodevcamp" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/10/Cliktoregisterforwinmodevcamp.jpg" width="600" height="55" /></a></p>
<p class="alert">This article also appears in Canadian Developer Connection.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2009/10/29/winmodevcamp-toronto-wednesday-november-11th-at-microsofts-mississauga-office/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>WinMoDevCamp: Save the Date &#8211; November 11th!</title>
		<link>http://www.globalnerdy.com/2009/10/19/winmodevcamp-save-the-date-november-11th/</link>
		<comments>http://www.globalnerdy.com/2009/10/19/winmodevcamp-save-the-date-november-11th/#comments</comments>
		<pubDate>Mon, 19 Oct 2009 19:53:52 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Hardware and Gadgets]]></category>
		<category><![CDATA[Meetups]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software and Services]]></category>
		<category><![CDATA[Toronto]]></category>
		<category><![CDATA[Camps]]></category>
		<category><![CDATA[free as in beer]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[Windows Mobile]]></category>
		<category><![CDATA[WinMoDevCamp]]></category>
		<category><![CDATA[workshops]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2009/10/19/winmodevcamp-save-the-date-november-11th/</guid>
		<description><![CDATA[ 
On Wednesday, November 11th, we’ll be hosting the Toronto-area WinMoDevCamp at Microsoft Canada’s headquarters! It’ll be the fifth in a series of worldwide “Camp” style workshops focusing on developing applications for Windows Mobile (including the upcoming Windows Mobile 6.5).
WinMoDevCamp – short for Windows Mobile Developer Camp – was inspired by events like BarCamp, SuperHappyDevHouse [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://winmodevcamp.org/"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="WinMoDevCamp banner" border="0" alt="WinMoDevCamp banner" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/10/winmodevcamp1.jpg" width="600" height="117" /></a> </p>
<p><strong>On Wednesday, November 11th, we’ll be hosting the Toronto-area <a href="http://winmodevcamp.org/">WinMoDevCamp</a> at Microsoft Canada’s headquarters!</strong> It’ll be the fifth in a series of worldwide “Camp” style workshops focusing on developing applications for Windows Mobile (including the upcoming <a href="http://developer.windowsmobile.com/">Windows Mobile 6.5</a>).</p>
<p><strong>WinMoDevCamp</strong> – short for <em>Windows Mobile Developer Camp</em> – was inspired by events like <a href="http://en.wikipedia.org/wiki/BarCamp">BarCamp</a>, <a href="http://en.wikipedia.org/wiki/SuperHappyDevHouse">SuperHappyDevHouse</a> and the original <a href="http://www.iphonedevcamp.org/">iPhoneDevCamp</a>. It’s a free-of-charge get-together where mobile developers, web developers, .NET developers, UI designers, testers, device manufacturers and Canadian mobile carriers gather, team up and work in ad-hoc mobile development projects for the day.</p>
<p>You’ll get to:</p>
<ul>
<li>Create new applications for the Windows Mobile Platform </li>
<li>Meet and work side-by-side with people from the Microsoft Mobile Developer Experience team </li>
<li>Migrate existing mobile apps from the iPhone, BlackBerry and Palm Pre to the Windows Mobile platform </li>
<li>Create applications to support Windows Enterprise Applications </li>
<li>Meet with representatives from Canadian mobile phone companies, including Bell, Rogers, Telus and WIND </li>
<li>Test and optimize applications for Windows Mobile 6.5 </li>
</ul>
<p><strong>The event is free-as-in-beer</strong> (in other words, it costs nothing to attend), and you’ll be able to sign up to attend soon – watch this space!</p>
<p class="alert"><a href="http://blogs.msdn.com/cdndevs/archive/2009/10/19/winmodevcamp-save-the-date-november-11th.aspx">This article also appears in <em>Canadian Developer Connection</em>.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2009/10/19/winmodevcamp-save-the-date-november-11th/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WIND Mobile&#8217;s Videos: Funny. Canadian Mobile Phone Situation: Not So Funny.</title>
		<link>http://www.globalnerdy.com/2009/10/19/wind-mobiles-videos-funny-canadian-mobile-phone-situation-not-so-funny/</link>
		<comments>http://www.globalnerdy.com/2009/10/19/wind-mobiles-videos-funny-canadian-mobile-phone-situation-not-so-funny/#comments</comments>
		<pubDate>Mon, 19 Oct 2009 19:14:55 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Software and Services]]></category>
		<category><![CDATA[Canada]]></category>
		<category><![CDATA[Funny]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[mobile providers]]></category>
		<category><![CDATA[Tom Purves]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[WIND Mobile]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2009/10/19/wind-mobiles-videos-funny-canadian-mobile-phone-situation-not-so-funny/</guid>
		<description><![CDATA[I have no idea if WIND Mobile is going to be able to deliver what they promise – a mobile phone company that listens to its customers and provides better service than the sad players in the Canadian mobile phone oligarchy – but they’ve got the right ideas and some rather funny videos that perfectly [...]]]></description>
			<content:encoded><![CDATA[<p></p><p align="left"><strong>I have no idea if <a href="http://www.windmobile.ca/">WIND Mobile</a> is going to be able to deliver what they promise</strong> – a mobile phone company that listens to its customers and provides better service than the sad players in the Canadian mobile phone oligarchy – but they’ve got the right ideas and some rather funny videos that perfectly illustrate what the Canadian mobile customer has to contend with.</p>
<p align="left"><strong>What if Toronto’s hot dog vendors had a pricing model like Canadian mobile phone companies?</strong> Buying a hot dog would be like this:</p>
<p align="center"><object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/xrTAUkYxPM0&amp;hl=en&amp;fs=1&amp;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/xrTAUkYxPM0&amp;hl=en&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></p>
<p align="left"><strong>Canada is the only country in the world where mobile companies lock you into <em>three-year</em> contracts for mobile service,</strong> and this situation is illustrated in the video titled <em>Bike Lock</em>:</p>
<p align="center"><object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/Qugarg34DHE&amp;hl=en&amp;fs=1&amp;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/Qugarg34DHE&amp;hl=en&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></p>
<p align="left"><strong>I always look at the service packages offered by U.S. mobile companies with envy.</strong> Here, the mobile companies love nickel-and-diming you:</p>
<p align="center"><object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/sT0UhTtdPlI&amp;hl=en&amp;fs=1&amp;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/sT0UhTtdPlI&amp;hl=en&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></p>
<p>WIND is a new entrant into the Canadian mobile phone market and a branch of <a href="http://www.globalive.com/">Globalive Communications</a>, who already have a presence in Canada in the form of <a href="http://www.yak.ca/">Yak Communications</a>, an alternative phone and internet provider. They seem to be taking a very “social media” approach to their marketing, what with the “viral” YouTube videos and a “conversational” website in which readers are encourage to actively participate in online discussions.</p>
<p>They look like an interesting company to watch, and hey, if they can get me a better deal than Rogers, I’ll switch.</p>
<h3>Recommended Reading</h3>
<p><strong><a href="http://www.thomaspurves.com/">Tom Purves</a> has been one of voices leading the battle cry against Canadian mobile companies</strong> for the past couple of years. Back in 2007 at <a href="http://democamp.com/">DemoCamp</a> 17, he gave what <a href="http://www.thomaspurves.com/2007/04/09/canada-worse-than-3rd-world-countries-when-it-comes-to-mobile-data-access/">I consider to be the best ignite presentation ever given at a Toronto DemoCamp</a>, <strong><em><a href="http://www.slideshare.net/thomas.purves/the-state-of-wireless-in-canada-sucks-toronto-democamp17-thomas-purves">The State of Wireless in Canada Sucks</a></em></strong>. Here’s the slide deck from that presentation:</p>
<p align="center">
<div style="text-align: left; width: 425px" id="__ss_282732"><a style="margin: 12px 0px 3px; display: block; font: 14px helvetica,arial,sans-serif; text-decoration: underline" title="(Feb 2008) The State Of Wireless In Canada Sucks   Toronto Democamp17 Thomas Purves" href="http://www.slideshare.net/thomas.purves/the-state-of-wireless-in-canada-sucks-toronto-democamp17-thomas-purves">(Feb 2008) The State Of Wireless In Canada Sucks Toronto Democamp17 Thomas Purves</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=the-state-of-wireless-in-canada-sucks-toronto-democamp17-thomas-purves-1204053996919544-2&amp;rel=0&amp;stripped_title=the-state-of-wireless-in-canada-sucks-toronto-democamp17-thomas-purves" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=the-state-of-wireless-in-canada-sucks-toronto-democamp17-thomas-purves-1204053996919544-2&amp;rel=0&amp;stripped_title=the-state-of-wireless-in-canada-sucks-toronto-democamp17-thomas-purves" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="font-family: tahoma,arial; height: 26px; font-size: 11px; padding-top: 2px">View more <a style="text-decoration: underline" href="http://www.slideshare.net/">documents</a> from <a style="text-decoration: underline" href="http://www.slideshare.net/thomas.purves">thomas.purves</a>.</div>
</p></div>
</p>
<p>He recently <a href="http://www.slideshare.net/thomas.purves/sept-2009-the-state-of-wireless-in-canada">revised his presentation for 2009</a> when he presented it at the FITC mobile conference in September, which mentions WIND mobile:</p>
<p align="center">
<div style="text-align: left; width: 425px" id="__ss_2008431"><a style="margin: 12px 0px 3px; display: block; font: 14px helvetica,arial,sans-serif; text-decoration: underline" title="(Sept 2009) The state of Wireless in Canada" href="http://www.slideshare.net/thomas.purves/sept-2009-the-state-of-wireless-in-canada">(Sept 2009) The state of Wireless in Canada</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=fitcdecktompurves-090916154308-phpapp01&amp;rel=0&amp;stripped_title=sept-2009-the-state-of-wireless-in-canada" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=fitcdecktompurves-090916154308-phpapp01&amp;rel=0&amp;stripped_title=sept-2009-the-state-of-wireless-in-canada" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="font-family: tahoma,arial; height: 26px; font-size: 11px; padding-top: 2px">View more <a style="text-decoration: underline" href="http://www.slideshare.net/">presentations</a> from <a style="text-decoration: underline" href="http://www.slideshare.net/thomas.purves">thomas.purves</a>.</div>
</p></div>
</p>
<p class="alert"><a href="http://www.joeydevilla.com/2009/10/19/wind-mobiles-videos-funny-canadian-mobile-phone-situation-not-so-funny/">This article also appears in <em>The Adventures of Accordion Guy in the 21st Century</em>.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2009/10/19/wind-mobiles-videos-funny-canadian-mobile-phone-situation-not-so-funny/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>TechDays Vancouver: More Scenes from the &#8220;Platform&#8221; Track</title>
		<link>http://www.globalnerdy.com/2009/09/14/techdays-vancouver-more-scenes-from-the-platform-track/</link>
		<comments>http://www.globalnerdy.com/2009/09/14/techdays-vancouver-more-scenes-from-the-platform-track/#comments</comments>
		<pubDate>Tue, 15 Sep 2009 00:48:50 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Meetups]]></category>
		<category><![CDATA[Software and Services]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[TechDays]]></category>
		<category><![CDATA[Vancouver]]></category>
		<category><![CDATA[Windows Mobile]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2009/09/14/techdays-vancouver-more-scenes-from-the-platform-track/</guid>
		<description><![CDATA[Two out of three of this afternoon’s sessions in my track at the TechDays conference – Developing for the Microsoft-Based Platform &#8212; were presented by Anthony Vranic, an independent consultant who used to be a Microsoft developer evangelist. His sessions:

Building Modular Applications Using Silverlight and WPF 
Optimizing Your Apps for the Windows 7 User Experience [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><strong>Two out of three of this afternoon’s sessions in my track at the <a href="http://techdays.ca/">TechDays</a> conference – <em>Developing for the Microsoft-Based Platform</em> &#8212; were presented by Anthony Vranic,</strong> an independent consultant who used to be a Microsoft developer evangelist. His sessions:</p>
<ul>
<li><em>Building Modular Applications Using Silverlight and WPF</em> </li>
<li><em>Optimizing Your Apps for the Windows 7 User Experience</em> </li>
</ul>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Anthony Vranic presenting at TechDays Vancouver 2009" border="0" alt="Anthony Vranic presenting at TechDays Vancouver 2009" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/09/anthony_v.jpg" width="601" height="394" /> </p>
<p>Next up were <strong>Anthony Bartolo</strong> and <strong>Mark Arteaga</strong>, who were there to present the session <em>Taking Your Application on the Road with Windows Mobile Software</em>, in which they showed us things that people think Windows Mobile can’t do.</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="arteaga_bartolo_1" border="0" alt="arteaga_bartolo_1" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/09/arteaga_bartolo_1.jpg" width="601" height="451" /> </p>
<p>Yup, that’s <em><a href="http://www.thebeatlesrockband.com/">The Beatles: Rock Band</a></em> beside Anthony – this was a session where you could leave with a prize! They gave away XBox games to people who answered skill- and mobile market knowledge-testing questions correctly.</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="arteaga_bartolo_2" border="0" alt="arteaga_bartolo_2" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/09/arteaga_bartolo_2.jpg" width="450" height="600" /> </p>
<p>They gave <em>The Beatles: Rock Band </em>to the person working on the most interesting Windows Mobile app, as judged by audience applause. It went to the gentleman in the photo below on the right, who wrote a currency exchange application that watches exchange markets for the ideal time and buys foreign currencies then. He uses it to send money home to New Zealand within taking a bath on the exchange rate.</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="winner" border="0" alt="winner" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/09/winner.jpg" width="600" height="450" /> </p>
<p>As I write this, it’s 5:45 p.m. Pacific, which means that the next event, <a href="http://upcoming.yahoo.com/event/4390849">Demo Ignite Camp</a>, is just over an hour away.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2009/09/14/techdays-vancouver-more-scenes-from-the-platform-track/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Remember: The Race to Market Challenge is On!</title>
		<link>http://www.globalnerdy.com/2009/08/24/remember-the-race-to-market-challenge-is-on/</link>
		<comments>http://www.globalnerdy.com/2009/08/24/remember-the-race-to-market-challenge-is-on/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 13:35:36 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Hardware and Gadgets]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software and Services]]></category>
		<category><![CDATA[contests]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[Race to Market Challenge]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[Windows Phone]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2009/08/24/remember-the-race-to-market-challenge-is-on/</guid>
		<description><![CDATA[Last month, I posted a video announcing the launch of the Race to Market Challenge, a competition that challenges you to add some Windows Phone applications to our up-and-coming Marketplace and compete for one of four grand prizes: developer editions of a Surface table.
There’s a new video out, and I’m posting it as a little [...]]]></description>
			<content:encoded><![CDATA[<p></p><p align="left">Last month, <a href="http://www.globalnerdy.com/2009/07/28/the-race-to-market-challenge-for-windows-mobile/">I posted a video</a> announcing the launch of the <strong><a href="http://www.mobilethisdeveloper.com/">Race to Market Challenge</a></strong>, a competition that challenges you to add some Windows Phone applications to our up-and-coming <a href="http://developer.windowsmobile.com/Marketplace.aspx">Marketplace</a> and compete for one of four grand prizes: developer editions of a <a href="http://www.microsoft.com/surface/">Surface</a> table.</p>
<p align="left">There’s a new video out, and I’m posting it as a little reminder for you would-be mobile developers, Windows Phone is a great way to get in on the ground floor of the world of mobile application development and win prizes at the same time:</p>
<p align="center"><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/Z6fTYso0zVo&amp;hl=en&amp;fs=1&amp;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/Z6fTYso0zVo&amp;hl=en&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p>
<p>I’ll be posting articles about how to access useful data and features on Windows Phone, including the <a href="http://msdn.microsoft.com/en-us/library/aa914277.aspx">Pocket Outlook Object Model</a> (POOM, which gives you access to things like contact information) and using the GPS to get the user’s location.</p>
<p class="alert"><a href="http://blogs.msdn.com/cdndevs/archive/2009/08/24/remember-the-race-to-market-challenge-is-on.aspx">This article also appears in <em>Canadian Developer Connection</em>.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2009/08/24/remember-the-race-to-market-challenge-is-on/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft&#8217;s &#8220;Fune&#8221;</title>
		<link>http://www.globalnerdy.com/2009/08/20/microsofts-fune/</link>
		<comments>http://www.globalnerdy.com/2009/08/20/microsofts-fune/#comments</comments>
		<pubDate>Thu, 20 Aug 2009 13:34:40 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Hardware and Gadgets]]></category>
		<category><![CDATA[Funny]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[parodies]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[Zune]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2009/08/20/microsofts-fune/</guid>
		<description><![CDATA[While I do hope and believe that Microsoft can get their mobile strategy right, there are days when I worry that Windows Mobile 7 is going to be like this:

]]></description>
			<content:encoded><![CDATA[<p></p><p align="left">While I do hope and believe that Microsoft can get their mobile strategy right, <strong>there are days when I worry that Windows Mobile 7 is going to be like this:</strong></p>
<p align="center"><object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/opTfPmN0YEM&amp;hl=en&amp;fs=1&amp;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/opTfPmN0YEM&amp;hl=en&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2009/08/20/microsofts-fune/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The &#8220;Race to Market Challenge&#8221; for Windows Mobile</title>
		<link>http://www.globalnerdy.com/2009/07/28/the-race-to-market-challenge-for-windows-mobile/</link>
		<comments>http://www.globalnerdy.com/2009/07/28/the-race-to-market-challenge-for-windows-mobile/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 14:00:00 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[phones]]></category>
		<category><![CDATA[Race to Market Challenge]]></category>
		<category><![CDATA[Windows Marketplace for Mobile]]></category>
		<category><![CDATA[Windows Mobile]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2009/07/28/the-race-to-market-challenge-for-windows-mobile/</guid>
		<description><![CDATA[This article also appears in Canadian Developer Connection.
The Race to Market Challenge
Here’s a quick little video that explains what the just-announced Race to Market challenge is all about:

If you’ve been thinking about developing for Windows Mobile, now’s the time! We’re now accepting submissions of applications for Windows Marketplace for Mobile, the on-phone store where people [...]]]></description>
			<content:encoded><![CDATA[<p></p><p class="alert"><a href="http://blogs.msdn.com/cdndevs/archive/2009/07/28/the-race-to-market-challenge-for-windows-mobile.aspx">This article also appears in <em>Canadian Developer Connection</em>.</a></p>
<h3>The Race to Market Challenge</h3>
<p align="left">Here’s a quick little video that explains what <strong><a href="http://windowsteamblog.com/blogs/windowsphone/archive/2009/07/27/the-race-to-market.aspx">the just-announced Race to Market challenge</a></strong> is all about:</p>
<p align="center"><object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/OCvpypcUJI8&amp;hl=en&amp;fs=1&amp;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/OCvpypcUJI8&amp;hl=en&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></p>
<p><strong>If you’ve been thinking about developing for Windows Mobile, now’s the time!</strong> We’re now accepting submissions of applications for <a href="http://developer.windowsmobile.com/Marketplace.aspx">Windows Marketplace for Mobile</a>, the on-phone store where people with Windows Mobile phones can buy and install mobile applications easily. Better still, we’re making it a contest – <strong>submit your Windows Mobile app between now and 11:59 p.m. on December 31st and you’ll automatically be entered in the Race to Market Challenge</strong> where you’ll have a chance to win one of 4 <a href="http://www.microsoft.com/surface/">Surface</a> tables (developer edition, of course) like the one pictured below with the dashing Developer Evangelist…</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="surface_pdc" border="0" alt="surface_pdc" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/07/surface_pdc1.jpg" width="600" height="450" /> </p>
</p>
<p>…along with a lot of online marketing and promotion for your application and a really cool trophy.</p>
<p>Winning applications will fall into one of these categories:</p>
<ul>
<li>Most downloaded </li>
<li>Most valuable (where “value” is the number of downloads multiplied by the price) </li>
<li>Most useful, as judged by a Microsoft panel </li>
<li>Most playful, as judged by a Microsoft panel </li>
</ul>
<p>The Race to Market Challenge runs from now until December 31st, and the sooner you get started, the more likely you shot at one of the grand prized. For full details about the contest, visit <strong><a href="http://mobilethisdeveloper.com/">mobilethisdeveloper.com</a></strong>.</p>
<h3>Getting Started with Windows Mobile Development</h3>
<p>Between now and the end of the contest, I’ll be posting articles on Windows Mobile development and the Race to Market Challenge. In the meantime, here are some tips that should help you get started.</p>
<h4>What You Need</h4>
<p>Here’s a snippet from <a href="http://www.globalnerdy.com/2009/04/16/upwardly-mobile-part-2-your-first-windows-mobile-6-application/">an earlier article of mine that shows you what you need in order to get started with Windows Mobile development</a>. In order to build an application for Windows Mobile 6, you’ll need the following things:</p>
<table border="0" cellspacing="10" cellpadding="3" width="580">
<tbody>
<tr>
<td valign="top" width="290"><strong>Visual Studio 2008, Professional Edition or higher            <br /><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="visual_studio_2008_pro" border="0" alt="visual_studio_2008_pro" align="left" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/visual-studio-2008-pro.jpg" width="236" height="66" /></strong></td>
<td valign="top" width="290">This is the development environment. It’s not the only one that you can use to develop Windows Mobile apps, but it’s the one we’re using.          </p>
<p>You can also use Visual Studio 2005 – if you do so, Standard Edition or higher will do. If you don’t have Visual Studio, <a href="http://www.microsoft.com/visualstudio/en-us/try/trial-software.mspx">you can download a trial version of Visual Studio 2008</a>.           <br />&#160;</td>
</tr>
<tr>
<td valign="top" width="290"><strong>The Windows Mobile 6 SDKs            <br /><a href="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/gear-icon.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="gear_icon" border="0" alt="gear_icon" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/gear-icon-thumb.jpg" width="90" height="75" /></a>             <br />&#160;</strong></td>
<td valign="top" width="290">The <strong><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=06111a3a-a651-4745-88ef-3d48091a390b&amp;displaylang=en">Windows Mobile 6 SDKs</a></strong> contain the templates for building Windows Mobile 6 projects and emulators for various Windows mobile phones.           </p>
<p>There are two such SDKs to choose from:
<li>The <strong>Standard</strong> SDK. The general rule is that if the device <em>doesn’t have</em> a touch screen, its OS is Windows Mobile 6 Standard, and this is the SDK for developing for it. </li>
<li>The <strong>Professional</strong> SDK. The general rule is that if the device <em>has</em> a touch screen, its OS is Windows Mobile 6 Professional, and this is the SDK for developing for it.
<p>I recommend downloading both SDKs. You never know where you’ll deploy!&#160; </li>
</td>
</tr>
<tr>
<td valign="top" width="290"><strong>.NET Compact Framework 3.5 Redistributable            <br /><a href="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/dotnet-logo.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="dotnet_logo" border="0" alt="dotnet_logo" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/dotnet-logo-thumb.jpg" width="90" height="86" /></a>             <br />&#160;</strong></td>
<td valign="top" width="290">The <strong><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=E3821449-3C6B-42F1-9FD9-0041345B3385&amp;displaylang=en">.NET Compact Framework 3.5 Redistributable</a></strong> is the version of the .NET framework for mobile devices. It only needs to be sent to the device once.           </td>
</tr>
<tr>
<td valign="top" width="290"><strong>A Windows Mobile 6 Device            <br /><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="palm_treo_pro" border="0" alt="palm_treo_pro" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/palm-treo-pro.jpg" width="150" height="137" />             <br />&#160;</strong></td>
<td valign="top" width="290">You can get by in the beginning with just the emulators, but you’ll eventually want to try out your app on a real phone. I’m using my phone, a <a href="http://www.palm.com/us/products/phones/treopro/index.html">Palm Treo Pro</a>.           </p>
<p>As the saying goes, “In theory, there is no difference between theory and practice; in practice, there is.”</td>
</tr>
<tr>
<td valign="top" width="290"><strong>The mobile device syncing utility that works with your operating system            <br /><a href="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/windows-mobile-device-center-icon.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="windows_mobile_device_center_icon" border="0" alt="windows_mobile_device_center_icon" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/windows-mobile-device-center-icon-thumb.jpg" width="90" height="91" /></a> </strong></td>
<td valign="top" width="290">If you’ve got a Windows Mobile 6 device, you’ll need the application that connects your mobile phone to your OS:
<li>For Windows 7 and Vista, use <strong><a href="http://www.microsoft.com/windowsmobile/en-us/help/synchronize/device-center-download.mspx">Windows Mobile Device Center</a></strong>. </li>
<li>For Windows XP and Server 2003, use <strong><a href="http://www.microsoft.com/windowsmobile/en-us/help/synchronize/activesync-download.mspx">ActiveSync</a></strong>. </li>
</td>
</tr>
</tbody>
</table>
<h4>Previous Articles on Windows Mobile Development</h4>
<p>Here are links to my earlier articles on Windows Mobile development:</p>
<ul>
<li><a href="http://www.globalnerdy.com/2009/04/13/upwardly-mobile-part-1-a-brief-tour-of-mobile-app-development/">Upwardly Mobile, Part 1: A Brief Tour of Mobile App Development</a> </li>
<li><a href="http://www.globalnerdy.com/2009/04/16/upwardly-mobile-part-2-your-first-windows-mobile-6-application/">Upwardly Mobile, Part 2: Your First Windows Mobile 6 Application</a> </li>
<li><a href="http://www.globalnerdy.com/2009/05/01/upwardly-mobile-part-3-exploring-windows-mobile-6s-built-in-ui-controls/">Upwardly Mobile, Part 3: Exploring Windows Mobile 6’s Built-In UI Controls</a> </li>
</ul>
<p>I’ll be posting more soon, but these should help you get up and running in the meantime.</p>
<p>If you’ve got any questions or comments about Windows Mobile development or the Race to Market Challenge, feel free to drop me a line or leave a note in the comments!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2009/07/28/the-race-to-market-challenge-for-windows-mobile/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Fast Food Apple Pies and Why Netbooks Suck</title>
		<link>http://www.globalnerdy.com/2009/05/26/fast-food-apple-pies-and-why-netbooks-suck/</link>
		<comments>http://www.globalnerdy.com/2009/05/26/fast-food-apple-pies-and-why-netbooks-suck/#comments</comments>
		<pubDate>Tue, 26 May 2009 04:00:00 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Hardware and Gadgets]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[mobile phones]]></category>
		<category><![CDATA[netbooks]]></category>
		<category><![CDATA[network computers]]></category>
		<category><![CDATA[user interface]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2009/05/26/fast-food-apple-pies-and-why-netbooks-suck/</guid>
		<description><![CDATA[If you’re pressed for time, the graphic below – which takes its inspiration from these articles by Kathy “Creating Passionate Users” Sierra &#8212; captures the spirit of this article rather nicely:

If you have a little more time to spare, I’m going to explain my belief that while netbooks have a nifty form factor, they’re not [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>If you’re pressed for time, the graphic below – which takes its inspiration from <a href="http://headrush.typepad.com/creating_passionate_users/2006/10/dilbert_and_the.html">these</a> <a href="http://headrush.typepad.com/creating_passionate_users/2006/11/the_zone_of_exp.html">articles</a> by <a href="http://headrush.typepad.com/creating_passionate_users/">Kathy “<em>Creating Passionate Users</em>” Sierra</a> &#8212; captures the spirit of this article rather nicely:</p>
<p><a href="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/smartphone-netbook-laptop.jpg"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Kathy Sierra-esque graph showing  the relative positions of the smartphone (great for when you&#39;re on the go), the laptop (great for when you&#39;re sitting down) and in between, the netbook (zone of suck)" border="0" alt="Kathy Sierra-esque graph showing  the relative positions of the smartphone (great for when you&#39;re on the go), the laptop (great for when you&#39;re sitting down) and in between, the netbook (zone of suck)" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/smartphone-netbook-laptop-thumb.jpg" width="559" height="325" /></a></p>
<p>If you have a little more time to spare, <strong>I’m going to explain my belief that while netbooks have a nifty form factor, they’re not where the mobile computing action is.</strong></p>
<h3>A Tale of Two Pies</h3>
<p>When I was <a href="http://queensu.ca/">Crazy Go Nuts University’s</a> second most notorious perma-student (back in the late ‘80s/early ‘90s), I took a handful of business courses at the recommendation of my engineering and computer science professors. “You’re going to have to learn to speak the suits’ language,” they said. Crazy Go Nuts University has a renowned business school and I thought it would be a waste not to take at least a couple of business courses. I especially liked the Marketing couse, and one lecture stands out in my mind: a case study comparing the dessert offerings of two major fast food chains.</p>
<p>In the interest of not attracting the attention of their lawyers, I’m going to refer to the chains as:</p>
<ul>
<li><strong>Monarch Burger</strong>, whose mascot is a mute monarch with a glazed-over face, wearing a crown and associated paraphernalia, and </li>
<li><strong>Jester Burger</strong>, whose mascot is a clown in facepaint and a brightly-coloured jumpsuit who loves to sing and dance. </li>
</ul>
<p>Both Monarch Burger and Jester Burger offered a dessert that went by the name “apple pie”. Let’s examine them.</p>
<h4>Monarch Burger’s Pie</h4>
<p><strong><img style="border-right-width: 0px; margin: 10px 10px 10px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Monarch Burger&#39;s apple pie: a slice of pie served in a wedge-shaped box" border="0" alt="Monarch Burger&#39;s apple pie: a slice of pie served in a wedge-shaped box" align="left" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/monarch-burger-apple-pie.jpg" width="150" height="150" /> </strong>Monarch Burger went to the trouble of making their apple pie look like a slice of homemade apple pie. While it seems appealing in its photo on the menu, it sets up a false expectation. <strong>It may <em>look</em> like a slice of homemade apple pie, but it certainly doesn’t <em>taste</em> like one. Naturally, it flopped.</strong> Fast-food restaurants are set up to be run not by trained chefs, but by a low-wage, low-skill, disinterested staff. As a result, their food preparation procedures are designed to run on little thinking and no passion. They’re not set up to create delicious homemade apple pies.</p>
<h4>Jester Burger’s Pie</h4>
<p><img style="border-right-width: 0px; margin: 10px auto 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Jester Burger&#39;s apple pie: a tube of pastry, whose skin is pocked from deep-frying" border="0" alt="Jester Burger&#39;s apple pie: a tube of pastry, whose skin is pocked from deep-frying" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/jester-burger-apple-pie.jpg" width="500" height="375" /> </p>
<p>Jester Burger’s approach was quite different. Their dessert is called “apple pie”, but it’s one in the loosest sense. It’s apple pie filling inside a pastry shell shaped like the photon torpedo casings from <em>Star Trek</em>. In the 70s and 80s, the pastry shell had bubbles all over it because it wasn’t baked, but deep-fried. After all, their kitchens already had deep fryers aplenty – why not use them?</p>
<p><strong>Unlike Monarch Burger’s offering, Jester Burger’s sold well because it gave their customers a dessert reminiscent of an apple pie without setting up any expectations for real apple pie.</strong> </p>
<p>Jester Burger’s pie had an added bonus: unlike Monarch Burger’s pie, which was best eaten with a fork, Jester Burger’s pie was meant to be held in your hand, just like their burgers and fries.</p>
<p>At this point, I am obliged to remind you that this isn’t an article about 1980s-era desserts at fast food burger chains. It’s about netbooks and smartphones, but keep those pies in mind…</p>
<h3>Netbooks are from Monarch Burger…</h3>
<p><strong>Netbooks remind me of Monarch Burger’s apple pie.</strong> Just as Monarch Burger tried to take the standard apple pie form and attempt to fit it into a fast food menu, the netbook approach tries to take the standard laptop form and attempt to fit it into mobile computing. The end result, to my mind, is a device that occupies an uncomfortable, middle ground between laptops and smartphones that tries to please everyone and pleases no one. Consider the factors:</p>
<ul>
<li><strong>Size:</strong> A bit too large to go into your pocket; a bit too small for regular day-to-day work. </li>
<li><strong>Power:</strong> Slightly more capable than a smartphone; slightly less capable than a laptop. </li>
<li><strong>Price: </strong>Slightly higher than a higher-end smartphone but lacking a phone’s capability and portability; slightly lower than a lower-end notebook but lacking a notebook’s speed and storage. </li>
</ul>
<p>To summarize: Slightly bigger and pricier than a phone, but can’t phone. Slightly smaller and cheaper than a laptop, but not that much smaller or cheaper. To adapt a phrase I used in <a href="http://www.globalnerdy.com/2009/05/25/mental-models-mantras-and-my-mission/">an article I wrote yesterday</a>, <strong>netbooks are like laptops, but lamer.</strong></p>
<h3>Network Computers and Red Herrings</h3>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Sun&#39;s &quot;JavaStation&quot; network computer" border="0" alt="Sun&#39;s &quot;JavaStation&quot; network computer" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/sun-javastation.jpg" width="600" height="252" /> </p>
<p>The uncomfortable middle ground occupied by the netbook reminds me of another much-hyped device that flopped &#8211; the network computer, which also went by the name &quot;thin client&quot;. In the late 90s, a number of people suggested that desktop computers, whose prices started at the mid-$1000 range in those days, would be replaced by inexpensive diskless workstations. These machines would essentially be the Java-era version of what used to be called &quot;smart terminals&quot;, combining local processing power with network-accessed storage of programs and data. </p>
<p>A lot of the ideas behind the network computer ended up in today&#8217;s machines, even if the network computer itself didn&#8217;t. Part of the problem was the state of networking when the NC was introduced; back then, broadband internet access was generally the exception rather than the rule. Another major factor was price &#8211; desktop and even laptop computers prices fell to points even lower than those envisioned for NCs. Finally, there was the environment in which the applications would run. Everyone who was betting on the NC envisioned people running Java apps pushed across the network, but it turned out that the things they had dismissed as toys &#8212; the browser and JavaScript, combining to form the juggernaut known as Ajax &#8212; ended up being where applications &quot;lived&quot;.</p>
<p>When I look at netbooks, I get network computer <em>deja vu</em>. I see a transitory category of technology that will eventually be eclipsed. I think that laptops will eventually do to netbooks what desktop machines did to network computers: evolve to fill their niche. Just as there are small-footprint desktop computers that offer all the functionality and price point of a network computer along with the benefits of local storage, I suspect that what we consider to be a netbook today will be just another category of laptop computer tomorrow.</p>
<p><img style="border-right-width: 0px; margin: 0px auto 10px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="A netbook displaying a picture of a red herring on its screen" border="0" alt="A netbook displaying a picture of a red herring on its screen" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/netbook-red-herring5.jpg" width="217" height="240" /></p>
</p>
<p>I’m going to go a little farther, beyond stating that netbooks are merely the present-day version of the network computer. I’m going to go beyond saying that while their form factor is a little more convenient than that of a laptop, the attention they’re getting – there’s a lot of hoo-hah about who’s winning in the netbook space, Windows or Linux &#8211;&#160; is out of proportion to their eventual negligible impact. <strong>I’m going to go out on a limb and declare them to be a dangerous <a href="http://en.wikipedia.org/wiki/Red_herring_(idiom)">red herring</a>, a diversion from where the <em>real</em> mobile action is.</strong>&#160;&#160; </p>
<h3>…and Smartphones are from Jester Burger</h3>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Southern Chicken Place&#39;s apple pie, which looks a lot like Jester Burger&#39;s apple pie" border="0" alt="Southern Chicken Place&#39;s apple pie, which looks a lot like Jester Burger&#39;s apple pie" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/southern-chicken-place-pie.jpg" width="600" height="450" /> </p>
<p><strong>A quick aside:</strong> The photo above is <em>not</em> of a Jester Burger fried apple pie. In response to their customers’ so-called health concerns (really, if those concerns were real, they’d stop eating there), they started phasing out the fried pies in 1992 in favour of the baked kind. There are still some branches of Jester Burger that carry the fried pies, but a more reliable source is a fast food chain that I’ll refer to as “Southern Chicken Place”, or SCP for short. Those pies in the photo above? They’re from SCP.</p>
<p>Jester Burger made no attempt to faithfully replicate a homemade apple pie when they made their dessert. Instead, they engineered something that was “just pie enough” and also matched the environment in which it would be prepared (a fast food kitchen, which didn’t have ovens but had deep fryers) and the environment in which it would be eaten (at a fast food restaurant table or in a car, where there isn’t any cutlery and everything is eaten with your hands). <strong>The Jester Burger pie fills a need without pretending to be something it’s not, and I think smartphones do the same thing.</strong></p>
<p>Smartphones are truly portable. They <em>really</em> fit into your pocket or hang nicely off your belt, unlike netbooks:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Two Japanese models trying to stuff a Sony Vaio netbook into their pockets" border="0" alt="Two Japanese models trying to stuff a Sony Vaio netbook into their pockets" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/pocket-vaio.jpg" width="500" height="370" /> </p>
<p>And smartphones are meant to be used while you’re holding them:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Captain Kirk, his communicator and the iPhone" border="0" alt="Captain Kirk, his communicator and the iPhone" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/kirk-communicator-iphone.jpg" width="400" height="209" /></p>
</p>
<p>Just try that with a netbook. In order to <em>really</em> use one, you’ve got to set it down on a flat surface:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Guy using his netbook, perched on the roof of his car...with a stylus, no less!" border="0" alt="Guy using his netbook, perched on the roof of his car...with a stylus, no less!" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/guymessingwithnetbook.jpg" width="240" height="240" /> </p>
<p>The best smartphones make no attempt to faithfully replicate the laptop computer experience in a smaller form. Instead, they’re “just computer enough” to be useful, yet better fit the on-the-go situations in which they will be used. They also incorporate mobile phones and MP3s – useful, popular and familiar devices &#8212; and the best smartphones borrow tricks from their user interfaces.</p>
<p><strong>Smartphones, not netbooks, are where the real advances in mobile computing will be made.</strong></p>
<h3>Smartphone vs. Netbook: The People Have Chosen</h3>
<p>One again, the thesis of this article, in graphic form:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Same graph as the earlier Kathy Sierra-esque one at the start of the article." border="0" alt="Same graph as the earlier Kathy Sierra-esque one at the start of the article." src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/smartphone-netbook-laptop-thumb.jpg" width="559" height="325" /></p>
<p>In the late 80s and early 90s, the people chose the fast food apple pie they wanted: the convenient, if not exactly apple pie-ish Jester Burger pie over Monarch Burger’s more-like-the-real-thing version.</p>
<p><strong>When people buy a smartphone, which they’ve been doing like mad, they’re buying their primary mobile phone.</strong> It’s the mobile phone and computing platform that they’re using day in and day out and the device that they’re pulling out of their pockets, often to the point of interrupting conversations and <a href="http://kdka.com/national/trolley.crash.boston.2.1005125.html">crashing the trolley they’re operating</a>.</p>
<p><strong>When people buy a netbook, they’re often not buying their primary machine.</strong> It’s a second computer, a backup device that people take when their real machine – which is often a laptop computer that isn’t much larger or more expensive – seems like too much to carry. It’s a luxury that people might ditch if the current economic situation continues or worsens and as the differences between laptops and netbooks vanish. Netbooks, as a blend of the worst of both mobile and laptop worlds, will be a transitional technology; at best, they’ll enjoy a brief heyday similar to that of the fax machine.</p>
<p><strong>The people are going with smartphones, and as developers, you should be following them.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2009/05/26/fast-food-apple-pies-and-why-netbooks-suck/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>Mental Models, Mantras and My Mission</title>
		<link>http://www.globalnerdy.com/2009/05/25/mental-models-mantras-and-my-mission/</link>
		<comments>http://www.globalnerdy.com/2009/05/25/mental-models-mantras-and-my-mission/#comments</comments>
		<pubDate>Mon, 25 May 2009 04:00:00 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Hardware and Gadgets]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software and Services]]></category>
		<category><![CDATA[What Joey Did]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[desktop computing]]></category>
		<category><![CDATA[Evangelism]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[web applications]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2009/05/25/mental-models-mantras-and-my-mission/</guid>
		<description><![CDATA[Mental Models and Bill Buxton’s “Draw a Computer” Exercise

In the mid 1990s, well before he was Microsoft’s user interface guru, Bill Buxton often asked people to carry out a simple little exercise: draw a picture of a computer. Most, if not all, of the people he asked would draw something that fit the common mental [...]]]></description>
			<content:encoded><![CDATA[<p></p><h3>Mental Models and Bill Buxton’s “Draw a Computer” Exercise</h3>
<p><a href="http://www.billbuxton.com/"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Bill Buxton" border="0" alt="Bill Buxton" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/bill-buxton.jpg" width="343" height="288" /></a></p>
<p><strong>In the mid 1990s, well before he was Microsoft’s user interface guru, </strong><a href="http://www.billbuxton.com/"><strong>Bill Buxton</strong></a><strong> often asked people to carry out a simple little exercise: draw a picture of a computer.</strong> Most, if not all, of the people he asked would draw something that fit the common mental model of the desktop computer of the era: cathode ray tube-type monitor, keyboard, mouse and that box housing the motherboard and drives that many people mistakenly refer to as “the CPU”.</p>
<p>If Buxton were to ask the question today, the drawings of computers might look like these:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Four computers from the 2000s - a laptop, a couple of all-in-one-desktops and a desktop with a &quot;box&quot; -- all with flat screens" border="0" alt="Four computers from the 2000s - a laptop, a couple of all-in-one-desktops and a desktop with a &quot;box&quot; -- all with flat screens" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/00s-computers.jpg" width="519" height="486" /></p>
<p>If he asked the question in the mid-to-late 1980s, the drawings might’ve looked like these:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="80s-era computers: Apple ][, Commodore 64, TRS-80 and IBM PC" border="0" alt="80s-era computers: Apple ][, Commodore 64, TRS-80 and IBM PC" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/80s-computers.jpg" width="508" height="508" /></p>
<p>And had he asked the question in the mid-60s, the drawings might’ve looked like this:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="The classic fake &quot;home computer as envisioned by RAND&quot; photo" border="0" alt="The classic fake &quot;home computer as envisioned by RAND&quot; photo" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/fake-rand-computer.jpg" width="600" height="386" /> </p>
<p>Buxton likes to point out that the changes in computers from the 60s onwards are largely in the implementation technology, processing power and outward appearance. When most people draw computers, he said, they’re merely drawing their mental model, which is based on the outer packaging. </p>
<p>However, if you use the mental model of a technologist, computers have been essentially the same instruction/ALU/storage/input-output boxes whether they’ve occupied whole rooms or fit in your pocket. They’ve been pretty much the same at their core, in the same way that fancy tech and hybrid engine aside, there really isn’t too much that separates a present-day Toyota Prius from a Model T Ford.</p>
<p>If Bill Buxton could approach Microsoft Corporation as a person &#8212; and hey, that’s the way the law treats corporations, so why not? – and asked him/her to draw a computer,<strong> I suspect that s/he would draw something based on mental model of a souped-up circa 2000 computer: a desktop computer with a nice flatscreen monitor, running Windows XP and having a somewhat limited connection to the ‘net.</strong> </p>
<p>I think that this is a problem. I also think that the source of this problem is Microsoft’s success.</p>
<h3>Microsoft’s Company Mantras</h3>
<p><strong>“A PC on every desk and in every home” was Microsoft’s longest-lived slogan and the company mantra for the first 24 years of existence.</strong> Like the best slogans, it succinctly summarized the company’s goal. The problem is that the goal has pretty much been reached. In most parts of the first world, a good chunk of the second world and even a sizeable fraction of the third world, you can easily find a desktop computer, and it’s quite likely that it’s running some sort of Microsoft software.</p>
<p>Since 1999, the company mantra – I really hesitate the use the phrase “vision statement” &#8212; has been a little more vague. The company’s been thrashing between them a little more frequently, as you can see in this list of mantras taken from chapter 1 of <em><a href="http://www.microsoft.com/learning/en/us/books/11240.aspx">How We Test Software at Microsoft</a></em>:</p>
<ul>
<li><strong>1975 – 1999:</strong> “A PC on every desk and in every home.” </li>
<li><strong>1999 – 2002:</strong> “Empowering people through great software – any time, any place and on any device.” </li>
<li><strong>2002 – 2008:</strong> “To enable people and businesses throughout the world to realize their full potential.” </li>
<li><strong>2008 – present:</strong> “Create experiences that combine the magic of software with the power of internet services across the world of devices.” </li>
</ul>
<p>The post-1999 mantra all seem a little limp in comparison to the original. Reading them, I cannot help but think of a quote attributed to web design guru <a href="http://www.zeldman.com/">Jeffrey Zeldman</a>:</p>
<blockquote><p><strong>&quot;&#8230;provide value added solutions&quot; is not a mission. &quot;Destroy All Monsters.&quot; <em>That</em> is a fucking mission statement.</strong></p>
</blockquote>
<p>Because the old mantra lasted for so long and the new mantras just don’t have the same straightforwardness and <em>gravitas</em> (<em>How We test Sofware at Microsoft</em> quotes Ballmer as saying that we may never again have a clear statement like the original to guide the company), the original remains quite firmly etched in the company culture and mindset. </p>
<p>I think it’s holding us back.</p>
<h3>The Desktop as the Goose That Laid the Golden Egg</h3>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Altair 8800 computer on display at Microsoft&#39;s Building 92 gallery" border="0" alt="Altair 8800 computer on display at Microsoft&#39;s Building 92 gallery" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/altair-8800.jpg" width="600" height="450" /></p>
<p><strong>The original mantra doesn’t just focus on the desktop, it actually mentions it by name.</strong> In 1975, when computers were room-filling behemoths that you could access either via batch or time-share, the concept of a desktop computer was downright radical. If you think the iPhone is impressive (and yes, it is), imagine how mind-blowing the <a href="http://en.wikipedia.org/wiki/Altair_8800">Altair 8800</a>, the first commercially-available desktop computer, must have been to a geek back in the Bad Old Days. It was the platform on which Microsoft’s first product – a little programming language called Altair BASIC – was launched, and it was BASIC that in turn launched the company.</p>
<p>In his book <em><a href="http://www.gladwell.com/outliers/index.html">Outliers</a>,</em> Malcolm Gladwell talks about how the Altair 8800 was a golden opportunity for Bill Gates and his buddies at his fledgling company, then called “Micro-Soft”. Unlike a lot of other companies at the time, they took the desktop computer seriously. Even when IBM got into the desktop computer game in 1981, it was a product of their <em>Entry-Level Systems</em> division, a clear indication that <strong>they thought the PC was a machine you bought until you were ready to graduate to a <em>real</em> computer.</strong> I don’t think that this philosophy ended up serving them well.</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="An Applesoft BASIC cassette featuring a sticker that says &quot;Copyright Microsoft, 1977&quot;" border="0" alt="An Applesoft BASIC cassette featuring a sticker that says &quot;Copyright Microsoft, 1977&quot;" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/applesoft-basic-cassette.jpg" width="566" height="372" /> </p>
<p>Since the big boys were paying no mind to the desktop computer, upstarts like Microsoft had a big empty field in which to play, and they thrived. Crack open just about any late 70s/early 80s computer that had BASIC built in – even Apple machines &#8212; and you’ll see a row of ROM chips with a Microsoft copyright notice. It was Microsoft that swooped in with PC-DOS when a deal with Digital Research for a PC version of CP/M was slow in coming (and this is despite the fact that Gates recommended that IBM go to Digital for an OS). A lot of people’s experience with desktop computers (and Microsoft revenue) is defined by circa-1995 Microsoft thanks to Windows 95 and the results of Bill Gates’ memo titled <em>The Internet Tidal Wave</em>, both of whose influences are still felt to this day.</p>
<p>Once upon a time, it used to be unusual to walk into someone’s home or office and see a computer. These days, it’s unusual to walk into someone’s home or office and <em>not</em> see a computer, and Microsoft’s focus on the desktop had a lot to do with that.</p>
<h3>The Desktop as Albatross</h3>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Albatross, shot with a sucker-dart arrow, falls on the head of a Disney-esque cartoon character" border="0" alt="Albatross, shot with a sucker-dart arrow, falls on the head of a Disney-esque cartoon character" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/albatross.jpg" width="312" height="231" /> </p>
<p>When electric motors first became available, engineers envisioned factories and eventually houses being equipped with a single electric motor. They imagined that the central motor would, through a series of gears and drive belts, be connected to whatever machines in the house or factory had to be driven by it. What happened in the end is that rather than relying on some central motor, electric motors “disappeared” into the devices that used them. Here’s an exercise to try: go and count the electric motors in your house or apartment right now. The number should be a couple dozen, and <a href="http://electronics.howstuffworks.com/motor7.htm">if you can’t find them, this article might help</a>.</p>
<p>When big, room-filling computers first became available, engineers envisioned businesses being equipped with a single computer in a manner roughly analogous to the aforementioned big central motor. We know what happened in the end – while many businesses do make use of big datacenters, a lot of the computing power got spread out into desktop computers.</p>
<p>I have a theory that comes in two parts: </p>
<ol>
<li>Just as electrical motors disappeared into the devices that needed their work, and just as computing power got spread out from big mainframes into desktop machines, <strong>computing power is now <em>both disappearing and spreading out</em> into mobile devices and the web/cloud.</strong> </li>
<li>Microsoft, with its desktop-centric approach, <strong>at least <em>outwardly</em> appears to be missing out on this migration of computing power.</strong> </li>
</ol>
<p>Most of the company’s attention, at least to an outside observer, seems to be focused on Windows 7. Yes, chances are that with computer sales being what they are, Windows 7 will probably end up on more of laptops and netbooks than desktops, but I consider those devices to simply be the desktop computer in a more portable form. <strong>It worries me that there have been more concrete announcements about Windows 7 on netbooks than upcoming versions of Windows Mobile</strong>, despite the iPhone and BlackBerry-driven evidence that the real mobile action is in smartphones.</p>
<p>(Tomorrow, I’ll post an article in which I argue that netbooks are a dangerous red herring pulling away our attention from devices like smartphones.)</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Microsoft ASP.NET" border="0" alt="Microsoft ASP.NET" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/aspnet.jpg" width="300" height="144" /> </p>
<p>Even when the company reaches out beyond desktop development, there’s no escaping the desktop “gravity well”. Consider ASP.NET (that is, the “traditional” ASP.NET, not the recently-released ASP.NET MVC). To my mind, as well as the minds of a lot of other web developers, it’s a web framework that tries really hard to pretend that the web doesn’t exist. It makes use of a whole lot of tomfoolery like ViewState to create a veneer of desktop app-like statefulness over the inherently stateless nature of the web and a programming model that tries to mimic the way you’d write a desktop application. <strong>It’s almost as if it were designed with the mantra “the web is like the desktop, but lamer” instead of “the web is like the desktop, but everywhere”.</strong> Although the framework works just fine and there are a number of great sites and web apps built on it, I think a lot of developers sensed this design philosophy and went elsewhere for web development.</p>
<p>(An aside: My old boss at OpenCola in late 2001 told me that he’d been meeting with Microsoft people and suspected that Internet Explorer 6 would be the final version of their browser. The expectation that web pages and web applications would be replaced by Windows client applications pushed over the net, a prediction similar to one made by the Java folks a few years prior.)</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Windows Mobile logo" border="0" alt="Windows Mobile logo" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/windows-mobile.jpg" width="300" height="313" /> </p>
<p>The same situation exists with Windows Mobile’s current user interface, which is basically a subset of Windows’ standard UI controls for the desktop, scaled down to fit smaller screens, and with a stylus standing in for the mouse. <strong>It’s almost as if it were designed with the mantra “mobile computing is like desktop computing, but lamer” instead of “mobile computing is like a mobile phone plus PDA and an MP3 player, but cooler.”</strong> If the ASP.NET design mantra is a whisper, the Windows Mobile mantra is a scream.</p>
<p>I suspect that the reason the XBox 360 didn’t fall into a similar kind of trap &#8212; “set-top boxes are like desktop computers, but lamer and only for games” – is that the XBox team is situated off the Microsoft Campus and less susceptible to the desktop influence.</p>
<h3>My Mission</h3>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Stick figure, chained to desk, breaking the chain" border="0" alt="Stick figure, chained to desk, breaking the chain" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/breaking-desktop-chain.jpg" width="400" height="316" /> </p>
<p>At my most recent one-on-one meeting with my manager John Oxley, we talked about a need for each member of our Evangelism team to define his or her area of focus. The Microsoft platform is a vast, nerdy expanse spanning the range from embedded computing all the way to Cray supercomputers; no single person can hope to cover it all.</p>
<p>He already had a good idea of what I wanted to focus on, and by now, I guess you do as well. I feel that just as computing expanded beyond the big computer rooms and onto our desktops, computing is expanding beyond our desktops into all sorts of different places:</p>
<ul>
<li><strong>Invisibly,</strong> into the web and cloud in the form of web applications and services </li>
<li><strong>Visibly,</strong> into our pockets and living rooms, and embedded into all sorts of real-world things </li>
</ul>
<p>While I believe that Windows 7 is a necessary part of the Microsoft platform, I’m not too worried about focusing on it – there are more than enough people at the company to promote and evangelize it. I want to focus on the platforms that I feel that Microsoft hasn’t given enough love and attention: the non-desktop platforms of the web, mobile and gaming, as well where they intersect.</p>
<p>It’s a big area to cover, but I think Microsoft needs to be active in this area if it wants to be true to its forward-looking roots. <strong>I even have a mantra for it: “To help web, mobile and game developers using Microsoft tools go from zero to awesome in 60 minutes.”</strong> I want to give developers both that rush when getting started with a new technology as well as the sustained passion to keep working with it, in the same way that Ruby on Rails and the iPhone got developers with an initial flash of excitement and turned it into long-term passion. It’s an ambitious, audacious mission, but no more so than the one coined by a bunch of scruffy nerds in New Mexico in the the 1970s: “A PC on every desk and in every home.”</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Joey deVilla with cardboard cutouts of Microsoft&#39;s 1978 team" border="0" alt="Joey deVilla with cardboard cutouts of Microsoft&#39;s 1978 team" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/joey-devilla-microsoft-team.jpg" width="600" height="450" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2009/05/25/mental-models-mantras-and-my-mission/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Upwardly Mobile, Part 3: Exploring Windows Mobile 6&#8217;s Built-In UI Controls</title>
		<link>http://www.globalnerdy.com/2009/05/01/upwardly-mobile-part-3-exploring-windows-mobile-6s-built-in-ui-controls/</link>
		<comments>http://www.globalnerdy.com/2009/05/01/upwardly-mobile-part-3-exploring-windows-mobile-6s-built-in-ui-controls/#comments</comments>
		<pubDate>Sat, 02 May 2009 03:45:00 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[mobile phones]]></category>
		<category><![CDATA[UI]]></category>
		<category><![CDATA[Upwardly Mobile]]></category>
		<category><![CDATA[user interface]]></category>
		<category><![CDATA[Windows Mobile]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/?p=3342</guid>
		<description><![CDATA[&#160; 
In my previous article in Upwardly Mobile, the ongoing article series in which I look as various aspects of Windows Mobile 6 development, I showed you a simple application that made use of a couple of user interface controls. In this article, we’ll take a closer look at some of the user interface controls [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>&#160;<img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Mad Mobile: More Windows Mobile 6 example code from the guy who blogs at Global Nerdy" border="0" alt="Mad Mobile: More Windows Mobile 6 example code from the guy who blogs at Global Nerdy" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/mad-mobile.jpg" width="600" height="351" /> </p>
<p>In my <a href="http://www.globalnerdy.com/2009/04/16/upwardly-mobile-part-2-your-first-windows-mobile-6-application/">previous article</a> in <em><strong><a href="http://www.globalnerdy.com/tag/upwardly-mobile/">Upwardly Mobile</a></strong></em>, the ongoing article series in which I look as various aspects of Windows Mobile 6 development, I showed you a simple application that made use of a couple of user interface controls. In this article, we’ll take a closer look at some of the user interface controls by way of the steak-and-cocktails lifestyle of the characters on the TV series <em><a href="http://www.amctv.com/originals/madmen/">Mad Men</a></em>.</p>
<p>(In case you’re not familiar with <em>Mad Men</em>, it’s a dramatic TV series set in the early 1960s whos emain characters are advertising executives working at an agency in New York. It was the age of three-martini steak lunches, which serves as the inspiration for the example application in this article.)</p>
<h3>Introducing Beef ‘N’ Booze</h3>
<p>The application that we’ll build is called <em><strong>Beef ‘N’ Booze</strong></em>. It has no real function other than to demonstrate the use of some of the controls that come with Windows Mobile 6, and do so in a more entertaining way that you’d normally find in a book.</p>
<p>Here’s what the app will look like on startup:</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="beef_screen_1" border="0" alt="beef_screen_1" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/beef-screen-1.gif" width="324" height="323" /></p>
<p>The app has a single form and that form is filled completely with a tab control with two tab pages: <strong>Beef</strong> and <strong>Booze</strong>. The <strong>Beef</strong> page lets you choose the “doneness” of your steak as well as a selection of side dishes. Once you’ve made your choices, you click the <strong>Place Order</strong> button to see a message box containing a summary of your order: </p>
<p><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="beef_screen_2" border="0" alt="beef_screen_2" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/beef-screen-2.gif" width="325" height="329" /></p>
<p>Clicking on the <strong>Booze</strong> tab takes you to the <strong>Booze</strong> page, where you can place an order from a selection of cocoktails. You can also specify the number of cocktails you want to order and how strong you want the bartender to make them:</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="booze_screen_1" border="0" alt="booze_screen_1" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/booze-screen-1.gif" width="326" height="327" /></p>
<p>When you’ve made your drink choices, you click on the <strong>Place Order</strong> button to see a message box summarizing your drink order:</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="booze_screen_2" border="0" alt="booze_screen_2" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/booze-screen-2.jpg" width="324" height="319" /></p>
<p>That’s the app in a nutshell. Remember that the idea behind <em>Beef ‘N’ Booze </em>isn’t to make something useful; it’s to demonstrate Windows Mobile’s built-in user controls and give you a chance to explore them. With that knowledge and a little practice, you can eventually build apps that actually <em>do</em> something.</p>
<h3>TabControl and TabPages</h3>
<p>One of the tricks to compensate for the limited screen “real estate” on a mobile device is to break up an application into pages. The simplest “out of the box” way to do this with Windows Mobile is to use a <strong>TabControl</strong>, which is a container that holds one or more <strong>TabPage</strong> controls. Each TabPage is itself a container that can hold other controls.</p>
<p>In <em>Beef ‘N’ Booze</em>, I created a TabControl named <code>tabMain</code>, which holds two TabPages: </p>
<ul>
<li><strong><code>tpgBeef</code></strong>, whose <code>Text</code> property is set to <code>Beef</code>. It will contain the controls for placing and order for a steak and side dishes. </li>
<li><strong><code>tpgBooze</code></strong>, whose <code>Text</code> property is set to <code>Booze</code>. It will contain the controls for ordering cocktails. </li>
</ul>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="tabcontrol_tabpages" border="0" alt="tabcontrol_tabpages" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/tabcontrol-tabpages.gif" width="600" height="380" /> </p>
<p>One convenient thing about using TabControls is that the tabbed pages work inside Visual Studio’s form editor. To view and edit a given TabPage, you click on its tab; it becomes the topmost page and you can add, move and remove controls from it.</p>
<h3>Buttons</h3>
<p>The Beef page has a single button, <strong><code>btnBeef</code></strong>, that when clicked, causes a message box to display the user’s order for steak and side dishes. The Booze page has a similar button, <strong><code>btnBooze</code></strong>, except that it causes a message box to display the user’s cocktail order.</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="buttons" border="0" alt="buttons" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/buttons.gif" width="600" height="363" /> </p>
<p>We’ll draw <code>btnBeef</code> on the <code>tpgBeef</code> page and <code>btnBooze</code> on the <code>tpgBooze</code> page. The next step is to create event handlers for both buttons. The easiest way to do this is to select each button and then use the <strong>Events</strong> view in the <strong>Properties</strong> window, and double-clicking on the <code>Click</code> event for each button. Here’s a screenshot of me doing that for btnBeef – Visual Studio responds by auto-magically creating a handler named <strong><code>btnBeef_Click</code></strong>:</p>
<p><a href="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/btnbeef.gif"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="btnBeef" border="0" alt="btnBeef" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/btnbeef-thumb.gif" width="341" height="321" /></a></p>
<p>Creating event handlers for <code>btnBeef</code> and <code>btnBooze</code> creates these empty methods in the code for the form:</p>
<p> <code>
<pre>private void btnBeef_Click(object sender, EventArgs e)
{
}

private void btnBooze_Click(object sender, EventArgs e)
{
}</pre>
<p></code></p>
<p>While I do like the “magic” provided by Visual Studio, I also feel that you should know what’s going on behind the scenes. How are the <code>btnBeef_Click()</code> and <code>btnBoozeClick()</code> methods attached to the btnBeef and btnBooze controls? It’s taken care of in the Designer code for the form, in which the layout and events for controls on the form is defined. Here’s the chunk of code that concerns with <code>btnBeef</code>’s properties and events:</p>
<p><code></p>
<pre>this.btnBeef.Font = new System.Drawing.Font(&quot;Tahoma&quot;, 8F, System.Drawing.FontStyle.Regular);
this.btnBeef.Location = new System.Drawing.Point(165, 181);
this.btnBeef.Name = &quot;btnBeef&quot;;
this.btnBeef.Size = new System.Drawing.Size(111, 28);
this.btnBeef.TabIndex = 8;
this.btnBeef.Text = &quot;Place Order&quot;;
this.btnBeef.Click += new System.EventHandler(this.btnBeef_Click);</pre>
<p></code></p>
<p>When I added a <code>Click</code> event to <code>btnBeef</code> through the <strong>Properties</strong> window, Visual Studio generated the name <code>btnBeef_Click</code> for the event handler, added a blank <code>btnBeef_Click()</code> method to the form’s code and connected the event to the handler in the form’s Designer code with this line:</p>
<p><code></p>
<pre>this.btnBeef.Click += new System.EventHandler(this.btnBeef_Click);</pre>
<p></code></p>
<p>When the user clicks <code>btnBeef</code>, we want to call a method named <strong><code>OrderBeef()</code></strong>, which will collect the data from the controls on <code>tpgBeef</code>, format it into something human-readable and then display the results in a message box. When the user clicks <code>btnBooze</code>, we want to call a method name <strong><code>OrderBooze()</code></strong>, which will do something similar, but for the user’s cocktail order. Here’s what the resulting event handler code should look like:</p>
<p><code></p>
<pre>private void btnBeef_Click(object sender, EventArgs e)
{
    OrderBeef();
}

private void btnBooze_Click(object sender, EventArgs e)
{
    OrderBooze();
}</pre>
<p></code></p>
<p>We&#8217;ll define <code>OrderBeef()</code> and <code>OrderBooze()</code> over the next couple of sections, as we explore the controls. </p>
<h3>Radio Buttons</h3>
<p>Radio buttons are controls you use when:</p>
<ul>
<li>You want the user to choose one (and only one) item from a selection of items </li>
<li>You want the user to be able to see the complete selection of items immediately </li>
</ul>
<p>The name “radio buttons” comes from the radio buttons from older radios, such as those in older cars, which let you choose from a number of pre-set radio stations. Selecting one button would change the tuning to the corresponding radio station and de-select the currently selected button:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="car_radio_buttons" border="0" alt="car_radio_buttons" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/car-radio-buttons.jpg" width="450" height="285" /> </p>
<p>Radio buttons are grouped together by putting them inside the same container control, such as a panel, or in the case of this particular application, a TabPage. Selecting a radio button de-selects all the other radio buttons occupying the same container control.</p>
<p>The diagram below shows the radio buttons on <code>tpgBeef</code> and the names I assigned to them:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="radio_buttons" border="0" alt="radio_buttons" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/radio-buttons.gif" width="493" height="325" /></p>
<p>Here&#8217;s my first iteration of <code>OrderBeef()</code>, which shows you how to determine which radio button is selected by checking each one’s <code>Checked</code> property. Once that’s done, it displays the resulting choice in a message box:</p>
<p><code></p>
<pre>private void OrderBeef()
{
    StringBuilder order = new StringBuilder(&quot;Steak: &quot;);

    if (rdoRare.Checked)
    {
        order.AppendLine(&quot;Rare&quot;);
    }
    else if (rdoMediumRare.Checked)
    {
        order.AppendLine(&quot;Medium Rare&quot;);
    }
    else if (rdoMedium.Checked)
    {
        order.AppendLine(&quot;Medium&quot;);
    }
    else if (rdoMediumWell.Checked)
    {
        order.AppendLine(&quot;Medium Well&quot;);
    }
    else if (rdoWellDone.Checked)
    {
        order.AppendLine(&quot;Well Done&quot;);
    }
    else
    {
        order.AppendLine(&quot;Chef's choice&quot;);
    }

    MessageBox.Show(order.ToString());
}</pre>
<p></code></p>
<h3>Checkboxes</h3>
<p>Checkboxes are useful when:</p>
<ul>
<li>You want the user to select zero, one or more items </li>
<li>You want the user to be able to see the complete selection of items immediately </li>
</ul>
<p>The diagram below shows the checkboxes on <code>tpgBeef</code> and the names I assigned to them:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="checkboxes" border="0" alt="checkboxes" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/checkboxes.gif" width="520" height="325" /> </p>
<p>Here&#8217;s my second iteration of <code>OrderBeef()</code>, which adds some code to check to see which side dishes the user ordered. As with radio buttons, we’re using the <code>Checked</code> properties, but for the checkboxes:</p>
<p><code></p>
<pre>private void OrderBeef()
{
    StringBuilder order = new StringBuilder(&quot;Steak: &quot;);
    int numSides = 0;

    if (rdoRare.Checked)
    {
        order.AppendLine(&quot;Rare&quot;);
    }
    else if (rdoMediumRare.Checked)
    {
        order.AppendLine(&quot;Medium Rare&quot;);
    }
    else if (rdoMedium.Checked)
    {
        order.AppendLine(&quot;Medium&quot;);
    }
    else if (rdoMediumWell.Checked)
    {
        order.AppendLine(&quot;Medium Well&quot;);
    }
    else if (rdoWellDone.Checked)
    {
        order.AppendLine(&quot;Well Done&quot;);
    }
    else
    {
        order.AppendLine(&quot;Chef's choice&quot;);
    }

    order.AppendLine(&quot;Sides:&quot;);

    if (chkCreamedSpinach.Checked)
    {
        order.AppendLine(&quot;Creamed Spinach&quot;);
        ++numSides;
    }

    if (chkFrites.Checked)
    {
        order.AppendLine(&quot;Frites&quot;);
        ++numSides;
    }

    if (chkMushrooms.Checked)
    {
        order.AppendLine(&quot;Mushrooms&quot;);
        ++numSides;
    }

    if (numSides == 0)
    {
        order.AppendLine(&quot;None&quot;);
    }

    MessageBox.Show(order.ToString());
}</pre>
<p></code></p>
<h3>Comboboxes</h3>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="comboboxes" border="0" alt="comboboxes" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/comboboxes.gif" width="442" height="325" /> </p>
<p>For the <strong>Booze</strong> page, I thought I’d use a different way to let the user select one item from a selection of many: a Combobox with its <code>DropDownStyle</code> property set to <code>DropDownList</code> and containing a number of cocktail names. The method below does the following:</p>
<ul>
<li>Sets the Combobox’s <code>DropDownStyle</code> property to <code>DropDownList</code>, which means that the user <em>cannot</em> just type in any value into the list’s text portion, but can only select from items in the list. </li>
<li>Adds a number of cocktail names to the list. </li>
<li>Sets the list so that the first item is selected. </li>
</ul>
<p><code></p>
<pre>public void InitializeCocktailControls()
{
    cboCocktail.DropDownStyle = ComboBoxStyle.DropDownList;
    cboCocktail.Items.Add(&quot;Bloody Caesar&quot;);
    cboCocktail.Items.Add(&quot;Bloody Mary&quot;);
    cboCocktail.Items.Add(&quot;Martini&quot;);
    cboCocktail.Items.Add(&quot;Rye and Ginger&quot;);
    cboCocktail.Items.Add(&quot;Vodka Tonic&quot;);
    cboCocktail.SelectedIndex = 0;
}</pre>
<p></code></p>
<p>If I wanted to, I could’ve set the <code>DropDownStyle</code> and the collection of items in the ComboBox in the <strong>Properties</strong> window.</p>
<p>I placed a call to <code>InitializeCocktailControls()</code> inside the form&#8217;s constructor:</p>
<p><code></p>
<pre>public frmMain()
{
    InitializeComponent();
    InitializeCocktailControls();
}</pre>
<p></code></p>
<p>And here&#8217;s my first iteration of <code>OrderBooze()</code>, which displays a message box showing which cocktail the user ordered. It makes use of the ComboBox’s <code>SelectedItem</code> property:</p>
<p><ocde></p>
<pre>private void OrderBooze()
{
    StringBuilder order = new StringBuilder(&quot;Cocktail: &quot; +
                            cboCocktail.SelectedItem.ToString() +
                            &quot;\n&quot;);

    MessageBox.Show(order.ToString());
}</pre>
<p></code></p>
<h3>Numeric Up/Downs</h3>
<p>Numeric Up/Downs are useful when:</p>
<ul>
<li>You want to restrict user input to numeric values only </li>
<li>You want to restrict those numeric values to a specific range </li>
</ul>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="numeric_updowns" border="0" alt="numeric_updowns" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/numeric-updowns.gif" width="442" height="325" /></p>
<p>Here's the second iteration of <code>InitializeCocktailControls()</code>, which adds code to initialize the numeric up/down <code>nudCocktail</code> in the following ways:</p>
<ul>
<li>Restricting the possible values to the range of 1 through 10 </li>
<li>Setting the up/down increment to 1 – if the user clicks the “up” button, the value contained within goes up by 1, if the user clicks the “down” button, the value contained within goes down by 1. </li>
<li>Setting the initial value to 1 </li>
</ul>
<p><code></p>
<pre>public void InitializeCocktailControls()
{
    cboCocktail.DropDownStyle = ComboBoxStyle.DropDownList;
    cboCocktail.Items.Add(&quot;Bloody Caesar&quot;);
    cboCocktail.Items.Add(&quot;Bloody Mary&quot;);
    cboCocktail.Items.Add(&quot;Martini&quot;);
    cboCocktail.Items.Add(&quot;Rye and Ginger&quot;);
    cboCocktail.Items.Add(&quot;Vodka Tonic&quot;);
    cboCocktail.SelectedIndex = 0;

    nudCocktail.Minimum = 1;
    nudCocktail.Maximum = 10;
    nudCocktail.Increment = 1;
    nudCocktail.Value = 1;
}</pre>
<p></code></p>
<p>Here's the <code>OrderBooze()</code> method, featuring an additional line of code to display the number of drinks the user ordered. The value contained within <code>nudCocktail</code> is taken from its <code>Value</code> property:</p>
<p><code></p>
<pre>private void OrderBooze()
{
    StringBuilder order = new StringBuilder(&quot;Cocktail: &quot; +
                            cboCocktail.SelectedItem.ToString() +
                            &quot;\n&quot;);
    order.AppendLine(&quot;Quantity: &quot; + nudCocktail.Value.ToString());

    MessageBox.Show(order.ToString());
}</pre>
<p></code></p>
<h3>Trackbars</h3>
<p>Another way to get numeric value input from the user is to use a Trackbar control. While Trackbars don’t display their corresponding numeric values like Numeric Up/Downs, they have a couple of advantages:</p>
<ul>
<li>They’re larger and more “finger-friendly” than Numeric Up/Downs </li>
<li>They give the user a visual cue of where the current value is in relation to the minimum and maximum values </li>
</ul>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="trackbars" border="0" alt="trackbars" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/trackbars.gif" width="442" height="325" /></p>
<p>In the screenshot above, you can see that I’ve augmented the Trackbar with by putting a couple of label controls just below it: <strong>Lame</strong>, <strong>Decent</strong>, and <strong>Hardcore</strong>.</p>
<p>Here’s another iteration of <code>InitializeCocktailControls()</code>, with code to initialize the Trackbar with the following properties:</p>
<ul>
<li>The leftmost position on the Trackbar corresponds to the value 0 </li>
<li>The rightmost position on the Trackbar corresponds to the value 10 </li>
<li>The smallest step you can make in either direction, up or down, is 1 </li>
<li>Large steps, which you get by clicking to the right or left of the current slider position, change the value in steps of 5 </li>
<li>The initial value of the Trackbar is 5 </li>
</ul>
<p><code></p>
<pre>public void InitializeCocktailControls()
{
    cboCocktail.DropDownStyle = ComboBoxStyle.d;
    cboCocktail.Items.Add(&quot;Bloody Caesar&quot;);
    cboCocktail.Items.Add(&quot;Bloody Mary&quot;);
    cboCocktail.Items.Add(&quot;Martini&quot;);
    cboCocktail.Items.Add(&quot;Rye and Ginger&quot;);
    cboCocktail.Items.Add(&quot;Vodka Tonic&quot;);
    cboCocktail.SelectedIndex = 0;

    nudCocktail.Minimum = 1;
    nudCocktail.Maximum = 10;
    nudCocktail.Increment = 1;
    nudCocktail.Value = 1;

    tbrCocktail.Minimum = 0;
    tbrCocktail.Maximum = 10;
    tbrCocktail.SmallChange = 1;
    tbrCocktail.LargeChange = 5;
    tbrCocktail.Value = 5;
}</pre>
<p></code></p>
<p>Here’s <code>OrderBooze()</code>, with an additional line to display the user’s preferred drink strength, which is derived from the Trackbar’s <code>Value</code> property:</p>
<p><code></p>
<pre>private void OrderBooze()
{
    StringBuilder order = new StringBuilder(&quot;Cocktail: &quot; +
                            cboCocktail.SelectedItem.ToString() +
                            &quot;\n&quot;);
    order.AppendLine(&quot;Quantity: &quot; + nudCocktail.Value.ToString());
    order.AppendLine(&quot;Strength: &quot; + tbrCocktail.Value.ToString());

    MessageBox.Show(order.ToString());
}</pre>
<p></code></p>
<h3>Putting It All Together</h3>
<p>Here’s the complete code behind the single form in <em>Beef ‘N’ Booze:</em></p>
<p><code></p>
<pre>using System;
using System.ComponentModel;
using System.Text;
using System.Windows.Forms;

namespace BeefNBooze
{
    public partial class frmMain : Form
    {
        public frmMain()
        {
            InitializeComponent();
            InitializeCocktailControls();
        }

        public void InitializeCocktailControls()
        {
            cboCocktail.DropDownStyle = ComboBoxStyle.DropDownList;
            cboCocktail.Items.Add(&quot;Bloody Caesar&quot;);
            cboCocktail.Items.Add(&quot;Bloody Mary&quot;);
            cboCocktail.Items.Add(&quot;Martini&quot;);
            cboCocktail.Items.Add(&quot;Rye and Ginger&quot;);
            cboCocktail.Items.Add(&quot;Vodka Tonic&quot;);
            cboCocktail.SelectedIndex = 0;

            nudCocktail.Minimum = 1;
            nudCocktail.Maximum = 10;
            nudCocktail.Increment = 1;
            nudCocktail.Value = 1;

            tbrCocktail.Minimum = 0;
            tbrCocktail.Maximum = 10;
            tbrCocktail.SmallChange = 1;
            tbrCocktail.LargeChange = 5;
            tbrCocktail.Value = 5;
        }

        private void btnBeef_Click(object sender, EventArgs e)
        {
            OrderBeef();
        }

        private void btnBooze_Click(object sender, EventArgs e)
        {
            OrderBooze();
        }

        private void OrderBeef()
        {
            StringBuilder order = new StringBuilder(&quot;Steak: &quot;);
            int numSides = 0;

            if (rdoRare.Checked)
            {
                order.AppendLine(&quot;Rare&quot;);
            }
            else if (rdoMediumRare.Checked)
            {
                order.AppendLine(&quot;Medium Rare&quot;);
            }
            else if (rdoMedium.Checked)
            {
                order.AppendLine(&quot;Medium&quot;);
            }
            else if (rdoMediumWell.Checked)
            {
                order.AppendLine(&quot;Medium Well&quot;);
            }
            else if (rdoWellDone.Checked)
            {
                order.AppendLine(&quot;Well Done&quot;);
            }
            else
            {
                order.AppendLine(&quot;Chef's choice&quot;);
            }

            order.AppendLine(&quot;Sides:&quot;);

            if (chkCreamedSpinach.Checked)
            {
                order.AppendLine(&quot;Creamed Spinach&quot;);
                ++numSides;
            }

            if (chkFrites.Checked)
            {
                order.AppendLine(&quot;Frites&quot;);
                ++numSides;
            }

            if (chkMushrooms.Checked)
            {
                order.AppendLine(&quot;Mushrooms&quot;);
                ++numSides;
            }

            if (numSides == 0)
            {
                order.AppendLine(&quot;None&quot;);
            }

            MessageBox.Show(order.ToString());
        }

        private void OrderBooze()
        {
            StringBuilder order = new StringBuilder(&quot;Cocktail: &quot; +
                                    cboCocktail.SelectedItem.ToString() +
                                    &quot;\n&quot;);
            order.AppendLine(&quot;Quantity: &quot; + nudCocktail.Value.ToString());
            order.AppendLine(&quot;Strength: &quot; + tbrCocktail.Value.ToString());

            MessageBox.Show(order.ToString());
        }

    }
}</pre>
<p></code></p>
<h3>Download, Go Forth and Noodle!</h3>
<p>It’s one thing to read about Windows Mobile 6’s built-in user interface controls, but something else entirely to make use of them. If you’re feeling ambitious, start a new project and rebuild <em>Beef ‘N’ Booze </em>(or a similar app that lets you explore the controls) yourself. Or, if you’d like, download my project files by clicking the link below, play with the app, make changes and learn. No matter which route you take, the best way to learn to is fire up Visual Studio and get coding!</p>
<p><a href="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/beefnbooze.zip"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Download icon" border="0" alt="Download icon" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/download.gif" width="35" height="36" /></a> <strong><a href="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/beefnbooze.zip">Download the <em>Beef ‘N’ Booze</em> project (Visual Studio 2008 SP1, 15K .zip file)</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2009/05/01/upwardly-mobile-part-3-exploring-windows-mobile-6s-built-in-ui-controls/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Sneak Peek at the Next &#8220;Upwardly Mobile&#8221;</title>
		<link>http://www.globalnerdy.com/2009/04/22/sneak-peek-at-the-next-upwardly-mobile/</link>
		<comments>http://www.globalnerdy.com/2009/04/22/sneak-peek-at-the-next-upwardly-mobile/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 05:54:58 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Hardware and Gadgets]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[previews]]></category>
		<category><![CDATA[Upwardly Mobile]]></category>
		<category><![CDATA[Windows Mobile]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2009/04/22/sneak-peek-at-the-next-upwardly-mobile/</guid>
		<description><![CDATA[Yes, I’m working on another tutorial on Windows Mobile 6 development. It’s on some of the standard user interface controls – here’s a preview:
 
I do try to make my example apps entertaining…
]]></description>
			<content:encoded><![CDATA[<p></p><p>Yes, I’m working on another tutorial on Windows Mobile 6 development. It’s on some of the standard user interface controls – here’s a preview:</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="beef_n_booze_preview" border="0" alt="beef_n_booze_preview" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/beef-n-booze-preview.jpg" width="304" height="413" /> </p>
<p>I <em>do </em>try to make my example apps entertaining…</p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2009/04/22/sneak-peek-at-the-next-upwardly-mobile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Upwardly Mobile, Part 2: Your First Windows Mobile 6 Application</title>
		<link>http://www.globalnerdy.com/2009/04/16/upwardly-mobile-part-2-your-first-windows-mobile-6-application/</link>
		<comments>http://www.globalnerdy.com/2009/04/16/upwardly-mobile-part-2-your-first-windows-mobile-6-application/#comments</comments>
		<pubDate>Thu, 16 Apr 2009 16:33:00 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Hardware and Gadgets]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software and Services]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[mobile phones]]></category>
		<category><![CDATA[Upwardly Mobile]]></category>
		<category><![CDATA[Windows Mobile]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/?p=3211</guid>
		<description><![CDATA[
(In case you missed part 1, it’s here. Be warned; it’s long, but it’s a good read.)
In this installment of Upwardly Mobile, I’m going to give you a quick introduction to developing applications for Windows Mobile 6 phones and handheld devices. I can’t cover all aspects of Windows Mobile development in this article, but there [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="treo_pro_large" border="0" alt="treo_pro_large" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/treo-pro-large.jpg" width="350" height="319" /></p>
<p>(<a href="http://www.globalnerdy.com/2009/04/13/upwardly-mobile-part-1-a-brief-tour-of-mobile-app-development/">In case you missed part 1, it’s here.</a> Be warned; it’s long, but it’s a good read.)</p>
<p>In this installment of <em>Upwardly Mobile</em>, I’m going to give you a quick introduction to developing applications for Windows Mobile 6 phones and handheld devices. I can’t cover all aspects of Windows Mobile development in this article, but there should be enough material in this entry to get you started.</p>
<h3>What You Need</h3>
<p>In order to build an application for Windows Mobile 6, you’ll need the following things:</p>
<table border="0" cellspacing="10" cellpadding="3" width="580">
<tbody>
<tr>
<td valign="top" width="290"><strong>Visual Studio 2008, Professional Edition or higher            <br /><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="visual_studio_2008_pro" border="0" alt="visual_studio_2008_pro" align="left" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/visual-studio-2008-pro.jpg" width="236" height="66" /></strong></td>
<td valign="top" width="290">This is the development environment. It’s not the only one that you can use to develop Windows Mobile apps, but it’s the one we’re using.          </p>
<p>You can also use Visual Studio 2005 – if you do so, Standard Edition or higher will do. If you don’t have Visual Studio, <a href="http://www.microsoft.com/visualstudio/en-us/try/trial-software.mspx">you can download a trial version of Visual Studio 2008</a>.           <br />&#160;</td>
</tr>
<tr>
<td valign="top" width="290"><strong>The Windows Mobile 6 SDKs            <br /><a href="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/gear-icon.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="gear_icon" border="0" alt="gear_icon" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/gear-icon-thumb.jpg" width="90" height="75" /></a>             <br />&#160;</strong></td>
<td valign="top" width="290">The <strong><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=06111a3a-a651-4745-88ef-3d48091a390b&amp;displaylang=en">Windows Mobile 6 SDKs</a></strong> contain the templates for building Windows Mobile 6 projects and emulators for various Windows mobile phones.           </p>
<p>There are two such SDKs to choose from:
<li>The <strong>Standard</strong> SDK. The general rule is that if the device <em>doesn’t have</em> a touch screen, its OS is Windows Mobile 6 Standard, and this is the SDK for developing for it. </li>
<li>The <strong>Professional</strong> SDK. The general rule is that if the device <em>has</em> a touch screen, its OS is Windows Mobile 6 Professional, and this is the SDK for developing for it.
<p>I recommend downloading both SDKs. You never know where you’ll deploy!&#160; </li>
</td>
</tr>
<tr>
<td valign="top" width="290"><strong>.NET Compact Framework 3.5 Redistributable            <br /><a href="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/dotnet-logo.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="dotnet_logo" border="0" alt="dotnet_logo" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/dotnet-logo-thumb.jpg" width="90" height="86" /></a>             <br />&#160;</strong></td>
<td valign="top" width="290">The <strong><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=E3821449-3C6B-42F1-9FD9-0041345B3385&amp;displaylang=en">.NET Compact Framework 3.5 Redistributable</a></strong> is the version of the .NET framework for mobile devices. It only needs to be sent to the device once.           </td>
</tr>
<tr>
<td valign="top" width="290"><strong>A Windows Mobile 6 Device            <br /><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="palm_treo_pro" border="0" alt="palm_treo_pro" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/palm-treo-pro.jpg" width="150" height="137" />             <br />&#160;</strong></td>
<td valign="top" width="290">You can get by in the beginning with just the emulators, but you’ll eventually want to try out your app on a real phone. I’m using my phone, a <a href="http://www.palm.com/us/products/phones/treopro/index.html">Palm Treo Pro</a>.           </p>
<p>As the saying goes, “In theory, there is no difference between theory and practice; in practice, there is.”</td>
</tr>
<tr>
<td valign="top" width="290"><strong>The mobile device syncing utility that works with your operating system            <br /><a href="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/windows-mobile-device-center-icon.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="windows_mobile_device_center_icon" border="0" alt="windows_mobile_device_center_icon" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/windows-mobile-device-center-icon-thumb.jpg" width="90" height="91" /></a> </strong></td>
<td valign="top" width="290">If you’ve got a Windows Mobile 6 device, you’ll need the application that connects your mobile phone to your OS:
<li>For Windows 7 and Vista, use <strong><a href="http://www.microsoft.com/windowsmobile/en-us/help/synchronize/device-center-download.mspx">Windows Mobile Device Center</a></strong>. </li>
<li>For Windows XP and Server 2003, use <strong><a href="http://www.microsoft.com/windowsmobile/en-us/help/synchronize/activesync-download.mspx">ActiveSync</a></strong>. </li>
</td>
</tr>
</tbody>
</table>
<h3>Let’s Start Programming!</h3>
<p>In this example, we’re going to write a “Magic 8-Ball” style application called <strong><em>Ask the Kitty</em></strong>. It’ll be a simple app that provides random answers to questions that can be answered with a “yes” or “no”.</p>
<p>Fire up Visual Studio, open the <strong>File</strong> menu and click on <strong>Project…</strong> (or click <strong>control-shift-N</strong>). The <strong>New Project</strong> dialog box will appear:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="new_project" border="0" alt="new_project" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/new-project.gif" width="600" height="430" /></p>
<p>In this example, we’ll be doing development in Visual C#. From the <strong>Project types</strong> list on the left, expand the <strong>Visual C#</strong> menu and click the <strong>Smart Device</strong> sub-item. The <strong>Templates</strong> list on the right will display the available templates for a smart device project; select <strong>Smart Device Project</strong>.</p>
<p>(You can do Windows Mobile 6 development in Visual Basic if you prefer; there’s a <strong>Smart Device</strong> option under the <strong>Visual Basic</strong> menu.)</p>
<p>Give your project a name (for this example, I’m using the name <strong>HelloPhone</strong>) and specify a location (I’m just using the default Visual Studio directory for projects), make sure the <strong>Create directory for solution</strong>checkbox is checked, and click the <strong>OK</strong> button.</p>
<p>The <strong>Add New Smart Device Project </strong>dialog box will appear:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="add_new_smart_device" border="0" alt="add_new_smart_device" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/add-new-smart-device.gif" width="600" height="453" /></p>
<p>You specify the type of device you’re developing for using the <strong>Target platform</strong> menu. My Palm Treo Pro is a touch screen device and uses Windows Mobile 6 Professional as its OS, so I’m going to select <strong>Windows Mobile 6 Professional SDK</strong> from that menu.</p>
<p>We want to use the latest version of the .NET Compact Framework, so leave the default option, <strong>.NET Compact Framework Version 3.5</strong>, selected in the <strong>.NET Compact Framework version</strong> menu.</p>
<p>We want to create an application, so select <strong>Device Application</strong> from the <strong>Templates</strong> menu and click the <strong>OK</strong> button. Visual Studio will create your project, and you can start developing. Here’s what you’ll see:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="visual_studio_1" border="0" alt="visual_studio_1" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/visual-studio-1.gif" width="600" height="356" /></p>
<p>If we were writing a regular WinForms desktop app, the forms designer would show a blank window. If we were developing an ASP.NET application, the forms designer would show a blank web page, Since we’re developing a Windows Mobile app, the forms designer by default shows a blank mobile app window enclosed in a mockup – the “skin” &#8212; of a generalized mobile device. Here’s the skin for a Windows Mobile 6 Professional device:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="forms_designer_mobile_skin" border="0" alt="forms_designer_mobile_skin" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/forms-designer-mobile-skin.gif" width="302" height="470" /></p>
<p>You can choose to display or hide the skin in the Forms Designer. I’m going to work without the skin; I can hid it by opening the <strong>Format</strong> menu and toggling the <strong>Show Skin</strong> item.</p>
<h3>Set Up the User Interface</h3>
<p>This application will use a single form. We’ll take the default form from the project, <strong>Form1</strong>, and do the following using the <strong>Properties</strong> pane:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="frmMain_properties" border="0" alt="frmMain_properties" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/frmmain-properties.gif" width="337" height="353" /></p>
<ul>
<li>Rename it as <strong>frmMain</strong>. </li>
<li>Change its <strong>AutoScaleMode</strong> property to <strong>None</strong> (We don’t want the app to automatically resize its controls and fonts, we want it to use the control sizes and locations and font sizes that we specify). </li>
<li>Change its <strong>Size</strong> to <strong>320,250</strong>, the right size for many Windows Mobile 6 Professional Devices including my Palm Treo Pro. </li>
<li>Change the form’s heading – set the <strong>Text</strong> property to <strong>My First WinMo App</strong>. </li>
</ul>
<p>We’ll set up the form to look like this:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="frmMain" border="0" alt="frmMain" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/frmmain.gif" width="330" height="299" /></p>
<p>The “Ask the Kitty!” at the top of the form is a <strong>Label</strong> control, with its font set to <strong>Tahoma</strong>, font style set to <strong>Bold</strong>,<strong> </strong>font size set to 12 points and text set to <strong>Ask the Kitty!</strong></p>
<p>The “Click for an answer!” at the bottom is a <strong>Button</strong> control, with its font set to <strong>Tahoma</strong>, font style set to <strong>Regular</strong>,<strong> </strong>font size set to 9 points and text set to <strong>Click for an answer!</strong>. I also renamed the button as <strong>btnAnswer</strong>.</p>
<p>The cat picture in the middle is a <strong>PictureBox</strong> control. The trick is to provide a picture to fill the PictureBox. It’s simple. The first step is to copy a picture file into the project directory:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="project_directory" border="0" alt="project_directory" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/project-directory.gif" width="600" height="491" /></p>
<p>Make sure that the picture is included in the project. If you can’t see the picture file in the <strong>Solution Explorer</strong> window, click the <strong>Show All Files</strong> button. Right-click the picture file in <strong>Solution Explorer</strong> and select <strong>Include in Project</strong>:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="solution_explorer" border="0" alt="solution_explorer" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/solution-explorer.gif" width="337" height="281" /></p>
<p>Once you’ve included the picture file in the project, you can use it to fill the PictureBox. Select the PictureBox in the Forms Designer, go to the <strong>Properties</strong> window and change its <strong>Image</strong> property – use the selector to pick the picture file that we just included in the project.</p>
<h3>Add Some Code</h3>
<p>There’s a lot of example code out there that puts programming logic inside the UI – that is, in the code for the forms. I’m going to avoid that and do the right thing by creating a class for the “engine” of this application. Creating a new class is easy – open the <strong>Project Menu</strong>, select <strong>Add Class…</strong>, and then select <strong>Visual C# Items</strong> –&gt; <strong>Code</strong> –&gt; <strong>Class</strong>. I named the class file <strong>Kitty.cs</strong> in the Solution Explorer; here’s its code:</p>
<pre><code>using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;

namespace HelloPhone
{
    class Kitty
    {
        List&lt;string&gt; _responses = new List&lt;string&lt; {
            &quot;Yes&quot;,
            &quot;No&quot;,
            &quot;Maybe&quot;,
            &quot;Ask again later&quot;
        };
        Random _rand = new Random();

        public string GetResponse()
        {
          return _responses[_rand.Next(_responses.Count)];
        }
    }
}</code></pre>
<p>The next step is to wire up <strong>btnAnswer</strong> to provide an answer when clicked. This means adding an event handler to <strong>btnAnswer</strong>. The easiest way to do this is select <strong>btnAnswer</strong>, then go to the <strong>Properties</strong> window, select the <strong>Events</strong> view (it’s the lightning bolt button) and double-click on the <strong>Click</strong> event. That will automatically create a method called <strong>btnAnswer_Click()</strong> in the <strong>frmMain</strong> class and wire up that method to be called whenever <strong>btnAnswer</strong> is clicked.</p>
<p>Here’s the code for <strong>frmMain</strong>:</p>
<pre><code>using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace HelloPhone
{
    public partial class frmMain : Form
    {
        Kitty _eightBall = new Kitty();

        public frmMain()
        {
            InitializeComponent();
        }

        private void btnAnswer_Click(object sender, EventArgs e)
        {
            btnAnswer.Text = _eightBall.GetResponse();
        }

    }
}</code></pre>
<h3>Run the App in the Emulator</h3>
<p>The app&#8217; is now ready to take for a test run in the emulator. Click the <strong>Start Debugging</strong> button (it looks like a “play” button) or press the <strong>F5</strong> key. This window showing your deployment options will appear:</p>
<p><a href="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/deploy-emulator.gif"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="deploy_emulator" border="0" alt="deploy_emulator" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/deploy-emulator-thumb.gif" width="535" height="336" /></a></p>
<p>I want an emulator that best matches my Palm Treo Pro, which has a square QVGA display, so I selected <strong>Windows Mobile 6 Professional Square QVGA Emulator</strong> and clicked the <strong>Deploy</strong> button. Give it a moment or two to compile and fire up the emulator, after which you should see this:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="emulator" border="0" alt="emulator" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/emulator.gif" width="431" height="588" /></p>
<h3>Run the App on Your Mobile Device</h3>
<p>Running the app on your mobile device is almost as easy. Make sure that your mobile device is connected to your computer, then click the <strong>Start Debugging</strong> button (it looks like a “play” button) or press the <strong>F5</strong> key. This window showing your deployment options will appear:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="deploy_device" border="0" alt="deploy_device" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/deploy-device.gif" width="535" height="336" /></p>
<p>This time, select <strong>Windows Mobile 6 Professional Device</strong> in the menu and click <strong>Deploy</strong>.</p>
<p>Keep an eye on your phone; you’ll get a couple of “should I install this?”-type messages – click <strong>Yes</strong> to all of them:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="device_message" border="0" alt="device_message" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/device-message.jpg" width="300" height="400" /></p>
<p>After that, you should see this:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="app_device" border="0" alt="app_device" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/app-device.jpg" width="300" height="400" /></p>
<p>You should have enough information to start experimenting with Windows Mobile 6 development. Have fun, try things, and if you have any questions, feel free to ask them in the comments!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2009/04/16/upwardly-mobile-part-2-your-first-windows-mobile-6-application/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Upwardly Mobile, Part 1: A Brief Tour of Mobile App Development</title>
		<link>http://www.globalnerdy.com/2009/04/13/upwardly-mobile-part-1-a-brief-tour-of-mobile-app-development/</link>
		<comments>http://www.globalnerdy.com/2009/04/13/upwardly-mobile-part-1-a-brief-tour-of-mobile-app-development/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 16:40:01 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Hardware and Gadgets]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software and Services]]></category>
		<category><![CDATA[What Joey Did]]></category>
		<category><![CDATA[Microsoft's Sea Change]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[mobile phones]]></category>
		<category><![CDATA[PDAs]]></category>
		<category><![CDATA[Upwardly Mobile]]></category>
		<category><![CDATA[Windows Mobile]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2009/04/13/upwardly-mobile-part-1-a-brief-and-slightly-personal-history-of-mobile-app-development/</guid>
		<description><![CDATA[This one&#8217;s a long one! You might want to get yourself a beverage or snack.

This week is Windows Mobile Incubation Week, a “jam session” taking place at The Empire’s Silicon Valley branch, where startups are invited to learn about Windows Mobile from Microsoft’s gurus and pick up some tricks from mobile industry gurus and venture [...]]]></description>
			<content:encoded><![CDATA[<p></p><p class="alert">This one&#8217;s a long one! You might want to get yourself a beverage or snack.</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Windows Mobile Incubation Week: April 13 - 17, 2009 -- featuring two Japanese schoolgirls showing their mobile phones to Darth Vader" border="0" alt="Windows Mobile Incubation Week: April 13 - 17, 2009 -- featuring two Japanese schoolgirls showing their mobile phones to Darth Vader" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/windows-mobile-incubation-week.jpg" width="600" height="480" /></p>
<p><strong><a href="http://www.globalnerdy.com/2009/03/09/windows-mobile-incubation-week-april-13-17-in-mountain-view/"><img style="margin: 0px 0px 0px 10px; display: inline" align="right" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/03/incubation-week.jpg" width="357" height="76" /></a>This week is </strong><a href="http://www.globalnerdy.com/2009/03/09/windows-mobile-incubation-week-april-13-17-in-mountain-view/">Windows Mobile Incubation Week</a><strong></strong>, a “jam session” taking place at The Empire’s Silicon Valley branch, where startups are invited to learn about Windows Mobile from Microsoft’s gurus and pick up some tricks from mobile industry gurus and venture capitalists. They’re also challenged to build Windows Mobile apps during the week, with prizes being awarded to winning participants. Admission to Mobile Incubation Week is free-as-in-beer; all you have to do is scrounge up the cash to cover your trip to the Valley and find a couch to crash on at night.</p>
<p>Even as a Sith Lord with Imperial backing, I don’t have the travel budget to get down to Silicon Valley to catch this event, and it’s likely that you don’t either. That doesn’t mean that you have to miss out on Mobile Incubation Week. I’ll be linking to all the blogs covering it and I’ll also be posting articles covering different aspects of Windows Mobile Development, some technical, some tactical. I hope it piques your interest in Windows Mobile; perhaps it might even get you started building apps for Windows Mobile phones.</p>
<p>In this first article, I talk about mobile development over the past few years (with a little detour into my own experiences) and the way I see the current state of Windows Mobile.</p>
<h3>My First Mobile App</h3>
<p>Back in early 2001, I bought a PalmOS-compatible <strong><a href="http://www.palminfocenter.com/view_story.asp?ID=1760">Handspring Visor Platinum</a></strong> for $99 from my then-coworker at OpenCola, <a href="http://saladwithsteve.com/">Steve Jenson</a>. He’s always had ridiculous amounts of hardware in his house:</p>
<p><a href="http://www.palminfocenter.com/view_story.asp?ID=1760"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="handspring_visor_platinum" border="0" alt="handspring_visor_platinum" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/handspring-visor-platinum.jpg" width="240" height="240" /></a></p>
<p>I used it regularly, but never got around to writing applications for it until early 2002. That’s when a number of companies building P2P software during the Bubble 1.0 era imploded and when OpenCola unceremoniously laid me off. I decided to put up my “consultant” shingle, and thanks to the network of contacts I’d built as OpenCola’s Developer Relations guy, it didn’t take long for me to dig up some clients.</p>
<p>A friend of mine who was now working for a big drug company’s ad agency asked if I could write a questionnaire app for PalmOS handhelds. It wasn’t anything too complicated: just give the user (who could either be a doctor or a patient) a series of questions and provide a response at the end based on their answers. The tasks seemed simple enough, and despite the fact that I’d never written a Palm app before, I took the job.</p>
<p>(For those of you new to the industry, you’ll find that that you will often be asked to do things that you’ve never done before or aren’t 100% sure you can do. One of the valuable skills that comes with experience is figuring out how far you can stretch yourself and your abilities with a project.)</p>
<p>I’d seen a couple of articles on developing for PalmOS in C, and they looked like more work than they were worth. An app that was made up of a single button that read “Hello World” took 3 or 4 pages of code to implement, most of which was what I call “preamble” – a lot of setup code and “scaffolding” to support the app, way more code than for the actual app itself. My client seemed to be testing the waters of Palm apps, so I figured I’d be asked to make lots of changes to the app along the way. I needed something that would let me build and modify Palm apps quickly.</p>
<p><a href="http://www.nsbasic.com/palm/"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="nsbasic_palm" border="0" alt="nsbasic_palm" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/nsbasic-palm.jpg" width="150" height="182" /></a></p>
<p>My plan was to build the app with <strong><a href="http://www.nsbasic.com/palm/">NS Basic/Palm</a></strong>, a Visual Basic-like development system for PalmOS. I’d heard about it before, and as an added bonus, they were based right here in Toronto. I picked up a copy directly from their offices in the morning, and by the end of the afternoon, I had a functioning version of the app. By the end of the next day, I had it polished. The day after that, I showed my work to the client, and a week after that, they cut me a cheque.</p>
<p>I thought I’d make a career for myself as a PalmOS developer, but after that initial success, no other clients approached me about building a Palm app for them. That was a bit of a disappointment; unlike many of my friends, who wanted to build system- or network-level software, I wanted to build software for people. I figured that the best platform for people-oriented software would be a computer that you had in your pocket with you all the time.</p>
<h3>The Underused 1995-Era Computer in Your Pocket</h3>
<p align="left"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="1995 tech zeitgeist, featuring NCSA Mosaic, Apple Newton, Windows 95, Delphi 1.0, Visual Basic 4.0, Microsoft Bob, a Zip drive and &quot;Special Edition Using Java 1.1&quot;" border="0" alt="1995 tech zeitgeist, featuring NCSA Mosaic, Apple Newton, Windows 95, Delphi 1.0, Visual Basic 4.0, Microsoft Bob, a Zip drive and &quot;Special Edition Using Java 1.1&quot;" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/1995-tech-zeitgeist.jpg" width="600" height="444" /></p>
<p align="left">One of the things that I noticed while building Palm apps in 2002 was that the machine specs were like the specs for desktops back in 1995, when I was building CD-ROM-based multimedia apps with Mackerel Interactive Multimedia. The desktops of 1995 had processor speeds in the double-digit megahertz, RAM in the single-digit megabytes and limited, if any, access to the internet – just like 2002-era PalmOS devices.</p>
<p align="left">At the same time, there was a class of devices that was beginning to emerge – the smartphone, which combined the connectedness of mobile phones with the computing power of PDAs. The problem was trying to get apps onto them.</p>
<p align="left">Back in late 2003, when I was just getting started as Tucows’ Tech Evangelist, I wrote an article grumbling about the state of mobile development. In spite of the fact that smartphones had the power of PDAs, the market for mobile apps seemed like a ghost town. There was a mish-mash of all sorts of mobile platforms, installing apps on your mobile form was more complicated than it should’ve been, and the telcos seemed to be doing their level best to keep apps off of phones, using the need to “keep the phone network secure” as their excuse.</p>
<p align="left">“Imagine how far behind we’d be,” I wrote back then, “if we had to get our computer vendor’s permission every time we installed a new program on our desktops. That’s what it’s like for mobile apps.”</p>
<h3>The Best Gaming Phone, 5 Years Ago</h3>
<p align="left">Near the end of 2003, this phone was supposed to be the thing that brought mobile gaming to the masses:</p>
<p align="left"><a href="http://en.wikipedia.org/wiki/N-Gage"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Nokia N-Gage" border="0" alt="Nokia N-Gage" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/nokia-ngage-l.jpg" width="504" height="278" /></a></p>
<p>It was the <strong><a href="http://en.wikipedia.org/wiki/N-Gage">Nokia N-Gage</a></strong>. There’s a good reason you probably never owned one, nor did anyone you know. While it had some decent specs, it was a pain for both developers and users alike:</p>
<ul>
<li><strong>Pain for the developers:</strong> Not just anyone could develop for the N-Gage. You had to apply for permission to do so, which required you to have a track record of mobile game development, which probably ruled out a lot of potential developers in 2003. There was also the matter of the fee that you had to submit while applying for the privilege of being an N-Gage developer: the non-trivial sum of 10,000 Euro. </li>
<li><strong>Pain for the users:</strong> The buttons were notoriously bad – they used phone-grade buttons as opposed to game controller-grade ones, which made for a less-than-optimal gaming experience. </li>
<li><strong>More pain for the users:</strong> <a href="http://www.brighthand.com/default.asp?newsID=11273">Here’s how <em>Brighthand</em> described the process of loading a game onto the N-Gage:</a> “&quot;In order to put a game into the system, you have to turn the phone off, take the back cover off, remove the battery, slide out the existing game, put the new one in, put the battery back in, replace the back cover, hold down the power button for several seconds, wait for the system to boot up, open the main menu, select the game, open it&#8230; And then your game starts loading.&quot; </li>
<li><strong>Even more pain for the users:</strong> The N-Gage sometimes suffered from “The White Screen of Death”, a phenomenon where your phone would spontaneously reboot thanks to a memory management issue arising from a design flaw. The fix was a firmware upgrade, for which Nokia decided to charge users. </li>
</ul>
<p>I thought that the N-Gage had all kinds of portable personal computing uses, both for gaming and beyond, but there was no way I could develop for it. Besides, the telcos were still pretty adamant about not letting just anyone develop for smartphones.</p>
<p>So my plans to take on mobile development stayed shelved a little longer.</p>
<h3>Predictions are Hard, Especially About the Future</h3>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Captain Picard doing a &quot;facepalm&quot;" border="0" alt="Captain Picard doing a &quot;facepalm&quot;" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/picard-faceplam.jpg" width="400" height="259" /></p>
<p>Depending on where your loyalties, sympathies and platform preferences lie, you’re going to find the following headlines either LMAO-hilarious or stool-softeningly cringeworthy. Maybe it’s because I’m still a relatively new at Microsoft (I’ll have been there six months a week Monday), but I laughed <em>and</em> cringed at these headlines that vaingloriously predicted that The Empire would dominate the smartphone market:</p>
<ul>
<li><a href="http://www.windowsfordevices.com/news/NS6226829827.html"><strong>Industry Jumps on Windows Mobile 5.0 Bandwagon</strong></a> (May 12, 2005) </li>
<li><strong><a href="http://www.windowsfordevices.com/news/NS6590457256.html">Mobile Phones Will Overtake iPods, Says Gates</a></strong> (May 13, 2005) </li>
<li><strong><a href="http://www.windowsfordevices.com/news/NS8340426687.html">Microsoft Expects to Dominate Smartphones in Three Years</a></strong> (June 28, 2005) </li>
</ul>
<p>“Dominate Smartphones in Three Years”, huh? Here’s what happened a mere <em>two </em>years later:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="iphone_line_1" border="0" alt="iphone_line_1" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/iphone-line-1.jpg" width="600" height="400" /></p>
<p align="left"><a href="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/iphone-line-2.jpg"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="iphone_line_2" border="0" alt="iphone_line_2" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/iphone-line-2-thumb.jpg" width="512" height="768" /></a>&#160;</p>
<p align="left"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="iphone_line_3" border="0" alt="iphone_line_3" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/iphone-line-3.jpg" width="600" height="457" /></p>
<p align="left">In the space of two years and one day, we’d gone from Microsoft triumphantly declaring that Windows Mobile would own the smartphone market to <a href="http://en.wikipedia.org/wiki/Robert_Scoble#Microsoft">Microsoft’s most famous evangelist</a> (well, <em>former</em> evangelist by that time) doing a victory pose at the Apple Store because he’d managed to get his paws on one of the first iPhones.</p>
<p align="left">A good chunk of the iPhone’s success comes from Apple’s incredible marketing machine, but a bigger factor is that <em>great products are their own marketing</em>. The iPhone combines a great user experience and a centralized store, but far more important was the feeling that you were using something that was designed to be both beautiful and fun, not feasting on the table scraps thrown to you by a company who’d rather be making stuff for Fortune 500 executives.</p>
<p align="left">The iPhone formula seems to be working. <a href="http://jkontherun.com/2009/03/11/winners-and-losers-in-the-smartphone-market-q408/">According to Kevin Tofel of the mobile device blog <em>JK On the Run</em></a>, Apple sold 3.3 million iPhones in 2007 and handily beat that sales figure in 2008 with 11.4 million, making them the mobile phone vendor that gained the most ground that year.</p>
<h3>And Now, the Good News</h3>
<p>It’s not all bad news for Windows Mobile or people who want to develop for it. For starters, <strong>Windows Mobile still represents a sizeable chunk of the mobile phone market.</strong> 18 million Windows Mobile licenses were sold in 2008, and they were sold to four out of the five largest mobile phone manufacturers in the world (in case you were wondering, Nokia is the holdout). LG has signed on to put Windows Mobile on 50 of its smartphone models. All told, that’s a big hardware ecosystem on which to deploy your mobile apps.</p>
<p align="center"><object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/ohpN_ppD5wI&amp;hl=en&amp;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/ohpN_ppD5wI&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></p>
<p>The smart moves that The Empire has been making with its various platforms, from Windows 7 to the web to XBox 360 to cloud computing, are also beginning to show in the form of Windows Mobile 6.5 (slated for release this year) and Windows Mobile 7 (due next year). The UI has been vastly improved; a lot of the UI lessons and ideas from Windows 7, XBox 360 and Surface seem to have made their way in:</p>
<p align="center"><object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/jFjPVpyGvsk&amp;hl=en&amp;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/jFjPVpyGvsk&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></p>
<p align="center"><object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/D9-1OQE53d4&amp;hl=en&amp;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/D9-1OQE53d4&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></p>
<p>And yes, there will be support not just for client apps that run on your WinMo phone, but <a href="http://www.globalnerdy.com/2009/03/10/windows-mobile-gets-widgets/">Widgets</a> – mini-web apps that run in a browser with just a border and no interface controls, a la Windows widgets or the iPhone’s web apps:</p>
<p><a href="http://www.globalnerdy.com/2009/03/10/windows-mobile-gets-widgets/"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Windows mobile widgets" border="0" alt="Windows mobile widgets" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/windowsmobilewidgets.jpg" width="600" height="414" /></a> </p>
<p>Paired with the improved user experience is an online store accessible from your Windows Mobile phone:</p>
<p align="center"><object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/yX4Y1J8xC7o&amp;hl=en&amp;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/yX4Y1J8xC7o&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></p>
<p>…and you still have the freedom to <em>not</em> use Windows Marketplace to sell your apps. I cover why that’s a good thing in the next and final section of this article.</p>
<h3>Freedom</h3>
<p>Let me show you some slides from <a href="http://www.globalnerdy.com/2009/04/11/my-afternoon-at-meshu/">Pete Forde’s recent presentation at MeshU</a>, <a href="http://www.meshu.ca/speakers-2009/#pete-forde"><strong><em>Is That an iPhone in Your Pocket, or are You Just Happy to See Me?</em></strong></a>. Namely, this section of his presentation:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Slide: What Apple doesn&#39;t want you to do" border="0" alt="Slide: What Apple doesn&#39;t want you to do" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/021.jpg" width="600" height="387" /> </p>
<p>The iPhone App Store is the only <em>legal </em>way to distribute iPhone apps, whether you’re selling them or giving them away. As a developer, you submit your applications to the App Store for review, and in around seven days, after which you are told whether your app has been accepted or rejected.</p>
<p>If your app is rejected, are you told the reasons why? Here’s Pete’s answer to that question:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Slide: &quot;Not gonna lie...it&#39;d be easier to get Steve Ballmer using an iPod, than for you to get a straight answer on why Apple rejected your app.&quot;" border="0" alt="Slide: &quot;Not gonna lie...it&#39;d be easier to get Steve Ballmer using an iPod, than for you to get a straight answer on why Apple rejected your app.&quot;" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/031.jpg" width="600" height="286" /> </p>
<p>The people doing the reviews for the App Store are a toxic mix of Victorian-era prudish and Kafka-esque:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="&quot;Pull my finger&quot; was rejected for being indecent" border="0" alt="&quot;Pull my finger&quot; was rejected for being indecent" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/041.jpg" width="600" height="281" /> </p>
<p>…and you can forget writing any David Mamet / Quentin Tarantino themed-apps:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Slide: No swearing" border="0" alt="Slide: No swearing" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/051.jpg" width="600" height="234" /> </p>
<p>…and that’s not just “no swearing” in your apps; that’s also “no swear words” in any search results your app returns. Consider the problem faced by one hapless app developer:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Slide: Each time, an Apple auditor loads their app, searches for the word &quot;fuck&quot;, finds it in the 700k song database, and rejects their application." border="0" alt="Slide: Each time, an Apple auditor loads their app, searches for the word &quot;fuck&quot;, finds it in the 700k song database, and rejects their application." src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/081.jpg" width="600" height="187" /> </p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Slide: Of course, 99% of those songs are available for sale in iTunes. Apple will not directly respond to requests for clarification." border="0" alt="Slide: Of course, 99% of those songs are available for sale in iTunes. Apple will not directly respond to requests for clarification." src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/091.jpg" width="600" height="228" /> </p>
<p>They’re also kind of uptight about certain novelty apps, such as the one that makes it look as though you’ve shattered your iPhone’s screen:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Slide: Apple was worried that this app, which &quot;broke&quot; the iPhone when touched, would confuse their customers. Golly." border="0" alt="Slide: Apple was worried that this app, which &quot;broke&quot; the iPhone when touched, would confuse their customers. Golly." src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/071.jpg" width="600" height="266" /> </p>
<p>When you submit your app for review, whatever you do, don’t put any joke items in the feature list. One developer, when submitting an updated version of an app (yes, you have to submit updates for review) threw in a joke item in the feature list: <strong>more dragons!</strong> Here’s the response from the App Store review board:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Slide: &quot;What dragons are you referring to? There is no evidence of dragons in your application.&quot; " border="0" alt="Slide: &quot;What dragons are you referring to? There is no evidence of dragons in your application.&quot; " src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/061.jpg" width="600" height="278" /> </p>
<p>The rest of Pete’s presentation was built around bypassing the App Store’s reviewer monkeys by building your iPhone apps as single-use browsers that were hard-wired to the web application where your app lived. That’s a workable solution for some apps, but not if you want to make use of the resources built into the iPhone.</p>
<p>While the Windows Mobile Marketplace might have a review board for legal purposes, it’s not the only way to distribute your apps. You can also make them downloadable from your site, meaning that <strong>you <em>can</em> distribute your screen-breakin’, hard-cussin’, dragon porn Windows Mobile app without The Man steppin’ on your throat.</strong> </p>
<p>Now isn’t that nice?</p>
<h3>Next</h3>
<p>In the next installment, I’ll provide a quick-and-dirty intro to writing your own Windows Mobile apps.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2009/04/13/upwardly-mobile-part-1-a-brief-tour-of-mobile-app-development/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Windows Mobile Gets Widgets!</title>
		<link>http://www.globalnerdy.com/2009/03/10/windows-mobile-gets-widgets/</link>
		<comments>http://www.globalnerdy.com/2009/03/10/windows-mobile-gets-widgets/#comments</comments>
		<pubDate>Tue, 10 Mar 2009 16:48:39 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Hardware and Gadgets]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software and Services]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[phones]]></category>
		<category><![CDATA[widgets]]></category>
		<category><![CDATA[Windows Mobile]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2009/03/10/windows-mobile-gets-widgets/</guid>
		<description><![CDATA[This article originally appeared in Canadian Developer Connection.
There’s been quite a bit of good news on the Windows Mobile front lately. First, there’s the considerably improved user interface coming with Windows 6.5, including the “hexagon” menu (the rationale for which is explained quite well by Long Zheng). There’s also the upcoming Mobile Incubation Week, where [...]]]></description>
			<content:encoded><![CDATA[<p></p><p class="alert"><a href="http://blogs.msdn.com/cdndevs/archive/2009/03/10/windows-mobile-gets-widgets.aspx">This article originally appeared in <em>Canadian Developer Connection</em>.</a></p>
<p><strong>There’s been quite a bit of good news on the Windows Mobile front lately.</strong> First, there’s <a href="http://i.gizmodo.com/5154385/windows-mobile-65-hands-on-the-new-interface-rocks">the considerably improved user interface coming with Windows 6.5</a>, including the “hexagon” menu (the rationale for which is <a href="http://www.istartedsomething.com/20090302/windows-mobile-65-honeycomb-menu-simple-ingenuity/">explained quite well by Long Zheng</a>). There’s also the upcoming <a href="http://www.globalnerdy.com/2009/03/09/windows-mobile-incubation-week-april-13-17-in-mountain-view/">Mobile Incubation Week</a>, where startups are invited to come down to The Empire’s Silicon Valley Campus and workshop Windows Mobile 6.5 apps.</p>
<p><strong><a href="http://wmpoweruser.com/?p=3548">There’s even more good news, as shown in the photo below:</a></strong></p>
<p><a href="http://wmpoweruser.com/?p=3548"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Various Windows Mobile screens showing widgets in action" border="0" alt="Various Windows Mobile screens showing widgets in action" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/03/windows-mobile-widgets.jpg" width="600" height="414" /></a></p>
<p>They’re widgets: little web applications that run within IE Mobile 6 with the “chrome” (that is, the standard browser controls) removed. They’re HTML/CSS/JavaScript-based web applications in the same spirit of the <a href="http://www.microsoft.com/windows/windows-vista/features/sidebar-gadgets.aspx">desktop/sidebar gadgets</a> in Windows, <a href="http://www.apple.com/downloads/dashboard/">Dashboard widgets</a> in Mac OS, or <a href="http://www.apple.com/webapps/whatarewebapps.html">web apps</a> on the iPhone (which aren’t getting as much love now that native apps are all the rage).</p>
<p>This is a very important development for Windows Mobile. You don’t need Visual Studio Pro (as far as I can tell, the Pro edition is the lowest-level version of Visual Studio that supports mobile development) to make widgets for Windows phones; all you need is your favourite web development tool set. At long last, Windows Mobile development will be open to just about everybody, regardless of their platform.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2009/03/10/windows-mobile-gets-widgets/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Windows Mobile Incubation Week: April 13 &#8211; 17 in Mountain View</title>
		<link>http://www.globalnerdy.com/2009/03/09/windows-mobile-incubation-week-april-13-17-in-mountain-view/</link>
		<comments>http://www.globalnerdy.com/2009/03/09/windows-mobile-incubation-week-april-13-17-in-mountain-view/#comments</comments>
		<pubDate>Tue, 10 Mar 2009 01:32:16 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Hardware and Gadgets]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[phones]]></category>
		<category><![CDATA[Windows Mobile]]></category>
		<category><![CDATA[Windows Phone]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2009/03/09/windows-mobile-incubation-week-april-13-17-in-mountain-view/</guid>
		<description><![CDATA[ 
I’ve written before that the current state of Windows Mobile makes me feel sad, and I’ve also written that recent developments like the new hexagon interface for the upcoming version 6.5 have given me reason to hope. Here’s another sign that The Empire is getting their mobile act together: TechFlash has a story about [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://www.techflash.com/Microsoft_tries_to_get_startups_making_new_Windows_Mobile_apps_40988352.html"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Two Japanese schoolgirls showing off their cellphones to Darth Vader" border="0" alt="Two Japanese schoolgirls showing off their cellphones to Darth Vader" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/03/windows-mobile-codefest.jpg" width="600" height="480" /></a> </p>
<p>I’ve written before that <a href="http://www.globalnerdy.com/2009/02/11/this-is-how-the-current-state-of-windows-mobile-makes-me-feel/">the current state of Windows Mobile makes me feel sad</a>, and I’ve also written that <a href="more-thoughts-on-windows-whatever-it-is-that-runs-on-phones/">recent developments like the new hexagon interface for the upcoming version 6.5 have given me reason to hope</a>. Here’s another sign that The Empire is getting their mobile act together: <strong><a href="http://www.techflash.com/Microsoft_tries_to_get_startups_making_new_Windows_Mobile_apps_40988352.html"><em>TechFlash </em>has a story about the upcoming Mobile Incubation Week</a></strong>, which will take place at the <a href="http://www.microsoft.com/about/companyinformation/usaoffices/northwest/svc.mspx">Silicon Valley Campus</a> in Mountain View, California from April 13th through 17th.</p>
<p><a href="http://www.microsoftstartupzone.com/Blogs/brian_hoskins/Lists/Posts/Post.aspx?ID=7"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 0px 10px; display: inline; border-top: 0px; border-right: 0px" title="Incubation Week - Microsoft" border="0" alt="Incubation Week - Microsoft" align="right" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/03/incubation-week.jpg" width="357" height="76" /></a> </p>
<p>This will be the first <strong><a href="http://www.microsoftstartupzone.com/Blogs/brian_hoskins/Lists/Posts/Post.aspx?ID=7">Mobile Incubation Week</a></strong>, a jam session where startups are invited to meet with “technical gurus from Microsoft, technology veterans who have built their own Windows Mobile applications, and influential venture capitalists and industry experts”. They’ll see demos and presentations, get advice and assistance with the Windows Mobile platform and even start putting together Windows Mobile apps. At the end of the week, a winner will be selected from the participants, and s/he’ll be eligible for prizes and publicity.</p>
<p>The event is free as in beer; you just need to figure out how you’ll get to Mountain View and find a place to crash. Your group can be as large as three people – one or two technical people and one suit. All startups are eligible, whether or not you’ve built a mobile app. <strong>The only requirement is that you’re planning on building a Windows Mobile app.</strong></p>
<p>Space at Mobile Incubation Week is limited, so if you’re interested, apply as soon as you can! You can find more details about Windows Mobile Incubation Week in <a href="http://www.microsoftstartupzone.com/Blogs/brian_hoskins/Lists/Posts/Post.aspx?ID=7">this article in <em>Microsoft Startup Zone</em></a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2009/03/09/windows-mobile-incubation-week-april-13-17-in-mountain-view/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>More Thoughts on Windows Whatever-it-is-That-Runs-on-Phones</title>
		<link>http://www.globalnerdy.com/2009/02/16/more-thoughts-on-windows-whatever-it-is-that-runs-on-phones/</link>
		<comments>http://www.globalnerdy.com/2009/02/16/more-thoughts-on-windows-whatever-it-is-that-runs-on-phones/#comments</comments>
		<pubDate>Mon, 16 Feb 2009 23:39:51 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Hardware and Gadgets]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software and Services]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[phones]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Windows Mobile]]></category>
		<category><![CDATA[Windows Phone]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/?p=2802</guid>
		<description><![CDATA[The Developer Angle

In case you don’t recognize the photo on the right, it’s the “Sad Darth Vader” photo from my earlier article titled This is How the Current State of Windows Mobile Makes Me Feel. I posted it in response to The Empire’s seemingly directionless efforts with its phone platform, Windows Mobile. Or, as it’s [...]]]></description>
			<content:encoded><![CDATA[<p></p><h3>The Developer Angle</h3>
<p><a href="http://www.globalnerdy.com/2009/02/11/this-is-how-the-current-state-of-windows-mobile-makes-me-feel/"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="A sad-looking kid in a Darth Vader sitting at a fast food restaurant table" border="0" alt="A sad-looking kid in a Darth Vader sitting at a fast food restaurant table" align="right" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/02/sad-vader1.jpg" width="200" height="285" /></a></p>
<p>In case you don’t recognize the photo on the right, it’s the “Sad Darth Vader” photo from my earlier article titled <strong><em><a href="http://www.globalnerdy.com/2009/02/11/this-is-how-the-current-state-of-windows-mobile-makes-me-feel/">This is How the Current State of Windows Mobile Makes Me Feel</a></em></strong>. I posted it in response to The Empire’s seemingly directionless efforts with its phone platform, Windows Mobile. Or, as it’s called now, Windows Phone. Or, as it used to be called, Windows CE. Or was that Windows Embedded?</p>
<p>Therein lies the first problem as far as developers are concerned: finding documentation on the subject of developing for Windows Whatever-it-is-that-runs-on-phones. It’s confusing because it’s hard to even figure out what the name of the SDK you’re supposed to use is – they all sound applicable. Is it Windows CE? Windows Mobile? Windows Embedded?</p>
<p>(By the bye, for current phones, it’s <em>Windows Mobile</em>, which is based on Windows Embedded CE. Now that this new brand, Windows Phone, is kicking around, there’s a chance that it’ll get filed under that name soon.)</p>
<p><img style="border-right-width: 0px; margin: 0px 10px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Joey deVilla&#39;s Palm Treo" border="0" alt="Joey deVilla&#39;s Palm Treo" align="left" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/02/joey-palm-treo.jpg" width="250" height="333" /></p>
<p>As an evangelist for The Empire, it’s my job to help developers figure their way around our various platforms, and I’m hard-pressed to think of a platform that appears more shrouded in mystery and confusion than Windows Whatever-it-is-that-runs-on-phones. Over the next little while, I’m going to post pointers to existing Windows Mobile/Windows Phone development articles as well as articles based on my own experiences developing for the Windows-based phone I picked up while at the recent <a href="http://en.wikipedia.org/wiki/Techready">TechReady</a> 8 conference in Seattle. It’s a <a href="http://www.palm.com/us/products/phones/treopro/index.html">Palm Treo Pro</a>, pictured on the left, and I chose it because out of all the mobiles at the Expansys booth (they always have a booth at the big Microsoft developer conferences), it was the one with the best “feel”.</p>
<p>My first pointer is to Microsoft’s own <strong><a href="http://msdn.microsoft.com/en-us/library/bb158486.aspx">Windows Mobile 6 Documentation</a></strong>, located a couple of levels into the MSDN site. The main page for this section presents a giant point-and-click map of key topics for developers who want to write apps for Windows Whatever-it-is-that-runs-on-phones. I’m going to try out some of the exercises on that site and report back with stories of my experiences of getting started with Windows phone development, and whatever tips and tricks I pick up along the way.</p>
<p>If you’ve got any questions about developing for Windows Whatever-it-is-that-runs-on-phones, feel free to ask me, whether in the comments or <a href="mailto:joey.devilla@microsoft.com">via email</a>. I may not have the answers myself, but since I’m on the inside at Microsoft, I can say that “I know a guy who knows a guy,” if you get my drift.</p>
<h3>The User Angle</h3>
<p>The upcoming 6.5 version of Windows Mobile – or more appropriately, Windows Phone – was announced earlier today at <a href="http://www.mobileworldcongress.com/">Mobile World Congress</a> in Barcelona.&#160; It features a user interface that’s considerably more finger-friendly than the current 6.1, whose stylus-reliant design seems stuck in the era of the Palm Pilot. <em><a href="http://gizmodo.com/">Gizmodo’s</a></em> Jesus Diaz seems to really like it, as evidenced in the video he shot for his article titled <strong><em><a href="http://i.gizmodo.com/5154385/windows-mobile-65-hands-on-the-new-interface-rocks">Windows Mobile 6.5 Hands On: The New Interface Rocks</a></em></strong>:</p>
<p align="center"><object width="804" height="606"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=3240086&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=3240086&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="600" height="452"></embed></object>    <br /><a href="http://vimeo.com/3240086">Windows Mobile 6.5 Running on HTC</a> from <a href="http://vimeo.com/user695393">Jesus Diaz</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>Diaz ends <a href="http://i.gizmodo.com/5154385/windows-mobile-65-hands-on-the-new-interface-rocks">his article</a> on a positive note, a rare thing for a writeup on Windows Whatever-it-is-that-runs-on-phones: </p>
<blockquote><p>From this first touch on, it looks like Microsoft is back in the game. They don&#8217;t have the upper hand yet, but they are clearly waking up. We will see what happens and how deep these changes really are once it gets released.</p>
</blockquote>
<h3>The Developer Angle, Once More</h3>
<p>The apparent improvements in 6.5 and promised continued improvements in Windows Whatever-it-is-that-runs-on-phones version 7 are a good sign, but a lot of the success story I’m hoping for rests with applications for these phones. For that, there has to be a developer community that has the tools, resources and encouragement to develop for Windows Whatever-it-is-that-runs-on-phones. <strong>Building that community is a challenge that I’m taking up. What can I do to help?</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2009/02/16/more-thoughts-on-windows-whatever-it-is-that-runs-on-phones/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
