Tuesday 10 January 2017

5 Best Apps to do Programming on Android Platform


C4droid – C/C++ compiler & IDE

C4droid is a very popular and user-friendly C/C++ IDE and compiler for Android platform. You can write and run C and C++ programs directly on your phone. It is a paid app and I personally used it. It is really great application for C/C++ programmers. Some of its features are mentioned below.

Features

Create your own applications on android device and run them even without internet accessSource code editor with syntax highlighting, tabs, code completion, code formatting, file association and undo/redoEasily export and share your programs as APKs or native executables (for terminal apps)No root access is requiredFull ANSI C and ISO C99 support with TCC (Tiny C Compiler) + uClibcSupports Git integrationCustomize the GUI, choose where to place tabs and buttons, various themes are also supported.

CppDroid – C/C++ IDE

CppDroid is another simple C/C++ IDE and compiler for android devices. It is focused on learning programming languages and libraries. I have also used this app and it is freely available. Lets take a look on some of its main features.

Features

code complete, real-time diagnostics (warnings and errors) and fixesfile and tutorial navigator (variables, methods, etc), static analysissmart syntax highlighting, auto indentation and auto pairing (configurable)compile and run C/C++ code (no root access required)works offline (no internet connection required), Dropbox support

Apart from this, it also provides so many tutorials, examples and projects that will help in learning C and C++ programming.

 

AIDE- IDE for Android Java C++

AIDE is an IDE for developing real Android apps directly on Android device. If you are an android or java developer then AIDE is a great app for you. It also allows C and C++ development. In short it is an all in one IDE which allows you to develop Android, Java, C and C++ projects on your mobile. AIDE also provide lessons that will help to learn Android app development and Java programming. Below I have mentioned some of its important features.

Features

Interactive lessons for Android, Java and Game developmentEdit, compile and run code with single click. No root access is required.Debug Android Java apps and Java Console appsReal-time error checking, Code RefactoringCode completion and syntax highlighting, Dropbox integration

C# To Go

If you love C# programming so much then C# To Go app will let you to do C# programming anywhere on your mobile. It is like having mini C# compiler in your pocket. C# To Go provides various features like code completion, syntax highlighting, etc. It is also a free app which can be downloaded from google play store freely.

 

QPython – Python for Android

QPython is a script engine that runs Python scripts and projects on android devices. It contains the Python interpreter, console, editor, and the SL4A Library for Android. It offers a great development kit which lets you easily develop Python projects and scripts on your phone.

Sunday 8 January 2017

Here are some best free apps to get some knowledge of the hacking


Hacking Tutorials 2.0

If you are a beginner who wants to gain a toehold in demystifying world of hacking, this hacking tutorial apps is the best way for you as it offers knowhow including the easiest way to perform hacking and enabling the protection of your device.

Hacking Tutorials

This is one of most informative Android hacking tutorials that explain almost all hacking techniques and practical applications; although the main intention of the creator of this application is education and protection

Hacking Knowledge

An awesome app that offers comprehensive theoretical and practical knowledge regarding computer hacking. Not only it enables broadening of knowledge, but also helps with the diagnosing any computer issue.

Computer Tricks Guide

Improve your technical life with smart and cool tips and hacking tricks. Learn a new trick regularly and astound your friends.

Hack Hackers

This is an extraordinary tutorial which offers you extensive knowledge regarding hacking techniques such as securing pen drives, WiFi addresses or Wireless routers.

Become Hacker

For becoming an ethical hacker, you need to understand the tricks of black hat hackers. This is among the best hacking tutorial apps for utilizing black hat methods.

Hacking Knowledge

It is a fact that hacking of any computer requires a comprehensive knowledge of multiple topics. Learning computer hacking not only offers a new career path but also enables the user to diagnose and correct computer issues, both of which is provided by this application.

Hacking+

Use this application to learn hacking android apps, and get comprehensive information regarding the phishing, footprinting, batch file viruses, and worms.

Hackers Reference

An excellent reference point for both pro and newbies, this application offers information regarding terms and their use in a hacking universe such as bot.net, difference between hex and binary.

WhiteHat Hacking Tutorials

A community-based effort, this hacking tutorial covers various tips and techniques that can be used to become a security professional and covers a vast range of topics such as hacking basics to security management techniques.

Hackers HandBook

This is one of the best android hacking tutorials with active participation technique that enables you to master hacking skills easily. It is best for beginners who want to learn advanced hacking techniques.

Improve Programming And Coding Skills


1. HackerRank :

The HackerRank Community is one of the largest learning and competition community for programmers. They have exercises related to Python, Java, SQL, C++, Linux Shell and lots more.  You will be able to learn new programming topics and techniques by going through the challenges on HackerRank. Many challenges will also involve a competition between your bots and the bots coded by other hackers, so may the best hacker win

2. HackerEarth :

HackerEarth is an online skill assessment tool for conducting programming tests to evaluate developers. Supports almost all famous programming languages.

3. CodeChef :

CodeChef was created as a platform to help programmers make it big in the world of algorithms, computer programming and programming contests. It is a not-for-profit educational initiative by Directi, an Indian software company and a global programming community that fosters learning and friendly competition.

4. Exercism :

Exercism is another tool to level up your programming and coding skills. Exercises are suitable for both code newbies and experienced programmers. You can download and pratice problems over 30 different programming languages.

5. Codeforces :

Codeforces is a Russian website dedicated to competitive programming. They provide different mode of services like — participation in the short (2-hours) contests, challenge/hack other contestants solutions, ability to solve problems from previous contests for training purposes and many other.

6. Sphere Online Judge (SPOJ) :

SPOJ (Sphere Online Judge) is an online judge system with over 200,000 registered users and over 20,000 problems. Tasks are prepared by its community of problem setters or are taken from previous programming contests. SPOJ allows advanced users to organize contests under their own rules and also includes a forum where programmers can discuss how to solve a particular problem.

7. CodingBat :

CodingBat is a free site of live coding problems to build coding skill in Java and Python. CodingBat problems work great as homework, or for self-study practice, or in a lab, or as live lecture examples. 

8. Project Euler :

Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve. Although mathematics will help you arrive at elegant and efficient methods, the use of a computer and programming skills will be required to solve most problems.

9. CodeEval :

CodeEval is a platform used by developers to showcase their skills. Developers can participate in app building competitions and win cash/prizes. They can also solve programming challenges as a way to impress employers with their technical skills.

10. TopCoder :

Topcoder is one of the world’s largest community of competitive designers, developers, and data scientists. Topcoder hosts fortnightly online competitive programming competitions—known as SRMs or “single round matches”—as well as weekly competitions in graphic design and development.

11. Google Code Jam :

Google Code Jam is an international programming competition hosted and administered by Google. The competition consists of a set of algorithmic problems which must be solved in a fixed amount of time. Competitors may use any programming language and development environment to obtain their solutions.

12. LeetCode Online Judge :

LeetCode OJ is a platform for preparing technical coding interviews. Pick from an expanding library of more than 190 questions, code and submit your solution to see if you have solved it correctly. Supports 9 programming languages: C, C++, Java, Python, C#, JavaScript, Ruby, Bash, MySQL.

That’s it enrich your programming and coding skill with the help of these websites and also don’t forget to share it with your coder buddy.

Wednesday 28 December 2016

How To Set-up VPN on Android Devices (No Software Needed)

With hackers and in fact sometimes our own governments lurking around, looking for just one opportunity to steal your data, you might want to give serious reconsideration before connecting. Somehow the idea of my bank credentials and personal information resting in someone else’s hands doesn’t seem to be very enthralling to me.

So how to overcome this problem? Simple just configure a Virtual Private Network (VPN).

 

A VPN would allow you to connect your device up to a secure connection to another network over the internet. In fact you can use it to access your home/company network while you are away, download apps which are not available in your country or simply keep your browsing and data secure over the public network.

So here is how to go about setting a VPN on your Android device:

Step 1. Go to Menu > Settings

Step 2. Now Click on More

Step 3. Now click on VPN and a screen like this one would open up:

Step 4. Now tap on the ‘+’ button at the right corner of the screen:

Step 5. Here enter a Name for the VPN connection, select the type of VPN server you are connecting to and enter the VPN server’s address and then click save.

Step 6. Now just tap on the created VPN to connect. You will be prompted to enter a username and password. After entering which you can connect to the VPN.

Once you are connected you will see a Key Icon / “VPN activated” notification in the notification drawer. In case you want to disconnect, simply tap on the notification and tap Disconnect.

Bonus Tip: In case you want to ensure that your data is always sent over a VPN, for instance while using a public Wi-Fi network all you need to do is this:

Connect to a VPN, save your account information and then click on the three dots icon at the corner of the screen. After that click on the ‘Always-On VPN’ icon to access this feature.

Note: I would advise readers to change their Screen Lock over from ‘Slide’ to ‘Pin’ or ‘Password’ otherwise they might get this error:

Also, sometimes you might be prompted with this:

Be careful because randomly entering passwords may cause your credential storage to be erased.

Now there is absolutely no need to freak out. Here is where our first tip would come in handy, just simply change your PIN and the question will go away as the credentials would have been forced to be updated.

Monday 26 December 2016

Switch Vs Router: Differences And Comparison Of Their Working Functionalities

Switches are very popular as a layer two device whereas a router is very famous for being a layer three device. So, what is that something special that makes router the most popular layer three device? We will take a look at all the differences and functional aspects of a switch and a router

Let’s take a look:

Switch vs Router — Comparison and differences

Switch’s properties:

Works at the Data link layer of the OSI layerUses ‘filter and forwarding’ when it receives a data packet in form of a frameA virtual LAN can be created using a Switch which inside the same LAN separates the LANs and make them virtual to each otherUsually comes with 24 to 48 portsTransmits Frames (layer 2 packets) and Layer 3 packets of the OSI modelUses its software for admin access and other configurationsHas its own memory for memorizing the devices connected over to the networkCan learn the MAC addresses and stores those addressed in a CAM (Content Addressable Memories)Supports Half as well as full duplex transmission modeA hub has only one broadcast domainCan support Spanning tree protocolNo packet collisions occur commonly inside a SwitchNo dynamic sharing of the bandwidth

Router’s properties:

Connects more than two networks unlike a SwitchWorks as a traffic police to direct a data packetCan be used for LAN, MAN, and WANIts packet is called a packet unlike a frame at layer two and electrical signal at layer oneIt works at layer three or also known as network layer of the OSI layerIt usually has 2-4-8 portsIt also stored Ip addresses in a table called Routing table and from there, it decides where to send the data packetIn router, every port has its own broadcast domainDynamic bandwidth sharingFaster processing than a switchCan perform Network Address Translations (NAT)

Working differences — Switch vs router

Before you proceed to further reading, have a look at the basic concepts of the different networking devices and hardware types — hub, switch, router, modem, bridge, repeater.

Let’s say around fifty computers are connected in a local area network. In the network, there is also a common resource from where computers can download data locally. So, this network forms a kind of a private network. However, when one of the computers would want to get some data from online sites like Facebook or Google, they will have to go to the internet and fetch the data and that makes a public network

So, when a computer wants to access a public network, it sends a data packet to the Switch which is the next immediate device in terms of data transmission. The switch opens up the packet and looks for the destination where the request packet wants to go.

The packet is directed for the public internet or world wide internet and Switch has no idea about it. So, Switch forwards this packet to the router — ‘The default gateway’. A router works as a gateway that is more like it is a door to the outside world and gets the data that a particular computer wants.

However, inside the campus, all the computers are a part of the private network which is not known to the outside world. So, it tweaks the private packet into the public packet and vice versa. This is called NATting which we will cover in the later topics.

What Is HTTP/2 And How It Works

HTTP 1.1 was a major move from HTTP 1.0 as it allowed persisted connections (more than one request/response on the same HTTP connection), improved caching, new status code, Enhanced compression support, OPTION method for Cross Origin Resource Sharing in web application and much more.

HTTP/1.1 has served the Web well for more than fifteen years, but its age is starting to show. Loading a Web page is more resource intensive than ever, and loading all of those assets efficiently is difficult because HTTP practically only allows one outstanding request per TCP connection.

Because of which, many TCP connections are created to issue parallel requests. And since there isn’t any limit on this; too many connections are used most of the times which leads to TCP congestion and unfair resource usage by browsers. It also means lots of duplicate data being transferred “on the wire”.

If too many requests are made, it hurts performance. This has led the industry to a place where it’s considered Best Practice to do things like spriting, data: inlining, domain sharding and concatenation. These hacks are indications of underlying problems in the protocol itself, and cause a number of problems on their own when used.

HTTP/2, on the other hand, enables a more efficient use of network resources and a reduced perception of latency by introducing header field compression and allowing multiple concurrent exchanges on the same connection. It also introduces unsolicited push of representations from servers to clients. This specification is an alternative to, but does not obsolete, the HTTP/1.1 message syntax. HTTP’s existing semantics remains unchanged.

At a high level, HTTP/2:

is binary, instead of textualis fully multiplexed, instead of ordered and blockingcan, therefore, use one connection for parallelismuses header compression to reduce overheadallows servers to “push” responses proactively into client caches