Thursday 1 June 2017

What is web spider and how does it works?

What is web spider and how does it works?
Web Spider - A Web spider is a program or automated script which systematically browses the World Wide Web in a methodical, automated manner. Spiders are used to indexing pages for web search engines. It's called a spider because it crawls over the Web. Another term for these programs is web crawler.

How does it work?
The usual starting points are lists of heavily used servers and very popular pages. The spider will begin with a popular site, indexing the words on its pages and following every link found within the site. In this way, the spidering system quickly begins to travel, spreading out across the most widely used portions of the Web. When the spider doesn’t find a page, it will eventually be deleted from the index. However, some of the spiders will check again for a second time to verify that the page really is offline.

The first thing a spider is supposed to do when it visits your website is look for a file called “robots.txt”. This file contains instructions for the spider on which parts of the website to index, and which parts to ignore. The only way to control what a spider sees on your site is by using a robots.txt file. All spiders are supposed to follow some rules, and the major search engines do follow these rules for the most part. Fortunately, the major search engines like Google or Bing are finally working together on standards.

Google began as an academic search engine. In the paper that describes how the system was built, how quickly their spiders can work. They built their initial system to use multiple spiders, usually three at one time. Each spider could keep about 300 connections to Web pages open at a time. At its peak performance, using four spiders, their system could crawl over 100 pages per second, generating around 600 kilobytes of data each second.

Keeping everything running quickly meant building a system to feed necessary information to the spiders. The early Google system had a server dedicated to providing URLs to the spiders. Rather than depending on an Internet service provider for the domain name server that translates a server's name into an address, Google had its own DNS, in order to keep delays to a minimum.

When the Google spider looked at an HTML page, it took note of two things - 1) The words within the page, 2) Where the words were found.

Words occurring in the title, subtitles, meta tags and other positions of relative importance were noted for special consideration during a subsequent user search. The Google spider was built to index every significant word on a page, leaving out the articles "a," "an" and "the." Other spiders take different approaches.

Crawlers can also be used for automating maintenance tasks on a Web site, such as checking links or validating HTML code.

Also, crawlers can be used to gather specific types of information from Web pages, such as harvesting e-mail addresses (usually for spam).

Sunday 21 May 2017

What is JavaScript?

What is JavaScript?
As per Wikipedia, JavaScript is a high-level, dynamic, untyped, and interpreted programming language. Alongside HTML and CSS, it is one of the three core technologies of World Wide Web content production. The majority of websites employ it and it is supported by all modern Web browsers without plug-ins. It also support object-oriented, imperative, and functional programming styles. It has an API for working with text, arrays, dates and regular expressions, but does not include any I/O, such as networking, storage, or graphics facilities, relying for these upon the host environment in which it is embedded.
Why every programmer should learn JavaScript?

Demand - As per GitHub and StackOverflow, JavaScript is more popular than any other languages and number one computer language  till date. JavaScript's matures and things like Node.js become increasingly viable options, the demand for JavaScript programmers will continue to increase.  JavaScript already surpasses C# as rated by demand, and is surpassed only by Java.

Higher paid - JavaScript pays better than C# but still Java pays a bit better right now. But as demand for JavaScript grows, we can expect the pay to increase as well. While the demand for JavaScript is evident, it is obvious that several languages that have a smaller demand actually pay better. I suspect this is because many organizations still think of JavaScript as the language that anyone can use.  It will be a very painful lesson when they find out that "Anyone can program in JavaScript" really means, "Anyone can write crappy code in JavaScript".

JavaScript is Maturing - With the recent commitment of the standards committee to release a new JavaScript standard every year, it is clear that the amount of Syntactic Sugar that will be added on to JavaScript is going to be increasing every year for a while now.  One of the best features JavaScript is the ability to use the async and await keywords in code to eliminate callback hell.

The browsers are also continually improving how they handle JavaScript code.  In the future when browsers not only cache the JavaScript files, but cache the compiled version of the JavaScript files.  Bringing us closer to near binary speed.

JavaScript Programmers Are More Equal Than Others - Many people who call themselves JavaScript programmers, but don't know the basics. And that is today. Imagine what this is going to look like three to five years from now. And don't forget that a lot of the tooling to support profiling and memory leaks is just at its infancy. If you have those skills today, and you have marketed yourself well, you are already realizing that a lot of what I'm saying here is true.

Frameworks Are Maturing - With the new version of Angular in the works, Aurelia in the works as an alternative. Commercial products such as Scencha's EXTjs.  Node.js for server side programing. Node.js for server side programing. And others No one can say that it is too hard to develop real applications using JavaScript. Even, you could write a desktop application that ran using nothing but JavaScript.

JavaScript Runs Everywhere - JavaScript runs on every major browser on every major platform. It runs on the server side on every major operating system.  Anyone writing a web site today of any major functionality is going to need someone who knows JavaScript to write the front end.  It doesn't matter what the back end code was written in be it Java, PHP, .NET, Node.js or something else, the client side is going to need a JavaScript developer.

JavaScript is a Compiled Language - It may shock you to know that, technically, JavaScript is a compiled language.  This has two implications.  First, once the code is compiled, it is possible for it to run as fast as any other executable.  Second, it is technically possible to write tooling for JavaScript that would create a binary file that does not need to be recompiled every time the code is loaded into memory.

JavaScript will dominate, but no one will write it - Future of JavaScript is different than others. If we don't write JavaScript, who will? Transcoding robots, that’s who. We'll write our code in any of a dozen dialects and the transcoding robots will turn it into something that the browser or Node.js understands. More and more code on GitHub can't run without being "compiled" by something. The most prominent are pinky-saving dialects, such as TypeScript and CoffeeScript, that strip away much of the punctuation that bothers some programmers. These are only the beginning because clever programmers have written transcoders for languages as diverse as Cobol, Java, Lisp, and C. All of them can now run in your browser after being lovingly translated and optimized for fast delivery and parsing.

Thursday 18 May 2017

What is phishing attack?

Phishing is a form of fraud in which the attacker tries to steal sensitive information such as usernames, passwords, and credit card details etc. The word is a neologism created as a homophone of fishing due to the similarity of using a bait in an attempt to catch a victim. The most common type of phishing scam, deceptive phishing refers to any attack by which fraudsters impersonate a legitimate company and attempt to steal people’s personal information or login credentials.
Communications purporting to be from social web sites, auction sites, banks, online payment processors or IT administrators are often used to lure victims. Typically a victim receives a message that appears to have been sent by a known contact or organization. An attachment or links in the message may install malware on the user’s device or direct them to a malicious website set up to trick them into divulging personal and financial information, such as passwords, account IDs or credit card details.

For example, PayPal scammers might send out an attack email that instructs them to click on a link in order to rectify a discrepancy with their account. In actuality, the link leads to a fake PayPal login page that collects a user’s login credentials and delivers them to the attackers.

Phishing is popular with cybercriminals, as it is far easier to trick someone into clicking a malicious link in a seemingly legitimate email than trying to break through a computer’s defenses. Although some phishing emails are poorly written and clearly fake, sophisticated cybercriminals employ the techniques of professional marketers to identify the most effective types of messages.

On the contrary, phishing is constantly evolving to adopt new forms and techniques. With that in mind, it’s imperative that organizations conduct security awareness training on an ongoing basis so that their employees and executives stay on top of emerging phishing attacks.

Monday 15 May 2017

What Is RemixOS 3.0 And How To Install It

What Is RemixOS 3.0 And How To Install It
Remix-OS_0011-1024x773 RemixOS is now making a new trend these days, so I thought to post a guide on What is RemixOS 2.0 And How To Install It On Your Computer. I think that too many people were waiting to get android interface on their PCs and that’s the reason why android emulators got so much popularity but now finally RemixOS is released for PCs to provide a perfect Android user interface to the users on a big screen. Now it’s possible to run Android operating system and all the Android apps on your PC, with the help of RemixOS, which is developed by Jide Technology.
So, now let’s get to our first question.

What Is RemixOS?

RemixOS is another brand new and very useful operating system. With RemixOS, you will be able to get android environment on your PC. This is going to be the best OS for android developers to test their apps and also for them who used Android emulators which run very slow to use some awesome android apps on PC. RemixOS will give you faster and smoother android user interface on your PC.

Hardware and Software Requirements

Jide recommends a system with the following specifications:
  • 2.0 GHz dual-core processor.
  • 2 GB of RAM.
  • 8 GB of hard drive space. (This is a hard requirement.)
  • Remix OS 3.0 32-bit (Download) or 64-bit (Download).
  • This package also contains a tool that installs Remix OS to a flash drive.
  • A formatted USB drive with at least 8 GB.
  • A second formatted USB drive with at least 512 MB or a CD/DVD (optional).
  • A computer to install Remix OS onto. (This is obvious :P)

Imaging Remix OS 3.0 on a USB Drive or DVD

Use Jide’s modified version of UNetboointo to burn the ISO of Remix OS onto a bootable drive. The program resides inside of the same package that contains the ISO file of Remix OS. The file name is “Remix_OS_for_PC_Installation_Tool”. Jide’s official instructions mention that USB 3.0 is required, but since you’ll be installing Remix onto a hard drive, you can ignore that.
Insert a USB drive (at least 8 GB) into your computer and run UNetbootin. This file is located inside of the package containing Remix OS. You will need to unzip the package, first.
After unzipping the file and running the program, first, click on Browse. Second, select USB Drive (not hard drive). Third, select the correct flash drive, if you have multiple USB flash drives inserted. Fourth, and last, click OK.


Installing Remix OS to a Hard Drive

This step is the most complicated out of all steps in this guide. First, you must boot from the drive with Remix OS installed using the appropriate F-key (normally F12). Second, highlight (but don’t initiate the installation process yet) the option for Resident mode and press E.
Remix 3.0 Installation Press E Key
You’ll see a list of Linux (or UNIX) commands. Use your keyboard’s directional keys to navigate to the entry "DATA = USB_DRIVE_1" and replace it with "INSTALL=2". It should look like this before you edit the text (To be edited text circled in red)
Remix 3.0 Installation Before Editing
After editing the text, it should look like this:
Remix 3.0 Installation After Editing
Remember that Linux is case-sensitive, so you must adhere to letter casing. After verifying that the correct command has been edited in, press F10. The installation process should begin. Installation and initial boot can take as long as 30 minutes.
Once it finishes, you’ll receive a prompt to install in English or two different dialects of Chinese. You’ll want English, most likely.

Installing the Google Play Store

Remix 3.0 includes the Play Store by default, although getting it working requires activation. If you do not possess internet access, this step won’t work. Fortunately, Remix includes all of the driver support contained in Linux.
The process is simple: double-click on the Play activator from the Remix OS desktop. From there, you’ll enter a guided activation configuration process.
Remix 3.0 Play Store Activation

Should You Install Remix OS 3.0?

If you own an old computer, then yes. Remix OS 3.0 captures everything that’s amazing about Android and makes it installable on most hardware. While it’s not completely open source, Remix’s developers fully abide by open source licensing.
Like its predecessor, Remix’s third iteration brings with it excellent app and system compatibility. Most x86 systems cannot run most Android apps because of fundamental logic differences between ARM code and x86. Remix uses a method called ARM emulation, which allows x86 systems to bypass this restriction. In a nutshell, if you love Linux’s low resource requirements, but dislike its app ecosystem, Remix OS 3.0 may win you over.
Have you tried Remix OS 3.0 yet? What were your experiences? If not, what are your thoughts on it? Let us know about it in the comment box below 🙂

Tuesday 9 May 2017

KDE vs Gnome - which one is better for you?

KDE vs Gnome - which one is better for you?

What is Desktop environment?
The term desktop environment refers to the graphical environment where you do your work. The desktop usually consists of a workspace with pretty icons and quite possibly a menu that pops up when you click on it, usually a panel on the top or the bottom and/or top of the screen with a menu and a lot of other practical services you may never even notice. The most important part of any desktop is the window manager, this is the application that handles window placements and movements. The window manager is what draws a border around your windows and makes them maximize, minimize, moves and behave according to your preferences.

There was a time when UNIX desktops were developed by big corporations. It took not just one but many large firms to come together to build a desktop for the UNIX OS. The end result was Common Desktop Environment (CDE), developed jointly by Sun Microsystems, HP, IBM and UNIX Systems Laboratories. To its credit, it was a popular desktop environment used in almost all UNIX systems, but it was not even close to fulfill decent desktop requirement for most users.

In 1996, the KDE project was started, followed a year later by GNOME, and the world of UNIX desktops changed for ever. It was quite surprising back then because neither KDE nor GNOME was a commercial project. Both started as open source, and both shared the same goal - to make Linux the best desktop operating system. But the philosophy was different. The KDE project wasn't concerned with open source idealism - that's why GNOME was born, to create a desktop environment with fully GPLed software. This philosophical disagreement led to two completely different and innovative desktop environments for Linux.

What is the better desktop environment?
Linux is like Lego. You can build your own desktop environment. Both KDE and Gnome are just big packages with software aimed to look and feel the same way, work well together and generally give you a nice experience. Linux newbies always get puzzled when the distribution's installation wizard asks them which desktop to install - KDE or GNOME. The answer is different for each individual. Linux veterans have great desktop environment brand loyalty - there is a very good chance that a KDE user will remain a KDE user, or a GNOME user will remain a GNOME user, for a long time. Both sets of users have their own set of favourite features that they are attracted to.


KDE and Gnome are complete desktop environments that consist of a large number of tightly integrated yet still separate pieces of software. Gnome usesa window manager called metacity, KDE uses kwin. Both these desktops can be used with any other window manager if you do not like the default choice.

Application that are "made for Gnome" or "made for KDE" can be used with any desktop. This only means that the program use a set of library functions found in their underlying gnome-libs or kdelibs. You do not need to use the actual desktops to use the applications, software made for KDE and Gnome can be used with any window manager / desktop as long as you got the proper libraries installed. There is no reason to use only applications made for the desktop you prefer, the "best software" for one task is made for KDE, the best for another task is made for Gnome. Use the best from both worlds.


Both KDE and Gnome can be customized to behave exactly the way you want. What desktop you prefer is your own choice and preference. When in doubt, try to learn both. Or experiment with other desktops. Remember, *nix applications are not locked to the desktop they are made for, Gnome applications can be used in KDE and vice versa. There is no "best desktop", but there is a desktop that's best for you. It's a matter of preference, and hardware.

Try them all. This is your choice. There are plenty of Live-CD Linux distributions that let you try both KDE and Gnome without installing anything at all. Knoppix is a nice alternative. Some people claim KDE is the best choice for beginners.

play Windows games on Linux

Linux operating systems gives the stability and security that Windows platform somewhere fails to deliver. But what about gaming? Linux users understand this pain. It will be a fare game to compare both on this aspect. Users who want to go with gaming will rarely use Linux and users who are comfortable with Linux operations will rarely go for Windows. Both are big competitors to each other and both have respective pros and cons. But when it comes to gaming then Windows leads Linux somewhere.
So, does this mean, can't we play games on Linux? Well it's not true and today we can easily play most of the Windows games on Linux system. Here are the some tools that will convert your Linux machine into a gaming ware.

1. Wine 

Wine is a compatibility layer which is capable of running Windows applications in systems like Linux, BSD and OS X. With the help of Wine, you can install and use a number of Windows games in Linux. WINE is a free and open source that allows Microsoft Windows to run on machines using Unix environment. WINE is quite famous for its software library Winelib which allows users to compile and port Windows apps to Unix platform.

2. PlayOnLinux

PlayOnLinux acts as the graphical front end for compatibility layer of Wine software. It is a powerful tool that allows you to club almost any Windows apps like MS Office, IE, video games with your Unix platform. It has different interface and slightly easier to use than Wine. Like Wine, PlayOnLinux too is free to use. You can browse the applications and games supported by PlayOnLinux on its database.


3. Steam

Steam is a digital distribution platform for video games. It provides you the option to buy and install games, play multiplayer and stay in touch with other games via social networking on its platform. The games are protected with DRM. A couple of years ago, when Steam announced support for Linux, it was a clear indication that gaming on Linux is being taken seriously. Though Steam's decision was more influenced with its own Linux-based gaming console and a separate Linux distribution called Steam OS

4. CrossOver

CrossOver is an improved version of Wine that brings professional and technical support to Wine. But unlike Wine, CrossOver is not free. Good thing about CrossOver is that every purchase contributes to Wine developers and that boosts the development of Wine to support more Windows games and applications.

5. VMware

VMware allows you to use popular games like WoW and SIMS on your Linux machine. So if you are looking towards playing high level games on your Linux machine then it is the best tool to go with.





These are the tools that you can try to install Windows games on your Linux machine. I think that's pretty much what you need to know to get started with gaming on Linux. If you are still not convinced, I would advise you to dual boot Linux with Windows. Use Linux as your main desktop and if you want to play games, boot into Windows.

Wednesday 3 May 2017

quantum computer and how does it work

In a world where we are relying increasingly on computing, to share our information and store our most precious data, the idea of living without computers might baffle most people.
The massive amount of processing power generated by computer manufacturers has not yet been able to quench our thirst for speed and computing capacity. But if we continue to follow the trend that has been in place since computers were introduced, by 2040 we will not have the capability to power all of the machines around the globe, according to a recent report by the Semiconductor Industry Association.

Will we ever have the amount of computing power we need or want? If, as Moore's Law states, the number of transistors on a microprocessor continues to double every 18 months, the year 2020 or 2030 will find the circuits on a microprocessor measured on an atomic scale. And the logical next step will be to create quantum computers, which will harness the power of atoms and molecules to perform memory and processing tasks.
Quantum computing is the area of study focused on developing computer technology based on the principles of quantum theory, which explains the nature and behavior of energy and matter on the quantum - atomic and subatomic level.
Quantum computing is still in the field of research and studies of theoretical computation systems that make direct use of the quantum - mechanism, such as superposition and entanglement, to perform operations on data. Development of a quantum computer, if practical, would mark a leap forward in computing capability far greater than that from the abacus to a modern day supercomputer, with performance gains in the billion-fold realm and beyond.
Quantum computers are different from binary digital electronic computers based on transistors. It follows the laws of quantum physics, which help to takes advantage of the strange ability of subatomic particles to exist in more than one state at any time. Due to the way the tiniest of particles behave, operations can be done much more quickly and use less energy than classical computers.
In classical computing, a bit is a single piece of information that can exist in two states – 1 or 0. Quantum computing uses quantum bits, or 'qubits' instead. These are quantum systems with two states. However, unlike a usual bit, they can store much more information than just 1 or 0, because they can exist in any superposition of these values.

Future of Quantum Computers

Last year, a team of Google and NASA scientists found a D-wave quantum computer was 100 million times faster than a conventional computer. But moving quantum computing to an industrial scale is difficult.

IBM recently announced its Q division is developing quantum computers that can be sold commercially within the coming years. Commercial quantum computer systems "with ~50 qubits" will be created "in the next few years," IBM claims. While researchers at Google, in Nature comment piece, say companies could start to make returns on elements of quantum computer technology within the next five years. 
But, quantum computers are still hard to manufacture because - scientists still have not found a simple way to control complex systems of qubits.

Thursday 27 April 2017

Go language and it's features

Go language and it's features
In past couple of years, there is a rise of new programming language: Go or GoLang. It is a free and open source programming language created at Google in 2007 by Robert Griesemer, Rob Pike, and Ken Thompson. It is a compiled, statically typed language in the tradition of Algol and C, with garbage collection, limited structural typing, memory safety features and CSP-style concurrent programming features added.

But what kinds of projects are Go best for building, and how is that likely to change as the language evolves through new versions and grows in popularity?
1. Network and Web servers -
Network applications live and die by concurrency, and Go's native concurrency features goroutines and channels, mainly are well suited for such work. Consequently, many Go projects are for networking, distributed functions, or services: APIs, Web servers, minimal frameworks for Web applications, and the rest. Go programmers like that the items they use most in such projects are either a part of the language, such as goroutines for threadlike behavior, or available in the standard library like Go's http package.

2. Stand-alone command-line apps or scripts -
It's easy to put out simple command-line apps that run most anywhere. It's another echo of Go's similarities to Python. The executables created by Go are precisely that: Stand-alone executables, with no external dependencies unless you specify them. Another advantage Go has here is speed. The resulting executables run far faster than vanilla Python, or for that matter most any other dynamically executed language, with the possible exception of JavaScript.

3. Desktop or GUI-based apps -
Right now, the culture of software around building rich GUIs for Go applications, such as those in desktop applications, is still scattered. That said, various projects exist there are bindings for the GTK and GTK3 frameworks, and another intended to provide platform-native UIs, although the latter relies on C bindings and is not written in pure Go. Windows users can try out walk, and some folks at Google are in the process of building a cross-platform GUI library.

4. System-level programming -
While Go can talk to native system functions, it's not as good a fit for creating extremely low-level system components, like embedded systems design, kernels, or device drivers. Some of this is a by-product of the language's intentions, since the runtime and the garbage collector for Go applications are dependent on the underlying OS.

Even though Go is very different from other object-oriented languages, it is still the same beast. Go provides you high performance like C/C++, super efficient concurrency handling like Java and fun to code like Python/Perl.

Saturday 22 April 2017

What is data mining?

Data mining is the process of discovering patterns in large data sets involving methods at the intersection of artificial intelligence, machine learning, statistics, and database systems. In other words, data mining is mining knowledge from data. It uses sophisticated mathematical algorithms to segment the data and evaluate the probability of future events.
While large-scale information technology has been evolving separate transaction and analytical systems, data mining provides the link between the two. Data mining software is one of a number of analytical tools for analyzing data. It allows users to analyze data from many different dimensions or angles, categorize it, and summarize the relationships identified. It also able to answer questions that cannot be addressed through simple query and reporting techniques. Generally, any of four types of relationships are sought:
  • Classes - Stored data is used to locate data in predetermined groups.
  • Clusters - Data items are grouped according to logical relationships or consumer preferences.
  • Sequential patterns - Data is mined to anticipate behavior patterns and trends.
  • Associations: Data can be mined to identify associations. The beer-diaper example is an example of associative mining.

Data mining tools and techniques

Data mining techniques are used in many research areas, including mathematics, cybernetics, genetics and marketing. While data mining techniques are a means to drive efficiencies and predict customer behavior, if used correctly, a business can set itself apart from its competition through the use of predictive analysis.
Web mining - a type of data mining used in customer relationship management, integrates information gathered by traditional data mining methods and techniques over the web. Web mining aims to understand customer behavior and to evaluate how effective a particular website is.
Other data mining techniques include network approaches based on multitask learning for classifying patterns, ensuring parallel and scalable execution of data mining algorithms, the mining of large databases, the handling of relational and complex data types, and machine learning.

Benefits of data mining

In general, the benefits of data mining come from the ability to uncover hidden patterns and relationships in data that can be used to make predictions that impact businesses. Today, data mining is primarily used by companies with a strong consumer focus - retail, financial, communication, and marketing organizations. It enables them companies to determine relationships among internal factors such as price, product positioning, or staff skills, and external factors such as economic indicators, competition, and customer demographics. And, it enables them to determine the impact on sales, customer satisfaction, and corporate profits. 
With data mining, a retailer could use point-of-sale records of customer purchases to send targeted promotions based on an individual's purchase history. By mining demographic data from comment or warranty cards, the retailer could develop products and promotions to appeal to specific customer segments. 

Sunday 16 April 2017

free and open source IDE for Linux user

free and open source IDE for Linux user
Nowadays people are turning toward programming and they are successfully building great applications. Linux an open source operating system is used worldwide on many desktops, servers and mobile devices. The main reason Linux is much loved is because it provides great security and stability, less expensive than other software's, protects privacy and user control over their own hardware.

Linux is everywhere and it has great benefits for programmers in Linux. If you love Linux programming you can really have a good career in system administration and learning Linux can sure shot land you with good job title in market.

As we all know that Programming is all about typing and typing. And our programmers constantly keep on searching and worrying about text editors to help them in their coding. At this point, knowing some of Best IDE’s comes in handy, to save your time and mental efforts. Many programmers learn to code by using a text editor, but in time they move towards using an IDE as it makes the art of coding efficient and quicker. To provide a sharpness into the quality of software which are available, for Linux.

Here is the list of all powerful IDE for Linux -

10. Geany - Geany is a lightweight IDE and it supports all major languages. It was designed specifically to provide a fast and small IDE, and it needs only the GTK2 libraries to remain independent from Desktop Environments. It has all basic features such as, auto-indent, syntax highlighting and auto-complete code or snippets etc. Geany is a clean and provides larger space to work in. So if you want a lightweight and pretty basic IDE for your development then go with Geany.

9. zend Studio - Developers of PHP use Zend for faster coding, resolving issues easily and to integrate freely inside the cloud. It has power pack of tools such as Zend Studio, PHP Unit and Composer which forms one stop shop for mobile app developers and PHP developers.

8. CodeLite - CodeLite is a free, open-source, cross-platform IDE for the C, C++, PHP, and Node.js programming languages. To comply with CodeLite's open source spirit, the program itself is compiled and debugged using only free tools for Mac OS X, Windows, Linux and FreeBSD, though CodeLite can execute any third-party compiler or tool that has a command-line interface. 

7. Gedit - Gedit is an IDE that comes pre-installed with the Gnome Linux dekstop environment. It is a very simple and small IDE but it can be customized to fit your working environment by installing plugins and configuring existing settings. Gedit does not provide the easiest way to install plugins but you can download the plugins and then install them manually.

6. KATE - It's the text editors that comes pre-installed with KDE desktop environment. KATE is a lightweight and fast text editors and it can open multiple files simultaneously. KATE is simple yet powerful IDE. It supports great number of languages and auto-detect the language sets the indentation for document automatically. Programmer can split window to work with multiple documents simultaneously. KATE has embedded terminal, SQL plugin, Find & replace, session support, syntax highlighting, smart comment and uncomment handling, bracket matching, KATE takes backup automatically so in case of crash or unexpected shutdown your work don't get lost.

5. Bluefish Editor - It is a free and open source development project targeted towards web developers and programmers.  If you are a web developer then Bluefish editor can be a good choice. It supports many advanced features such as auto-completion of tags, auto-indentation, powerful search & replace, support of integration of external programs such as make, lint, weblint etc.

4. Brackets - Brackets is the IDE developed by Adobe developers. It is the IDE for you if you're a web designer. There are several awesome features in Brackets that make it stand out. Brackets supports plugins to extend functionalities and installing plugins is really easy. Beside all the basic features such as auto-indentation, auto-completion and code highlighting, Brackets has advanced features that really help you while you're editing web pages and working with CSS, and some of which features are Inline editing, Editor splitting, plugins and many more.

3. Eclipse - Free, open-source editor made for heavy Java development. It is more advanced and robust. Eclipse is mostly written in JAVA and it is primarily used for developing JAVA applications. But, the language support can be extended by installing plugins. So with plugins support Eclipse becomes one of the best IDEs to develop programs in C, C++, COBOL, Fortan, Haskell, JavaScript, PHP, Perl, Python, R, Ruby and Ruby on Rails, Scheme and many more.

2. Atom - Atom is the IDE developed by Github and it is completely hackable which means you can customize it as you want. It supports large number of programming languages by default like php, javascript, HTML, CSS, Sass, Less, Python, C, C++, Coffeescript, etc. and you can extends it's languages supported by install plugin.

1. Sublime Text - The one that wins the list is obviously, Sublime Text. The lightest of all and feature rich IDE used by professional programmers. Besides all the basic features, Sublime has the most powerful features that let programmers do coding really fast. Sublime has so many powerful features like code highlighting, auto-indent, auto-completion and all basic features, Sublime has all of them packed. Sublime Text contains 22 different visual themes, with the option to download additional themes and configure custom themes via third-party plugin. Sublime Text is the popular replacements and main competitors - Atom, BBEdit, TextMate, Notepad++, Emacs, vim, Brackets, Visual Studio Code, and others.

What is AI and how it will change our future?

What is AI and how it will change our future?
Since the invention of computers or machines, their capability to perform various tasks went on growing exponentially. Humans have developed the power of computer systems in terms of their diverse working domains, their increasing speed, and reducing size with respect to time.

A branch of Computer Science named Artificial Intelligence (AI) is usually defined as the science of making computers do things that require intelligence when done by humans. AI has had some success in limited, or simplified, domains. However, the five decades since the inception of AI have brought only very slow progress, and early optimism concerning the attainment of human-level intelligence has given way to an appreciation of the profound difficulty of the problem.

According to the father of Artificial Intelligence, John McCarthy, it is “The science and engineering of making intelligent machines, especially intelligent computer programs”. Artificial Intelligence is a way of making a computer, a computer-controlled robot, or a software think intelligently, in the similar manner the intelligent humans think. AI is accomplished by studying how human brain thinks, and how humans learn, decide, and work while trying to solve a problem, and then using the outcomes of this study as a basis of developing intelligent software and systems.

We’re seeing ongoing discussion around evaluating AI systems with the Turing Test, warnings that hyper-intelligent machines are going to slaughter us and equally frightening, if less dire, warnings that AI and robots are going to take all of our jobs.  In parallel we have also seen the emergence of systems such as IBM Watson, Google's Deep Learning, and conversational assistants such as Apple's Siri, Google Now and Microsoft's Cortana. Mixed into all this has been crosstalk about whether building truly intelligent systems is even possible.

How AI will change our future?
Humanity is moving forward at great strides, or at least at the technological level. No aspect of our lives goes by without technology touching it somehow, either for better or worse, and we’re only in the beginning stages. So what’s in store for the future? Robots and artificial intelligence, and further down the long, winding path of history, transhumanism, the cherry on the cake. While robots and AI are not new, it’s taken some time to develop them.

Around 200 years ago the industrial revolution immutably remoulded society. Today another revolution is underway with potentially even further reaching consequences. Modern robots can now replicate the movements and actions of humans, the next challenge lies in creating autonomous, self-thinking robots that can react to changing conditions. Artificial intelligence promises to give machines the ability to think analytically, using concepts and advances in computer science, robotics and mathematics. Once they are perfected, nothing will be the same. Here is the fields AI will affect our lives -

1. Better Weather Predictions - Predicting the weather accurately can be tricky, especially when you have to go through large volumes of data, but thanks to artificial intelligence software currently being developed that may soon change. The software will be able to sift through all the available data, get a clearer and better picture of approaching weather phenomena and issue the corresponding early warnings, thus saving lives.

2. Tackling Household Chores - One of the earliest promises of AI described in science fiction from Isaac Asimov to the Jetsons was robots that could perform household chores and eliminate the drudgery from the workplace. That promise has been fulfilled in part by the programmable robotic vacuum cleaner in your home, which can maneuver around obstacles like stairs, furniture and even the cat. Intelligent robots will not only clean your living room and do the dishes, but may also tackle jobs like assembling furniture or caring for kids and pets.

3. Autonomous Transportation - The autonomous, driverless car, is already here thanks to Google, and several US States have already passed legislation allowing them to roll down the road. The technology uses a LIDAR laser radar system and a range finder. The system allows the vehicle to generate a detailed 3D map of its environment. The car then takes these generated maps and combines them with high-resolution maps of the world, producing different types of data models that will allow it to drive itself.

4. Space Exploration - Artificial intelligence and robots will play a major role in space travel in the not-so-distant future. NASA already depends on unmanned shuttles, rovers and probes to explore distant galaxies that would take years for humans to reach. Autonomous land rovers have recently given researchers a treasure trove of data and photographs collected from the Martian surface, where inhospitable conditions make human exploration impossible. These smart vehicles sense obstacles, like craters, and find safe paths of travel around them before returning to the shuttle.

5. Always on Guard - Artificial intelligence is widely used to protect families from burglaries and the country from terrorist threats. The U.S. Department of Homeland Security uses an array of AI technology to safeguard the nation, including virtual smart agents to supplement its human workforce, and sophisticated software monitoring systems, which scan phone calls and other communications by sifting through large volumes of data quickly and sorting out casual conversations from potential threats. Modern home alarm systems that use AI distinguish between occupants and unknown persons.

AI is also a fundamental part of the concept of the Internet of Things – a world where machines and devices all communicate with each other to get the work done, leaving us free to relax and enjoy life.

However, as we've previously seen with the internet revolution, and the big data revolution, and all the other technological revolutions of recent times, there are obstacles to be overcome before we reach this technological utopia. As businesses scramble for their share of a $70 billion market, some will inevitably prosper and some will fail. Those that manage to succeed are likely to be those which can manage to see beyond the hype – and answer hard questions about how this technology can add real value and drive positive change.

What is WebGL and how does it work?


Web Graphics Library (WebGL) is a javaScript API for rendering 2D and 3D graphics within web browser without the use any plug-ins. It is derived from OpenGL's Embedded Systems (ES) 2.0 library which is a low-level 3D API for phones and other mobile devices. WebGL provides similar functionality of ES 2.0 and uses the HTML5 canvas element to performs well on modern 3D graphics hardware.

WebGL is written in a mix of JavaScript and shader code that is written in OpenGL Shading Language, a language similar to C or C++, and is executed on a computer's GPU.

In 2007, Vladimir Vukicevic, an American-Serbian software engineer started working on an OpenGL prototype for Canvas element of the HTML document. By the end of 2007, both Mozilla and Opera had made their own separate implementations. In early 2009, the non-profit technology consortium Khronos Group started the WebGL Working Group, with initial participation from Apple, Google, Mozilla, Opera, and others.

Version 1.0 was released in March 2011 and some early adopters and users of WebGL including Google Maps and Zygote Body. Autodesk also ported many of their applications to the cloud, running on local WebGL systems. Some of the browsers that support WebGL include Google Chrome, Mozilla Firefox, Internet Explorer, Opera, and Safari. It is also supported by a number of mobile browsers including Opera Mobile, WebOS, and MeeGo.

How does it work?

WebGL is slightly more complicated than your typical web technologies because it’s designed to work directly with your graphics card. To access WebGL content you need to have a browser that supports it. Also, having a good graphics card will likely improve WebGL performance on your computer. This is what allows it to rapidly do complex 3D rendering involving lots of calculations.

When programming in WebGL, you are usually aiming to render a scene of some kind. This usually includes multiple subsequent draw jobs or calls, each of which is carried out in the GPU through a process called the rendering pipeline.

In WebGL, like in most real-time 3D graphics, the triangle is the basic element with which models are drawn. Therefore, the process of drawing in WebGL involves using JavaScript to generate the information that specifies where and how these triangles will be created, and how they will look like; colour, shades, textures, etc. This information is then fed to the GPU, which processes it, and returns a view of the scene.

The key metaphor here is that of a pipeline. GPUs are massively parallel processors, consisting of a large number of computation units designed to work in parallel with each other, and in parallel with the CPU. That is true even in mobile devices. With that in mind, graphics APIs such as WebGL are designed to be inherently friendly to such parallel architectures. On typical work loads, and when correctly used, WebGL allows the GPU to execute graphics commands in parallel with any CPU-side work, i.e. the GPU and the CPU should not have to wait for each other, and WebGL allows the GPU to max out its parallel processing power. It is in order to allow running on the GPU that these shaders are written in a dedicated GPU-friendly language rather than in JavaScript. It is in order to allow the GPU to run many shaders simultaneously that shaders are just callbacks handling one vertex or one pixel each - so that the GPU is free to run shaders on whichever GPU execution unit and in whichever order it pleases.


In the recent years WebGL bring lot of change the world wide web with 3D graphics and browser games. Even bring the 3D world map in our browser, and with the latest stable release of WebGL 2 it put one step ahead. In future we will able to see some more interesting implement in WebGL.

What is HTTPS? How does it secure your browsing?

 HTTP stands for Hypertext Transfer Protocol. When you enter HTTP:// in your address bar in front of the domain, it tells the browser to connect over HTTP. HTTP uses TCP over port 80, to send and receive data packets over the web.

Now, HTTPS stands for Hypertext Transfer Protocol Secure. When you enter HTTPS:// in your address bar in front of the domain, it tells the browser to connect over HTTPS. HTTPS also uses TCP to send and receive data packets, but it does so over port 443, within a connection encrypted by Transport Layer Security. It uses a public key which is then decrypted on the recipient side. The public key is deployed on the server, and included in what you know as an SSL certificate. The certificates are cryptographically signed by a Certificate Authority (CA), and each browser has a list of CAs it implicitly trusts.

Good news. Your information is safe. The website you are working with has made sure that no one can steal your information. Using HTTPS, the computers agree on a "code" between them, and then they scramble the messages using that "code" so that no one in between can read them. This keeps your information safe from hackers.

HTTPS was actually created by Netscape Communications back in 1994 to use in its Netscape Navigator web browser. HTTPS originally used the SSL protocol which eventually evolved into TLS.

The SSL layer serves for two main purpose :
  • It is confirmed after using HTTPS that you are talking to server directly that you are thinking of.
  • It also ensures that only server reads the data you sent over network. No else can read it.

An SSL connection between client and server is establish by handshake which focuses on below things :
  • To make sure that client is talking to right server
  • Both parties have agreed on a 'cipher' which includes which encryption they will use to exchange data.
  • Both parties should agree key for this algorithm

As soon as connection is established, both parties can used agreed algorithm and keys to securely send messages to each other. 

Monday 3 April 2017

step to Monetize YouTube Videos With AdSense – Detailed Guide

One of the easiest ways to monetize YouTube videos is to enable the monetization option for your YouTube account and link your channel with your Google AdSense Account.
Google AdSense is a Google program that helps publishers make money from their content. As a YouTube creator, you can join the publisher program to start making money from your videos.

YouTube Monetization with AdSense

Monetizing your YouTube videos with Google AdSense is one of the most common and easy ways to make money from your YouTube videos.
Once you have associated your YouTube channel with an AdSense account, you will have the option to submit your videos for monetization.
Your video will be approved for monetization if it passes YouTube monetization requirements. General criteria of meeting such requirements include your videos to be advertiser-friendly, and you owning the rights for the content to use it commercially.
In this tutorial, I will walk you through steps that you need to complete to monetize YouTube videos and start making money from your videos.

Summary of Steps – YouTube with AdSense

Here’s the summary of steps to associate YouTube account with AdSense for monetization if you know your way around both YouTube and AdSense.
  1. Go to your YouTube dashboard by clicking on your YouTube account icon and Creator Studio.
  2. From your Creator Studio dashboard, go to the Monetisation page under Channel Menu on your left sidebar (Channel > Monetisation)
  3. Under the “Guidelines and Information” section, you will see information about FAQ – “How will I be paid?”.
  4. Click on the AdSense Association page and follow the next step that directs you to AdSense and YouTube association page.
  5. Sign in with the Google Account that has AdSense enabled and the one that you want to associate with your channel.
  6. Once you have logged in, click to Accept the association on the page.
  7. You will now be redirected to your YouTube account and soon receive message and notifications to enable monetizations for your videos.
Follow the detailed guide below with all the steps that are involved in the YouTube monetization process with AdSense.

Link YouTube Account to Google AdSense

Follow the steps below to enable monetization on your YouTube account and link your YouTube account with Google Adsense.
Step 1: First, you will need to go to your YouTube Creator Studio dashboard. When you are on YouTube, click on your icon on the top left, and click on the Creator Studio button that takes you to your creator studio dashboard.

Step 2: When in Creator Studio, navigate to Channel > Monetization and here you should see an option to enable Monetization. Click on the Enable button and you will be guided to complete a monetization agreement.
Additional note: Your channel needs to be verified to complete this step. Getting verified status for your channel involves associating your phone number with your account.

You should be able to see your channel status as Partner Verified before you proceed with other steps.
Step 3: Once you enable the monetization for your account and complete the YouTube monetization agreement, there’s one more step left to do.
You now have the option to monetize your videos, but you will need to link your YouTube account to an Adsense account.
Step 4: At this point, check to see that your account is enabled for Monetization under the Account Status.
Although there’s no link or button to configure the AdSense account on this screen, there are few ways you can go ahead from here.
You should immediately receive an email outlining the steps that you need to take forward to be paid by YouTube.
Step 5: The email as you can see in the screenshot urges you to link to an AdSense account and provides you with a link that you can click and start the process.
Alternatively, you should get a notification bar on top of your dashboard urging you to link your channel to an AdSense account.
“Almost there! Don’t forget to link your channel to an AdSense account to earn money and get paid for your monetized videos.”
Step 6: Proceed by clicking on the link by using any of the methods above and you should see this “Welcome to AdSense” screen.
YouTube AdSense Account Setting up Screen
If you already have an AdSense account, you can simply sign in with the Google account that you have used to sign up for Adsense. If you are signed into AdSense already, you should see a screen that asks you if you want to sign in using the same address.

One important thing to note here is that you don’t need an AdSense account associated with the email account of your current YouTube account. You can link to your any other independent AdSense account.
Creating an AdSense account is another big topic but if you need to signup for an account – Sign in with your Google account first, and you will be guided to apply for an Adsense account.
You should obviously have used a Google account to setup a YouTube account but if you want your AdSense account to be on a different account you can click on “Create Account” and it’s easy to follow along.
Step 7: Assuming you have an AdSense account already, click on sign in and it will now take you to Step 2 in the process where it will simply list your YouTube channel under my website.
(The YouTube URL shown here is ID-based URL of your YouTube Channel. Learn how to claim custom YouTube URL here. )
Accept the Association with your Adsense account and it will redirect you back to YouTube Confirming all the details.
That’s all you need to do to link your YouTube account to AdSense account! You should now see options for AdSense settings and to review and change your AdSense association.
There’re few more steps that you need to do to start making money from your videos.

Enabling Monetization for YouTube Videos

Step 8: Like mentioned in the email that you receive after enabling monetization, you will need to go to your Video Manager and enable monetization on all of your videos published already on your channel.
You should also receive an email saying that your AdSense account association with YouTube has been approved and that you’re ready to start making money from your videos.
Click on monetize my videos to enable monetization on videos that you have already published on your YouTube Channel.
If you have many videos uploaded on your YouTube channel, you can monetize all your videos at once by navigating to Channel > Monetization. You will see your videos left to monetize on this page. Click on “Monetize Videos” (see screenshot).
Step 9: For videos that you upload after associating with an AdSense account, you will see an option to enable monetization for each of them directly in your upload manager.
When you upload your videos, go to your Monetization tab and flip the switch button for Monetize with Ads. You will also be asked to agree with the terms that you own the rights for the video and its content.

Ad Formats to Monetize YouTube Videos

As you can see above, you can choose from all the available Ad formats that will decide the type of Ads that will appear in your YouTube videos.
Here’s the list of all available Ad formats for YouTube videos that can help you decide to choose from. I recommend selecting all Ad formats so that YouTube can choose and decide itself to display the most relevant Ads to your viewers.
  • Display Ads – Ad sizes of 300×250 or 300×60 appearing on the right side of the videos on desktop devices.
  • Overlay Ads – Ad sizes of  468×60 or 728×90 appearing on the lower end of the videos on desktop devices.
  • Skippable Video Ads – Full sized video ads that play before your video in the player and can be skipped after 5 seconds. The Ad play on several devices and can be inserted before, during, or after the main video.
  • Sponsored Cards – Displays cards with related products featured in your video, on desktop and mobile devices.
You don’t see in the screenshot above under Ad formats options but depending on your account, you might also see options for Bumper Ads (6 seconds long, Non-skippable video ads) and Non-skippable video ads up to 30 seconds long, available to monetize Youtube videos that you upload.
I hope the tutorial was helpful to you in setting up monetization for your YouTube videos by linking to an Adsense account.
If you are just getting started on YouTube and looking for ways to make money with your videos, watch this short video from YouTube Creator Academy.