Contributor spotlight: Swarnava

Mozilla, and specifically SUMO, relies on the talents of our contributors to make a difference. This month we’d like to give a big shout out to one of our Top Ten Contributors: Swarnava Sengupta!

Swarnava has provided close to 2800 answers in our forums- that’s a lot of help! Even better, most of those are ‘first responses’- which are the crucial first steps to giving our users the help they need. Even more impressive is that he’s done all of this and entered the Top Ten in under one year.

He also helps translate SUMO Knowledge Base articles in the Bengali language. He hopes to become a forum moderator someday, but is already the Bengali Locale Leader.

User questions come for all types of Firefox problems- and Swarnava specializes in crash related issues and browser hijacking problems. His advice to new contributors is that you don’t need to be an expert to help- which is so true! He points out that there is no need to feel shy, as he isn’t a developer or an expert. It’s just a matter of showing people Knowledge Base articles that help with their problem- that’s it. He has a really good point, as no one starts out as an expert-and the more help you give, the easier it gets.

Swarnava works from Kolkata, India. He puts in online 24/7 support via mobile & also uses Twitter to help with Army of Awesome. This sounds like a lot- but even with the big time difference between Mountain View, CA and Kolkata we see him online all the time! When not online helping Swarnava is in school. In addition to SUMO & Army of Awesome, Swarnava helps test beta products for Kaspersky Labs and Symantec Corporation. He maintains Bengali translations on Utorrent, Malwarebytes, and for some Firefox Addons. This is pretty impressive for someone who is 17 years old! He also chats with Friends using texts or Facebook. It’s not surprising that his favorite hobby is using the computer- especially as he aims to become a Computer Engineer. I’d say he’s well on his way to a successful career! If you’d like to hear more from Swarnava you can find him [online, of course] at:

facebook.com/heavengod

twitter.com/h34v3ng0d

Bug Verification Day

Hi everyone!

Wednesday, April 23rd, we will be holding our weekly Bug Verification Day. This event is held on the #testday IRC channel and it’s addressed to everyone willing to get involved in improving Firefox.

You don’t need to have any previous experience in working with bugs. Ask for help on the #testday channel and someone there will give you assistance. More details are available in the wiki page we set up for you.

If you’re unable to attend these meetings and still want to get involved, you can verify bugs on your own time. Just add the [bugday-20140423] tag to the whiteboard or a comment for every bug you work on, so we know you participated to this event.

Join us and help make Firefox better!

Intro to Web Testing

On Friday, May 2nd, 2014, come learn more about how to do web testing with Mozilla’s WebQA team:

  •  Meet from 16:00-21:00 GMT, 8am-noon PST
  • Talk about ways to start testing
  • Find a project – look over the tests we have
  • Answer questions you might have about testing, MozTrap, Bugzilla and more

Bring your questions about web testing. We’ll review our how-to documents and answer questions about web testing.

You can expect to discuss Exploratory testing as a way of getting started.  Talk about getting a Persona account for testing. Log into MozTrap to run a few test cases.

To find out how to connect with us, and to learn more about what we’ll be doing checkout the etherpad:

https://etherpad.mozilla.org/IntroToWebTesting

Hope to see you there!

What Mozilla Hacks is

With the Mozilla moniker, many people believe that the Hacks blog is only about Mozilla products or news. Therefore, I wanted to take the chance to enlighten you and also invite you to be a part of creating content here.

What we cover here

The goal and objective of Mozilla Hacks is to be one of the key resources for people developing for the Open Web; talking about both news and in-depth descriptions of technologies and features. This means that as long as it’s about open technologies, we want to share all that information, tips, tricks and learnings with you.

We’re Mozilla, and for us it is key to be a web browser agnostic resource, and it’s exactly the same with MDN (Mozilla Developer Network). The content here is written by a lot of different authors, where about half of them aren’t part of or associated with Mozilla in any way – they just do good things for the Open Web, and we believe that deserves exposure, and that it will be beneficial to you.

Allow me to also emphasize that Mozilla Hacks is not a press release channel, we work hard to make everything we cover to be informational, practical and inspirational for you.

More information is outlined in the guidelines for Mozilla Hacks.

Behavior

Mozilla Hacks is a place based on mutual respect and understanding, and the way we address each other is supposed to reflect that. We expect anyone writing or commenting to use proper language and refrain from insulting other people. If you ask a question here, give feedback and more, you deserve a reply from us. And when we talk about things – even though we might disagree – we all should and are entitled to always be met with respect and a proper behavior.

Write for us!

We know that a lot of you reading this have great knowledge, skill sets and experiences, and we would be very happy to help and support you in sharing it with the world and fellow developers.

We have had hundreds of people writing and collaborating in content for Hacks, and if you write two posts or more, you’ll show up in great company among all our fantastic authors!

Talk to me

For me personally, I’ve been running Mozilla Hacks as its Editor for about two years now, and I’m constantly on the lookout for good content that web developers writing for the Open Web, with open technologies, can learn from. I.e. topics that I’d love to read about myself.

I would be very happy for you to reach out to me at robert [at] mozilla [dot] com or via @robertnyman on Twitter – I’m always interested in discussing the web, technology and the ideas you might have. Talk to me. :-)

Firefox Aurora 30 Testday results

Hello everyone!

Friday, April the 18th, we held a new Testday for Firefox 30 Aurora. Thank you for helping out with test execution and exploratory testing.

More details about the work done can be found in this etherpad.

Special thanks are in order for: florin_nechita, Ignacio Yagami, Iamjayakumars, and to all our moderators! Your work is always appreciated.

We look forward to seeing you at the next Testday, so follow us on QMO for details!

Bug Verification Day

Hi everyone!

Wednesday, April 30th, we will be holding our weekly Bug Verification Day. This event is held on the #testday IRC channel and it’s addressed to everyone willing to get involved in improving Firefox.

You don’t need to have any previous experience in working with bugs. Ask for help on the #testday channel and someone there will give you assistance. More details are available in the wiki page we set up for you.

If you’re unable to attend these meetings and still want to get involved, you can verify bugs on your own time. Just add the [bugday-20140430] tag to the whiteboard or a comment for every bug you work on, so we know you participated to this event.

Join us and help make Firefox better!

Bug Triage Day

Greetings Firefox friends!

Monday, April 28th we will be holding our weekly Bug Triage Day. Join us on the #testday IRC channel and get involved!

You don’t need to have any previous experience in working with bugs. Ask for help on #testday and someone there will offer you assistance. Details are also available in this event’s wiki page.

If you aren’t able to attend this event but still want to get involved, you can triage bugs on your own time.  Just add the [bugday-20140428] tag to the whiteboard or a comment for every bug you work on, so we know you participated to this event.

Join us and help make Firefox better!

Firefox OS App Workshop Prague

Back in March, Mozilla tech evangelist Frédéric Harper visited Prague in the Czech Republic and gave a talk at the local Prague JavaScript meetup. His presentation, Empower Mobile Web Developers With JavaScript and WebAPI introduced a roomful of Czech JavaScripters to Firefox OS, Open Web Apps, and our recent integration with Apache Cordova and Adobe PhoneGap. PhoneGap/Cordova developers who’ve built native apps for other platforms and stores can now port PhoneGap-built apps to Firefox OS.

Just as sure as the coming of summer, Firefox OS is coming to the Czech Republic in 2014, and Fred and friends are heading back to Prague to host a full-day, invitation-only Firefox OS App Workshop on Saturday, June 28. There will be phones! All participants will receive a developer device to test and demo their apps, and to keep for future app development. For free.

Requirements: Show us your app

REQUIRED: To qualify for this free hands-on, technical workshop, you must be able to show us a published HTML5 app that you’re porting to Firefox OS or a working Firefox OS app in progress. Show us a link to your existing app or to working code for the app you’re building.

Apply now for the Prague App Workshop, June 28, 2014.

FoxSay500

NOTE: If you do not provide relevant links to working app code we will not be able to consider your application. Firefox Marketplace currently offers plenty of tic-tac-toe games, sliding puzzles, calculators, and to-do list apps. We love to be impressed by new, original, and locally relevant apps, for work and play.

In the Czech Republic, we need apps that are in Czech. And if you want to extend the reach of your app by translating it to other languages, we have a pilot localization program to help you.

What to expect

This workshop is open to individual developers and teams of up to 4 people. The workshop begins with a technical introduction in English in the morning; the rest of the time is for coding and testing your app using the App Manager that’s built in Firefox Developer Tools. Bring laptops and devices.

At the close of the day, there will be demos of all the apps in progress. After demos, we’ll all go to dinner. Mozilla will provide food and drink throughout the day of the workshop, but travel and lodging arrangements are up to you. And after the workshop, we will stay in touch while you complete your apps and submit them to Firefox Marketplace.

Resources

If you don’t have a Firefox OS app in progress, here are some resources to help you get started. There’s never been a better time:

Shizen008's Blog 2014-04-21 08:42:25

I had a discussion with someone new I met who talked about having worked on state machine for a dog poo game where the dog poos and you have to pick it up.

 

It came to me that this is a good way to explain what exploratory testing is.  Part of exploratory testing revolves around knowing states.  Pre and post conditions…

 

What you’re trying to explore is the current state machine of the software you are trying to test and seeing if it matches with what the design of the software is suppose to be like.  ( http://en.wikipedia.org/wiki/Finite-state_machine )

 

If it doesn’t match, there may be a bug or a change of design which has to be investigated.

 


Filed under: Uncategorized

Firefox 30 Aurora Testday, April 18th

Greetings mozillians,

We are happy to announce that Friday,  April 18th, we’re going to hold the Firefox 30.0 Aurora Testday. We will be testing the latest Aurora build, with focus on recent changes and fixes. Detailed instructions on how to get involved can be found in this etherpad.

No previous testing experience is required so feel free to join via #testday IRC channel and our moderators will offer you guidance and answer your questions.

Join us next Friday and let’s make Firefox better!

HTML out of the Browser

Amongst my friends, I’m known as something of a Star Wars nerd. My longtime nick has been cfjedimaster (a combination of two passions, the other being ColdFusion), I work in a room packed to the gills with Star Wars toys, and I’ve actually gotten inked up twice now with Star Wars tats. That being said, it was another movie that had the most influence on my current career – Tron.

Tron_poster

I had already discovered an interest in computers before then, but it was Tron that really crystallized the idea for me. All of sudden I imagined myself being the programmer – creating intelligent programs and dominating the grid. Yeah, I know, I was a nerd back then too.

My dreams, though, ran into reality rather quickly during my time as a Comp Sci major in college. First – I discovered that “Hey, I’m good at math!” means crap all when you hit Calculus 3, and secondly, I discovered that I really wasn’t that interested in the performance of one sort versus another. I switched to English as a major (always a good choice) but kept messing around with computers. It was during this time that I was exposed to Mosaic and the early web.

I quickly jumped into the web as – well – I’ll put it bluntly – easier programming than what I had been exposed to before. I can remember LiveScript. I can remember my first Perl CGI scripts. This wasn’t exactly light cycle coding but it was simpler, fun, and actually cutting edge. I’ve spent a good chunk of my adult life now as a web developer, and while I certainly have delusions of the web being a pristine environment, it has been good to me (and millions of others) and I’m loving to see how much it evolves over time.

One of the most fascinating ways that web technologies have grown is outside of the web itself. In this article I’m going to look at all the various ways we can reuse our web-based technologies (HTML, JavaScript, and CSS) in non-web based environments. While it would be ludicrous to say that one shouldn’t learn other technologies, or that web standards work everywhere and in every situation, I feel strongly that the skills behind the web are ones open to a large variety of people in different disciplines – whether or not you got that PhD in computer science!

Mobile

This is typically the point where I’d discuss how important mobile is, but it’s 2014 and I think we’re past that now. Mobile development has typically involved either Java (Android) or Objective-C (iOS). Developers can also use web standards to build native applications. One solution is Apache Cordova (AKA PhoneGap).

Cordova uses a web view wrapped in a native application to allow web developers to build what are typically referred to as hybrid applications. Along with providing an easy way to get your HTML into an app, Cordova provides a series of different plugins that let you do more than what a typical web page can do on a device. So for example, you have easy access to the camera:

navigator.camera.getPicture(onSuccess, onFail, { quality: 50,
    destinationType: Camera.DestinationType.DATA_URL
});
 
function onSuccess(imageData) {
    var image = document.getElementById('myImage');
    image.src = "data:image/jpeg;base64," + imageData;
}
 
function onFail(message) {
    alert('Failed because: ' + message);
}

You can also work with the accelerometer, GPS, contacts, the file system, and more. Cordova provides a JavaScript API that handles the communication to native code in the back end. Best of all, the same code can be used to build native applications for multiple different platforms (including Firefox OS, now supported in Cordova & PhoneGap).

To be clear, this isn’t a case of being able to take an existing web site and just package it up. Mobile applications are – by definition – completely different from a simple web site. But the fact that you can use your existing knowledge gives the developer a huge head start.

Another example of this (and one that is hopefully well known to readers of this site) is Firefox OS. Unlike Cordova, developers don’t have to wrap their HTML inside a web view wrapper. The entire operating system is web standards based. What makes Firefox OS even more intriguing is support for hosted applications. Firefox OS is a new platform, and the chance that your visitors are using a device with it is probably pretty slim. But with a hosted application I can easily provide support for installation on the device while still running my application off a traditional URL.

Consider a simple demo I built called INeedIt. If you visit this application in Chrome, it just plain works. If you visit it in a mobile browser on Android or iOS – it just works. But visit it with Firefox and code will trigger to ask if you want to install the application. Here is the block that handles this.

if(!$rootScope.checkedInstall && ("mozApps" in window.navigator)) {
 
    var appUrl = 'http://'+document.location.host+'/manifest.webapp';
    console.log('havent checked and can check');
    var request = window.navigator.mozApps.checkInstalled(appUrl);
 
    //silently ignore
    request.onerror = function(e) {
        console.log('Error checking install '+request.error.name);
    };
 
    request.onsuccess = function(e) {
        if (request.result) {
            console.log("App is installed!");
        }
        else {
            console.log("App is not installed!");
            if(confirm('Would you like to install this as an app?')) {
                console.log('ok, lets try to install'); 
                var installRequest = window.navigator.mozApps.install(appUrl);
 
                installRequest.onerror = function() {
                    console.log('install failure: '+this.error.name);
                    alert('Sorry, install failed.');    
                };
 
                installRequest.onsuccess = function() {
                    console.log('did it');
                    alert('Thanks, app installed!');    
                };
            }
            $rootScope.checkedInstall=true;
        }
    };
 
} else {
    console.log('either checked or non compat');                
}

Pretty simple, right? What I love about this is that the code is 100% ignored outside of Firefox OS but automatically enhanced for folks using that operating system. I risk nothing – but I get the benefit of providing them a way to download and have my application on their device screen.

FF OS prompting you to install the app

Desktop

Of course, there are still a few people who sit in front of a gray box (or laptop) for their day to day work. Many desktop applications have been replaced by web pages, but there are still things that outside the scope of web apps. There are still times when a desktop app makes sense. And fortunately – there’s multiple ways of building them with web standards as well.

So you know the code example I just showed you? The one where Firefox OS users would be given a chance to install the application from the web page? That exact same code works on the desktop as well. While still in development (in fact, the application I built doesn’t work due to a bug with Geolocation), it will eventually allow you to push your web based application both to a mobile Firefox OS user as well as the other billion or so desktop users. Here’s the application installed in my own Applications folder.

INeedIt as a desktop app

As I said though – this is still relatively new and needs to bake a bit longer before you can make active use of it. Something you can use right now is Node Webkit. This open source project allows you to wrap Node.js applications in a desktop shell. Executables can than be created for Windows, Mac, and Linux. You get all the power of a “real” desktop application with the ease of use of web standards as your platform. There’s already a growing list of real applications out there making use of the framework – some I had even used before what realizing they used Node Webkit behind the scenes.

As an example, check out A Wizard’s Lizard, a RGP with random dungeons and great gameplay.

Screen shot - Wizard's Lizard

Native App Extensions

In the previous section we covered applications built with web standards. There are also multiple applications out there today, built natively, that can be extended with web standards. As a web developer you are probably already familiar with Firefox Add-Ons and Chrome extensions. There is an incredibly rich ecosystem of browser extensions for just about any need you can think of. What interests me however is the move to use web standards to open other products as well.

Did you know Photoshop, yes, Photoshop, now has the ability to extended with Node.js? Dubbed “Adobe Generator”, this extensibility layer allows for a script-based interface to the product. One example of this is the ability to generate web assets from layers based on a simple naming scheme. If you’ve ever had to manually create web assets, and update them, from a PSD, you will appreciate this. The entire feature though is driven by JavaScript and all makes use of a public API you can build upon. The code, and samples, are all available via GitHub.

Generator running within Photoshop

What Next?

Coming from the perspective of someone who has been in this industry for way too long, I can say that I feel incredibly lucky that web standards have become such a driving force of innovation and creativity. But it is not luck that has driven this improvement. It is the hard work of many people, companies, and organizations (like Mozilla) that have created the fertile landscape we have before us today. To continue this drive requires all of us to become involved, evangelize to others, and become proponents of a web created by everyone – for everyone.