Google Launches Cloud Bigtable, A Highly Scalable And Performant NoSQL Database

With Cloud Bigtable, Google is launching a new NoSQL database offering today that, as the name implies, is powered by the company’s Bigtable data storage system, but with the added twist that it’s compatible with the Apache HBase API — which itself is based on Google’sBigtable project. Bigtable powers the likes of Gmail, Google Search and Google Analytics, so this is definitely a battle-tested service.

google-cloud-bigtable

“Cloud Bigtable is much the opposite — is designed for larger companies and enterprises where extensive data processing is required, and where workloads are more complex,” O’Conner tells me. “For example, if an organization needs to stream data into, run analytics on and serve data out of a single database at scale – Cloud Bigtable is the right system.

The new service is now available in beta, which means it’s open to all developers but doesn’t offer an SLA or technical support.

http://research.google.com/archive/bigtable.html

How to download youtube videos

Many people are not aware of this downloading youtube videos.

1. I hope few might be aware of tubemate app in android which downloads youtube videos in to your mobile directly.

2. Few might be aware of keepvid.com or similar sites to download youtube videos. But this doesnt work if your machine doesnt installed with java. Eventhough you install java..chances are less sometimes in working with this.

3. Few aware of download managers/chrome extensions where people struggle alot..

My best solution for downloading youtube videos is…….

Baidu Browser – download

06-03-2015 00-38-06

You can download audio/video from youtube/anysite..

Built in torrent software

video pop player and more..

 

 

HTTP/2 – The Rocket Booster of HTTP

http_21

What is a protocol?

You can think of a protocol as a collection of rules that govern how information is transferred from one computer to another. Each protocol is a little different, but usually they include a header, payload and footer. The header contains the source and destination addresses and some information about the payload (type of data, size of data, etc.). The payload contains the actual information, and the footer holds some form of error detection. Some protocols also support a feature called “encapsulation,” which lets them include other protocols inside of their payload section.

protocol

Introduction To HTTP/2:

HTTP2-graphic

Hypertext Transfer Protocol, the mechanism a browser uses to request information from a server and display webpages on your screen. A new version of the reliable and ubiquitous HTTP protocol was recently published as a draft by the organization in charge of creating standards for the internet, the Internet Engineering Task Force (IETF). This means that the old version, HTTP/1.1, in use since 1999, will eventually be replaced by a new one, dubbed HTTP/2. This update improves the way browsers and servers communicate, allowing for faster transfer of information while reducing the amount of raw horsepower needed.

So what it is exactly?? Will this re-write protocol?

It is not a ground-up rewrite of the protocol; HTTP methods, status codes and semantics are the same, and it should be possible to use the same APIs as HTTP/1.x (possibly with some small additions) to represent the protocol.

The focus of the protocol is on performance; specifically, end-user perceived latency, network and server resource usage. One major goal is to allow the use of a single connection from browsers to a Web site.

By Whom??

HTTP/2 is being developed by the Hypertext Transfer Protocol working group (httpbis, where bis means “repeat” or “twice”) of the Internet Engineering Task Force. HTTP/2 would be the first new version of HTTP since HTTP 1.1, which was standardized in RFC 2616 in 1999. The Working Group presented HTTP/2 to IESG for consideration as a Proposed Standard in December 2014, and IESG approved it to publish as Proposed Standard on Feb 17, 2015.

 

Origin From??

This standardization effort came as an answer from SPDY, an HTTP-compatible protocol developed by Google and supported in all major browsers.
A working group has been developing HTTP/2 since 2012 and adopted Google’s SPDY protocol as an initial blueprint, with community feedback resulting in “substantial changes” to the standard, such as the compression scheme and the format of protocol.

 HTTP/2 protocol

HTTP2

After more than two years of discussion, over 200 design issues, 17 drafts, and 30 implementations, the HTTP/2 and HPACK specifications have now been approved by the IETF’s steering group.

A key point in the protocol development process was the iteration the working group did between protocol updates, and implementations and testing. Certain draft protocol versions were labelled by the working group as “implementation drafts”, and the participants — many web browser and web server providers — updated their implementations and tested out the protocol changes. The result is a thoroughly validated protocol that has been shown to interoperate and that meets the needs of many major stakeholders.

Why is this important?

HTTP/1.1 has been in use since 1999, and while it’s performed admirably over the years, it’s starting to show its age. Websites nowadays include many different components besides your standard HTML, like design elements (CSS), client-side scripting (JavaScript), images, video and Flash animations. To transfer that information, the browser has to create several connections, and each one has details about the source, destination and contents of the communication package or protocol. That puts a huge load on both the server delivering the content and your browser.

protocol_communication

All those connections and the processing power they require can lead to slowdowns as more and more elements are added to a site.

People have been searching for ways to speed up the internet since the days when dial-up and AIM were ubiquitous. One of the more common techniques is caching, where certain information is stored locally as opposed to transferring everything anew each time it’s requested. But others have resorted to tricks like lowering the resolution of images and videos; still others have minfied the sources using grunt/gulp.  These options are useful, but are really just Band-Aids. So Google decided to dramatically overhaul HTTP/1.1 and create SPDY.

What is SPDY??

SPDY (pronounced “SPeeDY”) is a networking protocol whose goal is to speed up the web. SPDY augments HTTP with several speed-related features that can dramatically reduce page load time:

  • SPDY allows client and server to compress request and response headers, which cuts down on bandwidth usage when the similar headers (e.g. cookies) are sent over and over for multiple requests.
  • SPDY allows multiple, simultaneously multiplexed requests over a single connection, saving on round trips between client and server, and preventing low-priority resources from blocking higher-priority requests.
  • SPDY allows the server to actively push resources to the client that it knows the client will need (e.g. JavaScript and CSS files) without waiting for the client to request them, allowing the server to make efficient use of unutilized bandwidth.

The goal of SPDY is to reduce web page load time. This is achieved by prioritizing and multiplexing the transfer of web page subresources so that only one connection per client is required.

http_vs_spdy

SPDY-HTTPConnections

A short video to better understand SPDY: https://www.youtube.com/watch?v=WkLBrHW4NhQ

Goals of  HTTP/2:

Its many benefits include:

  • Multiplexing and concurrency:Several requests can be sent in rapid succession on the same TCP connection, and responses can be received out of order — eliminating the need for multiple connections between the client and the server.
  • allows loading page elements in parallel over a single TCP-connection
  • avoids the head-of-line blocking
  • makes it possible to transfer data simultaneously using multiple threads.
  • Stream dependencies:the client can indicate to the server which of the resources are more important than the others
  • Header compression:HTTP header size is drastically reduced
  • Server push:The server can send resources the client has not yet requested.
  • Improved Security

Differences from HTTP 1.1

HTTP/2 leaves most of HTTP 1.1’s high level syntax, such as methods, status codes, header fields, and URIs, the same. The element that is modified is how the data is framed and transported between the client and the server.

Websites that are efficient minimize the number of requests required to render an entire page by minifying (reducing the amount of code and packing smaller pieces of code into bundles, without reducing its ability to function) resources such as images and scripts. However, minification is not necessarily convenient nor efficient, and may still require separate HTTP connections to get the page and the minified resources. HTTP/2 allows the server to “push” content, that is, to respond with data for more queries than the client requested. This allows the server to supply data it knows a web browser will need to render a web page, without waiting for the browser to examine the first response, and without the overhead of an additional request cycle

Why is HTTP/2 better?

In a few words: HTTP/2 loads webpages much faster, saving everyone time that otherwise would go to waste. It’s as simple as that.

The example below, published by the folks over at HttpWatch, shows transfer speeds increasing more than 20 percent

https_page_load

Example of HTTP page load speed (above) against HTTP/2 (below)

http2_page_load

HTTP/2 improves speed mainly by creating one constant connection between the browser and the server, as opposed to a connection every time a piece of information is needed. This significantly reduces the amount of data being transferred. Plus, it transfers data in binary, a computer’s native language, rather than in text. This means your computer doesn’t have to waste time translating information into a format it understands.

Can I try HTTP/2??

Internet Explorer on Windows 10 Technical Preview (http2 draft-14 ALPN), but you can also use Mozilla and chrome developer editions.

Before you start double check, that ‘Use HTTP2’ option is enabled in the browser settings.

http2_options

Chrome and Mozilla Outlines roadmap for HTTP/2

Google outlined its plans, namely adopting HTTP/2 in the coming weeks with Chrome 40.

The current Firefox 35 version uses a draft ID of h2-14 and uses it to negotiate with google.com.

Firefox 36, currently in beta, will support the official final “h2″ protocol for negotiation next week.

Get to Know More:

https://http2.github.io/http2-spec/

https://www.ietf.org/blog/2015/02/http2-approved/

http://nghttp2.org/

HTTP/2

What is HTTP/2??

Before we dig into HTTP/2..You should know about SPDY protocol..

SPDY:

SPDY (pronounced “SPeeDY”) is a networking protocol whose goal is to speed up the web. SPDY augments HTTP with several speed-related features that can dramatically reduce page load time:

  • SPDY allows client and server to compress request and response headers, which cuts down on bandwidth usage when the similar headers (e.g. cookies) are sent over and over for multiple requests.
  • SPDY allows multiple, simultaneously multiplexed requests over a single connection, saving on round trips between client and server, and preventing low-priority resources from blocking higher-priority requests.
  • SPDY allows the server to actively push resources to the client that it knows the client will need (e.g. JavaScript and CSS files) without waiting for the client to request them, allowing the server to make efficient use of unutilized bandwidth.

The goal of SPDY is to reduce web page load time. This is achieved by prioritizing and multiplexing the transfer of web page subresources so that only one connection per client is required.

HTTP/2:

HTTP/2 is a replacement for how HTTP is expressed “on the wire.” It is not a ground-up rewrite of the protocol; HTTP methods, status codes and semantics are the same, and it should be possible to use the same APIs as HTTP/1.x (possibly with some small additions) to represent the protocol.

The focus of the protocol is on performance; specifically, end-user perceived latency, network and server resource usage. One major goal is to allow the use of a single connection from browsers to a Web site.

HTTP/2 is nearly done standardization; it has been approved by the IESG(The Internet Engineering Steering Group (IESG) is responsible for technical management of IETF( Internet Engineering Task Force) activities and the Internet standards process.), and should soon enter the RFC(Request For Comment) Editor’s publication queue.

You can see RFC for HTTP 1.1 here

HTTP/2 is comprised of two specifications:

Links to refer:

http://en.wikipedia.org/wiki/HTTP/2

https://http2.github.io/

http://http2.github.io/faq/

http://blog.teamtreehouse.com/making-the-web-faster-with-spdy

DART

What is DART?? Same question arises until i see here.

Know about DART..

Dart is an open-source Web programming language developed by Google.The goal of Dart is “ultimately to replace JavaScript as the lingua franca(In simple words,language independent) of web development on the open web platform”.Dart is a class-based, single inheritance, object-oriented language with C-style syntax. It supports interfaces, abstract classes, reified generics, and optional typing.

The project was founded by Lars Bak and Kasper Lund.

Usage
There are three primary ways to run Dart code:

Compiled as JavaScript
When running Dart code in a web browser, the primary intended mechanism is to pre-compile the Dart code into JavaScript using the dart2js compiler. Compiled as JavaScript, Dart code is compatible with all major browsers with no specific browser adoption of Dart being required. Through optimization of the compiled JavaScript output to avoid expensive checks and operations, code written in Dart can, in some cases, run faster than equivalent code hand-written using JavaScript idioms.
In the Dartium Browser
The Dart SDK ships with a version of the Chromium web browser modified to include a Dart virtual machine (VM). This browser can run Dart code directly without compilation to JavaScript. It is intended as a development tool for Dart applications, rather than as a general purpose web browser. When embedding Dart code into web apps, the current recommended procedure is to load a bootstrap JavaScript file, “dart.js”, which will detect the presence or absence of the Dart VM and load the corresponding Dart or compiled JavaScript code, respectively, therefore guaranteeing browser compatibility with or without the custom Dart VM.
Stand-Alone
The Dart SDK also ships with a stand-alone Dart VM, allowing dart code to run in a command-line environment. As the language tools included in the Dart SDK are written primarily in Dart, the stand-alone Dart VM is a critical part of the SDK. These tools include not only the dart2js compiler, but also a package management suite called pub. Dart ships with a complete standard library allowing users to write fully functional system apps, such as custom web servers.

Browser adoption

A special version of Chromium (the open-source browser at the core of Google Chrome) comes with the Dart virtual machine, allowing it to run Dart programs. As of May 2013, Microsoft Internet Explorer, Mozilla Firefox, Opera Software’s Opera browser, and Apple Safari have no plan to embed a separate Dart VM.

Dart source code can be compiled to JavaScript, allowing applications written in Dart to run in all modern web browsers. In the M1 version, released in October 2012, the generated JavaScript reached about 78% of the performance of hand-written JavaScript while native Dart code ran about 21% faster than similar code in V8.

Example

A Hello World example:

void main() {
  print('Hello World!');
}

A function to calculate the nth Fibonacci number:

int fib(int n) => (n > 1) ? (fib(n - 1) + fib(n - 2)) : 1;
 
void main() {
  print('fib(20) = ${fib(20)}');
}

A simple class:

// Import the math library to get access to the sqrt function.
import 'dart:math' as math;
 
// Create a class for Point.
class Point {
 
  // Final variables cannot be changed once they are assigned.
  // Create two instance variables.
  final num x, y;
 
  // A constructor, with syntactic sugar for setting instance variables.
  Point(this.x, this.y);
 
  // A named constructor with an initializer list.
  Point.origin()
      : x = 0,
        y = 0;
 
  // A method.
  num distanceTo(Point other) {
    var dx = x - other.x;
    var dy = y - other.y;
    return math.sqrt(dx * dx + dy * dy);
  }
 
  // Example of Operator Overloading
  Point operator +(Point other) => new Point(x + other.x, y + other.y);
}
 
// All Dart programs start with main().
void main() {
  // Instantiate point objects.
  var p1 = new Point(10, 10);
  var p2 = new Point.origin();
  var distance = p1.distanceTo(p2);
  print(distance);
}

How to start and where to start?

https://angulardart.org/

https://www.dartlang.org/ ( you can native dart editor from here)

Sources:http://en.wikipedia.org/wiki/Dart_(programming_language)

V8 Javascript Engine

V8 JavaScript Engine

V8 is Google’s open source JavaScript engine.

V8 is written in C++ and is used in Google Chrome, the open source browser from Google.

V8 implements ECMAScript as specified in ECMA-262, 5th edition, and runs on Windows (XP or newer), Mac OS X (10.5 or newer), and Linux systems that use IA-32, x64, or ARM processors.

V8 can run standalone, or can be embedded into any C++ application.

The V8 JavaScript Engine is an open source JavaScript engine developed by Google for the Google Chrome web browser.

V8 compiles JavaScript to native machine code (IA-32, x86-64, ARM, or MIPS ISAs) before executing it, instead of more traditional techniques such as interpreting bytecode or compiling the whole program to machine code and executing it from a filesystem. The compiled code is additionally optimized (and re-optimized) dynamically at runtime, based on heuristics of the code’s execution profile.

V8 is intended to be used both in a browser (notably in Chrome and Chromium browsers) and as a standalone high-performance engine that can be integrated into independent projects, for example server-side JavaScript in Node.js, or client side JavaScript in .NET/Mono using V8.NET.

For more: https://code.google.com/p/v8/

Same origin policy

Same-origin policy

The same-origin policy restricts how a document or script loaded from one origin can interact with a resource from another origin. Same-origin Policy is used as a means to prevent some of the Cross-site Request Forgery attacks.

Definition of an origin

Two pages have the same origin if the protocol, port (if one is specified), and host are the same for both pages. The following table gives examples of origin comparisons to the URL http://store.company.com/dir/page.html:

URL Outcome Reason
http://store.company.com/dir2/other.html Success
http://store.company.com/dir/inner/another.html Success
https://store.company.com/secure.html Failure Different protocol
http://store.company.com:81/dir/etc.html Failure Different port
http://news.company.com/dir/other.html Failure Different host