Online Privacy : A sad story

Using VPN and proxy services to remain anonymous

A VPN bypasses different geographical and ISP restriction. As it encrypts all the web traffic and provides users with a new IP address, it’s impossible for anyone to sniff the web traffic. This way law enforcement can’t track you if they don’t know who you are in the first place.

For VPN, the encryption process takes place before the data is transmitted to the ISP. But, why isn’t VPN so popular? Why isn’t VPN services being used by everyone around us? The actual reason could be people’s unawareness that doesn’t make privacy a chief concern. It must be noted that apart from an application, a VPN service tunnels your entire traffic and clocks it. It can also let you watch location restricted content on services like Netflix, Hulu, HBO Go, etc.

Using a proxy software, you won’t get the benefit of encryption. Also, a proxy simply anonymizes the traffic of a single application.

After setting up your VPN or proxy, you can visit sites like DNSLeak to test if  DNS is leaking. By visiting sites like, you can further confirm your privacy.

Private mode in browsers

While some of us know its true colors, many users assume that using the incognito mode will make them untraceable and it would also mean that they never “touched” that particular computer. Well, this isn’t entirely true, and the web browsers extenuate the real purpose of the term “private browsing.”

The incognito mode is just for private browsing. By using it, you can remain assured that your web browser won’t be keeping any history, cookies or passwords saved.

Google says: “Pages you view in incognito tabs won’t stick around in your browser’s history, cookie store, or search history after you’ve closed all of your incognito tabs. Any files you download or bookmarks you create will be kept.”

The other most popular web browser Firefox too describes the similar story. This means that your friends, roommate, kids or partner can’t open your PC and see what you’ve been up to lately.

This isn’t the whole story. These web browsers also tell that your Internet Service Provider (ISP) and your employer can still track the web pages you visit. So your browser won’t create a lump of temp files and history, but that’s not enough if you need a completely anonymous experience.

Google too can sniff your doings if you sign into one of its apps while browsing in incognito mode. Apart from this, the websites you visit may still have your records.

On the other hand, Safari and Internet Explorer don’t even bother to tell you that you’re browsing incognito and being watched by ISPs, app makers and your workplace network admins.

Issues while using third party apps and services

When The New York Times reported the popular inbox-cleaning app was providing anonymized user data to Uber as part of the ride-hailing company’s bid to crush competition from Lyft, the backlash was swift.

Outraged users took to Twitter, bashing the company and pledging to delete the service. CEO Jojo Hedaya quickly apologized, but it did little to quell the outrage. Later, cofounder Perri Chase wrote an impassioned defense of Hedaya on Medium.

“Data is pretty much the only business model for email and is not the only company that looks at, collects and sells your data,” Chase — who is no longer part of the company — wrote. “There was no intentional malice done by Jojo or anyone at”

Outside of Silicon Valley, distrust of tech companies runs deep.

Privacy Policy of an application or service

When in reality the problem is not that was scraping data from users’ inboxes and selling it (in anonymized form) to third parties, but the lack of transparency that this was happening. The company’s entire business model is predicated on data collection but nowhere on the company’s app, website, sign-up page, or anywhere else was that made clear.

Even if you took the time to read their privacy policy — and, let’s be real, no one does — it doesn’t explicitly spell this out. “We may collect and use your commercial transactional messages and associated data to build anonymous market research products and services with trusted business partners,” it says. But in no way does it make clear that is literally in the business of selling data.

That’s why promising to do better isn’t enough. Users have a right to know exactly how and when their data is being used. And it’s up to tech companies to make that clear — not bury it in privacy policies no one reads.

Android Apps

In Android, most functionality of your phone is provided by apps. And this includes making phone calls as well. Android lets you replace the dialer app on your phone with a custom one. This can be amazing and horrifying at the same time. It is amazing because it allows programmers to create interesting ways to call people. But it also allows the creators of malicious apps to secretly send your private data to their servers.

For tech-savvy people this isn’t such a big issue, trust only your phone manufacturer and open source apps and you’re golden. But things aren’t always so simple when people who aren’t familiar with the best privacy practices see these apps on their app store. On top of that, things can get out of your hand when a phone update replaces the default telephone app on your phone with TrueCaller.

I wanted to see just how bad the situation was and searched on internet and found this post about android dialer apps.


When you first install this app, it greets you with a permission request for your contact list and refuses to start without being granted the permission. But that’s not too suspicious, an app that you use for calling people, an app that advertises itself as “Contacts Phone Dialer” can have tons of valid reasons for needing access to your contacts. But unfortunately, the first thing this app does after getting the permission is serializing all your contacts into a big string and sending it over to their servers.

Asus Dialer

Asus Dialer is the app that comes preinstalled with Asus phones. In my tests, it didn’t send anything from my contact list to their server. Also, no communication was observed when calling other numbers. It is consistent with the opening paragraph that a telephone app by a phone manufacturer wouldn’t steal your data carelessly, it’s just unnecessary risk for them.

Dialer+ / Contacts+

An API call to an endpoint called ‘/report’ was made with every call I did. This API call included my email address, a token and the number I was calling. I assume a copy of my contact list was also sent but I was unable to take a screenshot of that.


TrueCaller, the telephone app which another blogger was suspicious of, is also guilty in this regard. It sends all your call start-end times and some more data such as outgoing call and number dialed events to an analytics server. On top of that, it keeps track of calls and reports to their server when they start and end, along with the number called and a client ID.

This extensive collection of information is enough to gather when you to talk with people, and who you talk with. Since these apps are installed by a lot of people and your name is in their contacts list, even if you don’t install the apps you can still be tracked to a degree.

Browser in-built password manager and form filler

Nearly every web browser now comes with a password manager tool, a lightweight version of the same service offered by plugins like LastPass and 1Password. But according to new research from Princeton’s Center for Information Technology Policy, those same managers are being exploited as a way to track users from site to site.

The researchers examined two different scripts — AdThink and OnAudience — both of are designed to get identifiable information out of browser-based password managers. The scripts work by injecting invisible login forms in the background of the webpage and scooping up whatever the browsers autofill into the available slots. That information can then be used as a persistent ID to track users from page to page, a potentially valuable tool in targeting advertising.

The plugins focus largely on the usernames, but according to the researchers, there’s no technical measure to stop scripts from collecting passwords the same way. The only robust fix would be to change how password managers work, requiring more explicit approval before submitting information. “It won’t be easy to fix, but it’s worth doing,” says Arvind Narayanan, a Princeton computer science professor who worked on the project.

The Princeton research showed that information was also being funneled back to Acxiom, a massive consumer data broker. AdThink disputed that data was shared specifically with Acxiom, although the company acknowledged that data is routinely shared with third parties.

“The particular piece of code discussed in this study was experimental and is responsible for only a very tiny fraction of the data collected globally,” the company said in a statement. “At the time of writing this statement, this code has already been deleted with absolutely no impact on our advertising business.”

For Narayanan, most of the blame goes to the websites who choose to run scripts like AdThink, often without realizing how invasive they truly are. “We’d like to see publishers exercise better control over third parties on their sites,” Narayanan says. “These problems arise partly because website operators have been lax in allowing third-party scripts on their sites without understanding the implications.”



ADB and Fastboot for Andriod

What are ADB and Fastboot?

These two tools allow terminal commands to your phone directly from your computer via USB. They both serve different functions, but they can be installed with relative ease at the same time, so it’s helpful to have both. Here’s a (very) brief breakdown on what these tools do:

  • Android Debug Bridge (ADB): This tool allows you to send a wide array of terminal commands—including but not limited to basic Linux shell commands, plus some specialty developer commands—to your phone at just about any time (as long as you have debugging enabled on your phone). You can send commands while the phone is turned on and booted, or even when it’s in recovery mode. While ADB is often used in conjunction with rooting or modifying your phone, you can use ADB to send terminal commands to unrooted devices as well.
  • Fastboot: When you need to modify your phone’s firmware, fastboot is the tool you need. This allows you to send commands to the bootloader, which means you can flash/modify things like custom recoveries. You can’t flash whole ROMs with it, but it’s helpful for many things that ADB can’t do. Fastboot isn’t enabled for all phones, so you may have to check your specific device.

Both of these tools come with the Android SDK, however that’s an extremely large download that, frankly, most users who are interested in ADB and fastboot don’t need. Fortunately, Google recently made it easy to get these two without all the junk.

Disclaimer: These commands are intended to give you an idea of what you can do with ADB and fastboot. They are not direct instructions and not all commands work on all devices. It’s perhaps better to think of this as a glossary. Due to the sheer number and variety of devices and implementations in the Android world, it’s impossible to provide step-by-step instructions for every single device. Be sure to research your specific phone or tablet before throwing commands at it.


Manage Your Device with ADB

ADB has a wide variety of functions for managing your device, moving content to and from your phone, installing apps, backing up and restoring your software, and more. You can use ADB while your phone is plugged in to a computer. You can also use ADB with your device wirelessly by following these instructions. You’ll need to briefly connect your device to your computer with a USB cable for this to work, but it should only take a few seconds to execute these commands and then you’re good to use ADB wirelessly if you so choose.

adb devices
Function: Check connection and get basic information about devices connected to the computer.

When using ADB, this is probably the first one command you’ll run. It will return a list of all devices that you have connected to your computer. If it returns a device ID, you’re connected and ready to send commands.

adb reboot recovery
Function: Reboot your phone into recovery mode.

A lot of functions like flashing ROMs to your phone require you to boot into recovery mode. Normally, this requires you to hold down a set of buttons on your phone for a certain length of time, which is obnoxious. This command allows you to boot directly into recovery mode without performing the complex finger dance of your people.

adb reboot-bootloader
Function: Reboot your phone into bootloader mode.

Along the same lines as the previous command, this one allows you to boot directly to your phone’s bootloader. Once you’re in the bootloader, ADB won’t work anymore. That’s where fastboot comes in (which we’ll get to in a bit). However, much like the recovery command, it’s much easier to boot into your bootloader with a command on your computer than a complex series of buttons on your phone.

adb push [destination]
Function: Copy files from your computer to your phone.

The push command allows you to copy files from your computer to your phone without touching your device. This is particularly handy for copying large files from your computer to your phone like movies or ROMs. To use this command, you’ll need to know the full file path for both your source and destination. If the file you want to copy is already in your tools folder (where ADB lives), you can simply enter the name of the file as the source.

adb pull
Function: Copy files from your phone to your computer.

The pull command in ADB allows you to copy files from your phone to your computer. When pulling files, you can choose to leave out the destination parameter. In that case, the file will be copied to the folder on your computer where ADB itself lives. You can then move it to wherever you’d prefer like normal.

adb install
Function: Remotely install APKs on your phone.

You can use this command to install an app on your phone without touching it. While this isn’t a terribly impressive trick for an app that’s on the Play Store (where you can already remotely install, uninstall, and update apps), it’s quite handy if you need to sideload an app.

adb shell [command]
Function: Open or run commands in a terminal on the host Android device.

The adb shell command allows you to open a full terminal on the host device. Alternatively, you can type “adb shell” followed by a valid terminal command to execute just that one command by itself.

adb backup
Function: Create a full backup of your phone and save to the computer.

Backing up your Android phone is already something you can and should be doing automatically. However, if you need to create a complete backup before hacking away at something particularly risky, you can create a full backup with a single command. You don’t even need root access (though this may mean that some protected data can’t be backed up). There are some other parameters for this command.

adb restore
Function: Restore a backup to your phone.

The corollary to the previous command, adb restore allows you to point to an existing backup file and restore it to your device. So, for example, type “adb restore C:\[restorefile].zip” and your phone will shortly be back to normal.

adb sideload
Function: Push and flash custom ROMs and zips from your computer.

This command is a relative newcomer to the ADB field and is only supported by some custom recoveries. However, you can use this single command to flash a .zip that’s on your computer to your phone. Once again, this allows you to flash whole ROMs (or anything else you can flash with a .zip file) without touching your phone.


These commands are just some of the more useful ones you can use with ADB installed on your computer. You may not want to use it all the time for everyday tasks, but when you need them, you’ll be glad you have them.


Unlock and Modify Your Phone’s Firmware with Fastboot

As stated in our previous article, fastboot allows you to send commands to your phone while in the bootloader (the one place ADB doesn’t work). While you can’t do quite as many things here, the things you can do are awesome, including unlocking certain phones—like Nexuses and certain others—as well as flashing custom recoveries and even some ROMs. It should be noted, though, that not all phones support fastboot and if you have a locked bootloader, you’re probably out of luck here. Here are some of the most useful tools in fastboot’s arsenal.

fastboot oem unlock
Function: Unlock your bootloader, making root access possible.

When people go on about how “open” Nexus devices are, this is what they’re talking about. Most phones require a root exploit to gain superuser access and the ability to heavily modify your phone’s firmware. With a Nexus device, you can unlock your bootloader with a single command. From there, you’ll be allowed to install custom recoveries or give yourself root access.

It should be noted, this command will also completely wipe your phone. This means it’s a great command to run when you get a brand new phone, but if you’ve been using yours for a while, do a backup first.

fastboot devices
Function: Check connection and get basic information about devices connected to the computer.

This is essentially the same command as adb devices from earlier. However, it works in the bootloader, which ADB does not. Handy for ensuring that you have properly established a connection.

fastboot flash recovery
Function: Flash a custom recovery image to your phone.

Flashing a custom recovery is an essential part of the ROM-swapper lifestyle. As with everything else in this list, you can install a custom recovery on your device without touching it by using this command.


Original Post –

What is IPv4 and IPv6

The internet is a gigantic network of computers across the globe. Billions of devices communicate with each other on daily basis to send and receive data. For instance, when you access a website, you’re communicating with the server computer hosting the website. You send a request for the website and the server sends the relevant data to you.

You just don’t bump into a random server and start requesting for website data. You type the website’s name in your web browser, which, then asks the DNS server to resolve the IP address of the server where the website is hosted. Then a connection is established with the server and a request for website data is made. The website then gets loaded on your web browser.

Where does the IP addresses come from?

These addresses, which look like, are the internet protocol addresses assigned to every device which connects to the internet. An IP address is the identity of a device on the internet. It is also useful in routing the internet traffic to and from that device. The data travels in the form of packets having the source and destination IP address in their header which enables them to reach the correct device.

The IP addresses are defined according to the Internet Protocol, included in the Internet Protocol Suite, which is a set of rules to manage how the data packets travel across the internet and reach their destination. Now, for instance, you send 10 packets to a destination. Each packet will know the destination IP address but it’s possible that the packets may take different paths to reach the destination, may not reach in the correct order, or may not reach at all. This is because IP is a connectionless protocol. It doesn’t care about the integrity of the data sent over the network.

An IP address is the identity of a device on the internet.

The connection-oriented Transmission Control Protocol, also a part of the Internet Protocol Suite, comes in for the rescue operation. TCP ensures that your packets end up safely on the destination computer. It establishes a connection between two communicating devices on the internet and keeps an eye on the order and reliability of the data packets reaching the end device. That’s why the IP is referred as the TCP/IP.


The IPv4 or the Internet Protocol version 4 (RFC 791) was originally used in the ARPANET. Although, it’s the fourth generation of the Internet Protocol but it is the first major version of the Internet Protocol that finds its application for most of the internet. There is newer IPv6 which is in the process of being deployed.

According to IPv4, the IP addresses are actually in binary numbers in the form of 0s and 1s. But they can also be written as decimal numbers separated by a dot. This is done to ensure that they don’t bounce over our heads.

The IPv4 uses a 32-bit address space which is equivalent to 4 bytes. It means that the total number of IP addresses on the internet can go all the way to 2^32. That’s roughly 4.3 billion addresses.


2^32 is a big number but it isn’t enough to accommodate the rising population of internet connected devices like laptops, tablets, smartphones, etc. Hence, the IPv6 protocol has been brought into existence. It has a big address space of 128-bits. And the total number of unique addresses are 2^128. So, the limit of IP addresses goes beyond the reach for many decades or maybe centuries.

The 128-bit IPv6 address looks a bit different than the IPv4 address. Each group separated by a colon (instead of a dot) represents 16-bits in the form of four hexadecimal digits . The 64 bits of the IPv6 address represent the network address which is used for routing and the rest 64 bits give details about the host’s network interface.

What’s the difference: IPv4 vs IPv6

The main difference between the IPv4 and IPv6 is their address space which takes IPv6 ages ahead of the IPv4 protocol. But it isn’t the only difference between the two. There are other things that make IPv6 a better option for the internet.



IPv4 is old and it wasn’t created with much security aspects in mind. It presumes that the endpoint applications have security measures of their own. Still, it has managed to come this far. But the IPv6 is designed to make the journey of the packets more secure. Things, like checking for packet integrity and encrypting the data, have been soldered to the IPv6 which was an attachment in the case of its predecessor.

The IPv6 protocol is designed to ensure end-to-end security over a connection. A major addition IPSec includes cryptographic protocols to enable secure data communication. Authentication Header (AH) and Encapsulating Security Payload (ESP) protocols are part of IPSec which enable authentication and data integrity. ESP also ensures the data privacy. Another main protocol is the Internet Key Exchange (IKE) protocol which is used to set up and establish shared security attributes between two endpoint devices.

IPSec is a major requirement for IPv6. But in the case of IPv4, the IPSec protocol has been implemented as an optional addition.

Fewer things in the head

In the case of IPv6, the packet header doesn’t have unimportant fields. It has only 8 fields in comparison to 13 in the case of IPv4. The extra fields are now optional header extensions. Also, the size of the header (40 bytes) is almost double of IPv4 (20 bytes). The less clutter in the header contributes to simplified packet processing in the router. Thus, making the processing more efficient and less time consuming.

Reduces the need of NAT

The IPv4 addresses are limited and have to be used for billions of devices on the internet. Hence, the concept of Network Address Translation came into existence. It allows a number of devices to use the same IP address. But wait, IP addresses are unique.

A pool of IP addresses starting from till can be used for private networks such as the ones in organizations or the one we have in our house. The public IP address is assigned to the router and the connected device are allotted to one of the private IPs.

When a packet originates from a device, it goes to the router which changes the source private address in the header with the public address and sends it towards the destination. Similarly, at the time of arrival, it removes the public address from the packet header and puts the private address of the recipient device on the network.

The IPv6 has plenty of addresses at its disposal, so, each device could have its own public address giving it a unique identity on the internet and say goodbye to NAT. This can be helpful in the case of applications like P2P file sharing, multiplayer games, VoIP, streaming, etc.

NAT brings along some benefits for the device by adding an extra layer of security. The devices are not directly visible on the network. IPv6 also has an equivalent of the IPv4 private address in the form of unique local address which is not routable on a global scale.

No Geographical Limitations

Since the US created the internet and internet protocol, the distribution of the IP address pool is also favored for the country. Almost 50 percent of all the IP addresses are reserved for the United States. But in the case of IPv6, there is no preference given to any particular region in the world.


Better Quality of Service (QoS) in IPv6

The concept of QoS is very much similar for the IPv4 and IPv6. The contrast lies in the header fields which differentiate the packet processing during the transmission. In the IPv4 header, the 8-bit DS (Differentiated Services) field is used to classify the packet and what kind of service it is associated with. This check is done at almost every intermediate router present in the packet’s path.

The IPv6 header makes the process easier. Its header includes a 20-bit Flow Label field which enables quick processing of the packets. It allows routers to identify and handle packets belonging to the same flow i.e. the packets originating from a particular source and terminating to a particular destination. The flow is recognized by the combination of packet source and the value of Flow Label. The delivery of the packets becomes more efficient and thus, the improves the QoS.

IPv6 Stateless Auto-Configuration

The IPv6 protocol incorporates a feature known as neighbor discovery. This enables machines and routers on a network to find and talk to each other. A device can autoconfigure its IPv6 address and inform other devices. This eliminates the requirement of a DHCP server to auto-configure IP address for the device, as in the case of IPv4. This process is known as stateless auto-configuration

But we can’t kick out DHCP altogether. The stateless auto-configuration is not applicable in practical network scenarios. Thus, IPv6 also supports DHCPv6 which enables stateful auto-configuration through a DHCPv6 protocol.

No backward compatibility

The people at the Internet Engineering Task Force, who designed the IPv6 standard, have expressed their regret on the fact that they didn’t make it compatible with the older IPv4. Actually, they visualized a situation wherein the devices would be running the IPv4 and IPv6 protocols simultaneously in dual-stack mode.

An alternative is to fake it till you make it. This can be achieved by tunneling i.e. putting IPv6 packets inside the IPv4 packets. Also, the network address and protocol translator (translate IPv6 packets into Iv4 packets) can be used to overcome this problem.

Winding Up

Other than the above-stated differences, the IPv6 also supports better multicasting features but doesn’t support broadcasting, unlike IPv4. The IPv6 is built upon the roots of IPv4 following many of its design concepts. This would enable a smooth shift from IPv4 to IPv6 over a period of time. Also, the two protocols are not compatible with each other. So, the devices will have to support both IPv4 and IPv6 protocols until the time IPv6 is omnipresent on the internet.

It’s no denying the fact that IPv6 is better than IPv4 in many aspects. It has been in existence for more than a decade. Yet, its deployment hasn’t been on the butter track despite the fact that the IPv4 address space is burning out. It might be due to constant improvement in the IPv4, like NAT and CIDR which enable efficient use of the limited IP address pool. Still, the IPv6 adoption has been on a slow rise.

Many leading domain name systems now support IPv6 addresses. For example, the Google public DNS. As per Akamai’s IPv6 adoption visualization, Belgium has the highest adoption rate of 41.3% followed by Greece at 24.9% and Germany at 23.3%. These number would rise in the future as more people, organizations, and governments are becoming aware of IPv6’s benefits.


Original Post –

Troubleshooting Windows 10

Being a Windows user, it can be any day when PC might run into problems. If we go back almost a decade ago, there weren’t many options for everyday users to fix things on the computers.

What made their situation difficult was the lack of technical know-how. The only feasible way out of the dilemma was to send an invitation to some tech support guy who would charge a hefty amount for a problem that may have required a couple of minutes to get fixed.

Time passed. Microsoft started issuing repair solutions in the form of Fixit executables that allowed even slightly aware users to repair broken things on their own. Now, talk about Windows 10. It includes a variety of built-in troubleshooting tools which can be of great help to the users in need.

How to fix broken things in Windows 10? Use Troubleshooters. Fast and easy.

Head over to Settings > Update & Recovery > Troubleshoot, Windows will shower many troubleshooters upon you. 19 in number, to be precise. It isn’t the fact that Microsoft added them with the launch of Windows 10 itself. They were scattered all over the system; many of the troubleshooters living in the old Control Panel that is slowly getting absorbed into the Settings app.

Each of these built-in Windows troubleshooting tools try to find and repair common issues associated with the software or hardware component it’s targeting.

Here is what you’ll find on the Troubleshoot screen:

Fix internet-related issues in Windows 10:

This troubleshooter can help when Windows 10 can’t connect to the internet or a particular website. The reasons could be many, for instance, the Windows firewall might be blocking the connection.


Fix audio issues in Windows 10:

The troubleshooter comes to rescue users at times when they can’t listen to their favorite music or audio while watching videos. Some audio-related problem might have surfaced.


Fix Printer related issues in Windows 10:

Problems may occur with the printing devices connected to the computer. The troubleshooter covers both physically attached printers and the ones connected via the network.


Fix Windows Update:

It tries to repair the issues which cause Windows from downloading updates. You might have seen a variety of errors being displayed on the Windows Update screen in the Settings.


Fix Blue Screen of Death error in Windows 10:

Also known as the Stop Error, this is probably the most common concerns faced by Windows users. But Windows 10 includes a dedicated troubleshooter that takes the problems in its hands. In case the BSOD error is not caused by some hardware malfunction, the troubleshooter might be able to repair it.


Fix Bluetooth related issues in Windows 10:

In terms of Bluetooth support, Microsoft’s latest OS has improved a lot. It has eliminated the need for a dedicated Bluetooth software we used to have on older Windows versions. Still, some problems can arrive uninvited. So, the Bluetooth troubleshooter in Windows 10 can fix issues that prevent Bluetooth devices from pairing with the OS.


Fix hardware problems in Windows 10:

Nowadays, Windows supports an uncountable number of devices. All you need to do is plug in the device in the appropriate port and it just works. But hardware related problems can range from corrupt drivers to people forgetting to plug in their device properly. The troubleshooter can display errors and fix them if possible.


Fix HomeGroup issues in Windows 10:

As you might already know, Windows users can view and share files and resources with other PCs that are a part of the same HomeGroup. But software issues might prevent them from sharing resources. The troubleshooter can find and remove the culprit preventing users from sharing their resources.


Fix incoming computer connections to Windows 10:

The troubleshooter is intended for the users facing difficulty while setting up remote desktop connections, etc. Incorrect firewall configuration might prevent incoming connections to the computer.


Fix Keyboard issues in Windows 10:

The innocent input device called keyboard can also run into problems. If the user isn’t some beast directing all of their power on the keyboard keys, the issue might be related to some software glitch which could be easily fixed by the keyboard troubleshooter.


Fix network adapter in Windows 10:

There can be problems with the network adapter drivers or some other software issue. The inability of your PC to load your favorite websites in your browser could be the fault of the network adapter. The reason could be outdated drivers, or the card may have malfunctioned. The network adapter troubleshooter checks all the adapters including the ones for ethernet, wireless, and virtual adapters.


Fix battery problems in Windows 10:

An important thing that concern PC user’s the most is the battery life. But sometimes, the system can’t utilize the full juice of the battery due to the changes made to the settings. For instance, the hard drive might be taking too long to enter sleep mode or power plan might be set to high.


Troubleshoot program compatibility in Windows 10:

The newest Windows as a service wants to shower Store-based UWP apps on the users. Still, many legacy software may not run on Windows 10. The troubleshooter checks what older Windows version would be required to run the software and configures the relevant settings.


Fix audio recording issues in Windows 10:

It checks various things such as if the audio service is responding or not, issues related to the microphone, the external mic has been unplugged, etc.


Fix Search Index in Windows 10:

If you can’t see files, emails, documents, and installed apps in Windows Search or your PC slows down when you use search, there might be some issues with the search index. The troubleshooter can check for problems and rebuild Windows search index if required.


Fix problems with shared folders in Windows 10:

Users having trouble accessing shared folders and files over the network can ask this troubleshooter for help. It may be possible that the user doesn’t have permission to access a particular, the tool would be able to inform that.


Fix Cortana related problems in Windows 10:

There could be times when Microsoft’s digital assistant Cortana has trouble conversing with you. She might be able to take voice input, or some audio issue may prevent you from hearing Cortana’s response. The speech troubleshooter fixes Cortana-related problems.


Movies and video not playing in Windows 10:

The video playback troubleshooter fixes issues that prevent a video or movie from successfully playing. It checks if there are any problems related to the video driver.


Fix problems with Store Apps:

This troubleshooter is intended to take care of any problems associated with the apps that users download from the Microsoft Store.


So, these were the troubleshooting tools deep-rooted in Windows 10. They might not be able to fix Windows 10 issues every time, but it is said that something is better than nothing. Microsoft could add more entries to the list in the future.


Original Post –



Programming Languages Basics

To communicate with a computer, we use computer languages or also known as programming languages. To write a program, we must use the computer languages. A computer language is a set of predefined words that are combined into a program according to predefined rules (syntax). Over the years, computer languages had evolved from machine language to high-level languages.


There are generally three types of computer languages. They are: 1. Machine Language, 2. Assembly Language and 3. High-level languages.


Machine Language

In the earliest days of computers, the only programming languages available were machine languages. Each computer has its own machine language which is made up of streams of 0’s and 1’s. The only language understood by a computer is the machine language. This language is tightly coupled with the computer hardware. It is difficult to write and maintain code in machine language.


Assembly Language

The next evolution in programming came with the idea of replacing binary code for instruction and addresses with symbols or mnemonics. Because they used symbols, these languages were first known as symbolic languages. The set of these mnemonic languages were later referred to as assembly languages. It is easy to write and maintain programs in assembly language than in machine languages.


 High-Level Language

Although assembly languages greatly improved programming efficiency, they still required programmers to concentrate on the hardware they were using. Working with symbolic languages was also very tedious, because each machine instruction had to be individually coded. The desire to improve programmer efficiency and to change the focus from the computer to the problem being solved led to the development of high-level languages.

Examples of high-level languages are:

  1. BASIC (Beginners All Purpose Symbolic Instruction Code).
  2. FORTRAN (Formula Translation).
  3. PL/I (Programming Language, Version 1).
  4. ALGOL (Algorithmic Language).
  5. APL (A Programming Language).
  6. COBOL (Common Business Oriented Language).
  7. RPG (Report Program Generator).
  8. LISP (List Processing).
  9. Prolog (Program in Logic).
  10. C++
  11. Java
  12. Visual Basic
  13. C




Programs today are normally written in one of the high-level languages. To run the program on a computer, the program needs to be translated into the machine language of the computer on which it will run. The program in a high-level language is called the source program. The translated program in machine language is called the object program. Two methods are used for translation: compilation and interpretation.


A translator is a program, which converts the code written in one language into another language. The widely used translators are compilers and interpreters.


A compiler is a translator which converts the program written in high-level language into assembly code or into another form of intermediate code or directly into machine code. A compiler converts the whole source code at once into object code and then executes it. So, compiler is faster than a interpreter.


An interpreter is a translator which converts the source program into object or machine code. The interpreter converts the source code line-by-line and executes it immediately, which results in less performance. Thus, an interpreter is slower than a compiler.


Generations of Programming Languages

There are five generations of programming languages. There are classified based on how close the programming language is to human beings.

First Generations Languages (1GL): The first generation language is the machine language. It consists of only 0’s and 1’s. It is very difficult write programs in machine language.

Second Generation Languages (2GL): The second generation language is the assembly language. Assembly language consists of symbols known as mnemonics, English words rather than 0’s and 1’s. Programs written in assembly language are converted to machine language using a translator known as assembler.

Third Generation Languages (3GL): The third generation languages are high-level languages which are similar to English. It is easy to write programs using high-level languages. Programs written in high-level language are converted to machine language by using a translator like compiler or interpreter. Third generation languages are problem oriented languages. Examples: C, FORTRAN, COBOL, PASCAL etc.

Fourth Generation Languages (4GL): The fourth generation languages are non-procedural languages. Programmers have to specify only what to do but not how to do it. These languages are developed for users having minimum programming language. Examples: SQL, ABAP etc.

Fifth Generation Languages (5GL): The fifth generation languages are declarative languages which are used in artificial intelligence and expert systems. Example: Prolog etc.


Different type of Cloud Services

Cloud platform is seeing rapid growth past few years and for many it is still very confusing with each service provider touting technical terms. Below are the few basic cloud services offered by various companies like  Google, Amazon, Microsoft and Salesforce. For a non IT person, below is perfect explanation in simplest terms.


Difference between different cloud services - Coding Security


SaaS Services

  • Email and Office Productivity: Applications for email, word processing, spreadsheets, presentations, etc.
  • Billing: Application services to manage customer billing based on usage and subscriptions to products and services.
  • Customer Relationship Management (CRM): CRM applications that range from call center applications to sales force automation.
  • Collaboration: Tools that allow users to collaborate in workgroups, within enterprises, and across enterprises.
  • Content Management: Services for managing the production of and access to content for web-based applications.
  • Document Management: Applications for managing documents, enforcing document production workflows, and providing workspaces for groups or enterprises to find and access documents.
  • Financials: Applications for managing financial processes ranging from expense processing and invoicing to tax management.
  • Human Resources: Software for managing human resources functions within companies.
  • Sales: Applications that are specifically designed for sales functions such as pricing, commission tracking, etc.
  • Social Networks: Social software that establishes and maintains a connection among users that are tied in one or more specific types of interdependency.
  • Enterprise Resource Planning (ERP): Integrated computer-based system used to manage internal and external resources, including tangible assets, financial resources, materials, and human resources.


PaaS Services

  • Business Intelligence: Platforms for the creation of applications such as dashboards, reporting systems, and data analysis.
  • Database: Services offering scalable relational database solutions or scalable non-SQL datastores.
  • Development and Testing: Platforms for the development and testing cycles of application development, which expand and contract as needed.
  • Integration: Development platforms for building integration applications in the cloud and within the enterprise.
  • Application Deployment: Platforms suited for general purpose application development. These services provide databases, web application runtime environments, etc.


IaaS Services

  • Backup and Recovery: Services for backup and recovery of file systems and raw data stores on servers and desktop systems.
  • Compute: Server resources for running cloud-based systems that can be dynamically provisioned and configured as needed.
  • Content Delivery Networks (CDNs): CDNs store content and files to improve the performance and cost of delivering content for web-based systems.
  • Services Management: Services that manage cloud infrastructure platforms. These tools often provide features that cloud providers do not provide or specialize in managing certain application technologies.
  • Storage: Massively scalable storage capacity that can be used for applications, backups, archival, and file storage.

Compare programming languages features side-by-side

Programming Languages commonly used features in a side-by-side format – HyperPolygot. Compare, refer and learn easily.



Pass the information on. Share this post and let your friends know too.  Thanks.

Who am I?   |   Contact me   |   Shop