Saturday, July 14, 2012

[Gd] Dev Channel Updates for Chromebooks

| More

Chrome Releases: Dev Channel Updates for Chromebooks

The Dev channel has been updated to 21.0.1180.41 (Platform versions: 2465.62.0) for Chromebooks (Acer AC700, Samsung Series 5, Samsung Chromebook Series 5 550, Samsung Chromebook Series 3, and Cr-48). This build contains a number of UI, stability & security improvements.

Highlights of these changes are:

  • Issue with Google Docs (133442)
  • Update Adobe Flash version 11.3.31.218
  • Network Fixes

Known issues:

  • 137273 Connecting to hidden networks fails when you try to connect to it for the first time
  • 31866 Unable to enable mobile data for locked SIM on y3300 and y3400 modems

If you find new issues, please let us know by visiting our help site or filing a bug. Interested in switching channels? Find out how. You can submit feedback using ‘Report an issue’ under the wrench menu.

Josafat Garcia
Google Chrome
URL: http://googlechromereleases.blogspot.com/2012/07/dev-channel-updates-for-chromebooks_13.html

Friday, July 13, 2012

[Gd] Beta Channel Update

| More

Chrome Releases: Beta Channel Update


The Beta channel has been updated to 21.0.1180.41 for Windows, Mac, Linux and ChromeFrame platforms

All
Windows
Mac
Linux
  • Fixed fullscreen-mode entry and lack of video problem (Issue: 117021)
    More details about additional changes are available in the svn log of all revisions.
    If you find new issues, please let us know by filing a bug at http://code.google.com/p/chromium/issues/entry

    Karen Grunberg
    Google Chrome
    URL: http://googlechromereleases.blogspot.com/2012/07/beta-channel-update.html

    Thursday, July 12, 2012

    [Gd] New Crawl Error alerts from Webmaster Tools

    | More

    Official Google Webmaster Central Blog: New Crawl Error alerts from Webmaster Tools

    Webmaster level: All

    Today we’re rolling out Crawl Error alerts to help keep you informed of the state of your site.

    Since Googlebot regularly visits your site, we know when your site exhibits connectivity issues or suddenly spikes in pages returning HTTP error response codes (e.g. 404 File Not Found, 403 Forbidden, 503 Service Unavailable, etc). If your site is timing out or is exhibiting systemic errors when accessed by Googlebot, other visitors to your site might be having the same problem!

    When we see such errors, we may send alerts –- in the form of messages in the Webmaster Tools Message Center –- to let you know what we’ve detected. Hopefully, given this increased communication, you can fix potential issues that may otherwise impact your site’s visitors or your site’s presence in search.

    As we discussed in our blog post announcing the new Webmaster Tools Crawl Errors feature, we divide crawl errors into two types: Site Errors and URL Errors.

    Site Error alerts for major site-wide problems

    Site Errors represent an inability to connect to your site, and represent systemic issues rather than problems with specific pages. Here are some issues that might cause Site Errors:
    • Your DNS server is down or misconfigured.
    • Your web server itself is firewalled off.
    • Your web server is refusing connections from Googlebot.
    • Your web server is overloaded, or down.
    • Your site’s robots.txt is inaccessible.
    These errors are global to a site, and in theory should never occur for a well-operating site (and don’t occur for the large majority of the sites we crawl). If Googlebot detects any appreciable number of these Site Errors, regardless of the size of your site, we’ll try to notify you in the form of a message in the Message Center:

    Example of a Site Error alert
    The alert provides the number of errors Googlebot encountered crawling your site, the overall crawl error connection rate for your site, a link to the appropriate section of Webmaster Tools to examine the data more closely, and suggestions as to how to fix the problem.

    If your site shows a 100% error rate in one of these categories, it likely means that your site is either down or misconfigured in some way. If your site has an error rate less than 100% in any of these categories, it could just indicate a transient condition, but it could also mean that your site is overloaded or improperly configured. You may want to investigate these issues further, or ask about them on our forum.

    We may alert you even if the overall error rate is very low — in our experience a well configured site shouldn’t have any errors in these categories.

    URL Error anomaly alerts for potentially less critical issues

    Whereas any appreciable number of Site Errors could indicate that your site is misconfigured, overloaded, or simply out of service, URL Errors (pages that return a non-200 HTTP code, or incorrectly return an HTTP 200 code in the case of soft 404 errors) may occur on any well-configured site. Because different sites have different numbers of pages and different numbers of external links, a count of errors that indicates a serious problem for a small site might be entirely normal for a large site.

    That’s why for URL Errors we only send alerts when we detect a large spike in the number of errors for any of the five categories of errors (Server error, Soft 404, Access denied, Not found or Not followed). For example, if your site routinely has 100 pages with 404 errors, we won’t alert you if that number fluctuates minimally. However we might notify you when that count reaches a much higher number, say 500 or 1,000. Keep in mind that seeing 404 errors is not always bad, and can be a natural part of a healthy website (see our previous blog post: Do 404s hurt my site?).

    A large spike in error count could be because something has changed on your site — perhaps a reconfiguration has changed the permissions for a section of your site, or a new version of a script is crashing regularly, or someone accidentally moved or deleted an entire directory, or a reorganization of your site causes external links to no longer work. It could also just be a transient spike, or could be because of external causes (someone has linked to non-existent pages), so there might not even be a problem; but when we see an unusually large number of errors for your site, we’ll let you know so you can investigate:

    Example of a URL Error anomaly alert
    The alert describes the category of web errors for which we’ve detected a spike, gives a link to the appropriate section of Webmaster Tools so that you can see what pages we think are problematic, and offers troubleshooting suggestions.

    Enable Message forwarding to send alerts to your inbox

    We know you’re busy, and that routinely checking Webmaster Tools just to check for new alerts might be something you forget to do. Consider turning on Message forwarding. We’ll send any Webmaster Tools messages to the email address of your choice.

    Let us know what you think, and if you have any comments or suggestions on our new alerts please visit our forum.

    Written by Brian Malcolm, Webmaster Tools team
    URL: http://googlewebmastercentral.blogspot.com/2012/07/new-crawl-error-alerts-from-webmaster.html

    [Gd] Integrating Balsamiq Mockups with Google Drive

    | More

    Google Apps Developer Blog: Integrating Balsamiq Mockups with Google Drive

    Editor’s Note: This blog post is authored by Peldi Guilizzoni, from Balsamiq. As a user of Balsamiq myself, it was great to see them join as one of the first Drive apps! -- Steven Bazyl

    Hi there! My name is Peldi and I am the founder of Balsamiq, a small group of passionate individuals who believe work should be fun and that life's too short for bad software.

    We make Balsamiq Mockups, a rapid wireframing tool that reproduces the experience of sketching interfaces on a whiteboard, but using your computer, so they’re easier to share, modify, and get honest feedback on. Mockups look like sketches, so stakeholders won’t get distracted by little details, and can focus on what’s important instead.


    We sell Mockups as a Desktop application, a web application and as a plugin to a few different platforms. An iPad version is also in the works.

    We believe that tools should adapt to the way people like to work, not the other way around. That's why when Google Drive came out, we jumped at the chance to integrate Mockups with it. This is the story of how the integration happened.

    First of all, a little disclaimer. Although my job these days is to be CEO and all that, I come from a programming background. I started coding at 12, worked at Macromedia/Adobe for 6 years as a programmer. I'd say I'm a pretty good programmer…just a bit rusty, ok? I realize that the decision to write the code for Mockups for Google Drive myself instead of asking one of Balsamiq's better programmers to do it might have been a bit foolish, but we really wanted to be a launch partner and the programmers were already busy with lots of other stuff, plus I didn't want to pass up on the chance to work on something cool after dinner for a while. ;) OK so now you know the background, let's get started.

    Once I got access to the Google Drive API documentation and looked around a bit, I started by following the detailed "sample application" tutorial.

    The sample was written in python, used OAuth, the Google API Console, and ran on Google App Engine, all technologies I hadn't been exposed to before.

    Following along brought me back to my childhood days of copying programs line by line from PC Magazine, not really understanding what I was doing but loving it nonetheless. :)

    The trickiest part was figuring out how OAuth worked: it's a bit of a mess, but after you play with it a little and read a few docs, it starts making sense, stick with it, it's the future! ;) Plus the downloadable sample app had hidden all that stuff in a neat little library, so you don't have to worry about it so much.

    Setting up the sample application took around 2-3 hours, easy peasy. Once that was done, I just had to convert it to become Balsamiq Mockups for Google Drive. Because I had done this before for other platforms, this was finally something I was comfortable with doing. The bulk of our code is encapsulated into our Flash-based Mockups editor, so all I had to do was to write a few functions to show the editor to the user and set it up using our internal APIs. Then I had to repurpose the "open with" and "edit" APIs from the sample app to work with the Mockups editor. All and all, this took maybe a day of work. Yay!


    Opening a Balsamiq Mockup file in Google Drive

    Once the proof of concept was up, I started turning the code into a real app. I cleaned up the code, added some comments, created a code repository for it in our bazaar server, set up a staging environment (a parallel Google App Engine application and unpublished Chrome Web Store listing) and integrated the build and deployment into our Jenkins server.

    One tricky bit worth mentioning about integrating with Jenkins: the Google App Engine deployment script appcfg.py asks for a password interactively, which is a problem if you want to deploy automatically. The solution was to use the echo pwd | appcfg.py trick found here.

    After some more testing and refinements, shipping day came, Balsamiq Mockups for Google Drive was live.


    Balsamiq Mockups on the Chrome Web Store

    It was a very exciting day. Getting mentioned in the official Google blog was quite awesome. The only stressful moment came because for some reason my Google App Engine account was not set up for payments (I could have sworn I had done it in advance), so our app went over our bandwidth quota an hour after launch, resulting in people receiving a white blank screen instead of the app. Two people even gave us bad reviews because of it. Boo! :(

    In the days that followed, things went pretty well. People started trying it out, and only a few bug reports came. One very useful Google App Engine feature is the "errors per second" chart in the dashboard, which gives you an insight on how your app is doing.

    I noticed that we had a few errors, but couldn't figure out why. With the help of the docs and our main Developer Relations contact at Google, we narrowed them down to a couple of OAuth issues: one was that the library I was using didn't save the refresh_token properly, and another that had to do with sessions timing out when people use the editor for over an hour and then go to save their work.

    Fixing these bugs took way longer than what I wanted, mostly due to the fact that I'm a total OAuth and Python n00b.

    After a few particularly frustrating bug hunting sessions, I decided to rewrite the backend to Java. The benefits of this approach are that a) we get static type checking and b) I can get help from some of our programmers since Java is a language we're all already familiar with here.

    Since by now the Java section of the Google Drive SDK website had been beefed up, the rewrite only took a day, and it felt awesome. Sorry python, I guess I'm too old for you.

    The hardest part of the java rewrite was the Jenkins integration, since the echo pwd trick doesn't work with the java version of appcfg. To get around that, I had to write an Expect script, based on this Fábio Uechi blog post. By the way, I would recommend reading the Expect README, it has an awesome 1995 retro feel to it.

    Overall, integrating Balsamiq Mockups with Google Drive was a breeze. Google is a technology company employing some of the brightest people in our industry, and it shows. The APIs are clean and extremely well tested. The people at Google are very responsive whenever I have an issue and have been instrumental in making us successful.

    While the application is still pretty young - we are working on adding support for Drive images, linking, symbols… - we are very happy with the results we're getting already. The Drive application netted around $2,500 in its first full month of operation, and sales are growing fast.

    Alright, back to coding for me, yay! :)

    Peldi



    Peldi Guilizzoni

    Giacomo 'Peldi' Guilizzoni is the founder and CEO of Balsamiq, makers of Balsamiq Mockups. Balsamiq is a tiny, ten-person multi-million dollar company with offices in 4 cities around the World. A programmer turned entrepreneur, Peldi loves to learn and to share what he learns, be it via his blog, giving talks or mentoring other software startups. Follow him on Twitter @balsamiq.


    URL: http://googleappsdeveloper.blogspot.com/2012/07/integrating-balsamiq-mockups-with.html

    [Gd] YouTube @ the Google Developers Academy

    | More

    YouTube API Blog: YouTube @ the Google Developers Academy

    Whether you’re a fledgling developer looking to get started with an API or a skilled developer who wants to learn some new tricks, you’ll find engaging material at the Google Developers Academy. Of particular interest to readers of this blog is the YouTube section, which hosts courses specific to the YouTube APIs.

    The first course walks JavaScript developers through the steps needed to embed an <iframe> Player on their page along with a list of chapter titles. It’s perfect when you want to embed a lengthy video that consists of multiple sub-sections, since jumping from section to section is as easy as clicking on predefined links. Check out the live demo of a page with videos from last year’s Google I/O conference to see the player in action.

    We will be gradually adding to the YouTube section of the Google Developers Academy, and we’ll announce the new courses on this blog and our YouTube for Developers Google+ page. Stay tuned for more great resources!

    Cheers,
    Jeff Posnick, YouTube API Team
    URL: http://apiblog.youtube.com/2012/07/youtube-google-developers-academy.html

    [Gd] Stable Channel Updates for Chromebooks

    | More

    Chrome Releases: Stable Channel Updates for Chromebooks

    The Google Chrome team is happy to announce the arrival of Chrome 20 to the Stable Channel for ChromeOS.  More detailed updates are available on the Google Blog.  


    The Stable channel has been updated to 20.0.1322.54 (Platform version: 2268.105.0) for Chromebooks (Acer AC700, Samsung Series 5, Samsung Chromebook Series 5 550, and Samsung Chromebox Series 3, and Cr-48). Machines will be receiving updates to this version over the next several days.


    This build contains a number of new features, as well as security & stability improvements.


    Some highlights of these changes are:
    • Support for Google Drive
    • Offline support of Google Docs
    • Firmware update for Chromebook Series 5 550. Note: A screen with Chrome Logo and a critical update notification will show after update restarts. It will reboot by itself after firmware update completes.
    • Updates to Pepper Flash
    • Introduced redesigned UI to Cr-48 systems
    • Switched to open source touchpad driver on Cr-48 systems
    • Crash fixes

    Known issues:
    • 32327 - On Samsung Chromebook Series 5 550, the system may suspend while playing streaming audio.
    • 32420 - There are rare reports of machines where an owner would be required to login to a device before any other user can login. Workaround: If possible, login to the machine as owner. If the owner is unable to login, login to the machine as Guest, and follow the instructions here to download a recovery image and install it on the Chromebook. If you encounter this, please contact our Ninja support group.

    If you find new issues, please let us know by visiting our help site or filing a bug. Interested in switching channels? Find out how. You can submit feedback using ‘Report an issue’ under the wrench menu.

    Danielle Drew
    Google Chrome


    URL: http://googlechromereleases.blogspot.com/2012/07/stable-channel-updates-for-chromebooks.html

    [Gd] Stable Channel Update

    | More

    Chrome Releases: Stable Channel Update

    The Stable channel has been updated to 20.0.1132.57 for Windows, Mac, Linux, and Chrome Frame. Along with below mentioned security fixes, this build contains an update to Flash player, v8 (3.10.8.20) and couple of stability/bug fixes.


    Security fixes and rewards:

    Please see the Chromium security page for more detail. Note that the referenced bugs may be kept private until a majority of our users are up to date with the fix.


    • [$1000] [129898] High CVE-2012-2842: Use-after-free in counter handling. Credit to miaubiz.
    • [$1000] [130595] High CVE-2012-2843: Use-after-free in layout height tracking. Credit to miaubiz.
    • [133450] High CVE-2012-2844: Bad object access with JavaScript in PDF. Credit to Alexey Samsonov of Google.

    Many of these bugs were detected using AddressSanitizer.

    More detailed updates are available on the Chrome Blog.  Full details about what changes are in this release are available in the SVN revision log.  Interested in hopping on the stable channel?  Find out how.  If you find a new issue, please let us know by filing a bug.


    Dharani Govindan
    Google Chrome
    URL: http://googlechromereleases.blogspot.com/2012/07/stable-channel-update.html

    Wednesday, July 11, 2012

    [Gd] Apache Rave & Apache Shindig "Beer Forge" at OSCON 2012!!

    | More

    OpenSocial API Blog: Apache Rave & Apache Shindig "Beer Forge" at OSCON 2012!!

    It's a party!!

    To help kick off OSCONthe OpenSocial community is excited to host the first Apache Shindig / Apache Rave "beer forge"!  We've got space at The Spirit of 77 sports bar just a few blocks away from the OCC on Tuesday, July 17th for a chance for us to get together and have a few pints on OpenSocial! 

    You'll have a chance to meet the leaders of our open source community that are working to move the social web forward through the Apache Shindig and Apache Rave projects. There will be plenty of opportunity to learn first hand how some of the industry's leading social platforms from IBM, Jive, Mitre and others are leveraging open source technologies in their products.

    Plan to start off OSCON with the OpenSocial community and enjoy some good food & great beer as we celebrate another year of advancing the social web through open source!

    Note: Make sure to RSVP so we can check you in at the event and have an accurate count of who's coming. Thanks!!
    URL: http://blog.opensocial.org/2012/07/apache-rave-apache-shindig-beer-forge.html

    [Gd] OpenSocial State of the Union, 2012

    | More

    OpenSocial API Blog: OpenSocial State of the Union, 2012

    I'm excited to announce that this year's "State of the Union" event will be held on Tuesday, July 17, 2012 at the Jive's offices in Portand Oregon. It lines up with OSCON, the premier conference for open source technologies. We'll have discounted passes for the conference, so be sure to check out the OSCON site for all the detailed information about that event. If you just want to grab some swag, we'll also have "Expo Only" tickets as well.
    While past State of the Union events have been structured as a "mini conference", this year we've decided to take a different tact. The Foundation's primary goals are to enable our community in developing open standards and technology that advance the social Web and foster a vibrant, open ecosystem of social platforms and applications. This year's event will be a series of working sessions where we will focus on specific topics that, as a community, we need to address in the upcoming year. Each session will be moderated to keep us on track. The moderator will produce an "action plan" that we'll use to track our progress and measure our results.
    Space is very limited, so please be courteous to your fellow "OpenSocialites" RSVP if you plan to attend in person and are ready to roll your sleeves up and pitch in.
    For additional information visit the event page on the OpenSocial wiki or the eventbrite link below.



    Happy Coding!
    Mark Weitzel, President, OpenSocial Foundation



    URL: http://blog.opensocial.org/2012/07/opensocial-state-of-union-2012.html

    [Gd] Dev Channel Updates for Chromebooks

    | More

    Chrome Releases: Dev Channel Updates for Chromebooks


    The Dev channel has been updated to 21.0.1180.33 (Platform versions: 2465.55.0) for Chromebooks (Acer AC700, Samsung Series 5, Samsung Chromebook Series 5 550, Samsung Chromebook Series 3, and Cr-48). This build contains a number of UI, stability & security improvements.

    Highlights of these changes are:

    • Fix gtalk crash (133950)
    • Update Adobe Flash
    • Audio Fixes

    Known issues:

    • 133442 "Show Google Docs" malfunctioning

    If you find new issues, please let us know by visiting our help site or filing a bug. Interested in switching channels? Find out how. You can submit feedback using ‘Report an issue’ under the wrench menu.

    Josafat Garcia
    Google Chrome

    URL: http://googlechromereleases.blogspot.com/2012/07/dev-channel-updates-for-chromebooks.html

    Tuesday, July 10, 2012

    [Gd] Google I/O and Beyond

    | More

    Android Developers Blog: Google I/O and Beyond



    [This post is by Reto Meier, Android Developer Relations Tech Lead]



    With most of the Android Developer Relations team now fully recovered from Google I/O 2012, I'm happy to announce that all of the videos for the Google I/O 2012 Android Sessions are now available!



    I've included in the Google I/O 12 - The Android Sessions playlist (embedded below), as well as (in keeping with our newly redesigned developer site) in playlists for each developer category: Design, develop, and distribute.







    Google I/O is always a highlight on the Android Developer Relations team's calendar; it's our best opportunity to talk directly to the Android developer community. Unfortunately I/O only happens once a year, and only a lucky few thousand can join us in person.



    That's why we've been exploring more scalable approaches to interacting with developers, and with the launch of Google Developers Live, we have a way for the entire Android Developer community to view and participate in live, interactive developer-focused broadcasts all year round, and all across the world.



    This week we resume our weekly interactive development Q&A Office Hours in three time zones (US, EMEA, and APAC).  We know many of you have questions related to specific I/O sessions, so we've invited all the speakers to join us, starting with this Wednesday's Android Developer Office Hours with Chet Haase, Romain Guy, Xavier Ducrohet, and Tor Norbye from the What's New in Jelly Bean and What's new in Android Developer Tools sessions.



    On Friday afternoons we broadcast The Friday Review of Apps and The Friday Review of Games, two more relaxed sessions where we review self-nominated apps and games, providing feedback to the developers in the hope of discovering some feature-worthy gems.



    Every Android Developer Live broadcast is recorded and available from Google Developers Live, the Android Developers YouTube channel, and directly from developer.android.com. We've also begun to make each of the Office Hours, as well as the Android sessions from Google I/O 2012, available as part of the Android Developers Live audio podcast.



    We're really excited to use Google Developers Live to interact more regularly with you, the most important members of the Android ecosystem, and will be looking to expand our lineup to include regular interviews with app developers and Android engineers.



    Got great ideas for how we can expand our live program? Let us know on Google+.




    URL: http://android-developers.blogspot.com/2012/07/google-io-and-beyond.html

    [Gd] Dev Channel Update

    | More

    Chrome Releases: Dev Channel Update

    The Dev channel has been updated to 22.0.1201.0 for Windows, Mac, Linux and Chrome Frame.  This build has an update version of V8 (3.12.9.0) along with the following changes in the svn log.
    Please note, on Mac we now require 10.6 or higher, and this release will not be available if you are on 10.5 or lower.  You can find out how to change to the Dev channel, or any channel, on chromium.org.  If you find a new issue with this release, please shoot us a bug report.

    Jason Kersey
    Google Chrome
    URL: http://googlechromereleases.blogspot.com/2012/07/dev-channel-update.html

    [Gd] Chrome Beta Release

    | More

    Chrome Releases: Chrome Beta Release


    The Chrome team is happy to announce the arrival of Chrome 21.0.1180.15 to the Beta Channel for Windows, Mac, Linux, and Chrome Frame.

    Chrome 21 contains some really great improvements including better communication and printing experiences. More on what's new at the Official Chrome Blog and the Chromium Blog.

    You can find full details about the changes that are in Chrome 21 in the SVN revision log. If you find new issues, please let us know by filing a bug. Want to change to another Chrome release channel? Find out how.

    Karen Grunberg
    Google Chrome
    URL: http://googlechromereleases.blogspot.com/2012/07/chrome-beta-release.html

    [Gd] Introducing new Fusion Tables API

    | More

    Google Developers Blog: Introducing new Fusion Tables API

    By Warren Shen, Google Fusion Tables team

    Amidst all the excitement of I/O followed by the July 4th holiday in the U.S., many developers missed the announcement of the new Fusion Tables API. The new API includes all of the functionality of the existing SQL API, plus the ability to read and modify table and column metadata as well as the definitions of styles and templates for data visualization. This API is also integrated with the Google APIs console which lets developers manage all their Google APIs in one place and take advantage of built-in reporting and authentication features.

    With this launch, we are also announcing a six month deprecation period for the existing SQL API. Since the new API includes all of the functionality of the existing SQL API, developers can easily migrate their applications using our migration guide.

    For a detailed description of the features in the new API, please refer to the API documentation.


    Posted by Ashleigh Rentz, Editor Emerita
    URL: http://googledevelopers.blogspot.com/2012/07/introducing-new-fusion-tables-api.html

    [Gd] Introducing getUserMedia and the Javascript Gamepad API

    | More

    Chromium Blog: Introducing getUserMedia and the Javascript Gamepad API

    Today’s Chrome Beta release includes two new APIs: the getUserMedia API and the Gamepad Javascript API.

    The getUserMedia API lets users grant web apps access to their camera and microphone without a plug-in. This is the first step in enabling high quality video and audio communication as part of WebRTC, a powerful new real-time communications standard for the open web platform.

    In addition, getUserMedia can be combined with other platform features like CSS filters and WebGL to render effects as the <video> is captured. For example, you can rotate the video and add hipstery filters, play a xylophone with motion detection, try on glasses with face detection, and step into a photobooth with crazy effects like “Snow” and “Fire.” Follow WebRTC on Google+ for the occasional awesome demo update, and check out the video below for an in depth discussion of WebRTC at Google I/O.



    The Gamepad Javascript API helps developers access input from any standard gamepad connected to the user’s machine, creating a richer gameplay experience with these controllers. Gamepad access was made available for NaCl in May, and since its introduction has enabled awesome games like AirMech. We’re excited to see what developers will create in JavaScript.

    Tommy Widenflycht, Software Engineer and Real-Time Communicator
    URL: http://blog.chromium.org/2012/07/introducing-getusermedia-and-javascript.html