List of Open Source/Free Tools Every Developer Should Use

open source/Free tools every developer should use

As a developer, you have to shut down those distractions and deliver high-quality websites, app or software. Thankfully, productivity tools – developer’s best friends can help in creating awesome code.

These productivity and free tools can help you save time, communicate and collaborate on your projects. In short, they help in testing applications using repeatable infrastructure, collaboration, and communication easily.

Here’s a list of tools that can improve the productivity of a developer. These tools have been around for some time and have a great rep in the market. So without much ado, let’s start.

Development/Productivity Tools

Vagrant

Among DevOps tools, vagrant is widely used for the purpose of development and testing. It can be used to create a development or mimic the production environment. With Vagrant, developers can set up virtual machines by importing boxes (virtual machine templates) from the vagrant cloud, setting VM settings (like networking storage etc) and running provisioning tools like Puppet or Chef.

The best thing about vagrant is, a lot of application stacks comes bundled with the vagrant boxes. For example, if you want to develop on a LAMP stack, you can search for a LAMP box in the vagrant cloud. It will list all the available boxes developed by the community with LAMP versions. By using these boxes, you can save time in setting up the applications manually.

Vagrant lets you run sandboxed environments without messing up your workstation configurations. For example, If you want python 2 and 3 development environments, you can have two vagrant boxes running python 2 and 3.

Also, you can have your own chef cookbooks, puppet modules or ansible playbooks that can be used in the vagrant configuration file, which automates the configuration using a cookbook, module or a playbook.

Vagrant Use cases

  1. For repeatable development environments. You can share a vagrant file with other developers which will launch the same virtual machine as you have on your laptop. This avoids the configuration drift between developer workstation configuration.
  2. Load testing/ Mimicking Production environment: You can spin up vagrant boxes in a matter of seconds and destroy it for load testing or performance testing. Also, you can have a production like an environment by networking vagrant boxes together.

Also Checkout: DevOps Resource Page

Docker

If you are a developer, you will start loving this tool. Docker is an open source tool that allows developers to create and manage applications within Linux containers. Docker Hub, an online repository for docker images let download prebuilt docker images with most of the applications stacks. Developers do not need to create a VPS or mess up their existing configurations on their workstation – they can simply dive in to work on apps using these docker images.

The best part about docker is that it takes less than second to start a container.

An addition to Docker is Kinematic. Kinematic can install the Docker engine on your system. It automates the installation of Docker engine, Docker machine Virtual box backend, and other docker components. It has an excellent GUI for managing docker containers. Other features of Kinematic include the ability to search images, switching between CLI and GUI, managing ports, configuring environment variables, logs, etc. Docker is a suitable tool for creating an isolated environment.

You can also spin up containers on a vagrant box if you do not want a GUI application.

Packer

If you are someone you plays around with cloud VM’s, this tools is for you. This tool automates the image creation for your cloud provider. Also, the configurations that you write in packer are cloud agnostic. You can write a packer configuration for creating an image with specific application stack and use it with multiple cloud providers.

Also, you can use provisioners (Shell, Ansible, Chef etc..) to automate the application configuration in VM images.

Continuous Integration Tools

Jenkins

Jenkins is a widely adopted open source continuous integration tool, with a huge community support. It has a low learning curve. Just install it and use it to work with your Java or. NET projects. Docker images are available for most of the Jenkins versions.

Travis CI

Travis CI is a cloud-hosted continuous integration platform. You can use it for your open source projects. It is completely free and you don’t need a self-hosted CI setup if you use this service.

Shippable

Shippable is again a cloud-hosted CI/CD solution. It has a free and enterprise mode. Shippable uses docker containers for building your workloads. It’s pretty interesting. You should check it out.

Version Control Systems

GitHub

A development tool is incomplete without GitHub, a repository hosting service. It offers version control, SCM functionality and collaborating functionalities like bug tracking, task management, and others. It also offers social networking features like followers and feeds. Developers can access public repositories and submit their source code to the repositories. Also, being the largest code repository in the world, managing pull requests, and tracking issues is a breeze.

The downside of Github is that you won’t be able to create a private repository for free. However, there are paid option for private repositories.

Bitbucket

Bitbucket is a collaborative revision control system that uses Mercurial and Git. Developers can access, unlimited free private repositories, manage or share repositories, collaborate on code and much more. Bitbucket is also integrated with JIRA, a project management tool.

Gitlab

If you would like to have a Github-like setup for your own, you can go for Gitlab. Once setup, you can use it to host your application code in a well-managed way. If you hate configuring software, you can use the Gitlab docker image for a single line setup.

Cloud Services

We don’t always work on out workstation. You might want transient work environments that you can spin up on demand and tear it down when not needed. Here is where the cloud comes into play. Cloud is where the future of tech lies, integrate it with an artificial intelligence system and you get a rocking combination. With options like AWS, DO, Lightsail, developers can set up their own virtual private server in just a few clicks and pay money for the bandwidth they use in hourly basis.

AWS

AWS offers a power-packed solution with VPS and artificial engineering services like Athena, Polly, and Lex which can be utilized for developing your websites or apps ready with analytical and machine learning concepts. AWS is a must use application for developers looking for a robust infrastructure and affordable hosting solutions.

If you signup for an AWS account, you will come under a free tier program and you can spin up their services for free (Conditions apply).

DigitalOcean

DigitalOcean offers the best VPS in the market with powerful servers, lightning fast speed and awesome developer tools. The cloud instances in DO are referred to as droplets which can be deployed in just 55 seconds. It has made a whole lot of difference in the market with its intelligent strategies, low-cost solutions, and the best cloud offerings. With an extensive support through tutorials and groups, you will never have to face an unresolved issue.

If you can a $10 free credit if you signup using this link.

Lightsail

Another great product from the tech giant, Amazon, Lightsail offers developers an option of setting up their own VPS in just 3 clicks. Developers can get the benefit of AWS, without the hassle of learning complex services. Lightsail will do all the hard work – so you can focus on the important tasks at hand.

Docker Cloud

Docker cloud lets you orchestrate docker containers on the cloud. You can configure cloud providers like AWS, Azure or Google cloud as a backend for launching containers. Give it a try and you might like it.

Collaboration/Communication Tools

Asana

Asana is the best tool that can help you in collaborating with your peers. It offers an intelligent, integrated and adaptable project management system. With Asana, you can collaborate in real time. It also enables you to manage tasks or “to do’s” via email. Comments or notes can also be added to communicate directly inside Asana and make the tasks information-laden. Separate projects can be created and within your projects, you can create different tasks. In a nutshell, Asana is a great tool for project management. Other key features include – Workspace, Projects, Tags and Inbox.

Platforms – Mobile App – iOS, Android and Web app

Slack

Slack is a great tool for online communication. It is integrated with a long list of apps like Google Calendar, Skype, Trello, GitHub, Jira and much more. If you are looking for a tool to brainstorm, communicate and collaborate, Slack is the one!

Platforms – Web app, Desktop application – Mac, Windows and Linux, Mobile app – iOS, Android, and Windows Phone.

Trello

Trello is an exciting, visual project management tool that can organize projects into boards. It has almost every feature that, can you help you in the effective organization of your tasks. Developers can collaborate in real-time. Based on Kanban, it has a great UI and whiteboard layout where you can post your to-do lists, ideas in a fun way.

Platforms – Web app, mobile app – iOS and Android

Learning

Learning is a continuous process. There are many resources out there to help you out with the latest technologies. You can make use of those resources to keep yourself updated with the technology trends. You can check out the resources for learning from here. Online Websites to Learn Programming

Another resource,

  1. Get a Free pluralsight Subscription
  2. Get Linkedin Free Subscription

In the world of productivity tools and free, the ones listed here are the best. Use these tools and excel at your work!

If you think we have missed a wonderful tool, please let us know. We will add it to the list.

open source/Free tools every developer should use

Amazon to equip developers with [email protected]

what is amazon lambda@edge

Two years ago, Amazon Lambda was announced in the Re: Invent conference. And this year, Amazon has the tech world bouncing in excitement with new launches like Snowball, Lex, Lightsail and enhancements in EC2 and Lambda. The new launches in 2016 conference include Lex, Lightsail and Greengrass. The tech giant is pushing its cloud services to more heights with enhanced features. More power to the developers!

With AWS Greengrass, developers can focus on the Internet of Things. The future is in IoT and Amazon is making sure it has its weapons ready to fight with other tech companies in the future. So how does AWS Greengrass pair up with Lambda? It runs the serverless computing model of Lambda and allows developers to use the same serverless model in the IoT.

What’s is [email protected]?

In this year’s conference, new enhancements on Lambda have been announced, namely Step function and Lambda on the edge.

With [email protected], developers can directly attack the traffic coming on to Amazon’s CloudFront CDN nodes. In short, the apps will have better performance and efficiency as the traffic is not going back to AWS. The incoming traffic can be handled at the edge locations, which means a low network latency.

The server requests like HTTP are inspected by the functions and a suitable action is taken on them. The lambda functions can also be executed on external hardware (not using Amazon cloud or has connectivity to the Internet) using Greengrass. Lambda is also integrated with Snowball and can support tracing through X-Ray (which will enable developers to debug code easily).

Other functions of Edge include:
• Easier A/B testing through rewritten URLs and cookie inspection.
• Validate headers, tokens and modify the headers before forwarding the request to source.
• Send different content to users based on their device.

Note: You can learn lambda using hands-on labs using Ryans online courses. You can get this course on offer from here. AWS lambda 2016 course

A revision on Lambda

Lambda will run the code for you using a server-less model and the AWS infrastructure. Basically, developers just need to upload their code, create a Lambda function and select the event source like S3, Dynamo DB. Naturally, it can handle jobs like compute resources in response to any event like in-app activity.

AWS Lambda can also handle jobs like code monitoring, provisioning and server maintenance. So, developers don’t have to work on scaling, provisioning or managing servers! Developers can use Java, Node, Python or C#. And the best part, there’s support for all applications and backend services, no need to learn any framework and you can also work on native or third party libraries.

Pay as you go!

The price depends on the number of requests for functions and the execution time of the code. Developers can try it for free and the freebies include access to over 700 free software and AWS Cloud services for 12 months. Developers can query up to 1 million requests and 3.2 million seconds of compute time per month, free of cost.
Note: This free pricing model is available only for new customers!

In a nutshell, developers can deliver efficient apps and with the help of [email protected], Lightsail, CloudFront and Greengrass. Amazon is developing a complete suite for developers to work on IoT and cloud-based applications. This really helps Amazon in beating their competition and be one step ahead of the competition.

what is amazon lambda@edge

Amazon launches Amazon Lightsail, a VPS at just $5

Amazon lightsail - features and offerings

The king of e-Commerce and cloud computing services, Amazon announced Lightsail at the AWS re: Invent conference. Lightsail is a simple tool offering a breezy server management capability and massive data transfer capabilities. Developers can set up their virtual private servers, integrated with AWS.

Amazon Lightsail Features

The service is targeted to provide storage, computing and networking capabilities to developers and let them manage their work in the cloud. Lightsail is going to be a direct competitor to services like DigitalOcean with the basic variant starting from just $5 a month.

Amazon lightsail pricing

According to the AWS CEO, Andy Jassy, it has been designed keeping in mind the customers who don’t want to get into the nitty- gritty details of the underlying services. Developers are good to go with just a couple of steps – choose the operating system, storage, memory, etc and finalize a name to run your own VPS. Since Lightsail focuses on keeping it really simple by taking care of all simplifying complexities for end users, it is beneficial for the less technical users.

With this move, Amazon is concentrating on improving a vulnerable side of their business. It will cater to developers who are looking for low-cost offerings. Moreover, it is a fast and simple application which can launch a virtual private service with ease.

Lightsail AWS Integration

Since Lightsail is integrated with AWS, it will have all the features a VPS requires – power, reliability, and security. If the requirements increase, developers can also connect to the most advanced services like additional AWS database, messaging and others.

Lightsail includes all the essential components to get a head start on a project – DNS management, virtual machine, SSH connectivity SSD-based storage, data transfer and a static IP at affordable monthly prices. Amazon claims that developers can launch their own virtual private servers with just a few clicks.

Developers can choose their operating system – Ubuntu, Linux, etc, stacks or application like WordPress, Joomla or Drupal among many others.

Amazon lightsail wordpress and CMS

Then, server size needs to be selected. Lightsail comes in 5 size variations – 20 GB, 30 GB, 40 GB, 60 GB and 80 GB SSD disk. Once this is done, Lightsail will automatically launch the VPS, attach the selected storage, manage IAM, and create a security group, virtual private cloud, setup the DNS and IP addresses.

Other features include:

  • Server monitoring
  • Management console
  • SSH terminal access
  • DNS management
  • SSH key management

A lot of new features have also been added to AWS to make it more appealing. Athena, an analytic service that allows customers to pay for queries that are run. Artificial intelligence services like Lex, Polly and Recognition to build conversational interfaces, convert text to speech and perform machine learning, especially deep learning based image analysis. AWS Snowmobile is another service, which can move enormous data to the cloud.

amazon lightsail AWS integrations

Users can try Lightsail free for a month and you can sign in to your AWS account to try Lightsail or create a new account. AWS accounts also include 12 months of free tier access and use of Amazon EC2, S3, and Dynamo DB.

Amazon lightsail - features and offerings

List of the best programming languages to learn in 2017

best programming languages to learn in 2017

Programming Languages… AH! There are so many!! And it is really confusing to figure out which language you should learn. Should you choose C, the Yoda of languages or choose something like Python, Luke Skywalker of the geek world. Or maybe it could be between Java and Ruby. Well, whatever you learn or give up, it is difficult to decide. It’s like all the languages are attracting them towards you and you have no clue what to forego and what to choose! Let’s get down to business, shall we.

Best Programming Languages to Learn

We have compiled a list of the best programming languages you can learn, potential salary and community support. Maybe after reading this article, you might be in a better place to decide.

Scala

If there was a language that had the best of both functional and object-oriented concepts, then it is Scala. It is a rockstar programming language – it brings in real-time processing and is an object of admiration. It has unhindered access to Java as it uses the JVM. It can handle huge data with its libraries, match patterns and focuses on interactive development.

Other great features include support for big data and REPL. The downside is its compiler which is quite comparable to a Pentium 5 processor. It could do with some improvement, but overall it is forgivable for its follies.

Average Scala Developer Salary: $112,000

Java

Write anywhere, run anywhere – the mantra of Java is quite appealing for developers. It is an all-purpose friend, whether you are coding an application or planning to become a data scientist or a mobile app developer, Java can make your life easy! Since a large part of Android runs on Java, it is beneficial to learn to program in Java. Then you can probably start learning Android SDK and focus on app development in a full-fledged way.

Java has been in the business for a long time and has provided a foundation to many website and software structures. It can be used by data scientists as well, but it doesn’t provide the brilliance of R and Python.

If you want to learn a traditional language, then Java will be a safe bet. Many programming languages like Storm, Kafka, and Scala are running on JVM. So it looks like Java will be here for a long time to come! Java has nearly 9 million developers so you can expect exceptional community support

Average Java Developer Salary: $102,000

Python

Python is quite simple to learn and follows the conventional object-oriented programming concepts. R is not well suited to fit in as a comprehensive tool for data scientists. Python fills in those gaps as it is a lucid and practical tool.

Naturally, it is one of the best languages if you are planning to move in the field of data analytics, data science or big data. Since Python puts a lot of emphasis on readability; it is quite easy to understand the code written by others. You can also run machine learning algorithms using Scikit-learn, the native machine learning algorithm.

Python is the guy that everyone likes in the party. The community support has grown over the years and now it is a huge name in the geek community. A data scientist should know deep learning, a rising subject in the machine learning domain. And, python has all the capabilities and vibrant community to help you achieve their learning goals.

Average Python Developer Salary: $102,000

R

If Python is Leonard Hofstadter, then R is the annoying and unforgettable friend, Sheldon Cooper. It has been in the business ever since 1997 and is a great alternative to heavy tools like Matlab and SAS. Statisticians love R and it has great utility in the corporate world.

R might be intimidating for beginners, but give it some time and let it grow on you. R makes data manipulation and handling complex data, a child’s play. It has vibrant community support and new features are added constantly. It is a highly popular language among data scientists.

Average R Developer Salary: $62,000

Swift

Swift is a programming language developed by Apple. Earlier, Apple ecosystem was revolving around Objective C. But in an attempt to make things easier for developers, Apple released Swift, it’s very own programming language.

Why should you learn it? That’s quite simple, if you see yourself as an iOS app developer, you must learn Swift. The flaws in Objective-C have been addressed by Swift, so you can see a relatively clean, fast and error-free. It can also reduce the length of your code, saving you time and energy.

Moreover, it is open source, so developers can also develop on Windows or Linux systems, design their compilers and be assured that their apps are compatible with Apple devices.

Average Swift Developer Salary: $112,000

Ruby on Rails

Ruby is a favorite among developers, startups, and established businesses. Although its fame was dwindling a few years back, RoR has started regaining its popularity. Ruby has largely improved the framework and has brought agility and modular approach for developing new applications. It has a thriving community support and you can expect constant improvements in code and huge support.

Average Ruby Developer Salary: $103,000

NoSQL Databases

In the realm of big data analytics, NoSQL databases are something you cannot avoid. If you are looking for an opportunity in the Big Data domain, you should consider learning the following NoSQL databases.

1. MongoDB
2. Cassandra.

You can view the list of NoSQL databases from here.

Average NoSQL Developer Salary: $105,000

SQL

Languages might change, but database requirements will never see a shift. Enterprises are reliant on SQL and database technologies like MySQL, Microsoft SQL Server are widely in used. And since the demand is always high, there is no doubt that the salaries for database professionals are high.

Average SQL Developer Salary: $92,000

Languages worth considering

There are other upcoming languages which might not be that well known and have less community support. But these languages are slowly making their presence felt. Few of the languages worth checking out are:

Julia

Julia is a newbie here and has the potential to surpass R and Python. It will need some more time before it can compete with the established players. Data scientists must watch out for Julia which is a fast growing language and has the capability to revolutionize data crunching.

GoLang (Go)

Go or Google Programming language, is based loosely on C. It has gotten a lot of popularity in 2016 and that might skyrocket in 2017. With an average salary of $117,000, Go can be a suitable option for developers.

Javascript

Javascript has changed from simple UI language to powerful backend programming using NodeJs. There are many derivatives of javascript that you should consider. Following are the list.

1. NodeJS
2. Backbone JS
3. Angular Js
4. React JS.

You can see a full list of javascript libraries from here.

Programming Language Trends as per TIOBE index

As in the smartphone world, there is no clear winner in the programming languages world as well. If there was ever a war among programming languages, it would be a damp squib. Although C and Python (PythoC or Cython) might win, each language has its benefits and shortcomings.

If you are looking for mobile development, maybe you could opt for Java or Python if your aim is to become a data scientist. However, becoming a ninja programmer takes time and effort. Make sure that you take the benefits of opportunities and have fun with coding!

best programming languages to learn in 2017