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

<channel>
	<title>groovecodergroovecoder</title>
	<atom:link href="http://groovecoder.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://groovecoder.com</link>
	<description>203 Non-Authoritative Information</description>
	<lastBuildDate>Wed, 30 Jan 2013 13:50:51 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
<cc:license >Creative Commons Attribution-ShareAlike CC BY-SA</cc:license><dc:rights  >Creative Commons Attribution-ShareAlike CC BY-SA</dc:rights>		<item>
		<title>HTML5 App Stores don&#8217;t go too far enough</title>
		<link>http://groovecoder.com/2013/01/22/html5-app-stores-dont-go-too-far-enough/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=html5-app-stores-dont-go-too-far-enough</link>
		<comments>http://groovecoder.com/2013/01/22/html5-app-stores-dont-go-too-far-enough/#comments</comments>
		<pubDate>Tue, 22 Jan 2013 16:35:06 +0000</pubDate>
		<dc:creator>groovecoder</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[greatest-hits]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[html5]]></category>

		<guid isPermaLink="false">http://groovecoder.com/?p=1075</guid>
		<description><![CDATA[tl;dr - HTML5 app stores don't leverage the web as much as we should.  I'm convinced that packaging HTML5 apps for stores is emulating failure. There are lots of reactions. Among the comments here, Les made the opposite assertion of &#8230;<p class="read-more"><a href="http://groovecoder.com/2013/01/22/html5-app-stores-dont-go-too-far-enough/">Read more &#187;</a></p>]]></description>
				<content:encoded><![CDATA[<p><strong>tl;dr</strong> - HTML5 app stores don't leverage the web as much as we should.</p>
<p style="text-align: center;"><img class="aligncenter" alt="Futurama Political Debate" src="http://www.mememaker.net/static/images/memes/854247.jpg" width="400" height="266" /></p>
<p> I'm convinced that <a href="http://groovecoder.com/2013/01/07/packaged-html5-apps-are-we-emulating-failure">packaging HTML5 apps for stores is emulating failure</a>. There are lots of reactions. Among the comments here, <a href="http://blog.lmorchard.com/">Les</a> made the opposite assertion of mine - "<strong>where app stores win over plain old URLs is discoverability. ...</strong> <strong>URLs are precise, but they’re sharp and pokey for most people to handle.</strong>"</p>
<h3>HTML5 App search engine &gt; Pokey URLs</h3>
<p>Les made his own counter-point that we fixed pokey URL's with search engines. So,<strong> do we need "a special case search engine where the results are constrained [to HTML5 apps]"? </strong></p>
<p>Maybe.</p>
<p>The "webby" approach is to crawl the web to build an index of all <a href="http://www.brucelawson.co.uk/2011/installable-web-apps-and-interoperability/">app manifests.</a> But how can we discover the manifests? <strong>None of the HTML5 app stores document a way to hyperlink manifests.</strong><strong><br />
</strong></p>
<p>But maybe we can use <a href="http://schema.org/SoftwareApplication">schema.org SoftwareApplication type, with its convenient installUrl property</a>. We can even use the WebApplication sub-type's 'browserRequirements' property to designate a Firefox, Chrome, or W3C manifest. So Incredible Pizza could expose their HTML5 app like so:</p>
<pre>&lt;div itemscope itemtype="http://schema.org/WebApplication"&gt;
  &lt;a itemprop="installUrl" href="http://app.incrediblepizza.com/incrediblepizza.webapp"&gt;&lt;span itemprop="name"&gt;Incredible Pizza&lt;/span&gt; for &lt;span itemprop="browserRequirements"&gt;Firefox&lt;/span&gt;&lt;/a&gt;
  &lt;a itemprop="installUrl" href="http://app.incrediblepizza.com/incrediblepizza.crx"&gt;&lt;span itemprop="name"&gt;Incredible Pizza&lt;/span&gt; for &lt;span itemprop="browserRequirements"&gt;Chrome&lt;/span&gt;&lt;/a&gt;
  &lt;a itemprop="installUrl" href="http://app.incrediblepizza.com/incrediblepizza.wgt"&gt;&lt;span itemprop="name"&gt;Incredible Pizza&lt;/span&gt; for &lt;span itemprop="browserRequirements"&gt;Opera, Windows Phone&lt;/span&gt;&lt;/a&gt;
&lt;/div&gt;</pre>
<p>Voilà. We have web technology to make an HTML5 App search engine.<strong> But why are HTML5 app stores making developers manually submit manifest URLs to directories when we could leverage hyperlinks - the central nervous system of the web? </strong>As a bonus, a hyperlink-fueled HTML5 app search engine is complimentary to existing mobile platforms. This could be nice:</p>
<p style="text-align: center;"><a href="https://dl.dropbox.com/u/21969365/images/blogging/ios_search_apps.png"><img class="aligncenter" alt="iOS App Search mockup" src="https://dl.dropbox.com/u/21969365/images/blogging/ios_search_apps.png" width="219" height="429" /></a></p>
<h3>Apps contextualize content</h3>
<p>Still, an HTML5 app search engine doesn't leverage the web as much as we could. <a href="http://ambroselittle.com/2013/01/16/no-packaged-html5-apps-are-we-emulating-failure/">Ambrose Little suggests "discoverability is worse</a> [on the web] because it’s not just apps, it is all kinds of content, much of which is not pertinent nor optimized for your device." This gets to the crux of the issue: outside of pure experience apps like games,<strong> when we say we want apps, what we really want is relevant, contextual, optimized content on our mobile devices</strong>. Can we deliver relevant, contextual, optimized content to mobile devices without apps?</p>
<p>In <a href="http://amzn.com/0596807783">Programming the Mobile Web</a>, Maximiliano Firtman touches on this in his chapter about geolocation:</p>
<blockquote><p>One of the great features of mobile devices is that they can go everywhere with us. That is why the <em>where</em> is very important context to be considered by our websites. Knowing the user's location can help us to show useful contextual information -Firtman</p></blockquote>
<p>Geolocation is a great place to start, since it's so widely supported on existing mobile browsers. I suggested that incrediblepizza.com could return location-specific content using a captive wifi portal or geolocation. But <strong>fuzzy search can also deliver location-specific content</strong>, as Google Maps does; though it could be improved to deep-link into a domains' pages with something like <a href="http://geourl.org/">GeoURL</a> or a <a href="http://en.wikipedia.org/wiki/Geo-fence">geofenced</a> sitemap.</p>
<p>I.e., if incrediblepizza.com added:</p>
<pre>&lt;meta name="geo.position" content="36.05877;-95.8831" /&gt;
&lt;meta name="ICBM" content="36.05877, -95.8831" /&gt;</pre>
<p>to their <a href="http://www.incrediblepizza.com/locations/tulsa">Tulsa store location page</a>, and maybe add a geo point and radius to their sitemap:</p>
<pre>&lt;url xmlns:geo="http://geositemaps.org"&gt;
   &lt;loc&gt;http://www.incrediblepizza.com/locations/tulsa&lt;/loc&gt;
   <em>&lt;lastmod&gt;2013-01-01&lt;/lastmod&gt;
   &lt;changefreq&gt;daily&lt;/changefreq&gt;
   &lt;priority&gt;0.8&lt;/priority&gt;
   &lt;geo-radius&gt;36.05877;-95.8831;30&lt;/geo-radius&gt;</em>
&lt;/url&gt;</pre>
<p>mobile search could do something like this:</p>
<p style="text-align: center;"><a href="https://dl.dropbox.com/u/21969365/images/blogging/ios_search_pizza.png"><img class="aligncenter" alt="iOS Search for Pizza" src="https://dl.dropbox.com/u/21969365/images/blogging/ios_search_pizza.png" width="219" height="429" /></a></p>
<h3>Search already works</h3>
<p>We can search for a pizza place nearby. So what? Foursquare already does that.</p>
<p>But do we have to search for it? As predicted by <a href="http://www.forbes.com/2009/07/29/microsoft-yahoo-merger-opinions-contributors-mike-masnick.html">Mike Masnick back during Yahoo's misguided deal with Microsoft in 2009</a>, "People are discovering that information finds them, rather than them going in search of information. Search already works.<strong> The next interesting challenge is in improving the way information finds you</strong>, rather than the way you find information."</p>
<p><strong>Improving the way information finds you</strong> is how social competes with search, and <strong>it's the way mobile web should compete with app stores</strong>. Location, time, personal information, preferences, friends, actions - all of these create the context in which information should find us. <a href="http://techcrunch.com/2010/05/25/facebook-foursquare-and-google-talk-the-future-of-mobile/">Chris Cox from Facebook</a> summed it up:</p>
<blockquote><p>[Mobile phones] should be contextually aware. Check-in to flights, find deals at grocery stores, etc. These things take a bunch of clicks now — it’s all wasting time. The phone should know what we want.</p></blockquote>
<p>My phone should know:</p>
<ol>
<li>I have 2 kids under the age of 4</li>
<li>We're near south Tulsa</li>
<li>We typically eat out on Tuesday nights</li>
<li>It's almost dinner-time</li>
</ol>
<p>It should query the web. To which incrediblepizza.com replies:</p>
<ol>
<li>Kids 3 and under eat free</li>
<li>We're located in south Tulsa</li>
<li>We have double-play-points specials on Tuesdays</li>
</ol>
<p>incrediblepizza.com and my phone inform me automatically. This touches semantic web stuff; and maybe that's something we mobile web developers <em>should</em> be touching. Because ...</p>
<h3>The only group who can contextualize everything is everyone</h3>
<p><strong>The web will obsolete app stores ... again.</strong> In Scott Jenson's "<a href="http://vimeo.com/33692624">Why Mobile Apps Must Die</a>" talk at BDConf 2011, he longs for a web-based phone, and a discovery service that helps us find the right needles in the needle-stack of connected things. He calls it "a baby step towards this idea of doing just-in-time interaction" and says "I can guarantee you this will not happen thru apps."</p>
<p>Why not?</p>
<p><a href="http://christianheilmann.com/2013/01/15/packaged-apps/">Christian reminds us</a> of<strong> Yahoo's first (failed) attempt at re-creating a categorized directory of the web.</strong> If you don't have time to read <a href="http://www.shirky.com/writings/ontology_overrated.html">Clay Shirky's classic perspective on ontology</a> at least watch this great related 5-minute video:</p>
<p><iframe src="http://www.youtube.com/embed/NLlGopyXT_g" height="480" width="640" allowfullscreen="" frameborder="0"></iframe></p>
<p>Even if you skipped both, here's the crux of the matter (emphasis mine):</p>
<blockquote><p>Yahoo ... <i>added the shelf back</i>. ... The charitable explanation for this is that they thought of this ... as their job, and as something their users would value. The uncharitable explanation is that they thought there was business value in determining the view the user would have to adopt to use the system. Both of those explanations may have been true at different times and in different measures, but <strong>the effect was to override the users' sense of where things ought to be, and to insist on the Yahoo view instead</strong>.</p></blockquote>
<p>You can replace "Yahoo" with "Apple" in the preceding statement and it mirrors the current situation of Apps. The web out-grew Yahoo's shelf; it will out-grow Apple's, Google's, Microsoft's, and Mozilla's shelves. Our sense of where things ought to be and how things ought to find us is better than any vendor's. "The web is going to win again. The web always wins." as Johnath says.</p>
<p>The web will win sooner if we spend less time on the shelves and more time delivering relevant, contextual, optimized content to mobile devices.</p>
]]></content:encoded>
			<wfw:commentRss>http://groovecoder.com/2013/01/22/html5-app-stores-dont-go-too-far-enough/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Packaged HTML5 Apps: Are we emulating failure?</title>
		<link>http://groovecoder.com/2013/01/07/packaged-html5-apps-are-we-emulating-failure/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=packaged-html5-apps-are-we-emulating-failure</link>
		<comments>http://groovecoder.com/2013/01/07/packaged-html5-apps-are-we-emulating-failure/#comments</comments>
		<pubDate>Tue, 08 Jan 2013 04:17:23 +0000</pubDate>
		<dc:creator>groovecoder</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[greatest-hits]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[html5]]></category>

		<guid isPermaLink="false">http://groovecoder.com/?p=986</guid>
		<description><![CDATA[tl;dr - URLs delivered a better experience than native desktop apps; they can do the same for mobile apps. update: see my follow-up post - HTML5 App Stores don't go too far enough. When we discussed Sencha's Fastbook app on &#8230;<p class="read-more"><a href="http://groovecoder.com/2013/01/07/packaged-html5-apps-are-we-emulating-failure/">Read more &#187;</a></p>]]></description>
				<content:encoded><![CDATA[<p><strong>tl;dr</strong> - URLs delivered a better experience than native desktop apps; they can do the same for mobile apps.</p>
<p><strong>update:</strong> see my follow-up post - <a href="http://groovecoder.com/2013/01/22/html5-app-stores-dont-go-too-far-enough/">HTML5 App Stores don't go too far enough</a>.</p>
<p><img class="aligncenter" alt="HTML5 in a box" src="http://mugs.mugbug.co.uk/500/mb.html5_badge.boxed.jpg" width="300" height="300" /></p>
<p>When <a href="https://groups.google.com/forum/#!topic/mozilla.engagement.developers/Iop743jIaho/discussion">we discussed Sencha's Fastbook app on the mozilla.engagement.developers list</a> Robert pointed out that Sencha compared their HTML5 app running in mobile web <em>browser</em> to Facebook's HTML5 app running in an <em>iOS WebView</em> - the way Sencha &amp; PhoneGap packaged HTML5 apps actually run. It's widely discussed, as we did with Fastbook, that HTML5 apps perform worse in iOS UIWebView than iOS Safari. There are similar stories about <a href="https://www.google.com/search?q=android+webview+performance&amp;ie=utf-8&amp;oe=utf-8&amp;aq=t&amp;rls=org.mozilla:en-US:unofficial&amp;client=firefox-nightly">Android WebView performance</a>, and Tulsa Web Dev and HTML5 PhoneGap developer Rod just posted <a href="https://www.facebook.com/groups/199713962534/permalink/10151235283912535/">a similar performance-related anecdote about BlackBerry WebWorks</a>.</p>
<p>That made me think, "<strong>PhoneGap is just that - a stop-gap.</strong>" ... "<strong>we should drop this whole PhoneGap App nonsense and go (back) to mobile web at simple URL's" </strong>since:<strong><br />
</strong></p>
<ol>
<li>App discover-ability &amp; installation sucks</li>
<li>App content discover-ability sucks</li>
</ol>
<h3>App discover-ability &amp; installation sucks</h3>
<p>A couple months ago, my wife and I took our daughters to Incredible Pizza. When we sat down, I saw this table-tent:</p>
<p><img alt="Incredible Pizza Table-Tent" src="https://dl.dropbox.com/u/21969365/images/incredible_pizza_app_facebook.jpg" width="1062" height="599" /></p>
<p>I spent a couple minutes trying to make this "check-in" UX work on my wife's phone. The table-tent literally reads: "<em>TIP: A QR-Reader App is necessary to scan QR codes. There are several free ones available. Check your app store.</em>" So, here's what I did to find an app:</p>
<ol>
<li>Connect to Incredible Pizza wifi</li>
<li>Tap "All apps"</li>
<li>Swipe down to "Play Store"</li>
<li><em>Tap "Play Store" </em></li>
<li><em>Tap "Search"</em></li>
<li><em>Type "qr reader"</em></li>
<li><em>Swipe thru a huge list of apps</em></li>
<li><em>Pick one at random (*)<br />
</em></li>
<li><em>Tap "Install"</em></li>
<li><em>Tap "Accept &amp; Download" </em></li>
<li><em>Wait for download &amp; install</em></li>
</ol>
<p>Android prompts me with a wall of permissions that I have to accept in order to install the app. And because app updates with new permissions can't be automatically downloaded &amp; installed, <strong>many app developers just make their app request all permissions</strong>.</p>
<p>* Especially interesting to developers - I picked a free qr reader app at random, verifying that <a href="http://www.fastcompany.com/1792313/striking-it-rich-app-store-developers-its-more-casino-gold-mine">App Stores are more like casinos than gold-mines</a>.</p>
<h3>Content discover-ability sucks</h3>
<p>Once I had the QR reader app, I started to use it to check-in to Incredible Pizza on Facebook:</p>
<ol>
<li>Hold the phone in front of the card</li>
<li>Tap "Visit Link"</li>
<li>Tap "Browser"</li>
<li>Go thru 5 redirects to a prompt to open native Facebook app</li>
<li>Facebook opens</li>
<li>Wonder: "Why am I trying to do this in the first place?"</li>
</ol>
<p>There was no human-readable URL on the card. I had to choose between "Browser" and "VZ Navigator" that came with the phone from Verizon. The redirects took about 20 seconds. Finally, since <strong>they don't deep link into the native app</strong>, I ultimately end up just staring at the Facebook app as if I'd opened it myself - nothing there at all about Incredible Pizza.</p>
<p><strong>This totally obscures the app's content, and value, from the user.</strong> If I package my HTML5 app with PhoneGap I have to also register a custom URL scheme to link to a specific part of it - something PhoneGap doesn't help you to do(?). And even when you do it, <strong>you will need to make and deploy an update to the app</strong> anytime you want to add <em>new</em> URL-driven logic to it, invoking another round of app review.</p>
<h3>The Plain Old URL approach</h3>
<p>Contrast the above experience with a more traditional web approach:</p>
<ol>
<li>Connect to Incredible Pizza wifi</li>
<li>Tap Browser</li>
<li>(<em>Maybe</em>) Type "incrediblepizza.com"</li>
<li>(<em>Maybe</em>) Tap "Yes" at a geolocation prompt</li>
</ol>
<p>Incredible Pizza could <strong>immediately give me the</strong> <a href="http://www.incrediblepizza.com/Locations.html">store-specific web page</a> via captive wifi portal <strong>with big buttons for <a href="http://www.incrediblepizza.com/Oklahoma/Tulsa/Tulsa-Coupons/Eat-and-Play.html">location-and-date-specific coupons</a>, facebook check-in, etc.</strong> Or, if I'm not on their wifi, I type "incrediblepizza.com" to get the same thing via geolocation. In addition to a simpler experience, <strong>deploying new or updated content is as simple as updating the website</strong>.</p>
<h3>So why package HTML5 apps?</h3>
<p>Considering all the above, I usually ask web devs using PhoneGap: "Why are you using PhoneGap instead of just putting an HTML5 app at a URL?" and they often reply "everyone wants an app." <strong>This "everyone wants an app" situation is a problem we developers and designers should address </strong>- but not just technically. <strong>We should work with our clients and customers to consider the full user experience of native vs. web</strong> - especially app installation &amp; content discover-ability.</p>
<blockquote><p>... although many brands and creative agencies believe that they need to develop iPhone apps, what they need in reality is a good mobile site. It costs less to develop, manage and work across all handsets.</p></blockquote>
<p>- <a href="http://www.mobileeurope.co.uk/Blog/html-5-the-end-of-apps/All-Pages">HTML5 - The End of Apps | Mobile Europe</a></p>
<p>If you're making an HTML5 app, consider - <strong>do you want to make a native <em>desktop</em> application</strong>? Why or why not? Then consider if the same reasoning is true for the native mobile application. Consider the URL experience for your customers. Walk your clients thru both native app and URL experiences on mobile devices. <strong>We used web URLs to deliver a better experience than native desktop apps - we should do the same with mobile apps.</strong></p>
<h3>Good HTML5 Packaging - URL Bookmarks</h3>
<p>Vendors like Mozilla (disclaimer: my employer) and Google are also working on manifests to install HTML5 apps on Firefox (OS) and Chrome (OS). Opera and previously(?) Microsoft (via Silverlight) use the <a href="http://www.w3.org/TR/widgets/">W3C Packaged Web Apps (Widgets)</a> standard. I like these efforts if they <strong>contribute towards a consistent "installation" experience that works more like an enhanced bookmark</strong>. I.e., turn this:</p>
<ol>
<li>Visit URL</li>
<li>Tap "Add to ..."</li>
<li>Tap "Add to Home Screen"</li>
<li>Tap "Add"</li>
</ol>
<p>into this:</p>
<ol>
<li>Visit URL</li>
<li>Tap "Add to Home Screen."</li>
</ol>
<p>But next time you make an app, consider the tried-and-true web experience:</p>
<ol>
<li>Tap Browser</li>
<li>Type URL</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://groovecoder.com/2013/01/07/packaged-html5-apps-are-we-emulating-failure/feed/</wfw:commentRss>
		<slash:comments>67</slash:comments>
		</item>
		<item>
		<title>Mozilla &amp; Tulsa Web Devs</title>
		<link>http://groovecoder.com/2012/12/21/mozilla-tulsa-web-devs/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mozilla-tulsa-web-devs</link>
		<comments>http://groovecoder.com/2012/12/21/mozilla-tulsa-web-devs/#comments</comments>
		<pubDate>Fri, 21 Dec 2012 16:24:34 +0000</pubDate>
		<dc:creator>groovecoder</dc:creator>
				<category><![CDATA[community]]></category>
		<category><![CDATA[mozilla]]></category>
		<category><![CDATA[tulsa]]></category>
		<category><![CDATA[tulsawebdevs]]></category>

		<guid isPermaLink="false">http://groovecoder.com/?p=971</guid>
		<description><![CDATA[tl;dr - Mozilla sponsored Tulsa Web Devs for all of 2012. This year Tulsa Web Devs: Grew to 215 members Facilitated 3 spin-off groups Had 11 monthly meetings Had 50 weekly coworking days Had 4 hack days Ran 2 web &#8230;<p class="read-more"><a href="http://groovecoder.com/2012/12/21/mozilla-tulsa-web-devs/">Read more &#187;</a></p>]]></description>
				<content:encoded><![CDATA[<p><img class="aligncenter" alt="" src="https://dl.dropbox.com/u/21969365/images/tulsa_skyline_code.png" width="632" height="173" /></p>
<p>tl;dr - Mozilla sponsored Tulsa Web Devs for all of 2012. This year Tulsa Web Devs:</p>
<ul>
<li>Grew to <strong>215 members</strong></li>
<li>Facilitated <strong>3 spin-off groups</strong></li>
<li>Had <strong>11 monthly meetings</strong></li>
<li>Had <strong>50 weekly coworking days</strong></li>
<li>Had <strong>4 hack days</strong></li>
<li>Ran <strong>2 web tracks</strong> at local conferences</li>
<li>Hosted <strong>2 hackathons</strong></li>
<li>Participated in <strong>1 Startup Weekend</strong></li>
<li>Helped draft <strong>1 City Council Resolution</strong></li>
<li>Worked on <strong>32 open-source web projects</strong></li>
</ul>
<p>I'd also like to see what other Mozilla remotees are doing in their local web communities ... ?</p>
<h3>Members</h3>
<p>We've added a bunch of great new members this year. I won't name any specific names for fear of forgetting someone, but our members have started spin-off groups like <a href="http://on.fb.me/reddirtwebdesigners">Red Dirt Web Designers</a>, Red Dirt Graphic Designers, and Tulsa DrupalDevs. We also have a number of WordPress designers and dev's - though they haven't made their own sub-group yet. But our members have <a href="http://www.meetup.com/OKC-WordPress-Users-Group/events/68676562/">presented at OKC WordPress</a> meetup and OKC.js <a href="http://okcjs.com/blog/2012/05/14/meeting-may-15-knock-out-your-browser/">May</a> and <a href="http://okcjs.com/blog/2012/06/18/meeting-june-19-final-fox-the-future-of-the-web/">June</a> meetings.</p>
<h3>Meetings</h3>
<p>Our average meeting attendance jumped when we moved from Fab Lab Tulsa to i2E location downtown. We went from ~12 in January to ~30 in November.</p>
<p>By far my favorite meeting was our <a href="http://tulsawebdevs.org/august-meeting-2/">August meeting</a> where we asked anyone and everyone to simply answer the question "What have you been working on?" in 5 minutes or less where the lightning talks ranged from Couch to django to WordPress to Node.js. I hope to do more meetings like this; even if we pick a single topic, I'd love to have multiple presenters for it.</p>
<h3>Co-working</h3>
<p>This year we finally - consistently - hosted (at and with Fab Lab Tulsa) coworking days (almost) every Friday. Attendance is anywhere from 1-2 to 10-12, with notable spikes anytime to dev's from consumeraffairs.com make the field trip. <img src='http://groovecoder.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Many of our open-source project ideas come up during coworking days, and we give each other all kinds of technical advice - some of us have saved dozens of hours of work by simply asking a tech question around the tables.</p>
<h3>Hack Days</h3>
<p>Our hack days typically involved or included working on our open-source projects to prepare for other events. We started the year strong with Hack Days - doing one every-other-month to set up for our Spring Hackathon - but then we ran out of steam. Probably due to ...</p>
<h3>~Web Tracks</h3>
<p>This year we organized content for 2 "(sorta) web tracks" at established local technology events - a <a href="http://tulsaschoolofdev.com/talk-technology/gov-2-0">Gov2.0 track at Tulsa School of Dev</a>, and an <a href="http://techfests.com/Tulsa/2012/Tracks/HTML5/default.aspx">HTML5 track at Tulsa Tech Fest</a>.</p>
<p>Our Gov2.0 track was pretty much a flop - it's not our area of expertise, the overall event had poor promotion, and the event logistics were terrible.</p>
<p>The HTML5 track at Tulsa Tech Fest was really good. I got Yury to come over from OKC to speak, Patrick to give a fresh edition of his CSS talk from the previous year, and even got Olivier Bloch to speak about HTML5 for mobile cross-platform app development.</p>
<p>Both of our tracks lead into ...</p>
<h3>Hackathons</h3>
<p>Our <em><strong>Spring Hackathon</strong></em> focused on Gov2.0 and "open data" projects. In 2011 we - especially <a href="https://twitter.com/jwhitlock">John Whitlock</a> - made a couple of very valuable and noticeable "open data" projects: TRIF and the Tulsa Transit GTFS project. Motivated by their success, we tried to do more of the same type of projects. We also increased the duration from 24 to 48 hours. We made some cool stuff, but, IMO, the format was too long and the domain was too narrow.</p>
<p>Our 2nd annual <em><strong>Fall Hackathon</strong></em> snapped back to 24 hours and focused only on "apps" - any app would do. Mobile web, HTML5, iOS, Android, Windows Phone, whatever. We did *some* promotion but not so much to be stressful, and we still had a good turnout and made some good projects and progress. I think it was just about the Right Size and Scope™ to be a sustainable yearly event.</p>
<h3>Startup Weekend</h3>
<p>A bunch of Tulsa Web Devs participated in this year's <a href="http://tulsa.startupweekend.org">Tulsa Startup Weekend</a>, creating projects like <a href="http://tfdd.co">TFDD.co</a>, <a href="http://wallcade.com/">Wallcade</a>, and <a href="http://picirus.com/">Picirus</a> (this year's winner!). I also started a <a href="https://github.com/tulsawebdevs/GeoNotes">GeoNotes</a> app aimed at Firefox OS, but our team was a bunch of backend dev's trying to learn HTML, CSS, and JavaScript so I wasn't confident enough to even show it at the closing ceremony.</p>
<h3>City Council Resolution</h3>
<p>Our Gov2.0 work attracted lots of attention from local civic interest groups, including Transit Matters, Tulsa Now, Tulsa Young Professionals, and eventually the Tulsa City Council itself. So, one of our city councilors contacted me about how to encourage and support the kind of projects and work we're doing. I suggested we should pass a <a href="https://docs.google.com/open?id=18G9agDB2myMGeInVqNySm6I_lBDHOgIqtcZI_FUFvC3qvMEUzZV70-J1sO1l">City of Tulsa Open Source Resolution</a> like some I had heard about from Portland, San Francisco, and Vancouver. It's still in draft stage but we hope to get it on a city council meeting agenda sometime next year.</p>
<h3>Projects</h3>
<p>We made too many projects to list them all, so just check out our <a href="https://github.com/tulsawebdevs">Tulsa Web Devs GitHub org page</a> or our <a href="http://tulsawebdevs.org/projects/">Projects page</a>. Our projects have spanned from local consumer interest to irc bots to wordpress plugins to open data.</p>
<h3>Mozilla?</h3>
<p>What does all this have to do with Mozilla? In running the group, I've tried hard to NOT make it all about Mozilla, but Tulsa Web Devs now boasts <em>1 Mozilla Contributor &amp; 1 Mozilla Rep, 2 Open Web Apps, and dozens of engaged Firefox users</em>. Now many members have asked me to bring <strong>MORE</strong> Mozilla activity into the group - to host a Mozilla hack day, bring speakers in from Mozilla, and help people contribute to Mozilla's websites. I'm looking forward to more collaboration between Mozilla &amp; Tulsa Web Devs in 2013!</p>
<p>I'd also like to see what other Mozilla remotees are doing in their local web communities. Got a good story to share?</p>
]]></content:encoded>
			<wfw:commentRss>http://groovecoder.com/2012/12/21/mozilla-tulsa-web-devs/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>mac raspberry pi dd permission denied</title>
		<link>http://groovecoder.com/2012/11/25/mac-raspberry-pi-dd-permission-denied/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mac-raspberry-pi-dd-permission-denied</link>
		<comments>http://groovecoder.com/2012/11/25/mac-raspberry-pi-dd-permission-denied/#comments</comments>
		<pubDate>Sun, 25 Nov 2012 16:43:50 +0000</pubDate>
		<dc:creator>groovecoder</dc:creator>
				<category><![CDATA[tech]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[raspberry pi]]></category>

		<guid isPermaLink="false">http://groovecoder.com/?p=960</guid>
		<description><![CDATA[tl;dr - If you get "permission denied" errors while trying to dd a raspberry pi disk image on your macbook pro, try blowing out your sd card slot to unset its "disk lock" switch. Seriously. I love Mac's for the &#8230;<p class="read-more"><a href="http://groovecoder.com/2012/11/25/mac-raspberry-pi-dd-permission-denied/">Read more &#187;</a></p>]]></description>
				<content:encoded><![CDATA[<p><strong><img class="alignleft" title="Raspberry Pi Grayscale Logo" src="http://www.adafruit.com/adablog/wp-content/uploads/2012/10/OccidentalisLogo.png" alt="Raspberry Pi Grayscale Logo" width="281" height="358" />tl;dr</strong> - <em>If you get "permission denied" errors while trying to dd a raspberry pi disk image on your macbook pro, try blowing out your sd card slot to unset its "disk lock" switch. Seriously</em>.</p>
<p>I love Mac's for the almost-linux environment coupled with a nice, rich, high-performance GUI. But every once in a while we Mac users have to search a couple extra error messages when we try to do more "linuxy" stuff - e.g., preparing a raspberry pi sd card.</p>
<p>This morning I got my HDMI cord for my pi, so I went thru the <a href="http://www.raspberrypi.org/quick-start-guide">raspberry pi quick start guide</a> including the <a href="http://elinux.org/RPi_Easy_SD_Card_Setup">easy sd card setup</a>. But, even though I unmounted the disk and ran `dd` with `sudo` I still got "Permission denied"</p>
<p>I googled for this blog post title and found <a href="http://www.raspberrypi.org/phpBB3/viewtopic.php?f=5&amp;t=5561">a topic on the Raspberry Pi forums</a>, but the answer that seemed to work for most people was down at the bottom of the thread. So I'm re-posting it here, because it's funny, and so someone else having the same problem might fix it faster.</p>
<p>Apparently, 15" 2010 MacBook Pro's built-in SD card reader's get stuck in the write-locked position. So bust out your old Nintendo skills and give it a blow to clear it out. If you never had an NES, your weak under-trained lungs might need you to use a compressed air can instead. Pansy.</p>
]]></content:encoded>
			<wfw:commentRss>http://groovecoder.com/2012/11/25/mac-raspberry-pi-dd-permission-denied/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Facebook never bet on HTML5</title>
		<link>http://groovecoder.com/2012/09/12/facebook-never-bet-on-html5/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=facebook-never-bet-on-html5</link>
		<comments>http://groovecoder.com/2012/09/12/facebook-never-bet-on-html5/#comments</comments>
		<pubDate>Wed, 12 Sep 2012 16:33:20 +0000</pubDate>
		<dc:creator>groovecoder</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[greatest-hits]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[html5]]></category>

		<guid isPermaLink="false">http://groovecoder.com/?p=948</guid>
		<description><![CDATA[I'm going to jump into the mix, but my post is short and sweet. In fact, I wrote it while waiting for tests to run. Facebook never bet on HTML5. Anyone remember the convoluted rambling of Dave Fetterman at f8 &#8230;<p class="read-more"><a href="http://groovecoder.com/2012/09/12/facebook-never-bet-on-html5/">Read more &#187;</a></p>]]></description>
				<content:encoded><![CDATA[<p>I'm going to jump into the mix, but my post is short and sweet. In fact, I wrote it while waiting for tests to run.</p>
<p><strong>Facebook never bet on HTML5.</strong> Anyone remember <a href="http://www.readwriteweb.com/mobile/2011/09/how-facebook-mobile-was-design.php">the convoluted rambling of Dave Fetterman at f8 developer conference last year</a>? I remember being both dumbfounded and confounded by it.</p>
<blockquote><p>So, how does this work? Project FaceWeb is an extension of this progressive enhancement idea. So, instead of the phone saying I am rendering for a WebKit browser, we send an agent that says you are going to be rendering for a WebKit UI WebKit view inside the iPhone app. So, what you have to do is detect that, style a Web code to make that work, build a bridge between the things that you want to write to interact natively with the Objective-C, say in Javascript, then build HTML pages for Facebook in the iPhone. So, you build much smaller native goop instead of having to build over and over again.</p>
<p>...</p>
<p>HTML5 is probably the way that we should have done it.</p></blockquote>
<p>Near as I can tell, Facebook invented their own PhoneGap (i.e., FaceWeb) and sent m.facebook.com to it, <strong>then FaceWeb changed webkit's rendering logic*</strong> to match m.facebook.com instead of changing m.facebook.com to a mobile HTML5 site? That's not HTML5 - that's just stupid.</p>
<p>* UPDATE: as pointed out in comments, this isn't exactly accurate. Faceweb does some funky stuff though, and their engineering manager in charge of the project couldn't even articulate what it is. So it still sounds like bad engineering unrelated to HTML5.</p>
<p>* UPDATE 2: You should read <a href="http://www.theregister.co.uk/2012/09/14/facebook_html_5_vs_native_apps/">Matt Asay's analysis of Facebook's HTML5 fiasco</a>. In fact, you should read everything Matt Asay writes.</p>
]]></content:encoded>
			<wfw:commentRss>http://groovecoder.com/2012/09/12/facebook-never-bet-on-html5/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>phpunit travis ci undefined offset</title>
		<link>http://groovecoder.com/2012/09/07/phpunit-travis-ci-undefined-offset/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=phpunit-travis-ci-undefined-offset</link>
		<comments>http://groovecoder.com/2012/09/07/phpunit-travis-ci-undefined-offset/#comments</comments>
		<pubDate>Fri, 07 Sep 2012 06:26:05 +0000</pubDate>
		<dc:creator>groovecoder</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://groovecoder.com/?p=932</guid>
		<description><![CDATA[or How I learned to stop hating on PHP TL;DR - "Undefined offset" is an E_STRICT level PHP error, and travis-ci.org uses E_STRICT+ by default. Put error_reporting&#40; E_ALL &#41;; at the top of your phpunit test suite to find and &#8230;<p class="read-more"><a href="http://groovecoder.com/2012/09/07/phpunit-travis-ci-undefined-offset/">Read more &#187;</a></p>]]></description>
				<content:encoded><![CDATA[<p>or</p>
<h2 class="title">How I learned to stop hating on PHP</h2>
<p><a href="http://travis-ci.org/#!/groovecoder/wp-promote-mdn/jobs/2337280"><img class="alignnone" title="PHPUnit Travis CI Undefined Offset" src="https://dl.dropbox.com/u/21969365/images/phpunit_travis_undefined_offset.png" alt="PHPUnit Travis CI Undefined Offset" width="579" height="100" /></a></p>
<p><strong>TL;DR</strong> - "Undefined offset" is an E_STRICT level PHP error, and travis-ci.org uses E_STRICT+ by default. Put <pre class="php"><ol><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><a href="http://www.php.net/error_reporting"><span style="color: #000066;">error_reporting</span></a><span style="color: #66cc66;">&#40;</span> <span style="color: #000000; font-weight: bold;">E_ALL</span> <span style="color: #66cc66;">&#41;</span>;</div></li></ol></pre> at the top of your phpunit test suite to find and fix all your warnings and notices to fix Travis builds.</p>
<h3>pHpaters</h3>
<p>Today <a href="http://laurathomson.com/">Laura</a> and I chatted briefly about <a href="https://twitter.com/lxt/status/243779047996420096">djangocon presenters bashing PHP</a>. I mentioned that the <a href="http://wordpress.org/extend/plugins/promote-mdn/">Promote MDN</a> code is some of my favorite code - in any language. As with my Zend_Rest code, the two keys I've found to writing good PHP code are:</p>
<ol>
<li>Use a <strong>coding standard</strong></li>
<li>Write <strong>unit tests</strong></li>
</ol>
<h3>Coding Standard</h3>
<p>I use <a href="https://github.com/mrchrisadams/WordPress-Coding-Standards">Chris Adams WordPress Coding Standards for PHP_CodeSniffer</a> to stick to that. It was <strong>amazing how much nicer the PHP code was when I took just an hour to clean up</strong> what I inherited from SEO Smart Links. The PHP community would do well to embrace, encourage, and even enforce coding standards more - the way the Python community does with PEP8.</p>
<h3>Unit Tests</h3>
<p>I write unit tests for Promote MDN too. My tests/doubles.php is hacky, but it Freaking Works™; I <strong>didn't have to build out a set of fixture data or couple the test suite to a running WordPress instance</strong>. Like WordPress, I just (ab)use the global namespace to (re-)define dependency functions with doubles.</p>
<p>I also took the opportunity to try out <a href="travis-ci.org">Travis CI</a>. After fixing the travis.yaml and phpunit.xml files <em>just right</em> I got a bunch of test errors with the message "Undefined offset: 1" which frustrated me because I didn't see them locally. While we chatted about PHP, Laura reminded me about PHP's error reporting levels, and she was spot-on. I bumped up to E_ALL locally and got the same errors as Travis.</p>
<h3>Error Reporting Level</h3>
<p>I spent the next 10 minutes fixing my warnings and notices and realized - <strong>I should always use a higher error level</strong> in PHP. Python will rightfully gripe at me if I try to access a dictionary element by a key that doesn't exist. But <strong>PHP can be equally strict</strong> if I set my error level to E_STRICT or higher. So, I'm adding it to my list:</p>
<ol>
<li>Use a <strong>coding standard</strong></li>
<li>Write <strong>unit tests</strong></li>
<li>Set <strong>error level</strong> to E_STRICT</li>
</ol>
<p>I really think these 3 practices could make any PHP code into good solid code. Instead of simply bashing on PHP, from now on I'm going to simply advise PHP dev's to stick to these practices - it's good for the developers and good for the community.</p>
]]></content:encoded>
			<wfw:commentRss>http://groovecoder.com/2012/09/07/phpunit-travis-ci-undefined-offset/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Mozilla &amp; WordPress</title>
		<link>http://groovecoder.com/2012/08/20/mozilla-wordpress/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mozilla-wordpress</link>
		<comments>http://groovecoder.com/2012/08/20/mozilla-wordpress/#comments</comments>
		<pubDate>Mon, 20 Aug 2012 18:36:05 +0000</pubDate>
		<dc:creator>groovecoder</dc:creator>
				<category><![CDATA[mozilla]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://groovecoder.com/?p=912</guid>
		<description><![CDATA[TL;DR - I made the Promote MDN WordPress plugin and enjoyed it; why isn't(?) there a more intentional relationship between Mozilla &#38; WordPress communities? WordPress development To make the Promote MDN WordPress plugin these last couple weeks, I've worked with WordPress &#8230;<p class="read-more"><a href="http://groovecoder.com/2012/08/20/mozilla-wordpress/">Read more &#187;</a></p>]]></description>
				<content:encoded><![CDATA[<p><img class="aligncenter" title="Mozilla WordPress" src="https://dl.dropbox.com/u/21969365/images/mozilla_wordpress.png" alt="Mozilla WordPress" width="353" height="353" /></p>
<p>TL;DR - I made the <a href="http://wordpress.org/extend/plugins/promote-mdn/">Promote MDN WordPress plugin</a> and enjoyed it; why isn't(?) there a more intentional relationship between Mozilla &amp; WordPress communities?</p>
<h3>WordPress development</h3>
<p>To make the Promote MDN WordPress plugin these last couple weeks, I've worked with WordPress more than I have in the previous decade. I've run dozens of sites with WordPress, but have never been active as a developer or contributor. Observations:</p>
<ul>
<li><strong>Keep code tidy</strong> - Okay, so there's globals and no MVC. But I copied messy code from SEO Smart Links, ran it thru PHP_CodeSniffer and it was actually easy to follow and work with it, due to the ...</li>
<li><strong>Good docs</strong> - The codex has lots of good info. I Googled for stuff like "wordpress http get", "wordpress cache", and "wordpress i18n" and the codex docs always had what I needed.</li>
<li><strong>Can leverage Verbatim for l10n</strong> - After I made a .pot file for the plugin, I added it to our existing MDN project on verbatim. Within hours it was translated into Dutch, Polish, and German. Then a couple days later Brazilian Portuguese and Spanish too. I love our localization teams so much.</li>
<li><strong>Releasing is painful</strong> - It's exactly <a href="https://github.com/groovecoder/wp-promote-mdn/blob/master/RELEASE.txt">this painful</a>. It makes me really love and appreciate our new chief deployment system on MDN, and heroku for my other sites.</li>
<li><strong>Releasing is cool</strong> - It's cool that the plugin is now just a couple clicks away from millions of users. The appeal of "app stores" I guess.</li>
</ul>
<h3>WordPress development at Mozilla</h3>
<p>I coordinated a <a href="http://www.meetup.com/OKC-WordPress-Users-Group/events/68676562/">"WordPress at Mozilla" talk for an OKC WordPress User's Group meetup</a>. When I asked about WordPress on Yammer, only <a href="https://twitter.com/craigcook">Craig</a> and <a href="https://twitter.com/jake_maul">Jake</a> claimed to have WordPress dev and deployment experience at and for Mozilla. They say we have many dozen - approaching a hundred? - WordPress blogs &amp; sites at Mozilla. In addition to that, we have:</p>
<ul>
<li><a href="http://wordpress.org/extend/plugins/browserid/">Mozilla Persona Plugin</a> - Persona for your WordPress site.</li>
<li><a href="http://wordpress.org/extend/plugins/openattribute-for-wordpress/">Open Attribute Plugin</a> - Add licensing information using <a href="http://openattribute.com/">OpenAttribute</a> from Mozilla Drumbeat</li>
<li><a href="http://wordpress.org/extend/plugins/wpbadger/">WPBadger</a> - Issue badges and add them to a user's <a href="www.openbadges.org">Open Badges</a> backpack.</li>
<li>Promote MDN Plugin - adds links to MDN to your WordPress site content</li>
</ul>
<h3>Mozilla and WordPress</h3>
<p>WordPress runs about <strong>55 million websites</strong> in the world. <strong>332 million people</strong> view over <strong>2.5 billion pages</strong> on WordPress.com's hosted sites alone, where there are also <strong>500k new posts</strong> and <strong>400k new comments</strong> <strong>every day</strong>.</p>
<p>Which makes me wonder - does Mozilla have any official or intentional relationship with WordPress? Should we?</p>
<p>WordPress empowers people to <strong>make and control their own content on the web</strong>. (As opposed to, say, Facebook Pages) It seems like we could combine efforts in some cool ways. At the very least, many of our projects and websites could probably put together a cool and useful WordPress plugin of some kind. It's really not bad at all. <img src='http://groovecoder.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://groovecoder.com/2012/08/20/mozilla-wordpress/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Firefox rapid releases: developers *are* users</title>
		<link>http://groovecoder.com/2012/07/13/firefox-rapid-releases-developers-are-users/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=firefox-rapid-releases-developers-are-users</link>
		<comments>http://groovecoder.com/2012/07/13/firefox-rapid-releases-developers-are-users/#comments</comments>
		<pubDate>Fri, 13 Jul 2012 14:00:36 +0000</pubDate>
		<dc:creator>groovecoder</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[mozilla]]></category>

		<guid isPermaLink="false">http://groovecoder.com/?p=905</guid>
		<description><![CDATA[Jono There's a tempest brewing in the Interteapot over Jono's post about the Firefox rapid release cycle. I reacted the way he probably anticipated - "Good points that are already well taken." But tech media is sensational, so the story &#8230;<p class="read-more"><a href="http://groovecoder.com/2012/07/13/firefox-rapid-releases-developers-are-users/">Read more &#187;</a></p>]]></description>
				<content:encoded><![CDATA[<h3>Jono</h3>
<p>There's a tempest brewing in the Interteapot over <a href="http://www.evilbrainjono.net/blog?permalink=1094">Jono's post about the Firefox rapid release cycle</a>. I reacted the way he probably anticipated - "<strong>Good points that are already well taken</strong>." But tech media is sensational, so the story reported was "<strong>Firefox dev hates Firefox ZOMG</strong>!" prompting an official Mozilla Press Statement™ and a sincere face-palm from Jono.</p>
<p>Let me make something clear: <strong>Jono is one of my heroes</strong>. When he writes something, I read it. And when he writes <a href="https://jonoscript.wordpress.com/2011/07/22/lets-hear-it-for-the-long-tail/">how Silicon Valley culture has a monomaniacal obsession with hugeness</a>, I read it so often that it's the first hit in my browser bar for 'le'. But I want to add another perspective to his main point - at least the main point he wanted to make.</p>
<blockquote><p>The main point I wanted to make was about the distance between the developer perspective and the user perspective, the costs for users of updates (even good updates), and the reasons why developers (everywhere, not just Mozilla) may have trouble seeing updates from the user perspective.</p>
<p><a href="http://blog.johnath.com/2012/07/11/at-our-most-excellent/comment-page-1/#comment-218506">Jono</a></p></blockquote>
<h3>Web developers</h3>
<p>I'll emphasize that Jono means the <span style="text-decoration: underline;">Firefox</span> developer perspective vs. the user perspective. <strong><span style="text-decoration: underline;">Web</span> developers <span style="text-decoration: underline;">are</span> Firefox users</strong>. Working on <a title="An open letter to all non-parents from a parent" href="https://developer.mozilla.org/">MDN</a>, acting as a developer <a href="https://wiki.mozilla.org/ReMo/SIGs/Evangelism_Reps">evangelism rep</a>, and running <a title="Mozilla in OKC" href="http://tulsawebdevs.org/">Tulsa Web Devs</a> gives me some insight into the <span style="text-decoration: underline;">web developer</span> perspective, so let me talk about them.</p>
<p>I've showed the new dev tools, HTML5, CSS, and JavaScript support to web developers and they are always surprised how much has been added to Firefox in the last year (i.e., the time they've been using Chrome.) Most of them make an opposite response to the one Jono describes - something like "<strong>Wow, I need to look into Firefox again</strong>." And I'm able to re-pitch, re-sell, and re-promote Firefox with "<a href="https://developer.mozilla.org/en/Firefox_for_developers">What's new in Firefox for developers</a>" every 6 weeks rather than once a year!</p>
<p>In almost every one of these encounters, I also show web developers the <a href="http://www.mozilla.org/firefox/aurora/">Aurora release channel</a>, and they love it. I tell them Aurora is Firefox, just 7-13 weeks in the future. (Because Mozilla has time machines) It gets new features like the awesome <a href="https://hacks.mozilla.org/2012/07/debugger-responsive-design-view-and-more-in-firefox-aurora-15/">new responsive design view and javascript debugger</a> even sooner, and it lets web developers see how their sites work in future versions of Firefox.</p>
<p>Here's the kicker: <strong>Aurora updates <span style="text-decoration: underline;">more</span> frequently than Firefox does - and web developers love it</strong>! These <span style="text-decoration: underline;">are</span> Firefox users. And importantly, they're usually "<a href="http://blog.johnath.com/2012/07/11/at-our-most-excellent/comment-page-1/#comment-218382">the people who shout the loudest about browsers</a>."</p>
<p>So that's it. Just want to point out an important segment of Firefox users for which the new rapid release process is a big improvement. Jono knows this, but maybe some clueless tech journalist will pick this up and write a "ZOMG Mozilla web developer likes Firefox" article. Nah, not enough page-views.</p>
<p>UPDATE: Too perfect. Right after I published this, <a href="https://dl.dropbox.com/u/21969365/images/aurora_update_prompt.png">I got an update prompt from Aurora</a>. <img src='http://groovecoder.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://groovecoder.com/2012/07/13/firefox-rapid-releases-developers-are-users/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Mozilla in OKC</title>
		<link>http://groovecoder.com/2012/06/28/mozilla-in-okc/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mozilla-in-okc</link>
		<comments>http://groovecoder.com/2012/06/28/mozilla-in-okc/#comments</comments>
		<pubDate>Thu, 28 Jun 2012 21:15:59 +0000</pubDate>
		<dc:creator>groovecoder</dc:creator>
				<category><![CDATA[community]]></category>
		<category><![CDATA[mozilla]]></category>

		<guid isPermaLink="false">http://groovecoder.com/?p=902</guid>
		<description><![CDATA[In the last couple weeks I've made two trips down highway 44 to give talks about Mozilla technology to web groups in Oklahoma City. First, I went to speak at the OKC.js June meeting about the various JavaScript API's and &#8230;<p class="read-more"><a href="http://groovecoder.com/2012/06/28/mozilla-in-okc/">Read more &#187;</a></p>]]></description>
				<content:encoded><![CDATA[<p>In the last couple weeks I've made two trips down highway 44 to give talks about Mozilla technology to web groups in Oklahoma City.</p>
<p><a href="http://okcjs.com/blog/2012/06/18/meeting-june-19-final-fox-the-future-of-the-web/"><img class="alignleft" title="OKC.js June Meeting Banner" src="https://dl.dropbox.com/u/21969365/images/okcjs_final_fox_thumb.png" alt="OKC.js June Meeting Banner" width="150" height="225" /></a>First, I went to speak at the <a href="http://okcjs.com/blog/2012/06/18/meeting-june-19-final-fox-the-future-of-the-web/">OKC.js June meeting</a> about the various JavaScript API's and related technologies Mozilla is developing and promoting for the open web.</p>
<p>Jesse had told me the OKC.js group has started well and they were right. There were about 25 or 30 attendees. I covered a lot of material (see <a title="Presentations" href="http://groovecoder.com/presentations/">my presentations page</a>) and then gave away some swag - an Aurora laptop cover-sticker, shirts, and pens - to anyone who answered a quiz question about the content. Everyone likes shirts! In addition to questions about Gaming, Mobile, Apps and Boot to Gecko, I also got lots of questions and interest about our <a href="http://tulsawebdevs.org">Tulsa Web Devs</a> activities.</p>
<p>The following week I recruited <a href="https://twitter.com/craigcook/">Craig</a> and <a href="https://twitter.com/jake_maul">Jake</a> to help me give a "WordPress at Mozilla" talk at the <a href="http://www.meetup.com/OKC-WordPress-Users-Group/events/68676562/">OKC WordPress June Meetup</a>.</p>
<p>There were about a dozen attendees and we used vidyo to do a conference presentation on our blogging infrastructure and operations (Jake), our theming (Craig), and finally I showed our BrowserID WordPress plugin. We got some good questions an interest, particularly in new One Mozilla theme and its accessibility features. I left a bag of pens for the meetup group - I had given away all my other swag at OKC.js.</p>
<p>OKC has a good web community that is starting to connect and do more - much like Tulsa. We have a full-time Mozilla employee in OKC. I'll plan to collaborate more between OKC and Tulsa web communities. Maybe float ideas of an OK Mozilla group or something. I'm already planning to talk to students at <a href="http://www.ftclass.com/about.php">Francis Tuttle Technology Center Web Design and Development program</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://groovecoder.com/2012/06/28/mozilla-in-okc/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>An open letter to all non-parents from a parent</title>
		<link>http://groovecoder.com/2012/06/18/an-open-letter-to-all-non-parents-from-a-parent/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=an-open-letter-to-all-non-parents-from-a-parent</link>
		<comments>http://groovecoder.com/2012/06/18/an-open-letter-to-all-non-parents-from-a-parent/#comments</comments>
		<pubDate>Tue, 19 Jun 2012 04:00:35 +0000</pubDate>
		<dc:creator>groovecoder</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://groovecoder.com/?p=885</guid>
		<description><![CDATA[Thank you for your letter. I laughed and nodded along as I read it, and I shared it with all the rest of my parent friends. Thank you for babysitting! I understand those 3 hours seem like an eternity of &#8230;<p class="read-more"><a href="http://groovecoder.com/2012/06/18/an-open-letter-to-all-non-parents-from-a-parent/">Read more &#187;</a></p>]]></description>
				<content:encoded><![CDATA[<p>Thank you for <a href="http://tryingtobegood.com/2012/06/02/an-open-letter-to-all-parents-from-a-non-parent-10/">your letter</a>. I laughed and nodded along as I read it, and I shared it with all the rest of my parent friends.</p>
<p>Thank you for babysitting! I understand those 3 hours seem like an eternity of suffering; the 3 hours of quiet you gave my wife and I were an eternity of bliss!</p>
<p>Thank you for understanding when we have to leave your party early to get our children home to bed.</p>
<p>Thank you for letting us decide what to do on the nights we have a babysitter!</p>
<p>Thank you for letting us take 3x as long to do everything.</p>
<p>Thank you for always coming to our house for dinner because it's child-proof.</p>
<p>Thank you for going out of your way to meet at a time and place that works around nap-time.</p>
<p>Thank you for talking to and playing with our kids when they are with us.</p>
<p>Thank you for holding our kid while we clean up the embarrassing mess they left at the restaurant.</p>
<p>Thank you for bringing them a new book for story-time.</p>
<p>Thank you for re-scheduling the work meeting because my kid is sick.</p>
<p>Thank you for taking over so many tasks for our social group.</p>
<p>Thank you for being the one to call me instead of waiting for me to call you.</p>
<p>And I'm sorry.</p>
<p>Sorry I don't answer your text messages.</p>
<p>Sorry I rarely ever go out anymore.</p>
<p>Sorry I forgot your birthday/graduation/other-special-occasion.</p>
<p>Sorry for being so up-tight about germs.</p>
<p>Sorry for having to stop our conversation abruptly to chase down my kid.</p>
<p>Sorry for being so chaotic.</p>
<p>Sorry for being jealous and envious of your frequent dinner dates, your vacations, your boredom, or that awesome open source project you built in your free time. (What's that?!)</p>
<p>But while I was writing this letter - which took a whole week, one or both of my daughters have:</p>
<p><img class="alignnone" title="Clover in the pool" src="https://dl.dropbox.com/u/21969365/images/clover_pool" alt="Clover in the pool" width="346" height="259" /></p>
<p><img class="alignnone" title="River in a hat" src="https://dl.dropbox.com/u/21969365/images/river_hat.jpg" alt="River in a hat" width="346" height="259" /></p>
<p>said "Dada, I need a hug,"</p>
<p>asked to be held countless times,</p>
<p>giggled uncontrollably as I tickled her,</p>
<p>run up and down our hallway continuously for 10 minutes to tackle me,</p>
<p>been "Beast", "Belle," "Emily," "Nemo," "Bruce," or a dozen other characters,</p>
<p>hugged me with "legs and everything" when I asked,</p>
<p>squealed with delight as she rolled a bowling ball straight into a gutter,</p>
<p>learned to swim back to the edge of the pool by herself,</p>
<p>fallen asleep in my arms while I sing to her,</p>
<p>called out for me when thunder woke her up at night.</p>
<p>Thank you for sticking with me. I'm sorry our friendship has stretched so much, but I hope we'll have great times watching these two new little friends grow up with us.</p>
]]></content:encoded>
			<wfw:commentRss>http://groovecoder.com/2012/06/18/an-open-letter-to-all-non-parents-from-a-parent/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
