Web Programming – Linux Hint https://linuxhint.com Exploring and Master Linux Ecosystem Sat, 05 Dec 2020 02:26:08 +0000 en-US hourly 1 https://wordpress.org/?v=5.6.2 How to Setup Flutter and Create Hello World Web Application in Linux https://linuxhint.com/setup-flutter-create-hello-world-web-application-linux/ Wed, 02 Dec 2020 12:41:36 +0000 https://linuxhint.com/?p=79118 Flutter is an application development framework that can be used to develop cross-platform apps running on native code once compiled or built. Being developed by Google, Flutter allows you to create rapid prototypes in a short time as well as allows you to create full-fledged apps that make use of platform specific APIs. Using Flutter, you can create beautiful looking apps for mobile devices, desktop operating systems and web browsers using official material design widgets. This article will discuss installation of Flutter and creation of a new project for developing a web application. Flutter uses “Dart” as the main programming language for writing apps.

Install Flutter on Linux

You can install Flutter in Linux using two methods. The first method is pretty straightforward, all you have to do is run a simple command to install Flutter from snap store.

$ sudo snap install flutter --classic

The second method involves downloading the flutter repository from GitHub. Run the following commands in succession to manually install Flutter:

$ sudo apt install git
$ git clone https://github.com/flutter/flutter.git -b stable --depth 1 --no-single-branch

Note that running the above command will get you required files from the official Flutter repository including executable binary files. You will be able to execute these binary files from the “bin” folder. However, these executable files won’t be added to your system wide PATH variable and you won’t be able to run them from anywhere unless you manually add them to the PATH variable. To do so, follow the steps below.

Open “.bashrc” file located in your home folder using your favorite text editor:

$ nano “$HOME/.bashrc”

Add the following line at the bottom of the file, carefully replacing the <full_path_to_flutter_directory> string.

export PATH="$PATH:&lt;full_path_to_flutter_directory&gt;/flutter/bin"

For instance, if you downloaded Flutter repository in “Downloads” folder, you will have to add the following line:

export PATH="$PATH:$HOME/Downloads/flutter/bin"

Save the file once you are done. Refresh “.bashrc” file by running the command below:

$ source “$HOME/.bashrc”

To verify that Flutter’s “bin” folder has been added to the path, run the command below:

$ echo $PATH

You should get some output like this:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/nit/Downloads/flutter/bin

Notice the presence of the “flutter” keyword and the full path that shows the “bin” folder in “flutter” directory.

To check if the “flutter” command can be run from any path, use the command below:

$ which flutter

You should get some output like this:

/home/nit/Downloads/flutter/bin/flutter

Note that “Dart” language, which is required to write Flutter apps, comes bundled with Flutter files downloaded from git repository or from snap package. Run the following command to check missing dependencies required to run Flutter:

$ flutter doctor

Some required files may start downloading to complete Flutter setup. If you have not installed Android SDK yet, a message will be shown in the output to guide you through the installation.

If you want to develop Android apps using Flutter, click on the links visible in the terminal output and follow relevant steps to install Android SDK.

This tutorial focuses on building web applications using Flutter. To enable support for creating web apps, run the following commands in succession:

$ flutter channel beta
$ flutter upgrade
$ flutter config --enable-web

To verify that web application support has been indeed enabled, run the command below:

$ flutter devices

You should get some output like this:

2 connected devices:
Web Server (web) • web-server • web-javascript • Flutter Tools
Chrome (web)     • chrome     • web-javascript • Google Chrome 87.0.4280.66

If you have followed steps correctly so far, Flutter should be now correctly installed on your system, ready to create some web apps.

Create a New Flutter Project

To create a new “HelloWorld” web application project using Flutter, run the commands mentioned below:

$ flutter create helloworld
$ cd helloworld

To test your newly created project, run command:

$ flutter run -d chrome

You should see a Flutter web application demo like this:

You can debug Flutter web apps using development tools built into Chrome.

Modify Your Project

The demo project you created above contains a “main.dart” file located in the “lib” folder. Code contained in this “main.dart” file is commented very well and can be understood pretty easily. I would suggest you to go through the code at least once to understand the basic structure of a Flutter app.

Flutter supports “hot reload”, allowing you to quickly refresh your app without relaunching it to see the changes. Try changing the application title from “Flutter Demo Home Page” to “Hello World !!” in the “main.dart” file. Once done, press <r> key in terminal to refresh the app state without relaunching it.

Build Your Flutter App

To build your Flutter web app, use the command specified below from your project directory:

$ flutter build web

Once the build process has finished, you should have a new folder in your project directory located at “build/web” path. Here you will find all necessary “.html”, “.js” and “.css” files required to serve the project online. You will also find various asset files used in the project.

Useful Resources

To know more about web app development using Flutter, refer to its official documentation. You can refer to official documentation for Dart language to get a better understanding of Flutter apps. Flutter comes with tons of official and third-party packages that you can use to quickly develop apps. You can find these packages available here. You can use material design Flutter widgets in your web apps. You can find documentation for these widgets in official Flutter documentation. You can also get a feel of these widgets by browsing working demos of material design web components.

Conclusion

Flutter has been in development for quite a while now and it is growing as a framework for developing “write once deploy anywhere” cross-platform apps. Its adoption and popularity may not be as high as other such frameworks, but it does provide a stable and robust API to develop cross-platform applications.

]]>
Netlify vs Heroku https://linuxhint.com/netlify_vs_heroku/ Sun, 23 Dec 2018 10:44:48 +0000 https://linuxhint.com/?p=34387 One of the most important aspect of any cloud service is the abstraction that it presents to the users. With traditional VPS, its the virtual machine, with cloud services like AWS, this is fragmented further into containers, databases, functions, etc.

The competition in cloud computing sector is tremendous. A lot of their operating cost depends upon what layer of abstraction they are offering. Most VPS providers have to charge you quitre a bit for your services, this is because a VPS is just a virtual machine running 24/7 on their servers, consuming their resources. But surely there are more efficient ways of offering up your cloud services? Enter PaaS;  Platform as a Service.

Netlify and Heroku are two such platforms that offer developers to launch web apps ranging from lightweight portfolios and landing pages to business and ecommerce solutions. Let’s compare these two platforms and the various differences and similarities between them.

Core Functionalities

Both Netlify and Heroku are offered as a Platform where you can deploy your web apps, written in the language of your choice at affordable pricing. However, a closer look at their documentation and features shows that Netlify is geared more towards frontend developers and is ideal for static websites, where as Heroku has a more robust and functional backend support. You can launch apps written in Go, Scala, Ruby, PHP, Closure, Python and a few other popular languages directly on Heroku.

If you are a fullstack developer by trade, or need to hone those skills, Heroku might just be the place for you. It offers managed PostgreSQL as a service to go nicely along with your app written in one of the many languages that they support.

All of this said, I am surprised by the extent to which a static site (a site with just JS, CSS and HTML) can accomplish. This blog post from the co-creators Netlify shows their basic underlying philosophy and how it has withstood the test of time in the last few years.

You can also leverage Netlify’s sister projects like Netlify CMS to leverage the Git workflow to provide basic CMS like functionality. Although it is not as sophisticated as Ghost or WordPress, it certainly eliminates the stress of securing a database and other rigmaroles that a frontend developer might not be interested in.

Git and GitHub Integration

Both the platforms offer great support for streamlining your workflow. Everything from the build process to deployment can be automated. To put it simply, whenever you commit to your repo the app will be rebuilt and deployed with as little intervention from the user as possible. That said, if a build fails, because of some new error that was introduced or because it failed an automated test, the older version will still be online.

While both the services can be integrated other hosted remote repos like Bitbucket and GitLab, most organizations and developers end up using GitHub. Especially, since GitHub is the most popular of these services.

Netlify depends almost implicitly on these services to store the contents of your static site along with its code and instructions about their build process. Heroku on the other hand is kind enough to not enforce such conditions. You can use your local git repos and heroku CLI to manage the source code and store your assets on their platform, remotely. With Netlify, you do get a CLI but you are still heavily reliant on the GitHub, Bitbucket or Gitlab services. Remember that Netlify’s static sites store their contents over at these third-party services.

Pricing

Both the services intend to capture the market by lowering the prices ridiculously to get independent developers involved. Netlify is still pushing hard its free plans while Heroku, who’s been longer in this game, gives us an insight into Netlify’s future as well. So let’s look at Heroku first.

Heroku offers Free service with 1user/1worker model. The app goes to sleep after 30 mins of inactivity and can use only 512 MB of RAM. The paid pricing is ridiculously small in the beginning where you pay for only what you use. Starting from $7 per month. But then it rising steeply from there to anywhere between $25 to $500 per month. What’s the reason behind this?

The business model is based upon increasing your user base by first enticing them into using your “Free” services. But of course, Heroku (and Netlify) would still have to pay for their server, storage and bandwidth, right? Now, this cost is added on to the paid users who, essentially, are paying not only for their own services but also paying an extra markup to compensate for all the free users on the platform. Therefore, the pricing rises steeply as your resource demand increases. If your website has a large user base, you may end up paying a non-trivial amount of money for a managed platform like Herko, compared to what a VPS would cost.

Even Netlify shows this trend very clearly, from the free plan you are catapulted straight to $45 per month plan for 5 users and then the next tier is at $290 per month which works for 10 users and offers a few features like Role-based access control. But is $290 double of $45?

Free plans are great for the developer ecosystem. They lower the entry barrier and allow everyone from students to hobbyists to learn with real-world tools. But they also incentivizes the abuse of such systems and often lead to the detriment of the organization providing them. The paid customer gets less for what they pay and the company’s finances suffers.

Conclusion

While that little rant about pricing may leave a bad taste in your mouth. Both the platforms are great places for web developers to start working on their new projects. Just remember to give back to the community in anyway you can. You can contribute to their excellent documentation pages. You can contribute by donating to free certificate authorities LetsEncrypt, which both the platforms rely upon. If your project does lead to some success you can consider buying into their paid plans, to help them continue offering such wonderful services. Who knows, you might be helping out a younger version of yourself by doing that

]]>
How Do Rest APIs Work https://linuxhint.com/how_rest_apis_work/ Wed, 10 Oct 2018 12:56:00 +0000 https://linuxhint-com.zk153f8d-liquidwebsites.com/?p=31097 REST or RESTful APIs are everywhere these days. You may have used it even without knowing anything about it.  In this article, I will talk about REST APIs. I will discuss how they work, their applications and many more. Let’s get started.

Why USE REST API:

In traditional web applications, let’s say a simple PHP web server,

  • You request a page (let’s say php) from the server.
  • The server finds the script file (php) corresponding the page you requested and starts executing it. The script connects to the database, looks for the required information, places the information into the page in a nicely formatted way (mixing HTML + CSS + JavaScript with the data) that looks very attractive to the visitor.
  • Then the server sends it back to the visitor.

In this model, all the processing is done on the server side. So the server has to do more work. Here, data is not separate from the page, it’s embedded deeply into the page.

If in future, you want to make an Android app or iOS app or a Desktop app of your website, you will have to do a lot more work. You will have to connect to the database directly from each of these apps, which may not be very secure. The development time will increase and portability issues will arise.

Let’s say you’ve successfully made Desktop, Android and iOS apps of your website. The user’s full name is displayed in lowercase in each of them. Now, you would like to show it in uppercase. Well, the developers have to modify the Desktop, Android and iOS version of your app separately in order to do that. Which is time consuming. In real world, things won’t be as simple as this one. So, one version of the app (Let’s say the Desktop version) may have a serious bug in the update process. Fixing it later would take more time. Can you see how the development time increases? This solution is not portable as well.

In REST API, you ask the API server what you need and it sends you just the information you ask for, no additional formatting is done in the server. There is no need for unnecessary processing in the server. So, the performance of your website and apps are naturally improved. Also, you can use the same data in your website, desktop app, Android and iOS apps. Changes made to the servers will be reflected in the apps that are using the API. The app development time and cost will also be reduced.

How REST API Work:

The REST APIs have endpoints. An endpoint is nothing more than a URL, but in a nicely formatted way and it is meaningful. It uses the native HTTP requests (such as GET, POST, PUT, DELETE etc) to decide what to do when you access each endpoints. I will talk about these later.

The output format of the REST API is JSON also known as JavaScript Object Notation.

An example of the output of a GET request to the REST API on /users/id/12 endpoint may look as follows:

{
  "id": 12,
  "name": "David Smith",
  "age": 42,
  "phones": ["124-211-2341", "889-211-4545"],
  "country": "US"
}

As you can see, I did a GET request on /users/id/12 endpoint to tell the REST API to give me information about the user who has the id 12. I got just the information I requested, nothing more, nothing less.

Now let’s say, you want information on the last 10 users who signed up on your website. You may do a GET request on /users/latest/10 endpoint.

You can add new data on your server using the REST API as well. Usually, the HTTP POST request is used to ask the REST API to add new data to the API server.

For example, you can do a POST request on /users endpoint with the data of the new user and it will be added to the database on your API server. You can also configure your API to return the status of the request.

{
  "statusCode": 400,
  "statusText": "User successfully added.",
  "data": {
  "id": 13,
  "name": "Mary Smith",
  "age": 35,
  "phones": ["124-211-2341", "889-211-4545"],
  "country": "US"
          }
}

As you can see, the statusCode and statusText property of the JSON object notifies the API client that the user is successfully added. The data added is returned as well in the data property of the JSON object. You can configure your API just the way you want.

You can update an existing record from the API server’s database as well. The PUT HTTP request is used on an API endpoint to update existing data on your API server’s database.

For example, let’s say you want to update the phone number of the user with the id 13. You may do a PUT request on the API endpoint /user/id/13.

{
  "statusCode": 200,
  "statusText": "User updated.",
  "old_data": {
  "id": 13,
  "name": "Mary Smith",
  "age": 35,
  "phones": ["124-211-2341", "889-211-4545"],
  "country": "US"
              },
  "new_data": {
               "id": 13,
               "name": "Mary Smith",
               "age": 35,
               "phones": ["100-211-1111", "140-211-1145"],
               "country": "US"
}
}

As you can see, the update operation is successful. The old data and new data is returned in the old_data and new_data property of the JSON object respectively.

You can also delete data from the API server’s database with the HTTP DELETE request on the API endpoint.

For example, to delete the user with the id 12, you may do a DELETE request on the API endpoint /user/id/12.

{
"statusCode": 150,
"statusText": "User removed.",
"data": {
        "id": 12,
        "name": "David Smith",
        "age": 42,
        "phones": ["124-211-2341", "889-211-4545"],
        "country": "US"
        }
}

As you can see, the user is deleted and the deleted user data is returned in the data property of the JSON object.

I have explained the standard way to use the GET, POST, PUT and DELETE HTTP request on the API endpoints to do CRUD (Create, Read, Update and Delete) operation using REST API. But you can configure your API to do certain things on certain HTTP request. Nothing is fixed here. For example, you can update the API using GET HTTP request. You don’t have to use PUT. It’s up to the API designer.

You design the API endpoints as well. Giving meaningful names to your API endpoints make your REST API much easier to use.

Applications of REST API:

APIs make app development easier and modular. With the help of REST API, you can easily port your app to different platforms.

All you have to do is design and develop a REST API of your application. Then you can use your REST API from your website, Android app, iOS app, Windows desktop app and Linux app etc. This way, all of your apps on different platform will use the same logic and your development time and cost will be reduced. The apps will be easier to manage as well. REST APIs are used rapidly in Single Page Web Applications these days as well.

I have written an article on writing REST APIs using Python.  Thanks for reading this article. ]]> 11 Best IDEs for Web Development https://linuxhint.com/best_ide_web_development/ Wed, 12 Sep 2018 06:16:08 +0000 https://linuxhint-com.zk153f8d-liquidwebsites.com/?p=30487 I know how it feels to be a software or a web developer. It is a great fun. Doesn’t matter if you are a professional web developer or a newbie, in web development you always find something new to learn with new advancements in web technologies every now and then. Thanks to the boom in number of internet users, some new and unique businesses are being set up to offer products and services right on the customers computer screen.

Due to this there is huge demand for web developers and application developers and to help them there are really modern and cutting edge Integrated Development Environments are available for all the major operating systems in the market. In this article, we are going to have a look at 11 best IDEs which you can use for web development, not only web development but these IDEs can also be used for application development too.

The IDEs listed here can be useful for both professional as well as new developers as these IDEs come with some unique features that makes programming task somewhat easy and quick.

1. PhpStorm

PhpStorm is a closed-source cross-platform Integrated Development Environment especially designed for coding in PHP, HTML and JavaScript. Built on JetBrains’ IntelliJ IDEA platform, PhpStorm is one of the most modern and cutting edge IDEs available for web development on Ubuntu. PhpStorm ships in with all the features of WebStorm with full-fledged support for PHP and Databases/SQl. We will know more about WebStorm later in this article.

PhpStorm has very attractive and slick user interface as its front-end is designed with latest cutting edge technologies, such as HTML5, CSS, Saas, CoffeeScript, etc. You can customize this IDE with support for themes and extensions to enhance its features. It provides one of the best coding environments to web developers with features like automatic code completion, error highlighting, support for major frameworks such as WordPress, Joomla!, Yii, Symfony, etc.

It also comes with PHP tools which offer all the PHP language features for modern web development, built-in developer tools such as remote deployment, databases/SQL, command-line tools, etc., smart code navigator, refactoring and debugging as well as testing tools.

PhpStorm is available as snap package on Ubuntu 16.04 or higher and cab downloaded and installed by running following command in Terminal.

$ sudo snap install phpstorm –classic

2. Visual Studio Code

Developed by Microsoft for Windows, Linux and macOS, Visual Studio Code is a code editing IDE which you will find very much similar to Atom Text Editor and Sublime Text. Visual Studio Code could be very useful for those who are new in programming as it can be used as an excellent learning tool which explains you everything right from the simple HTML tag to syntax and error handling in programming.

This IDE ships in with Git integration out of the box and offers features such as auto code completion, syntax highlighting, refactoring, snippets, keyboard shortcuts and support for various programming and scripting languages out of the box such as C, C++, CoffeeScript, CSS, HTML, JSON, F#, Perl, PHP, Ruby, Swift and many more.

Visual Studio Code IDE is fully customizable as you can change themes, install additional extensions to add new programming languages, debuggers and many other additional services which can be very useful in development.

Visual Studio Code is available for download and install in Ubuntu Software Centre or you can download .deb file from here and install it using Software Centre.

3. Sublime Text

Sublime Text is one of the best cross-platform code editors you will ever find for programming in Ubuntu desktop environment. It is a lightweight code editor which supports coding in various programming and markup languages such as Python, C, HTML, JavaScript, CSS and many other popular languages and technologies used for web development.

Sublime Text ships in with unique set of features such as

  • GoTo Anything

To open files in few clicks and jump to symbols, lines or words.

  • GoTo Definition

A popup appears when hovering over a symbol.

Other features in Sublime Text IDE includes multiple selections, command palette, powerful Python API, split editing, instant project switch and many more.

Apart from these features, Sublime Text is a highly customizable IDE with simple JSON files. You can customize key bindings, menus, snippets, and macros separately for different files and projects.

$ sudo snap install sublime-text
OR
$ wget –q0 – https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add
$ echo “deb https://download.sublimetext.com/ apt/stable/| sudo tee/etc/apt/sources.
list.d/sublime-text.list
$ sudo apt-get update
$ sudo apt-get install sublime-text

4. Atom

Atom is a free and open-source source code editor developed by GitHub for Windows, macOS and for various Linux distros including Ubuntu. Atom IDE has one the best user interface which is completely customizable with changes in themes and styling.

Based on Electron framework, Atom comes with support for various programming languages such as C, C++, C#, CoffeeScript, HTML, JavaScript, PHP, CSS, Python, Perl and many other widely used languages and web technologies.

Developers of Atom claim it be a hackable text editor for the 21st century. It ships in with IDE features as well as Git and GitHub integration.

One of the best features in Atom editor is Teletype

This feature lets you collaborate with other developers right from your editor in order to share and teach knowledge which eventually results in building better software or web application.

Atom also offers some IDE like features such as cross-platform editing, built-in package manager, smart auto completion, find and replace, file system browser and multiple panes. Atom is a fully customizable IDE with thousands of open-source packages available for installation that can be used for feature and functionality enhancements.

$ sudo add-apt-repository ppa:webupd8team/atom
$ sudo apt-get update
$ sudo apt-get install atom

5. WebStorm

WebStorm is another web development IDE on our list which is developed by JetBrains. Like PhpStorm, WebStorm is also a closed-source web development IDE which is available for Windows, macOS and various Linux distros including Ubuntu.

WebStorm has very modern and slick user interface and offers feature like you will find in any modern IDEs such as intelligent code completion, error detection, powerful navigation also refactoring for JavaScript, TypeScript, stylesheet languages.

It also comes with debugger that you can use to debug Node.js apps easily from IDE, Unit Testing with Karma, Mocha, Protractor and Jest. Also WebStorm comes integrated with Git, GitHub and Mercurial out of the box.

$ sudo snap install webstorm –classic

6. Brackets

Brackets is a cross platform web development application developed by Adobe Systems. Brackets has all the features you can expect in any modern IDE and it has excellent user interface which is easy to navigate.  This is the best web development IDE because it offers live HTML, CSS and JavaScript coding and editing functionality which can be very useful during web development.

Brackets is a lightweight yet powerful web development IDE which offers features like inline editors, live preview, split view, JSLint and LESS support. It also offers integration with Theseus which is an open-source JavaScript debugger which can be used to set break points, step through code and real-time variable inspection.

Brackets supports programming and web development in various languages such as Perl, Ruby, HTML, Python, Java, JavaScript and many others. It also ships in with built-in extension manager which can be used to download and install additional extensions in order to enhance functionality.

$ sudo apt-get-repository ppa:webupd8team/brackets
$ sudo apt-get update
$ sudo apt-get install brackets

7. Vim

Vim is one of the best and my favourite IDE for software programming and web application development. Vim is a terminal based code editor which is highly configurable which you will find a bit difficult to use but once you get familiar with it you will hardly use any other IDE.

It supports all the major programming and markup languages such as Python, C, C++, C#, Java, HTML, CSS, JavaScript and many more. Vim offers features such as syntax highlighting, mouse gestures, DirectX support for Microsoft users and apart from these, Vim is a highly customizable IDE as it offers wide range of plugins and extensions.

To install Vim on Ubuntu, execute following commands in Terminal one-by-one.

$ sudo add-apt-repository ppa:jonathanf/vim
$ sudo apt-get update
$ sudo apt-get install vim

8. Komodo

Developed by ActiveState, Komodo is an IDE which is written in C++, C, XUL, Perl, Python, JavaScript and CSS. Komodo is a closed-source and cross-platform IDE and it also has its open-source counterpart named Komodo Edit.

Komodo IDE supports programming and web development in all the major languages such as Python, PHP, Perl, Go, Ruby, Node.js, JavaScript and many more. It offers features like code auto completion, code refactoring, debugging and unit testing.

Komodo ships in integrated with Git, Mercurial, Subversion, CVS, Perforce and Bazaar out of the box. It also supports tons of plugins and extensions which you can install for functionality and performance enhancements.

You can download latest release of Komodo IDE from here and install it using Terminal.

9. GNU Emacs

GNU Emacs is a lightweight cross-platform code editor developed in Lisp and C. Basically Emacs is specially designed for programming in Python but it supports other software and web development in all the major programming languages and web technologies.

Emacs has simple yet powerful user interface with support for syntax coloring. Despite being a lightweight IDE, Emacs some very useful features such as highly customizable UI, plugins and extensions support, and syntax highlighting.

GNU Emacs can be downloaded and installed from Ubuntu Software Centre.

10. Bluefish

Bluefish is a cross-platform Integrated Development Environment developed by Bluefish Dev Team. It is available for various operating systems including W

indows, macOS, Solaris and many Linux distros. It is a lightweight code editor with simple user interface which can be very beneficial to new Linux users.

Bluefish supports development in variety of programming languages such as HTML, CSS, Google Go, Vala, Perl, SQL, Ruby, Python, PHP, C and many other major languages.

Bluefish is a feature-rich IDE with features like syntax highlighting, code auto completion, auto-recovery and code folding. To install Bluefish on Ubuntu, run following commands in Terminal.

$ sudo add-apt-repository ppa:klaus-vormweg/bluefish
$ sudo apt-get update
$ sudo apt-get install bluefish

11. Code::Blocks

Code::Blocks is free and open-source integrated development environment developed in C, C++ and Fortran. It is cross-platform IDE which can be used in Windows, Solaris and various Linux distros including Ubuntu.

Code::Block supports programming in all the widely used programming languages which includes C, C++, PHP, HTML and JavaScript. It is lightweight yet feature-rich IDE with features on offer such as code refactoring, syntax highlighting, code folding, auto code completion and many more.

Code::Blocks ships in with multiple compilers including GCC, Microsoft Visual C++, Digital Mars and many others. It is also a highly customizable IDE with plugins and extension support. To install Code::Blocks in Ubuntu, run following commands in Terminal one-by-one.

$ sudo add-apt-repository ppa:damien-moore/codeblocks-stable
$ sudo apt-get update
$ sudo apt install codeblocks codeblocks-contrib

So these are the 11 best IDEs for web development in Ubuntu as of 2018. All the IDEs listed here are tested on Ubuntu 18.04 LTS edition and all of them will run smoothly on older Ubuntu releases too. Have questions or suggestions? Feel free to reach us at @LinuxHint and @SwapTirthakar ]]> Website Testing Checklist https://linuxhint.com/website-testing-checklist/ Thu, 05 Apr 2018 06:07:14 +0000 https://linuxhint-com.zk153f8d-liquidwebsites.com/?p=24594 Before launching any website, it is necessary to make sure that the website is error free, user friendly and secure. So after completing the development task of any website, the site owner must confirm that the website is ready to launch by doing some important website testing checklist. Most common website testing checklists are mentioned here.

Usability Testing

It is a vital testing for any website. This testing can be done by normal users or targeted audiences of the website. It is required to confirm that the website is user friendly, provided instructions are clear to understand, navigations are properly designed, no grammatical or spelling errors are contained in the site content and used fonts, colors, buttons etc. are appropriate according to the website.

Functionality Testing

Any website will function properly when all the requests sent to the server are processed correctly and the users will get the desired result as response.  This testing will ensure that all links, forms and databases of the website are working properly.

It is necessary to confirm that various types of website links such as outgoing links, internal links, anchor links and mailto links are working without any error and no broken links exist in the website.

Form testing is another important part of website testing. Data are collected from the users by using forms. So it is very important to make sure that the validation tasks of every forms are completed properly.  Each form must be designed with proper instructions and when any user fails to fill in the form with valid data then the user will get hints from the messages provided by the form.

One of major components of any website is a database. All data are manipulated between the website and database by using different types of queries. During the database testing it is required to ensure that all queries are executing without bugs, ACID (Atomicity, Consistency, isolation and Durability) properties of the database is maintained accurately and response time of the queries are fast.

Compatibility Testing

This testing is now taken as a important consideration. Now, people are using different types of browsers, operating systems and devices for browsing websites, such as mobile, tablet etc. It is essential to confirm that the developed website is compatible with mostly used web browsers, operating systems and smart devices. Before making any website live it should be tested with all popular web browsers and operating systems to find out any issue. The number of mobile users are increasing day by day. For this, most of the websites are now responsive and designed to be compatible with any type of device. So it is necessary to test the website on various smart devices without computer to check its compatibility.

Performance Testing

Every website has to take certain amount of load, based on the website type, which is related to performance issues.  Two types of performance testing can be done for websites. These are load testing and stress testing. It requires to test how the website will act when many users will try to access same page or connect with the database at the same time. This is called load testing. In stress testing, it is checked that how the website will react when more stress is given to the site and if the site crashes then how it recovers.  These testing are done by using different Internet connections.

Security Testing

This type of testing is more important for e-commerce based websites where confidential data are submitted by the users. Some necessary tasks related to this testing are secure transmission, Integrity checking, authentication and authorization checking, vulnerability checking, virus detection etc.

Website testing tools

Many types of website testing tools are now available for testing any website or web application. These tools will help to reduce the testing efforts, maintain the quality of the application and make the release time faster. Some category wised testing tools are described here.

Web Application testing tools

Both free and paid version tools are available for web application performance testing. Two web application testing tools are jMeter and Neoload.

JMeter:

It is a free tool which is developed in Java and supported by all platforms. It is used for load testing. It helps to analyze the overall performance of web applications by assigning various loads on the server.

Neoload:

This tool is used for both load and stress testing. It helps to measure, analyze and improve the performance of web applications.

Web functional or regression testing tools

Most of the errors of any websites are related to the website functionalities. By using appropriate functional tools, the bugs of the website can be removed quickly. Two popular functional testing tools are selenium and Testcafe.

Selenium:

It is a automated testing tools that tests website functionality on various browsers and platforms.

Testcafe:

It is a testing framework that can test multiple browsers and operating system simultaneously.

Website security testing tools

These tools are mainly used on those sites where money transactions are done online, such as banking site or e-commerce site. Two good tools for security testing are mentioned below.

NTOSpider:

This tool can be used only on windows operating system and it can ensure security of the system by testing the application within short time.

Netsparker:

It detects the application vulnerabilities and the issues related to website security.

Cross Browser testing tools

Many tools can be used for checking cross browser testing of the website. One of them is mentioned here.

Browsera:

This tool can be used on windows and Mac OS that detects cross-browser issues by comparing each browser’s output. JavaScript is used in this tool to report any error generated by this tool.

So, web site testing becomes much easier and faster now with the help of these testing tools.

Follow this website testing checklist and you will ensure you have a safe, fast and properly functioning website.

]]>