.

.
Showing posts with label Tutorial. Show all posts
Showing posts with label Tutorial. Show all posts

Thursday, December 19, 2019

Roshan Thpa

Create A Web Application With Python + Django + PostgreSQL - course with Project Source code 100% free

Build a web application that interacts with a database.
Web applications are basically apps that can be accessed via a web browser.
What you’ll learn
  • Install Python.
  • Install Django.
  • Install PostgreSQL Database Server.
  • Connect database to web application.
  • Create virtual environment.
  • Create database.
  • Run Migrations.
  • Create views and Models.
  • Display data from database on web app.
  • Style app with Bootstrap.
  • Use static files.
  • Create object links.
  • Display media content.
Course Content
  • Setting up Development environment.
  • Create a Portfolio web app.
Create a web application with python + Django + PostgreSQL
Requirements
  • Access to internet.
  • A computer.
Description
Web applications are basically apps that can be accessed via a web browser.
If you want to become a web developer building web based applications that interacts with databases is a vital skill to have. Almost all applications we interact with daily interacts with databases that stores and retrieves information. Example applications that interacts with databases includes:
Facebook
Instagram
Twitter
Online Banking
Google
Amazon
Ebay

In this course we will create a web based application using Python and Django and we will create and store objects inside a PostgreSQL  database that will interact with our web application’s front end.

Who this course is for:
  • Beginner Python Developers
  • Beginners to web development
Get Tutorial

Read More

Saturday, May 4, 2019

Roshan Thpa

The Best Open Source Machine Learning Frameworks


In this article, we present what the author rates as the top eight open source machine learning frameworks.

machine-learning-framework
Learning may be defined as the process of improving one’s ability to perform a task efficiently. Machine learning is another sub-field of computer science, which enables modern computers to learn without being explicitly programmed. Machine learning has basically evolved from artificial intelligence via pattern recognition and computational learning theory. Machine learning explores the area of algorithms, which can make high end predictions on data. In recent times, machine learning has been deployed in a wide range of computing tasks, where designing efficient algorithms and programs becomes rather difficult, such as email spam filtering, optical character recognition, search engine improvement, digital image processing, data mining, etc.
Tom M. Mitchell, renowned computer scientist and professor at Carnegie Mellon University, USA, defined machine learning as: “A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E.”
Machine learning tasks are broadly classified into three categories, depending on the nature of the learning ‘signal’ or ‘feedback’ available to a learning system.
  • Supervised learning is regarded as a machine learning task of inferring a function from labelled training data. In supervised learning, each example is a pair consisting of an input object (vector) and a desired output value (supervisory signal).
  • Unsupervised learning:  This is regarded as the machine learning task of inferring a function to describe hidden structures from unlabelled data. It is closely related to the problem of density estimation in statistics.
  • Reinforcement learning is an area of machine learning that is linked to how software agents take actions in the environment so as to maximise some notion of cumulative reward. It is applied to diverse areas like game theory, information theory, swarm intelligence, statistics and genetic algorithms. In machine learning, the environment is formulated as a Markov decision process (MDP) due to dynamic programming techniques.
The application of machine learning to diverse areas of computing is gaining popularity rapidly, not only because of cheap and powerful hardware, but also because of the increasing availability of free and open source software, which enable machine learning to be implemented easily. Machine learning practitioners and researchers, being a part of the software engineering team, continuously build sophisticated products, integrating intelligent algorithms with the final product to make software work more reliably, quickly and without hassles.
There is a wide range of open source machine learning frameworks available in the market, which enable machine learning engineers to build, implement and maintain machine learning systems, generate new projects and create new impactful machine learning systems.
Let’s take a look at some of the top open source machine learning frameworks available.
Advertisement
Apache Singa
The Singa Project was initiated by the DB System Group at the National University of Singapore in 2014, with a primary focus on distributed deep learning by partitioning the model and data onto nodes in a cluster and parallelising the training. Apache Singa provides a simple programming model and works across a cluster of machines. It is primarily used in natural language processing (NLP) and image recognition. A Singa prototype accepted by Apache Incubator in March 2015 provides a flexible architecture of scalable distributed training and is extendable to run over a wide range of hardware.
Apache Singa was designed with an intuitive programming model based on layer abstraction. A wide variety of popular deep learning models are supported, such as feed-forward models like convolutional neural networks (CNN), energy models like Restricted Boltzmann Machine (RBM), and recurrent neural networks (RNN).  Based on a flexible architecture, Singa runs various synchronous, asynchronous and hybrid training frameworks.
Singa’s software stack has three main components: Core, IO and Model. The Core component is concerned with memory management and tensor operations. IO contains classes for reading and writing data to the disk and the network. Model includes data structures and algorithms for machine learning models.
Its main features are:
  • Includes tensor abstraction for strong support for more advanced machine learning models
  • Supports device abstraction for running on varied hardware devices
  • Makes use of cmake for compilation rather than GNU autotool
  • Improvised Python binding and contains more deep learning models like VGG and ResNet
  • Includes enhanced IO classes for reading, writing, encoding and decoding files and data
The latest version is 1.0.
Website: http://singa.apache.org/en/index.html
Shogun
Shogun was initiated by Soeren Sonnenburg and Gunnar Raetsch in 1999 and is currently under rapid development by a large team of programmers. This free and open source toolbox written in C++ provides algorithms and data structures for machine learning problems. Shogun Toolbox provides the use of a toolbox via a unified interface from C++, Python, Octave, R, Java, Lua and C++; and can run on Windows, Linux and even MacOS. Shogun is designed for unified large-scale learning for a broad range of feature types and learning settings, like classification, regression, dimensionality reduction, clustering, etc. It contains a number of exclusive state-of-art algorithms, such as a wealth of efficient SVM implementations, multiple kernel learning, kernel hypothesis testing, Krylov methods, etc.
Shogun supports bindings to other machine learning libraries like LibSVM, LibLinear, SVMLight, LibOCAS, libqp, VowpalWabbit, Tapkee, SLEP, GPML and many more.
Its features include one-time classification, multi-class classification, regression, structured output learning, pre-processing, built-in model selection strategies, visualisation and test frameworks; and semi-supervised, multi-task and large scale learning.
The latest version is 4.1.0.
Website: http://www.shogun-toolbox.org/
Apache Mahout
Apache Mahout, being a free and open source project of the Apache Software Foundation, has a goal to develop free distributed or scalable machine learning algorithms for diverse areas like collaborative filtering, clustering and classification. Mahout provides Java libraries and Java collections for various kinds of mathematical operations.
Apache Mahout is implemented on top of Apache Hadoop using the MapReduce paradigm. Once Big Data is stored on the Hadoop Distributed File System (HDFS), Mahout provides the data science tools to automatically find meaningful patterns in these Big Data sets, turning this into ‘big information’ quickly and easily.
  • Building a recommendation engine: Mahout provides tools for building a recommendation engine via the Taste library– a fast and flexible engine for CF.
  • Clustering with Mahout: Several clustering algorithms are supported by Mahout, like Canopy, k-Means, Mean-Shift, Dirichlet, etc.
  • Categorising content with Mahout: Mahout uses the simple Map-Reduce-enabled naïve Bayes classifier.
    The latest version is 0.12.2.
    Website: https://mahout.apache.org/
Apache Spark MLlib
Apache Spark MLlib is a machine learning library, the primary objective of which is to make practical machine learning scalable and easy. It comprises common learning algorithms and utilities, including classification, regression, clustering, collaborative filtering, dimensionality reduction as well as lower-level optimisation primitives and higher-level pipeline APIs.
Spark MLlib is regarded as a distributed machine learning framework on top of the Spark Core which, mainly due to the distributed memory-based Spark architecture, is almost nine times as fast as the disk-based implementation used by Apache Mahout.
The various common machine learning and statistical algorithms that have been implemented and included with MLlib are:
  • Summary statistics, correlations, hypothesis testing, random data generation
  • Classification and regression: Supports vector machines, logistic regression, linear regression, naïve Bayes classification
  • Collaborative filtering techniques including Alternating Least Squares (ALS)
  • Cluster analysis methods including k-means and Latent Dirichlet Allocation (LDA)
  • Optimisation algorithms such as stochastic gradient descent and limited-memory BGGS
    The latest version is 2.0.1.
    Website: http://spark.apache.org/mllib/ 
TensorFlow
TensorFlow is an open source software library for machine learning developed by the Google Brain Team for various sorts of perceptual and language understanding tasks, and to conduct sophisticated research on machine learning and deep neural networks. It is Google Brain’s second generation machine learning system and can run on multiple CPUs and GPUs. TensorFlow is deployed in various products of Google like speech recognition, Gmail, Google Photos and even Search.
TensorFlow performs numerical computations using data flow graphs. These elaborate the mathematical computations with a directed graph of nodes and edges. Nodes implement mathematical operations and can also represent endpoints to feed in data, push out results or read/write persistent variables. Edgesdescribe the input/output relationships between nodes. Data edges carry dynamically-sized multi-dimensional data arrays or tensors.
Its features are listed below.
  • Highly flexible: TensorFlow enables users to write their own higher-level libraries on top of it by using C++ and Python, and express the neural network computation as a data flow graph.
  • Portable: It can run on varied CPUs or GPUs, and even on mobile computing platforms. It also supports Docker and running via the cloud.
  • Auto-differentiation: TensorFlow enables the user to define the computational architecture of predictive models combined with objective functions, and can handle complex computations.
  • Diverse language options: It has an easy Python based interface and enables users to write code, and see visualisations and data flow graphs.
    The latest version is 0.10.0.
    Website: www.tensorflow.org 
Oryx 2
Oryx 2 is a realisation of Lambda architecture built on Apache Spark and Apache Kafka for real-time large scale machine learning. It is designed for building applications and includes packaged, end-to-end applications for collaborative filtering, classification, regression and clustering.
Oryx 2 comprises the following three tiers.
  • General Lambda architecture tier: Provides batch, speed and serving layers, which are not specific to machine learning.
  • Specialisation on top which, in turn, provides machine learning abstraction to hyperparameter selection, etc.
  • End-to-end implementation of the same standard machine learning algorithms as an application (ALS, random decision forests, k-means) on top.
Oryx 2 consists of the following layers of Lambda architecture as well as connecting elements.
  • Batch layer: Used for computing new results from historical data and previous results.
  • Speed layer: Produces and publishes incremental model updates from a stream of new data.
  • Serving layer: Receives models and updates, and implements a synchronous API, exposing query operations on results.
  • Data transport layer: Moves data between layers and takes input from external sources.
    The latest version is 2.2.1.
    Website: http://oryx.io/
Accord.NET
Accord.NET is a .NET open source machine learning framework for scientific computing, and consists of multiple libraries for diverse applications like statistical data processing, pattern recognition, linear algebra, artificial neural networks, image and signal processing, etc.
The framework is divided into libraries via the installer, compressed archives and NuGet packages, which include Accord.Math, Accord.Statistics, Accord.MachineLearning, Accord.Neuro, Accord.Imaging, Accord.Audio, Accord.Vision, Accord.Controls, Accord.Controls.Imaging, Accord.Controls.Audio, Accord.Controls.Vision, etc.
Its features are:
  • Matrix library for an increase in code reusability, and gradual change of existing algorithms over standard .NET structures.
  • Consists of more than 40 different statistical distributions like hidden Markov models and mixture models.
  • Consists of more than 30 hypothesis tests like ANOVA, two-sample, multiple-sample, etc.
  • Consists of more than 38 kernel functions like KVM, KPC and KDA.
The latest version is 3.1.0.
Website: www.accord-framework.net
Amazon Machine Learning (AML)
Amazon Machine Learning (AML) is a machine learning service for developers. It has many visualisation tools and wizards for creating high-end sophisticated and intelligent machine learning models without any need to learn complex ML algorithms and technologies. Via AML, predictions for applications can be obtained using simple APIs without using custom prediction generation code or complex infrastructure.
AML is based on simple, scalable, dynamic and flexible ML technology used by Amazon’s ‘Internal Scientists’ community professionals to create Amazon Cloud Services. AML connects to data stored in Amazon S3, Redshift or RDS, and can run binary classification, multi-class categorisation or regression on this data to create models.
The key contents used in Amazon ML are listed below.
  • Datasources: Contain metadata associated with data inputs to Amazon ML.
  • ML models: Generate predictions using the patterns extracted from the input data.
  • Evaluations: Measure the quality of ML models.
  • Batch predictions asynchronously generate predictions for multiple input data observations.
  • Real-time predictions synchronously generate predictions for individual data observations.
Its key features are:
  • Supports multiple data sources within its system.
  • Allows users to create a data source object from data residing in Amazon Redshift – the data warehouse Platform as a Service.
  • Allows users to create a data source object from data stored in the MySQL database.
  • Supports three types of models: binary classification, multi-class classification and regression.
Read More
Roshan Thpa

Responsive Web Designing and Important Tools to Ease Its Use


In the changing times of web designing and development, we are having a hard time keeping up with the discovery of new devices and resolutions. For a lot of developers, making a website version for every new device and resolution is literally impossible, or in the least impractical. However, should businesses and individuals suffer the loss of users and visitors from certain devices, for the benefit of getting others from another? Or is there some other option?
Of course, there is, Responsive web design. This approach suggests that its design and development can respond to any user’s environment and behavior based on platform, orientation, and screen size.
One of the best aspects of this design is that it can provide an awesome experience across any device and screen size. In fact, this type of design is the most popular in the web designing and development field. The reason for this is the ever-changing world of smartphones and mobile devices. Responsive websites certainly provide a more consistent experience than the websites separately created for different devices with various screen sizes.
The need to use this design has been particularly driven by the understanding that people are accessing the web with many and different types of mobile devices. Today, smartphones are far more widely used to access the Internet than traditional PCs, and mobile devices surely have different capabilities compared to laptop/desktop platforms. These capabilities include GPS data, accelerometers and touchscreens among many others.
The experience on websites through mobile devices is limited due to screen size and environments. Adverts, social media inputs, sidebars, etc. are difficult, if not impossible to adjust, so in order to access these inputs, there is a need to exercise simplicity.
Tools to Ease the Use of Responsive Web Design
If a website is using the responsive web design, a tablet version of it will automatically adjust to display only two columns. This way, the content will be readable and easy to navigate through. In order to create a working responsive web design, you will need certain tools. Thanks to fast-evolving technologies, a lot of tools to ease this design are being introduced into the market, including:
  • Gridset
    This tool allows developers and web designers to build custom and prototype responsive layouts for their projects. This tool can be used to create any grid one would necessarily need. It can work with different management systems like Drupal, WordPress, and Joomla, as well as graphic applications such as Fireworks and Photoshop.
  • Wirefy
    With a basic knowledge of HTML and CSS, this tool can be easily used to generate wireframes without endless calculations. In fact, it can be considered a combination of responsive HTML templates and snippets that can scale as a browser is resized when working across different devices.
  • Adobe Edge
    If you want to check out how your website page would be displayed across different screen sizes and devices, this is the perfect tool for that. With this tool, you will be able to view your responsive website as it would be seen on any kind of device. You will not have to acquire different devices just to view your website on different platforms.
  • Gumby 2
    This tool is built with a preprocessor known as Sass from CSS. It is a responsive website designing tool that is quite easy to download and customize based on your preferences and needs. From intrinsic ratio video it embeds itself to responsive images; this tool has a large number of features for forms, grids, switches, buttons, templates, tabs, dropdowns and drawers.
  • Bootstrap
    This high-end website designing and development platform provides many components essential for developing efficient and effective websites. This tool was built by Jacob Thornton and Mark Otto on Twitter, and it was designed to act and look its best in the ever-evolving smartphone, desktop and tablet browsers.
H2: Responsive Web Designing and Its Relevance
The Internet is inextricably linked to our daily life, so as technology continues to evolve and further developments come in with new limitations and capabilities, the challenges web designers face will certainly change. For now, responsive web designing remains one of the most promising approaches that deserves more attention. It is highly recommended by Google since it allows a website to provide amazing user experience across different screen sizes and devices. Many websites in the field of education like student help websites that provide essay help, which are in high demand all over the world, have already adopted this feature so as to reach every corner of the market base. So, if you are a developer yourself, make sure to move with the times before we are all faced with the new challenges in this age of ever-evolving technologies.
Read More
Roshan Thpa

Top Open Source Tools for Web Optimisation

A website that allows visitors easy access and smooth navigation is a Web designer’s dream. While search engine optimisation may draw visitors to a given site, it is Web optimisation that keeps the visitor there. This article takes a look at the process of Web optimisation and the best open source tools for it.
Web optimisation is regarded as a scientific approach to improving the performance of a website. It is termed as the process of using controlled experimentation to improve a website’s ability to drive business goals. During the process of Web optimisation, changes are incorporated so that websites rank higher in search engine results pages (SERPS). The process of Web optimisation includes processes such as adding relevant keywords and phrases to the website, editing meta tags and image tags, optimising other components of the website to ensure that it is accessible to search engines, and making overall changes that get the website indexed by all search engines with all possible user typed keywords to crawl information from the Web.
Web optimisation combines the disciplines of online marketing and site performance tuning to attain the competitive advantage necessary on the Internet. User optimisation goes hand in hand with Web optimisation. User optimisation involves creating a memorable user experience, so that users can read the content on the site and take the right steps. Optimisation of content for users increases conversion rates and boosts search rankings. According to MarketingSherpa, “Over 80 per cent of marketers consider increasing overall conversion a dominant priority for their Web optimisation programmes.”
Figure 1: Web optimisation process
The process of Web optimisation
Web optimisation uses the same principles as conversion rate optimisation. In fact, both these terms can be used interchangeably. Web optimisation is best defined as an ongoing process that, over time, makes the website more effective and valuable for a company and the end users. Improving the Web optimisation performance is a continual process, and has five stages (Figure 1).
1. Hypothesis establishment: Analytics review is the fundamental part to be done at regular intervals, to determine the pages that are performing well and those that are not. It is recommended that you acquire qualitative feedback from visitors, and then brainstorm to figure out the potential causes of poor performance to draw up a list of Web optimisations to test.
2. Prioritise: After building the list of potential optimisations, it is of utmost importance to rate them as per priority, and rank them in order of their anticipated positive impact on the performance of the website.
3. Testing optimisations: A/B testing is the next stage in Web optimisation. It is best to keep the changes that significantly optimise the performance and user experience, and ignore those that are not enhancing Web performance.
4. Test analysis: Reviewing the testing data to determine which hypotheses are true and which aren’t is the next stage. By implementing the best tests, website optimisation becomes better and misleading data is eradicated.
5. Website optimisation: This stage involves reviewing winning tests, and acquiring more learning from tests that didn’t make it.
It is important to understand that website optimisation is a never ending process, and produces the best results by testing, retesting and making changes at regular intervals of time.
Figure 2: Locust.io Web UI
Figure 3: httperf
The top ten elements of Web optimisation
Web optimisation is much more significant than search engine optimisation. It is all about managing and optimising the crucial elements on the website. Here are the top ten elements of Web optimisation.
1. Keyword research: This is very important and should be done even before you start building the website. Everything in the website reflects the primary keywords, and it will form the basis of how the website is indexed and perceived by search engines for years to come. The better the keywords, the greater the role these will play in the content and marketing strategies to gain a high search engine ranking.
2. Anchor text phrase: The anchor text or link label appears as the clickable, underlined part of a link from search engine results or on a friend’s website. The choice is crucial due to the availability of few words. The link label should make sense and sound good for optimisation purposes. On your own website, if you go to Page Options>Search Engine Optimization>Page Title you can place this phrase so that each page in your website will be seen by Google and be clickable as the ‘blue text’.
3. Backlinks and the link page: It is the link from another website with proper anchor text that links the page to a page on your main website. Backlinks look at the quality and reputation of websites. It requires significant research to get the best backlink — searching for competitors and then investigating which backlink domains are associated so that the website is connected to those same domains.
4. Competition placement: After researching keywords and anchor text, it is important to track the rank of the website in comparison with other websites in the same industry. You must put keywords in the search engine between “ ” and note down the competing pages, before using search triggers to optimise the website.
5. Analytics and tracking tools: Analytics and tracking tools provide insights on how a site is performing. Analytics measure traffic, page views, clicks, and so much more. These resources collect and analyse your data, as well as your competitors’ data. With this information, you can better understand your customers and apply that knowledge to improve your site for a greater online experience and increased conversions. Different analytics produce different data, but the underlying goal is the same — to measure the performance of your Web presence.
6. Layout of the page and calls to action: Page layout plays a crucial role in how the user navigates to various sub-pages, and indexing makes it easy to crawl through the information. A call to action (CTA) is a prompt on a website that tells the user to take some specified action. A CTA is typically written as a command, such as ‘Sign Up’ or ‘Buy Now’ and generally takes the form of a button or hyperlink. Both are good for Web optimisation.
Figure 4: Apache JMeter
7. Design and branding ‘your look’: This is where an optimisation strategy should start to leverage website searches, and extend the website with a professional design. It is recommended that you choose the best template with regard to style and layout, leaving the content intact. Website design should be optimised to be viewed on laptops, PCs, smartphones, tablets and even smart TVs.
8. Database/forms: The database and forms should be customised as per the end user’s needs. It is recommended that you have a proper backup of the database, and it should be optimised to support all types of queries, emails, newsletters, etc.
9. Auto-response systems: Eighty per cent of your communications with prospective customers or audience can be semi-automated by using forms, databases and auto-responder software, or third-party mailing and re-mailing systems. Thinking through exactly what you are offering to your website’s visitors is key to the success of a website optimisation strategy. This should be done once you have performed sufficient analysis, and have built trust with the visitors to your website with your brand and layout.
10. E-commerce: This is the last stage of Web optimisation and the website should support all e-commerce systems. Website optimisation for e-commerce ought to be achieved after a thorough study of your website’s visitors and their purchasing habits.
To perform Web optimisation is not an easy task, as it involves a number of varied procedures and steps. A lot of commercial and open source tools are available for Web optimisation, but in this article, only the top open source tools for Web optimisation are highlighted to assist Web developers.
Figure 5: Apache Bench load testing results
Locust.io
Locust is an open source, easy to use, distributed Web optimisation tool for load testing of the website. It is designed to determine how many concurrent users a particular system can handle. It works on the same pattern as a swarm of locusts attacking the website, and the behaviour of every locust represents a user and the swarming process is monitored from the Web UI in real-time. Locust.io is completely event based and, therefore, it’s possible to support thousands of concurrent users on a single machine. In contrast to many other event based apps, it doesn’t use callbacks. Instead, it uses lightweight processes, through gevent.
Features:
  • Highly distributed and scalable, and supports thousands of users because of its event based nature.
  • Neat HTML+JS UI to give entire information in real-time.
  • Facilitates writing test case scenarios in Python code.
  • Being Web-oriented, it can test any type of system.
  • It is a lightweight, small and easily hackable tool facilitating Web developers to give the best Web loading results.
Official website: https://locust.io/
Latest version: 0.9.0
httperf
httperf is an open source, flexible and highly efficient Web server performance monitoring tool for generating various HTTP workloads. The three main characteristics of this tool are robustness (the ability to generate and sustain server overload), support for HTTP/1.1 and SSL protocols, and extensibility to new workload generators.
The main objective of this testing tool is to count the number of responses generated from a particular server. It generates the HTTP GET requests from the server, which helps in summarising the overall performance of the server. This was originally developed by David Mosberger and many others at HP. It is a Hewlett-Packard product.
Official website: https://github.com/httperf/httperf
Latest version: 0.9.0
Apache JMeter
Apache JMeter is an open source, Java based performance testing tool and can be integrated with a test plan. It can also be used as a load testing tool for analysing and measuring the performance of a variety of services, primarily, Web applications. Apache JMeter may be used to test performance both on static and dynamic resources, and on dynamic Web applications. It can be used to simulate a heavy load on a server, group of servers, network or object to test its strength or to analyse overall performance under different load types. It has 64-different plugins to speed up the process of creating and executing the JMeter Test plan.
It is of great use in testing the functional performance of resources such as servlets, Perl scripts and Java objects.
Features:
  • Can do the performance and load testing of many servers, protocols and applications like HTTP, HTTPS, SOAP, FTP, JDBC, LDAP, SMTP, POP3, IMAP, TCP, etc.
  • Creates dynamic HTML reports, is fully portable and designed entirely in Java.
  • Nice IDE for recording, building and debugging performance tests.
  • Easy to use, as Groovy is the default programming language.
Official website: https://jmeter.apache.org/
Latest version: 5.0
Siege
Siege is an open source regression test and benchmark utility. It can stress-test a single URL with a user defined number of simulated users, or it can read many URLs into memory and stress-test them simultaneously. The program reports the total number of hits recorded, bytes transferred, response times, concurrency, and return status. Siege supports the HTTP/1.0 and 1.1 protocols, the GET and POST directives, cookies, transaction logging, and basic authentication. Its features are configurable on a per user basis. Siege allows you to stress test a Web server with ‘n’ number of users ‘t’ number of times, where ‘n’ and ‘t’ are defined by the user. It records the duration time of the test as well as the duration of each single transaction. It reports the number of transactions, elapsed time, bytes transferred, response times, transaction rate, concurrency and the number of times the server responded ‘OK’, i.e., status Code 200.
Features:
  • Siege allows developers to place those programs under stress to allow a better understanding of the load that they can withstand.
  • It supports basic authentication, cookies, the HTTP, HTTPS and FTP protocols.
  • It allows its users to hit a server with a configurable number of simulated clients. Those clients place the server ‘under siege’.
  • It is great for simple, brute-force type of testing.
Official website: https://www.joedog.org/
Latest version: 4.0.4
Multi-Mechanize
Multi-Mechanize is an open source framework for performance and load testing. It runs concurrent Python scripts to generate load (synthetic transactions) against a remote site or service. Multi-Mechanize is most commonly used for Web performance and scalability testing, but can be used to generate workloads against any remote API accessible from Python.
Multi-Mechanize is pure Python and you have access to all of Python’s standard libraries in your scripts. For example, you can use httplib to write a virtual user agent script and get detailed HTTP profiling times (TTFB, TTLB, etc).
Features:
  • A powerful tool using Python.
  • Enables running concurrent scripts to generate load.
  • Generates detailed graphs for hits/throughput and concurrent requests.
  • Generates detailed request/response debug files.
  • Test output reports are saved as HTML or JMeter-compatible XML.
Official website: https://multi-mechanize.readthedocs.io/en/latest/
Latest version: 1.2.0
Apache Bench
Apache Bench (ab) is a load testing and benchmarking tool for a Hypertext Transfer Protocol (HTTP) server. It can be run from the command line and is very simple to use. The Apache Bench tool (AB) can load test servers by sending an arbitrary number of concurrent requests. Although AB was designed for testing Apache installations, it can be used to benchmark any HTTP server. It works by generating a flood of requests to a given URL, and returns some easily digestible performance related metrics to the screen. This simplicity makes it appealing for running quick and dirty load tests, and helps you discover the limitations of your Web stack or a service bottleneck that you did not anticipate.
Features:
  • Multiple MPMs (multi-processing modules) can now be built as loadable modules at compile time.
  • Less memory utilisation, asynchronous support and fully supported event MPMs.
  • Smart filtering and SQL database support.
Official website: https://httpd.apache.org/docs/2.4/programs/ab.html
Latest version: 2.4
K6
K6 is an open source load and performance testing tool built using the Go and JavaScript languages. It provides a clean, approachable scripting API, local and cloud execution, flexible configuration, with command and control through CLI or a REST API. It can do tests ranging from simple unit load tests to complex load tests, and supports HTTP/1.1/2 and WebSockets.
Features:
  • Provides easy and flexible configuration for testing.
  • TLS features: Client certificates, configurable SSL/TLS versions and ciphers.
  • Crypto library for implementing authentication/authorisation protocols.
  • Built in the HAR converter and provides support for modules to aid code reusability.
Official website: https://k6.io/
Latest version: 0.23.1
Read More

Wednesday, October 31, 2018

Roshan Thpa

56 Computer Tricks (AMAZING SECRETS & HACKS)

Technology has advanced within the years so as computer tricks.
This has led to increase in the usage of computers.
If you are like most users, you have been using the computer for many years and it is possible that there still some amazing things you don’t know.
Luckily for you you’ve stumbled on guide that will give some cool computer tricks that will not only make you more productive and look more professional at the face of your colleagues and friends but help you to secure your files and computer as well.
The benefit of computer tricks is to make the use of a computer easier and fun.
So, let get started.

Image result for computer tricks and secrets
What You Will Learn On This Page:
Read More