141 JSJ Firefox OS with Jason Weathersby

00:00
Download MP3

02:29 - Help Support JavaScript Jabber and DevChat.tv

03:10 - Jason Weathersby Introduction

03:55 - Firefox OS (FxOS)

05:38 - IOT (The Internet of Things)

06:30 - Levels of FxOS

08:58 - FxOS and JavaScript Frameworks and the Types of Apps on FxOS

13:08 - systemXHR (and Angular)

16:28 - The Flame (The Developer Reference Phone)

22:12 - Android and FsOS Compatibility

28:41 - Competition

29:45 - The UI (User Interface)

31:56 - Copy/Paste Feature

32:49 - Group Text

36:12 - FxOS & The Raspberry Pi

37:49 - An Alternative to Node?

38:15 - FsOX on Tablets

38:59 - Getting Started Developing an FxOS App

46:58 - Self Identifying as a FxOS User

51:15 - Cordova

52:51 - The Developer HUD

A Couple of Screencasts AJ Has Created Recently

Transcript

CHUCK:  Alrighty, FirefoxOS. [Chuckles] CHUCK:  Or I think I saw somebody spell it out without spaces or up-casing the OS, so it was… AJ:  Firefoxos CHUCK:  Firefoxos, yup.[This episode is sponsored by Frontend Masters. They have a terrific lineup of live courses you can attend either online or in person. They also have a terrific backlog of courses you can watch including JavaScript the Good Parts, Build Web Applications with Node.js, AngularJS In-Depth, and Advanced JavaScript. You can go check them out at FrontEndMasters.com.]**[This episode is sponsored by Hired.com. Every week on Hired, they run an auction where over a thousand tech companies in San Francisco, New York, and L.A. bid on JavaScript developers, providing them with salary and equity upfront. The average JavaScript developer gets an average of 5 to 15 introductory offers and an average salary offer of $130,000 a year. Users can either accept an offer and go right into interviewing with the company or deny them without any continuing obligations. It’s totally free for users. And when you’re hired, they also give you a $2,000 bonus as a thank you for using them. But if you use the JavaScript Jabber link, you’ll get a $4,000 bonus instead. Finally, if you’re not looking for a job and know someone who is, you can refer them to Hired and get a $1,337 bonus if they accept a job. Go sign up at Hired.com/JavaScriptJabber.]**[This episode is sponsored by Rackspace. Are you looking for a place to host your latest creation? Want terrific support, high performance all backed by the largest open source cloud? What if you could try it for free? Try out Rackspace at JavaScriptJabber.com/Rackspace and get a $300 credit over six months. That’s $50 per month at JavaScriptJabber.com/Rackspace.]**[This episode is sponsored by Wijmo 5, a brand new generation of JavaScript controls. A pretty amazing line of HTML5 and JavaScript products for enterprise application development in that Wijmo 5 leverages ECMAScript 5 and each control ships with AngularJS directives. Check out the faster, lighter, and more mobile Wijmo 5.] **CHUCK:  Hey everybody and welcome to episode 141 of the JavaScript Jabber Show. This week on our panel, we have David Smith. DAVE:  Hello, world. CHUCK:  AJ O’Neal. AJ:  Yo, yo, yo, coming at you live as always. CHUCK:  He also brought along Forrest Tait. FORREST:  Hey there. CHUCK:  I’m Charles Max Wood from DevChat.TV. Before we get going I do want to, I hate doing this but I have to swallow my pride. So, this show and Ruby Rogues bring in enough sponsorship money to cover themselves. But I have a few other shows that aren’t quite bringing in enough to pay for themselves, Adventures in Angular or The Freelancers’ Show. If you’d like to support the podcasting effort here, you can do that by going to DevChat.tv/donate. You can also go join the forum for this show by going to JavaScriptJabber.com/forum. And finally, I’m going to be putting together some products around podcasting. So, if you’re interested in podcasting go to PickUpPodcasting.com and you can get information about the book I’m writing and the course I’m putting together. Anyway, we also have a special guest this week and that is Jason Weathersby. JASON:  Hello and thank you for having me on the show. CHUCK:  Now, you are an evangelist for Firefox OS. Is that correct? JASON:  Yeah. I’m technically an evangelist for all of our products. But we’ve been concentrating pretty heavily in the last couple of years on Firefox OS. CHUCK:  Awesome. Do you want to give us a brief introduction, any other things that you’re involved in or want to talk to us about before we get into Firefox OS? JASON:  Well, pretty much spent the last year working on Firefox OS. And actually next year, we’ll also be spending a lot of time on Firefox OS. But we’re going to be working on some other initiatives, some IOT initiatives. And I’ll talk a little bit about that later in the interview if you’d like. So, that’s pretty much it. CHUCK:  Sounds good. Now, we’ve had quite a few people from Mozilla on over the last couple of years. I’m curious though. It seems like Mozilla does a lot for the web. And this seems like a mobile-focused product. So, how do we as web people or JavaScript people really identify with or care about Firefox OS? JASON:  Man, that’s a great question. From a 50,000-foot layer, what is Mozilla about? It’s about the open web and pushing innovation and pushing the web to every reach of the globe that actually has capabilities connecting. And currently, the strongest place in development in the last couple of years has been well obviously mobile, right? If you’re in the US or in Europe or most of the western world you’re going to have easy access with your mobile phone, smartphone to the internet, right? And so, obviously the marketplace for mobile phones is really controlled by just a couple of companies. And it’s not very web-friendly, not very open. And so, from our standpoint this was a logical extension of the open web under the mobile platform. Ideally in an ideal world there is no such thing as a mobile app. It’s all just the platform, the open web. And so, we thought this was a logical area to be involved in, as well as in the future we’ll be involved in IOT devices and things like that. So, that was the logical push behind it. Now, when we first built Firefox OS it was really geared at the emerging markets by creating low-cost alternative phones for people that are just coming off of feature phones and moving online. So, we want to give them the capability to easily write apps, write apps in languages that they already know and that they’re very familiar with and frankly make up the vast majority of the open web. CHUCK:  Now, I have two questions. One is what is IOT? And the other is, this sounds a lot like Chrome OS. JASON:  Yeah, okay. Well, IOT is the Internet of Things. CHUCK:  Oh, okay. JASON:  So, essentially think about it as just a microcontroller board running Firefox OS controlling certain devices. And we have a couple of examples of that. Firefox OS has already been ported to Raspberry Pi. We just announced a released phone in Japan last week that also support, as part of that initiative they released a board called the Open Web Board and it’ll be running Firefox OS. We’re working with Panasonic on creating next gen smart TVs using Firefox OS. So, it’s not just, when we talk about Firefox OS we like to think of it as a mobile operating system. But that’s not the only thing it can be used for nor will it be the only thing it’s used for. DAVE:  So, is Firefox OS built on the Linux kernel? JASON:  Yes, it is. So, Firefox OS is really made up of three parts. We think of our lowest layer as Gonk. That’s its codenamed. And Gonk is basically an Android kernel and it’s currently built on the Android open source project, so supporting KitKat, Ice Cream Sandwich, and Jelly Bean right now. And on top of that is Gecko. Gecko is our web rendering engine, same Gecko that we have on our Firefox browser. And then the only addition to that is we have over 30 web APIs that we’ve implemented at that layer to directly interface with the hardware through Gonk. And then above Gecko is Gaia. And Gaia’s essentially the visual element to the operating system. Every app you see in a Firefox OS home is an HTML5 app, meaning it’s made up of HTML, JavaScript and CSS. And not only are the apps built that way, you can actually using our tools debug even the system maps and see what’s actually happening in the background. DAVE:  Is that to say that Firefox OS apps are actually not written in the same language, being Java, that regular Android apps are? JASON:  You are correct in that assumption. Apps for Firefox OS are web apps. The only addition that we have is essentially a manifest file that describes permissions the device may use or APIs the device may use, stuff like icons and descriptions and things like that. CHUCK:  So, locally running apps are essentially being run through Gecko as in internal web server that renders all the stuff? JASON:  That’s essentially it. CHUCK:  Yeah, I figure I oversimplified that, but kind of the idea. You write a web-based app with web technologies and then it runs it natively on the phone using Gecko and Gonk. JASON:  Yup. And if you look at the way, if you look at a standard web app and it’s sitting on a page, and we’ve had several examples of this. Last year we ran all of these Phones for Apps programs where we actually encouraged web app developers to port their app to the phone. Well, in a lot of cases the total effort was put a manifest file with it, use our responsive design, you need to verify all the layouts look good, and publish your app. That was essentially it for a lot of apps. And especially the ones that don’t use device-specific hardware, say geolocation or some feature, the Wi-Fi or something like that. DAVE:  So, if I write a Firefox OS app, am I free to use any JavaScript framework or CSS language like LESS myself? JASON:  That’s a great question and I’ll tell you. Let me explain it first by saying generally most of the JavaScript frameworks out there work just fine on a Firefox OS device. The only stipulation that ever becomes a problem is generally CSP violations when your app is either a privileged or a certified app. And if you want me to explain the difference between the types of apps on Firefox OS I can briefly do that real quick. CHUCK:  Yeah, I think that would be helpful. DAVE:  And can you tell us what CSP means? JASON:  Content Security Policy, which is basically, I’ll give you a couple of examples. We do things like you can’t have inline script, you can’t use eval. And let me explain why we have those restrictions in place and that’s part of Firefox OS’s security model. Firefox OS basically has three types of apps that can be used on the phone. There’s hosted apps which are apps that actually stay live on your website and are read to the phone. Then we have packaged apps. Packaged apps are the entire web app is zipped up and downloaded to the phone. Now, this packaged app can also be privileged. And the reason we have privileged status is for certain features like if you want to access the contacts API. Then, that’s a permission that’s required and it makes the app need a little bit more security associated with it. So, that’s the main layer that you’ll see when people are using device-specific APIs. Well obviously, if you have access to the contacts API first off the user is notified that the app is requesting that permission and gets to okay it or deny it. But at that point, you come to a point where CSP, the policy that we’re using is much more restrictive than if it were just an open web app or a packaged app with no privilege. And a couple other things that you’ll see, and this is probably the most common reason for rejection that I see in our Firefox Marketplace is that they’ve done some inline script or you can’t have remote scripts. You can’t have script tags with remote URLs, things like that. And we have a webpage that describes all of the security policy. DAVE:  Is the idea there to stop developers from modifying an app once a user has installed it? JASON:  Well, for that as well as protect an end user from having their information misused. This essentially breaks down the cross-scripting vulnerabilities and things like that. In the case with CSP issues that we’ve had with Marketplace apps, almost all of them are fairly easily fixed. DAVE:  So, does that also apply to image tags and other remote-able elements? JASON:  Yes, that does. AJ:  So basically, when you create your app you want it to be as if the phone is your webserver. All the files are there locally. You’re not going out to a CDN to grab anything. You’re not forgetting about any images that are going out remotely. You want to have most of that content there on the app or, I’m assuming, I don’t remember this but I’m assuming in the specification file you can say, allow me to contact this website… JASON:  Yes. AJ:  With this route or something, right? JASON:  Yeah, so the way we do that is you can, obviously all the files do not have to be placed on the device. If you have a hosted app, all the files stay where they’re at. Now, if you want that app to work offline we have a feature called AppCache that allows, that specifies what files and things to bring down for caching purposes. And then you obviously would have to code for non-connected issues. And then the areas that we’re actually pushing the phone, connection can be an issue sometimes, right? So, you have that capability of pulling everything down like a zip file. That’s called a packaged app. All of that would be self-contained. But we also have the capability of using like a systemXHR where you can go out, and it’s a permission that you have to put in the manifest file that basically says, “I want to use a systemXHR and go out and read that data and pull that data into my app.” And we use that for example if you’re reading an updated text file or some piece of content that is updated routinely on your website. You just want to pull it in. AJ:  Since you brought up systemXHR, there’s a light tangent that I want to bring up, or maybe it’s a major tangent. But I was trying to use Angular and systemXHR. And there’s kind of this feud on this GitHub issue where a lot of the Angular team says Mozilla shouldn’t have made an XHR that takes parameters. And the other people that are using Firefox OS say, “Well, they did so you should support it.” And currently the solution to get the systemXHR to work with Angular is you have to download the Angular file and just patch the one line of code to allow the option for systemXHR true and what was the other option, like strict security policy true or something like that. JASON:  I don’t remember the actual parameter name. But AJ is there a Bugzilla entry file for that? AJ:  I doubt there is. I think everybody who’s commenting that’s not part of the Angular team on this issue is of the opinion, “Well, Chrome does its own thing. Mozilla did their own thing. Can’t we just play nice and won’t you just let us pass that option in?” And they seem to be stubborn on it. I haven’t really thought of it as a bug in Mozilla. But the point that I was going to bring up with that is you’re introducing new APIs and other people don’t necessarily agree. And what’s the path… JASON:  Yeah. AJ:  To help resolve and bring things together so that Google people are okay with accepting, “Yeah, this is an okay way to express this API,” or something. Because with Chrome OS and some of the developments with the native Chrome-ish stuff, I know there’s overlap and there’s [blegh]. JASON:  Yeah, well I’ll tell you this. I said Firefox OS, we’ve implemented somewhere over 30 APIs. Almost every one of these APIs is actually making its way through W3C. And if you want to see the status of any one of those or be involved in the communications on that, I’m going to give you a link to look at. AJ:  Excellent. JASON:  This is our, we have a WebAPI link that basically goes through essentially every API that you can use that is pretty much unique to Mozilla or unique to Firefox OS. And in that list you’ll see where we’re sitting with all the W3C, whether it’s in editorial draft, working draft, candidate recommendation, something like that, or whether we haven’t started one yet. So, the vast majority of the APIs have already started their way through W3C. AJ:  Okay. So hopefully, that stuff will get worked out and resolved as time goes on. JASON:  Sure. CHUCK:  Do you expect some of these APIs to make their way back into regular browsers? JASON:  Some of them already have. In the case of, you look at geolocation and things like that. Yeah, so that’s the intent. We’re making the changes in Gecko so they’re going to be there. But by the way, on that same issue AJ, we had a similar issue I believe. I don’t remember all the details on it. But we had a similar issue with one of the jQuery modules for systemXHR. And jQuery patched it. AJ:  Ah. And I’m actually looking at the Angular issues page right now and I can’t find the issue I was referring to. So, maybe that did get resolved. Maybe they finally conceded. JASON:  Oh by the way, I do want to say, and I don’t know whether you want this in the conversation Chuck, but with that phone we just released in Japan that makes 16 phones in 29 countries that we’ve released in now. AJ:  So, the Flame is the developer reference phone. And anybody can buy that. You have to go to the manufacturer’s website and purchase it. I guess you can give us a link to that. I don’t remember what it was called. JASON:  Oh, I’m going to give you the link to our MDN page for Flame. Currently we’re, I think the manufacturer is not selling them at the moment but I believe we’re expecting that to start back up at the beginning of the year. I will say also, if you look at the Flame in itself, it’s a mid-range phone with a lot of nice capabilities, dual SIM type stuff, got dual-core processor, has a configurable amount of RAM so it goes up to a gig. You can actually use a command line to adjust that. But that was a reference phone. We’ve also partnered with Geeksphone to build the Keon which is also another reference phone that we’ve shared with a lot of developers. So, there are a lot of different phones out there that you can use to do developer work with Firefox OS. And you can also buy the ZTE Open C on eBay. And all of those are unlocked. If I have a Keon, I have multiple Keons here, if I want to patch it to the latest version the carriers generally or the manufacturer generally carry a website that has a link to the latest image files which you can flash to the phone, because we’re using ADB and fastboot just like Android development. AJ:  So, the Flame from my experience seems to be the best phone to have as a developer in America. Would you say that’s correct? JASON:  I’m definitely saying that’s correct. And currently I’m using, I actually have a SIM card plugged in for mine where it’s actually working and I’m using T-Mobile for mine. AJ:  Yeah, I’ve actually got an Open C that I run on T-Mobile. And I’ve got a Flame that I’m on AT&T with. It seems like I can’t get the Open C to upgrade to 2.0. Is that correct? Is that phone not going to be upgradable past 1.4? JASON:  I don’t know. Generally on the Open C, you probably went through the website to get their download. I don’t know if they’ve updated their 2.0 build or not. So, I’d have to look into that. AJ:  Okay, so that’s more up to the manufacturers of the Open C. But the Flame, Mozilla is more in control of, right? Because I see you have several builds listed on the wiki site for the Flame. JASON:  Well yeah, and generally we work with the partners and when we do the nightlies, we help them with work and they help us too. So, it’s a community effort of basically pulling the builds together for a particular nightly or a latest release or something like that. Like on the Flame page you’ll see there’s I think a 2.0.2 one and a 2.2 build that you can actually download and start using. CHUCK:  So, this is leading me back to the time when the combination of Android, Samsung and Verizon ruined my life. And basically what would happen is they’d come out with a new version of Android and I’d be excited to get it. And then nothing. And then nothing. And then finally Samsung would come out a year and a half later, “Hey, we finally finished ruining the latest version of Android from a year and a half ago. It’s only two versions behind but you can have it now.” And then nothing. And then nothing. And then finally, Verizon would get done finishing the ruining of Android. And then I’d get the update. So, it sounds like here you have a little bit more control. Are you going to run into some of these issues as more phones build on top of Firefox OS and more carriers start to sell the phones? JASON:  Yeah, and I think that that’s probably going to be a common issue with pretty much any of these type of phones, whether it be Android or Firefox OS. That said, Mozilla’s a fairly large community. We have a lot of people that work on virtually all of the devices. One of the questions we talked about in email was [do] we support dual-boot and flashing Android phones. And we’d have examples of all of those. And those are actually built, a lot of those were built by the community. For example, I think the Nexus 4 and 5 ports were initially done by community members that did YouTube videos and created websites about it and things like that. So, you can do the Nexus 4, 5. You can also use a Galaxy 2 if you want to go with a Samsung product and flash it as well, as well as a Keon. It supports it. But they also support dual-boot in all of those cases as well AJ:  So, I’m curious. It seems like the Android portion of the phone should be handling all the abstraction with the low-level hardware. So, if it’s this chipset for NFC or this chipset for the camera, or this chipset for whatever other feature there is, intuitively I would just think well Android kernel, Linux kernel is taking care of that. So, why wouldn’t Firefox OS be able to run without modification on any Android KitKat base for example? What is it that’s holding it back? Because if Android runs on it, why? Yeah. JASON:  Yeah, so if you look at earlier I talked about that we really worked on the three, KitKat, Jelly Bean and Ice Cream Sandwich, right? And [inaudible] the answer is it should run on those. Now that said, there are always caveats to virtually every build, for every phone. There are always some small differences. And those are, generally we handle those in out Gonk build. But then obviously you have the communication where Gonk is exposing those to the Gecko engine. So, we have a direct API from Gecko to Gonk, a direct connection. So, there’s no intermediate layer in between the two. So, I don’t know if that answers your question. But obviously we’ve had a lot of people that have ported it to a variety of different devices based on Android. AJ:  I’m interested to hear Dave’s question about Gonk. JASON:  Oh, oh. DAVE:  [Chuckles] Sounds like he’s already answered it, yeah. I was just going to ask a little bit about the differentiation at the Gonk layer between Android and Firefox OS. CHUCK:  So yeah, that is something that I’m curious about. It seems like you’ve added some things to Gonk in order to make it so that you could interface with it from JavaScript. Is that changes in Gecko or are those changes mostly Gonk? JASON:  It’s actually in both of those, right? So, prototyping the functions in Gonk which is written in a different language than when you’re… and in Gecko. You’re prototyping those functions and you’re exposing them to Gecko. And the whole idea is to give a pretty streamlined, speedy approach to access to most of the hardware, i.e. the Camera API. CHUCK:  So, the other question I have is, let’s say that I’m a mobile developer and I’ve got my fingers in a lot of mobile stuff. So, the most popular mobile phone is the iPhone. And then the next most popular platform I guess is the Android family of phones. First off, can you run native Android apps on a Firefox phone? And the second question is, if not then do you expect a lot of people to be writing apps for a Firefox phone when there are larger markets? JASON:  Okay. Those are both great questions. What I’ll tell you is there’s a two-way answer on this. So, on Firefox OS, let me start with the easier approach. If I’m looking at Firefox OS apps they can run on an Android phone. The other way around is basically Android apps running on a Firefox OS. And currently that’s not supported. But I will say we do have a project that people are working on right now that basically emulates a Java VM on top of Firefox OS that allows certain apps to run. So, I don’t know what the progress of that work is at the moment. But there are people working on that solution. CHUCK:  With the Firefox apps running on an Android phone though, do you have to go in and install some stuff to make them work? JASON:  That’s a great question. There’s two ways you can. Say, I’m using my Android phone and I go to Firefox OS Marketplace or download an app to it, there’s a couple of ways you can get those apps to run on a Firefox OS. If you’re using Firefox the browser on your Android device, they will just work if you just download them and install them. Now, that’s, when the developer puts his app in the marketplace there’s a setting for exposed to Firefox on mobile, which is essentially the Android flavored devices. So, that’s one way. You just install Firefox the browser on your Android phone, go to the marketplace and download the app you want. That’s the quickest way. You can also… AJ:  So… JASON:  You can also use… go ahead, if you… AJ:  I was going to say does the Firefox browser on Android have some parts of Gonk in it or something? JASON:  Well, so in this particular case it’s still a modified version. It’s still the Gecko that we’re using in Firefox OS with some modifications to actually talk to the implementation the way Android is implemented down in their Linux kernel. So, and that’s why when there’s a little bit of differences associated with that both from an API standpoint up the tree, you won’t see the differences. And that’s why, that’s not to say, that’s in a bug-free world. That’s to say we’ve never had a bug, which we all know is not true. So, in that particular case it’s a modified version of Gecko for the Android environment. CHUCK:  Alright, and the second way? JASON:  The second way is you can side-load  them using our APK factory. CHUCK:  Okay. JASON:  And so, when you publish an app to the Firefox Marketplace it automatically generates a manifest URL for you. It basically says, “Hey, the description and everything about this app is defined here at this URL” You take that URL and we have an APK factory URL that automatically generates an APK based on the app itself. So, you can download it and then it’s used on Android simulated, just side-loaded into the phone. AJ:  Is that with Cordova or is that completely separate? JASON:  That’s totally separate. We do, do work with Cordova. And I assumed you guys would want to know a little bit about that. But if you want to hold that question for now, that’s fine. CHUCK:  Well, I’d like to know a little bit more about the APK factory. So, is that just basically providing the Gecko stack along with the application and so it can run? JASON:  Yeah, well I should have clarified. With the APK factory, even if you side-load it you still have to have Firefox loaded on the Android phone. CHUCK:  Okay. JASON:  So, it just turns around and uses that rendering, the Gecko rendering engine that [way]. CHUCK:  If you install the APK then, will it tell you that you need Firefox in order to run it? JASON:  I don’t remember if we actually promoted an error message or not. CHUCK:  Okay. JASON:  [We may]. To be honest with you, I don’t remember. AJ:  So, would it have the chrome of the Firefox browser or would it look more like a native app? JASON:  Yeah, it’s going to have the chrome of the Firefox OS, of the Firefox browser. AJ:  Okay, so it’s going to have an address bar and it’s going to…? JASON:  Well, so an app doesn’t have any of that. An app can be anything you want. If you want to write a canvas game, you write to Canvas. I wrote a little pool game that I used to show using the APK factory. And it looks the same on Firefox OS as it does on an Android device. And frankly, I just made the whole screen using a canvas tag. AJ:  Oh, okay. So, it’s more like Firefox browser in kiosk mode. It’s similar to how iPhone you save a bookmark to your swipe-y thingy. DAVE:  Home screen? [Chuckles] AJ:  Home screen, thank you. [Chuckles] And it’ll open up but it won’t have the address bar and the options and it’s more just the app, right? JASON:  Yeah, it’s just the app. And if you look at it from, we even have a browser API so you can put a browser inside of your app. So, that would then have the [inaudible] and all the things associated with a browser. So, it is technically just an app. AJ:  Okay. CHUCK:  That’s it. I’m writing a browser for Firefox OS. [Laughter] DAVE:  So, is the browser chrome written in HTML? JASON:  The browser, the browser app itself on Firefox OS is mostly exposed and just using the same Gaia interfaces that we use now, which is HTML5. Now, there are some projects going on that actually implement a browser all in HTML and that’s based on, I don’t know if it was… I think it was based on Servo. It might not have been based on Servo. But I’ve seen it go around the company. CHUCK:  So, my other question, the other one I asked at the same time which isn’t fair but I did, is the question I worried about coming in third or fourth to iPhone, Android, Amazon, and some of these other systems or ecosystems out there? JASON:  Yeah, so the answer to that question is no. I’m not worried about that first off because when we created Firefox the browser and the same goes with Firefox OS, we didn’t create it to necessarily compete with anybody but to cause competition, right? And if you look at Firefox OS when we initially created it, surely we’re not trying to compete with Android and iPhone head-to-head, right? Especially in the US and in other Western nations. It’s just not necessarily a viable option. But that said, so it’s really for the emerging markets. That said, I don’t think, I mean obviously I think the phone can be as snappy and as quick as any iPhone or Android device. CHUCK:  And that gets into the question that Dave wanted to ask. Dave, do you have any particulars you want to ask about that? DAVE:  So yeah, I do have a question about the UI. So, when you first said that the whole phone user interface is all implemented in HTML and running on the Gecko engine I immediately thought, “Well it must be sluggish and slow.” Can you tell us a little bit about the home screen and some of the more native-looking parts of the UI and what you’ve done to make those fast? And maybe they aren’t fast. You tell us. Maybe they’re sluggish. JASON:  Yeah. That’s a great question. And probably the number one thing that we do from version to version in Firefox, we released I think five versions last year, within the last year and a half. Almost every one of them has had an improvement associated with scrolling and general UI performance. You know, we added web workers in version 1.3. We actually have meta bugs that are solely tracking nothing but how quick and snappy the performance of the UI is. And if you go back to one of our earlier releases, the 1.0.1 release, while it was a good phone and a great starting location, you look at, compare that to our 2.0 phone and there’s a great deal of difference between the panning and how quick scrolling occurs and things like that. So, we’re constantly trying to improve performance. And that goes across all of our categories, including things like WebGL in the phone and things like that. DAVE:  So, I do have a question about that, because I can tell a difference on my iOS or Android phone when I’m using a non-native app. I don’t know, sometimes I can just tell. It’s like an HTML app in just a web view or something. Having the entire user interface implemented that way, has that been a challenge for you or has it been not too bad? JASON:  Well so, from the initial release I think it was probably one of the greatest challenges is to make sure that when people are used to an iPhone for example, that is number one is how quick and responsive does the phone feel? Matter of fact, if I go buy and Android phone today, that’s the first thing I check with it as well. And it suffered from some similar issues in the beginning as well. And so, our early builds, I think we probably had some, there was some slowness associated with it. But I think by and large, not only still cleaning it up and making it very fast, if you, I don’t know if you’ve seen any of the later devices but they’re very responsive. FORREST:  So, I actually have, I got a Firefox phone Flame, that I’ve been using for the last about month or so. I’ve been using Android before that. I actually think it’s quite usable. And it’s been actually really great, for me at least. I think the biggest thing I just wanted to ask about and just wondering about as far as day-to-day usability every day with just the copy and paste feature. I just was wondering if that is something that is coming up soon that you know about, or is that… [inaudible] wondering about. JASON:  Well, that’s a pretty common question we get in the mailing list and on IRC. And there is a bug log for that. I can give you the number if you’d like to see it so you can track it. But it is, and my understanding is that we’re hoping to get that in by 2.2 of Firefox OS. So, you may be able to even test a little bit of the cut and paste on text today, with one of the 2.2 nightly builds. FORREST:  I see. Gotcha. Okay, so that’s already in being… JASON:  Yup. FORREST:  Integrated, awesome. And the other thing I just was wondering about is also the group text thing, because I just haven’t ever, I can’t multiple text. I’m just wondering if the text feature is going to be added on. JASON:  Yeah, I’ve seen a lot of bugs on texting and I thought we had already covered group text. And I’ll have to look up the bug on that. But if it isn’t, there is not a bug log for it. We want you to log a bug. FORREST:  [Inaudible] yeah. JASON:  We get feedback on our mailing list all the time about, “Hey I’ve been dogfooding the Flame for so long. These are my issues.” And most of them are covered in bugs but not all of them. There would be unique cases that are not covered. I think one of the things we talk about in email was the flashlight app. You’re right. So, while there are apps in our marketplace that do flashlight type functionality, we have a newly exposed Camera API that gives you a lot of control over the camera that natively a lot of people want to see the flashlight in Firefox OS native. And that’s in the Bugzilla as well and making its way through. AJ:  So, for me I probably am not at all the typical user of the Firefox phone. One of the things that I’m doing with one of mine is actually using it for a texting service so that as opposed to Twilio where you have to pay per text, with AT&T I have $15 a month for an extra SIM card. I don’t use any data on it. I have unlimited texting. I can actually use that as part of some of the applications I build. And I think that that’s really cool. And one of the things that I’m interested in because, like to me it’s not a phone that I’m going to use day-to-day. I hate to say that, but I just can’t give up my iPhone at this point, you know? But to me it’s a great opportunity to develop in ways that I’ve never developed before because it wasn’t accessible. So, the idea of the telephoning and the texting and what I could do with a phone to make a phone behave more like a server that allows me to connect with people in ways that I hadn’t thought of before, that’s the angle I’m coming from. And I’m interested to know where to go to dig deeper. If I want to replace the default texting app with my texting server. JASON:  Yeah. AJ:  So that when the phone boots up I don’t have to open my texting app, it just, whenever a text comes in it would just get it without having to be activated, or that kind of thing. CHUCK:  Mind blown. Sorry. JASON:  So, when you’re getting at that layer you’re actually getting at the Gaia source at that point. And so, your best bet is actually if you want to make changes to the way things are started up and what apps are running and what they do, you probably most likely have to modify the Gaia source. And you can check out, if you want the link I would give you the link for building Firefox OS and building Gaia. AJ:  Yeah, that’d be great, because one thing that I’d love to do is just if I could replace the default texting app entirely that would be something really cool for me with some of the things I’m trying to experiment with. JASON:  Yeah. And you know, we also have push notifications. I don’t know if that would affect you in this particular case. But we do have push notifications. AJ:  Well actually, I have to use those because it’s around, I have to get the push notification from the server to say, “Hey, I’ve got a text I want to send,” then send the text then contact the server and say, “Hey, success or failure.” CHUCK:  Right. Your push notifications are essentially your web-facing API. AJ:  Yeah. I actually have a demo. Maybe I’ll put it in the show notes. CHUCK:  Related to this, somebody earlier in the call or maybe before the call said that Firefox OS will run on the Raspberry Pi. JASON:  Yeah. CHUCK:  So, what kinds of things can you do with that, because the Raspberry Pi does not come with a phone antenna or any of that stuff? JASON:  Obviously this is one of the, where you get painted into a corner about pigeonholing a particular operating system for whatever. If you look at a lot of the type of developer boards that are available out there, a lot of them are running some flavor of Android. Now, Raspberry Pi I think there’s a, let me give you, hang on a second. I think there’s a YouTube video showing it running on a device, on a Raspberry Pi. And I think there’s a camera laid down on it. Right now we’re not doing a whole lot with that. But those at least are some of the areas that we’ll be investigating on what we can do. You want to control devices in your house with Firefox OS. That doesn’t necessarily require that you even have a UI. If you look at the Matchstick, which is basically an HDMI streaming card, it’s all Firefox OS. And it has an SDK that you can develop apps for and push to it. But there’s no UI associated with the exception of the TV, what you’re seeing. So, it’s basically for allowing you to fling videos to it and things like that. So, the whole idea is at Mozilla, not only do we want to make Firefox OS a great mobile operating system. We also want to push it in areas that most people don’t see as a common thing for that to do. And the whole idea is if I’ve been developing web apps for the last decade, maybe I don’t want to learn a proprietary language to go out and develop for a phone. I want to use the languages that I know and love. And that they will be performing on those devices, wherever that device may be. Does that make sense? CHUCK:  Mmhmm. AJ:  So, at that level it almost becomes an alternative to Node, it sounds like. JASON:  Yeah, I don’t want to say it’s an alternative to Node. But yeah, you can see it used in cases very similar to that. AJ:  Well, because you’ve got systemXHR, you’ve got the system TCP. You do expose. And I’ve noticed that some people actually have wrappers for the Firefox network APIs so that you can use Node modules with them. JASON:  Yeah, they do. DAVE:  So, speaking of other devices, what can you say about Firefox OS on tablets? JASON:  So, we had I think it was last year, yeah I think it was last year, we released that developer tablet program and where we had a few couple of hundred tablets created with Firefox OS running on it. That program is still going on. And actually, I believe we’re trying to push in the beginning of the new year another iteration of that. We always do that, the same with our Phones for Apps programs. We push for a device then we start trying to move it up. Maybe the device gets improved or the operating system gets improved. And we use that as a developer program. So right now, the only tablet available is a developer tablet. And I think there’s a hacks blogpost about we’re going to try to do it again next year. DAVE:  Now, I have another question about getting started. If I want to get started developing a Firefox OS app do I have to have a Firefox OS phone or device? Or can I do it like on some kind of emulator? JASON:  Yeah, that’s a great question. And one of the things, if you’ve noticed on our tenth anniversary we announced this Firefox Developer Edition. And essentially, that is Firefox, there used to be the aurora channel. But it’s a browser that essentially has all our tools already enabled in it. And so, you have tools for what we call the Web IDE which is a tool for altering and building web apps and debugging web apps. And so, as part of that you could connect to a simulator. We also as part of the Web IDE project we have a connector called Valence that allows you to debug apps on Chrome on the desktop, Safari on iOS. So, that’s all incorporated into the Web IDE itself. So, we’re really trying to develop a browser that is meant for developer workflow and is geared towards all the features that developers want. So, we have a lot of tools in there. A couple of new ones are. So, you have your standard JavaScript debugger, your inspector, your style editor, but we also have things like a new and improved performance tab that really gives you a lot of capabilities as far as how it breaks down where your issues are. It has real-time tracking of the framerate. So, if I’m connected to the device with a simulator, I get this framerate. I also get nesting of all my JavaScript stacks. And also you can see things like what is taking up the most amount of processing power, whether it be Gecko, the graphics layer, storage, the network, garbage collection. All of that is all incorporated in that performance tab. In addition to that we also have this timeline feature that we’re working on that actually shows you DOM events, reflows, and things like that in a timeline. And then the last thing we have which is a live memory editor, a live memory view of the apps themselves. So, if I’m connected to my Firefox OS phone I can bring up, connect to it, bring up this live memory monitor and actually see how much memory my device is taking up. So, those are some of the tools. We also have added things like the web audio editor which allows me to edit my web audio nodes in my app and click on and change things, the settings for each of the nodes. And it’s a graphical representation. You see them as you create nodes. You see them appear in the tab and then they disappear as they are garbage collected or you’re done with them. We also have a canvas debugger that allows me to debug canvas tag and WebGL code and step through it. You can actually take a snapshot of how a particular image is created. I have a squirrel game where the squirrel’s paddling down a river. I take a picture of that then I could see how [inaudible] constructed that in my canvas tag or WebGL code. And it builds it up frame by frame for me. And then… AJ:  It sounds like something we’ll need another episode for just to talk about that. JASON:  Oh, it’s a pretty cool tool. And I can tell you this: at Mozilla we’re taking developer tools very seriously. It is one of our key initiatives at Mozilla. And frankly, we’ve made a lot of progress in the last year. We added a shader editor where you can modify the vertex of fragment shaders live, things like that. And so, we’re really trying to step up the game as far as developer workflow and developer-centric and also make high-quality tools that people want to come back to. DAVE:  That’s really cool. I’ve actually really noticed that Firefox the browser, I didn’t know about the developer edition, but Firefox the browser definitely has improved in that regard over the last year. AJ:  Yeah, I’ve seen a little bit of cat and mouse between Firefox and Chrome where one gets a little bit better tools in one area and then the other gets a little bit better tools in one area. And maybe that cat and mouse isn’t on purpose. It’s just coincidental. JASON:  Yeah, I think, well I would believe that if you look at any new feature that comes out, the first thing that people are going to do is try to emulate that, especially if it’s a successful feature. And that goes both ways. And that’s part of the competition though, right? If there one company controls everything, what is the emphasis behind ever innovating anything? So from our perspective, that is why we develop Firefox OS. We want an innovative but most importantly an open mobile ecosystem. And what was funny is the providers, the phone providers, they’ve been very key on making sure that it stays that way. So, it’s not just Mozilla but it’s the partners that we’re partnering with in the telecomm industry, which is really great to hear. CHUCK:  Well, it makes a lot of sense for them too, because let’s say Android or iPhone get to the point where they essentially take over 90% of the handset market. Then, they’re pretty much beholden to them. So, it’s in their best interest to have a fair distribution. The other thing that I really think is interesting is that I’ve noticed that not every feature from Chrome winds up in Firefox and vice versa. Usually what happens is somebody has a problem and they can’t figure out how to debug it in Chrome and then somebody shows them the really cool feature in Firefox. And so, they start using Firefox and they put an issue in on Chrome that says, “I want this feature.” And so, that’s how those features I think tend to migrate one way or the other. So, you don’t get them all. You just get the ones that are most generally useful. AJ:  And thanks to that, they both have really great mobile… CHUCK:  Oh, they do. AJ:  Development tools now. Because Firefox was, I think had a much better one. And now Chrome’s has definitely caught up. They’re both really great mobile development tools. JASON:  Definitely. CHUCK:  Yeah. Albright, well I think we’re getting close to our time limit. Are there any other aspects of Firefox OS that we haven’t talked about that we should before we wrap up? JASON:  Obviously one we talked about, a couple of things that have actually landed in the last couple of releases and one I wanted to make sure that everybody knows it. We got WebRTC implemented now in 2.0. And that’s not just the getUserMedia call. That’s all three of the APIs. CHUCK:  Oh, nice. JASON:  And we’ve also done a lot of work on Web NFC. I have a really cool demo where I take two Flames and I go to the HTML Rocks WebRTC example where they’ve got a token on the URL. I bring it open in my phone, on my Flame, and I turn on NFC and I touch it to my other phone and swipe the webpage over to the other phone and it fires up the browser with that same URL. [Chuckles] JASON:  I start doing WebRTC with the two phones talking to myself, which I do quite frequently. [Chuckles] JASON:  But illustrating some of the cool things you can do with NFC sharing and obviously WebRTC. We look forward to a lot of cool stuff being created with it. AJ:  So, this is where I was excited about this idea for Firefox Phone before Apple announced that they had it in theirs now. But that I could do something like WebRTC to answer a call on my computer that’s actually coming from my phone. Is that something that I’ll be able to do with Firefox OS or is that still a ways out? JASON:  Well, I think that that’s a possibility to do. I’m not exactly sure how much work would be associated with it right out of the box. But I can swipe, using the Web NFC feature which is not going to be implemented necessarily on my laptop but it is on my phone. Doing phone to phone, that was easy enough, or maybe phone to… AJ:  Well, I mean let’s say I’m getting a phone call right? So, my Firefox phone is ringing and I want, if I go on my Wi-Fi at home I want my computer to ring. JASON:  Yeah. AJ:  And I want to be able to answer the computer and have it stream the voice data back and forth between the phone over my Wi-Fi. Is that…? JASON:  And I think that that’s probably feasible. I’m not exactly sure about how I would go about constructing that, what would be the best technology for that. So obviously, WebRTC could play a part in the actual transferring of data. But actually doing, setting up the communication peer that basically says, “Hey, listen for my phone,” things like that may be a little bit more difficult. But it’s good. It’s a great idea and that’s an idea we should actually look at. CHUCK:  So, one other question that I have about Firefox OS, and this is more from a user standpoint than a developer standpoint, and that is it seems like all of the different phones out there have that niche. And so, iPhones if you have a whole bunch of other i-devices or you like the interoperability between your iPhone and your iPad or your iPhone and your iMac, your MacBook Pro and whatever, then you buy into the iPhone. If you want something a little bit different then there are a gazillion different flavors of Android phone that all do something a little bit different and you can find your flavor there. How do you self-identify as a Firefox OS person, somebody that should really take a look at it and think, “Okay. This might be the thing that just really does it for me on phones.” JASON:  And that’s a great question. And for me, I really would prefer to answer that as a developer, alright? And to me, I’ve written Objective-C apps. I’ve written many, many Java apps. And for me coming back to the web-based development and having, be able to consume and develop apps that just run like they’re supposed to on any device, I think that’s a key differentiator. And I also think we’re also working in the cloud with Firefox accounts. So, if I set up my browser with a certain set of bookmarks, open tabs, then that automatically, using the Firefox sync capability I can sync that to my phone. So, reading at my desktop and I walk away and open up my phone, it’s going to pick up right where I left off, things like that. So, is there a key niche thing that, oh okay, are we going to make a Firefox OS router? And by the way, I just unplugged my Apple router, for an entirely different reason. But I unplugged in. And the answer to that is I don’t know. Currently, there are no plans to build specific Firefox OS devices like that, although we are going to try to push the barriers on a lot of those. AJ:  Well, I would like to say, to answer Chuck’s question from the user perspective, there’s a couple of things that Firefox phones do really well. The markets that you’re targeting in India, in South America, it’s a reasonably-priced phone and it has really good features like dual SIM where if you’re going back and forth between say Canada and the United States and you need to have two SIM cards in there, or you’re going back and forth in Europe. I know there’s a lot of countries in Europe where the main two providers, it’s a difference of 30 cents per minute versus 2 cents per minute so it’s nice to have the two cards in. So, I don’t know as an American. For me it’d be kind of hard to convince my American friends to be like, “Hey, this is what you should be using as a phone,” because I don’t know that the circumstances quite apply. But I’ve heard Canadian, one of the Canadian developers talk about how he loves the dual SIM feature. JASON:  And also too, we’re constantly adding features. But the marketplace is localized to your area, things like that that you can find, “Hey I want the app for taxi cabs in Warsaw,” right? So, there are certain features like that adaptive search where searches for apps on the web and things like that. AJ:  O    h, I do like the search, by the way. Sorry to cut you off. JASON:  Oh, no problem, no problem. Well, I’m glad you like it. But from my standpoint of what is the best way to make a mobile operating system, and that’s always going to be, give the users what they want, right? And while we don’t have every feature, i.e. cut and paste, in there that the users want, we’re actively pursuing every one of them. And we’ll continue to do that. And it’s going to be done in an open fashion. And anybody can check the progress of any feature or ask for any feature through Bugzilla and actively be involved in the process. CHUCK:  Well, I think it’s really exciting. And the thing that I really got out of both of your answers were if you’re familiar with web technology stacks and you want to be able to do, I don’t want to say power user stuff because power user stuff is advanced features. But if you want to go in and actually be able to configure and modify your phone at a deep level then this is a great way to go. And then AJ pointed out some terrific features on the phones themselves. Is there anything else that we didn’t even ask about that we should know about Firefox OS? JASON:  Well, so we alluded to this earlier but we talked a little bit about Cordova. CHUCK:  Oh, yeah. JASON:  And obviously we’re big fans of Cordova and because it’s essentially write in HTML and push it to different phones. And it’s part of our work in the last year and a half, we’ve done quite a bit of work, is implementing plugins for Cordova. And currently, I think we’re up to 15 plugins that we implement that do the camera, contacts, geolocation, device motion, and things like that, that are all implemented as part of Cordova plugins. And it’s really simple for us because there’s not really a compile stage. It’s just basically map Cordova’s APIs to Firefox OS’s APIs. And currently we’ve been doing a lot of work with that and we’ll continue to do a lot of work on the Cordova project. AJ:  Cool. I did have one more question. We postponed this show from a couple of months ago because there were new features that were coming out that you weren’t at liberty to discuss yet. And one of those was the Developer Edition of Firefox. And I was asking, what are the other things? Did we already cover them or is there still some stuff? JASON:  Well, we’ve covered them in a broad sense, obviously the big one being Firefox Developer Edition. And like I said, that’s a very focused channel. Even the whole GUI’s been restructured to be very developer-focused in the workflows, developer-focused. But also one of the big tools that we worked on in the last year is the Valence project which basically allows me to not only debug my Firefox OS apps but also debug them on, debug at a Chrome on my Android device or Safari on iOS, which I think are huge benefits. AJ, one other quick question, and I don’t know if you want this for the recording or not, but you had asked about performance improvements and ways that check that. I delineated several tools that are available to you now to check if an app is being performant or has issues. But there’s also a developer HUD. I don’t know if you’ve experimented with it on your Flame. But there’s a developer HUD for showing framerates, time to load, and jank and reflows and things like that that are available actually on the phone itself. So, when you’re plugged in you can not only be looking at your dev tools and watching your live memory monitor but you can also turn around and look at the device and see what it’s actually doing at the same time. And so, those are all key in performance. But you had asked about asm.js. And the answer to the question is, does it work on a Firefox OS phone? And while asm.js is really just a target of emscript, you can code by hand asm.js. But it’s probably not necessarily the way you want to go. And I had a game where I had fairly complex physics equations and I didn’t use a physics library because it was just a very minute set. And I did not want an entire library for this. So, I developed it in JavaScript. And it’s fairly simple known cases of collision detection. And so, if I’m going to do that, it performs very well on a Flame device. But what if I want even better performance for say the Keon device which is a little bit lower end, then one of my options would obviously be able to rewrite that collision detection in C and then use emscript and to compile it down asm.js and then include it in the app. And there is a manifest setting that was recently added that says, precompile my asm.js code in my app. So, you can get actually better performance and things like that. Now that said, you can write it by hand. And there are a few examples on the web and I wish we had some more on. But we’re actually doing a lot of work associated with trying to speed up JavaScript in general. AJ:  Alright. Well, while I’m thinking about it, just one pro tip for anybody that’s developing. If you want to use the certified apps, the developer tool, and maybe this has changed in the last couple of updates because it’s been a couple of weeks since I played with it. But you can’t debug certified apps in the Firefox app development tool and it gives you a little notice saying, “Certified apps are not fully supported.” But if you change your manifest file to be a privileged app, exit out, delete the app, reinstall it, load it as a privileged app, it’ll give you an error saying, “These privileges are only for certified apps,” you change the manifest file. You don’t delete the app. You just click reload. It’ll let you debug certified apps. JASON:  Nice. One other tip I’ll add on top of that and that’s a great tip, is if you wanted, if you’re debugging a certified app that’s already on the phone itself, there is a, if you go into the Web IDE there is a setting for getting the information off a particular phone. And there’s a button on there that you can actually request or receive higher permission to actually debug certified apps that are already installed on the phone. Now, that’s not necessarily pushing your own certified app to the device. But this wasn’t already like, email, [inaudible], whatever, even the home screen for that matter. AJ:  Okay. I’ll have to take a look at that. JASON:  Yeah. If you go into, let me bring up the link real quick so I can remember to tell you exactly where to go. If you go to the Web IDE and once it comes up, if you select runtime and then go to runtime info, there’ll be a button. If you’re connected to the Flame it says, click on it, and it becomes I can debug my certified apps. AJ:  Okay. CHUCK:  Awesome. JASON:  Remember I talked about the three levels of apps, the privileged, the certified. You can use APIs that are restricted using web activities as far as Firefox OS is concerned, too. And those function much like Android intends. So, I just wanted to make sure that everybody was aware of that. So, if you want to use a context API which is under privilege and you want to do it from a hosted app or a packaged app with no privilege then you can use a web activity to actually request that. And what all that does is just add a user step in the interaction and saying the user clicked something. Like if I want to get a picture and it presents me all the apps that handle pictures. And if you write your own app, you can say, “Hey, I handle pictures as well,” and it’ll show you in the list as well. CHUCK:  Oh, nice. AJ:  Well, that’s cool. JASON:  Yeah. CHUCK:  Alright. Well, let’s go and do some picks. AJ, do you have some picks for us? AJ:  I’m blanking at the moment. Come back to me. CHUCK:  Alright. How about you, Forrest? FORREST:  Yeah, I’ve actually just been playing with React and Immutable. It’s actually really cool together, along with the new Cursors library that. I actually really like both of those libraries together right now. I would say that’s my pick. CHUCK:  Very cool. Dave, do you have some picks for us? DAVE:  Oh, you know I do. I have two picks for you today. The first one is a simple but pretty and easy to use charting library for JavaScript called Morris. That’s M-O-R-R-I-S. And I picked it up for a little prototype project I was working on. And it really was nice. It was easy to get started with, lay out some charts, make them look pretty, and it was kind of cool. So, I like that. My second pick is I did a little history research. And I found that the term Gonk actually comes from this little plushie doll from the 60s. So, I would like to pick the Gonk from 1960 and 1970 and as a follow-on pick, there was a movie made about them called ‘Gonks Go Beat’ which I am going to try to find and watch so I can really know what a Gonk is like. And those are my picks. JASON:  He gets the prize. CHUCK:  AJ, do you have some picks for us? [Chuckles] AJ:  Sure. The cool thing I’ve been using this week a little bit has been ScreenFlow. I’ve had ScreenFlow for several years. And sometimes I use it more and sometimes I use it less. But I like to create sometimes just for myself. Like I’ll create a video of how I’m doing something so that when I need to go do it again I can watch myself do it and make sure that I get it right, because some processes are just complicated. And it’s just a hobby of mine. I like to make screencasts to companion to blog articles or just on their own. And then occasionally just stupid ones that have no real value at all whatsoever. But ScreenFlow makes it really easy. And so, I’ll pick that. CHUCK:  I can totally see AJ watching a screencast and going, “This guy’s brilliant. He explained things exactly the way I would have.” AJ:  You know, I think that that is something that I would say. Oh, actually there’s one other thing I want to pick, the Star Wars Dark Apprentice series. I got it for Christmas. It’s a book series, trilogy. JASON:  Nice. AJ:  Or I think it’s called Jedi Academy trilogy and Dark Apprentice is the second book. But I read one of the books a couple of years ago and wanted to read the other ones. And I got them for Christmas and so I’m starting to. And it’s good, if you’re into Star Wars. CHUCK:  Oh, Joe’s not into Star Wars. I know that. Alright, I’ve got a couple of picks. The first one is Amazon S3. It’s part of the Amazon AWS web services suite. And it’s just a really convenient place to store things in the cloud that lots of people are going to hit, like say podcast album art. And then I can just point stuff there and it just works, so definitely a fan of that. And I’ve been using Dropbox a lot. I don’t know if I picked that on the show here as well. But Dropbox is awesome. And finally the last bit is Boomerang for Gmail. And I’m pretty sure I’ve picked this on the show before, but I use it all the time, especially lately. I’ve been talking to four or five different people about getting some client work going. And whenever I email them now I tell it to remind me to follow up in a couple of days. Or if they’re like, “Well I should have everything ready by next Monday or Tuesday,” then I set the thing to remind me next Tuesday. And then I feel like a genius when I come and check my inbox next Tuesday and it says, “Go follow up with this person.” So, those are my picks. Jason, do you have some picks for us? JASON:  I actually have one pick and that’s the Blend4Web plugin which is the WebGL plugin for Blender. I posted a link in for the hacks [inaudible]. It’s an article that discusses it. I think WebGL is very, very cool. I think a lot of the game manufacturers, Unity, the Unreal Engine, a lot of them are going that direction. And I just think that I love Blender, although I’m not very good with it. I still like it a lot. I like the idea of being able to create content that way. And if you’re an app developer, game developer, some of the biggest struggles you always have is developing great visual content. And Blender is a great tool. And so, Blend4Web just pushes it out, the WebGL, for you. It’s a really cool tool. CHUCK:  Anyway, thanks for coming, Jason. It was fun to talk and this is definitely something that’s going on my list of something to look at, play with. If people… JASON:  Well, and… CHUCK:  Oh, go ahead. JASON:  I was just going to say, I appreciate the opportunity to come on and speak on. And if you guys have an app or something like that that you want to try out on a Flame, let me know. And obviously if you need any help in the future, reach out to me. CHUCK:  Alright. And if people want to follow up with you or find out more about what you’re working on, what are the best places to do that? JASON:  You can reach me on Twitter @JasonWeathersby. And that’s probably the best way to contact me. Also, jweathersby@mozilla.com is my email. CHUCK:  Awesome. Thanks again for coming. JASON:  I appreciate it. CHUCK:  Alright. We’ll wrap this show up and we’ll catch you all next week.**[Have you noticed that a lot of developers always land the job they interview for? Are you worried that someone else just landed your dream job? John Sonmez can show you how to do this with the course ‘How to Market Yourself as a Software Developer’. Go to DevCareerBoost.com and sign up using the code JJABBER to get $100 off.]****[This episode is sponsored by MadGlory. You’ve been building software for a long time and sometimes it’s get a little overwhelming. Work piles up, hiring sucks, and it’s hard to get projects out the door. Check out MadGlory. They’re a small shop with experience shipping big products. They’re smart, dedicated, will augment your team and work as hard as you do. Find them online at MadGlory.com or on Twitter at MadGlory.]****[Hosting and bandwidth provided by the Blue Box Group. Check them out at Bluebox.net.] ****[Bandwidth for this segment is provided by CacheFly, the world’s fastest CDN. Deliver your content fast with CacheFly. Visit CacheFly.com to learn more.]****_[Do you wish you could be part of the discussion on JavaScript Jabber? Do you have a burning question for one of our guests? Now you can join the action at our membership forum. You can sign up at JavaScriptJabber.com/jabber and there you can join discussions with the regular panelists and our guests.]_**

Sign up for the Newsletter

Join our newsletter and get updates in your inbox. We won’t spam you and we respect your privacy.