Archive | Technical RSS for this section

RIVER TRAIL – INTEL’S PARALLEL TO JAVASCRIPT

FUTURE: IMAGINE DOING PHOTOSHOP OR PLAYING CRYSIS ON WEB BROWSER

We live in a world where the need of Internet is felt on a daily basis.

NEARLY almost everything is done through it. Emphasis on ‘NEARLY’

That is because, while the use of web browsers have drastically changed over the years, doing heavy computing work e.g. photo-editing, gaming (not the FLASH kind) etc. is still requires one to leave the browsers and use a computer application.

This is not to say that web browsers are under-developed. From what I have read, a lot of investment has been done on improving the engine and speed. Yet, the ‘native applications’ have a upper hand in two aspects –

  1. They come with some form of vector extension that allows multiple operations simultaneously.
  2. Presence of multi-core processors.

Web browsers loose on both fronts as JavaScript, rightfully called the language behind the net, till now did not allow access to multi-core or vector instructions.

This is leading for top tech companies like Google to TRY replacing it with Dart. It’s time for Intel to upgrade JavaScript.

And it has – Enter River Trail, an open source parallel extension to JavaScript, which is currently being worked on in Intel labs. In simple words it does what exactly was lacking in web browsers – brings the processing power of Intel’s multi-core CPUs and their web extension to the web browsers.

This will make it possible to stay on the browser for heaving computing work from photo-editing to perhaps 3D gaming.

Now for understanding the ‘techie stuff’ behind the working of River Trail. This new open source code is made to feel as natural extension to JavaScript with just a simple ‘data-parallel modeling program’.

This is really the key – Parallel implementation is everything. It is WAY better than serial implementation. Think of it like electric circuit where parallel arrangement of batteries always gives more output.

The other cool top ups are –

  1. It works with upcoming HTML 5
  2. It uses OpenCL as an intermediate language (so can work on any hardware and not just Intel)
  3. It plays with WebGL (which brings 3D visualizations on web browsers)

And for the cautious or paranoid users – Don’t worry about the safety as River Trail was designed to inherit the security traits of JavaScript.

What does this mean in the future? Well, it definitely would not make ‘native applications’ obsolete but a complete new way of using browsers.

River Trail is already available on Firefox as an add-on. Let’s use it and see!

Read about it first on –

http://games.slashdot.org/story/11/09/16/1922243/River-Trail-mdash-Intels-Parallel-JavaScript

 

Further reads – 

https://github.com/RiverTrail/RiverTrail/wiki

http://blogs.intel.com/research/2011/09/pjs.php

http://www.i-programmer.info/news/167-javascript/3068-river-trail-intels-parallel-javascript.html

How websites work?

(Another Essay explaining the website functioning technically)

Ok. So now since we are already enlightened with the knowledge of ‘What is Internet and how it works?’ (I know it’s somewhere in back of your mind), I thought I would – for my own benefit – research and write about a prominent element associated with (and in) it – Website and talk about how it functions. Yes, its quite beautiful actually.

Website is the collection of inter-related web pages.

The web page is a text file which contains set of HTML tags that describe how the text should be formatted when a browser displays it on the screen. Using HTML, a web page may also display images, audio, or video. It may incorporate elements from other websites with suitable markup anchors.

The pages of a website can usually be accessed from a simple Uniform Resource Locator (URL) called the homepage. The URLs of the pages organize them into a hierarchy, although hyperlinking between them conveys the reader’s perceived site structure and guides the reader’s navigation of the site. Web pages are accessed and transported with the Hypertext Transfer Protocol (HTTP), which may optionally employ encryption (HTTP Secure, HTTPS) to provide security and privacy for the user of the web page content.

The website needs to be hosted on at least one web server, which is accessible through the Internet and whose primary function is to deliver web pages on the request to clients. Web servers are able to map the path component of a Uniform Resource Locator (URL) into a local file system resource (for static requests) or an internal or external program name (for dynamic requests). That is to say, the client’s user agent will translate URL requested by the end-user into a connection to combination of host (www) and domain name (e.g. – google.org) with a HTTP 1.1 request. The web server on website (www.google.org) will append the given path to the path of its root directory giving the local file system resource. It will then read the file, if it exists and sends a response to the client’s Web browser. The response will describe the content of the file and contain the file itself or an error message will return saying that the file does not exist or is unavailable.

To enable users to access, retrieve and view documents and other resources on the Internet, a software application is used called web browser, which acts an interface and brings information resources to the user.  The software component of the web browser that takes marked up content (such as HTML, XML, image files, etc.) and formatting information (such as CSS, XSL, etc.) and displays the formatted content on the screen is called web browsers engine (or layout engine). HTML is passed to the browser’s layout engine to be transformed from markup to an interactive document and display any kind of content that can be part of a web page.  Nowadays, web browsers include additional components to support e-mail, or Internet Relay Chat (IRC). More and more applications are being developed, which sometimes through addition plug-ins in the browser can be accessed.

Summarizing, to develop a website, it is essential that several different components work together in order for the Web to be accessible to people. These components include:

  • Content – it is the primal information in a Web page or Web application for which the user has accessed. This could be in form of –
  • Text, images, videos and sounds.
  • Code or markup language.
    • Web browsers – software which acts as an interface.
    • Web server – to host the website.

Plug-ins – a piece of software which enhances another software application and usually cannot be run independently.

 

Hope this helps. This is a short gist for basic TECHNICAL understanding. I mean there is always Wikipedia, but then how will I show, I know stuff if I do not write up. Wait for more!

What is Internet and how it works?

(An essay I wrote to explain the working of Internet technically for laymen, thus helping me understand it better)

Ok. On the face of it, it seems silly to even ask this. I am WE KNOW what Internet is. (“It’s this thing..this thing…umm..on my computer…that let’s me..facebook?”). OK fine. But how does it work. Come on. We must have all wondered about it sometimes. I am sure many know some bits of it. I was faced with this question by my mentor. Given the amount of hesitation and uncertainty I had in explaining it. I decided to read and write about it. So here it is –

The name is short form for internetworking. It’s a publicly accessible network for an interconnected computer networks which communicates by ‘packet switching’ communication method (transmits data in a sizable unit called ‘packets’) using Internet Protocol, a protocol standard meant for Internet, for routing across network boundaries.

Internet Protocol (IP) uses the Internet Protocol Suite which classifies the protocols into four hierarchical layers, each layer defining the scope and reach of the protocols as suggested in their name.

Lowest communication layer is the Link layer which consists of physical components that link up computers (LAN functions at this level).  It is called link as, it provides the basic connectivity functions interacting with the networking hardware of the computer and the associated management of interface-to-interface messaging.

Next is the Internet layer provides a way of communication between multiple computers across network boundaries. This is the foundation of Internet, thus deriving its name. It uses IP-bases packets that get transported to the destination host specified by an IP address.  This layer contains IP address, Internet Protocol Version 4 (IPv4) and Internet Protocol Version 6 (IPv6) which is used to identify and locate hosts on the network.  IP addresses consist of four numbers separated by dot where each number is called an octet.

Above it is the Transport layer which is responsible for delivering data to the appropriate application process on the host computers via a basic data channel. It does so by establishing a numbered logical construct called port which allocated specifically for each of the communication channels an application needs.  The Internet and Transport Layer combined are referred to as TCP/IP which forms the communication protocol for the Internet.

The last and topmost layer is the Application layer, which contains all protocols and methods within the context of process -to-process communication across the IP network, handles application based interactions.

Internet carries a range of information and services such as the World Wide Web, the interlinked system of hypertext documents which can be viewed as a web page via a web browser. Web pages frequently subsume other resources such as style sheetsscripts and images into their final presentation and may be retrieved from a local computer or from a remote web server. It is formatted using Hyper Text Markup Language (HTML). All aesthetics and design aspects present on the page can provided by Cascading Style Sheet (CSS) instructions.

As machines understand instructions in a particular way, to be able to communicate better with computers, programming languages were developed, which helped in controlling and creating programs. This has a significant impact on web, when scripting languages like Javascript or XUL were developed, so as to make the web pages more interactive.

Internet works using the client-server architect, where machines in the network are categorized into clients (which has an application or system that sends request and accesses a service made available like web browser Google Chrome) and server (which has program running to serve the requests like web server Apache).  The client initiates communication requesting for a specific resource using Hypertext Transfer Protocol (HTTP) to the server, which responds back with the content of the resources. It’s important to note that while server has a static IP address, client typically have IP address assigned by the Internet Service Provider for a particular session.

This is because as the numbers may be tedious to deal with, an IP address may also be assigned to a Host name (www), which is sometimes easier to remember. Hostnames may be looked up to find IP addresses, and vice-versa. Domain Name System (DNS) maintains the domain name hierarchy and provides translation services between it and the address spaces (an example being .com). In a domain name, each word and dot combination you add before a top-level domain indicates a level in the domain structure. It is the DNS that connect to each other across the Internet and cache lookup information to make name resolution more efficient.

To make the infrastructure and make the web easier to navigate, Web servers is able store a piece of text called Cookie on a client’s hard disk. Cookies allow a Web site to store information on a user’s machine and later retrieve it. The pieces of information are stored as name-value pairs. While they are not software and cannot be programmed, carry viruses, or install malware on the client, they can be used by spyware to track user’s browsing activities.

The popularity of internet has made it possible for various methods of communication between users on different network. One of most widely used one is Email, a method of exchanging digital messages from an author to one or more recipients, which uses a Simple Mail Transfer Protocol (SMTP) for sending mail. Another one is File transfer, which is the transmitting of files over a computer network or the Internet and uses File Transfer Protocol (FTP). Another major development is Voice over Internet Protocol (VoIP), which is a range of technologies, methodologies, communication protocols, and transmission techniques for the delivery of voice communications and multimedia sessions.

A new type of networking called Peer-to-peer (P2P) has become popular, which is a distributed application architecture that partitions tasks or workloads among peers.

In summary, the functions of internet cannot be attributed to one particular element or source. It keeps developing and growing organically, providing more and more ways to link the virtual world.

So I hope it made some sense…or was helpful in someway…No? Well, it’s knowledge, so just take it and leave it at the back of your mind. May help someday.