Saturday, January 15, 2022

What is Agile?

What is Agile?

Agile is an approach to project management that centers around incremental and iterative steps to completing projects. The incremental parts of a project are carried out in short-term development cycles. The approach prioritizes quick delivery, adapting to change, and collaboration rather than top-down management and following a set plan.

Here is the Tutorial video which is based upon AgileπŸ‘‡πŸ‘‡


In Agile processes, there is constant feedback, allowing for team members to adjust to challenges as they arise, and stakeholders an opportunity to communicate consistently. Though originally created for software development, the Agile approach is now widely used in executing many different types of projects and in running organizations.

Contrast this with more traditional forms of project management. Traditional project management generally progresses linearly. Moving from planning, designing, implementation and closing stages happen after the previous stage is complete.


When should you use Agile project management?

The tenets of Agile—adaptability, iteration, continuous delivery, and short time frames, among others—make it a project management style that’s better suited for ongoing projects and projects where certain details aren’t known from the outset. That means if a project doesn’t have clear constraints, timelines, or available resources, it’s a good candidate for an Agile approach.

For example, designing and launching a new product might push a team against several unforeseen challenges. Having an Agile approach can mean the project already has the methodology in place to test products as often as needed, iterate quickly, and communicate changes with stakeholders.

Traditional project management approaches like Waterfall can be easier to plan out and progress easier to measure. This can make projects that have clearly demarcated constraints (like a strict budget or timeline), or projects where teams are expected to work independently of stakeholders better suited for traditional approaches.


Using both Agile methods and Waterfall methods

Not all projects fit neatly into one category or the other. For the projects that might benefit from elements of both a traditional approach and iterative approach, an Agile-Waterfall hybrid approach can make sense. This could mean, for example, that planning and design are done in Waterfall, but development is carried out in short development cycles, Agile-style.


Agile methodologies and frameworks

There are several Agile methodologies and frameworks, each with its own pros and cons. Some are hybrids of multiple methodologies. Scrum is by far the most commonly used Agile methodology; Digital.ai found that 58 percent of Agile adopters used Scrum, with the next most-used methodology being ScrumBan, at 10 percent.

Popular Agile methodologies include:

  • Scrum

  • Kanban

  • Lean

  • Crystal

  • Extreme Programming (XP)

  • Feature-Driven Development (FDD)

  • Domain-Driven Design (DDD)

  • Dynamic Systems Development Method (DSDM)

  • ScrumBan

  • Agile-Waterfall/Hybrid Agile

  • Scrum XP Hybrid





Tuesday, January 11, 2022

How to Create and Hosting Static Website with AWS

S3 is one of the oldest and most popular services provided by AWS with high availability, durability, security, and scalability. S3 can be used to store a backup of the database, Big Data Analytics, media, and much more. It provides an object storage mechanism with an abstraction of Buckets, folders, and files. The abstraction is what makes S3 easy to use.

With S3 (a storage mechanism), there is no need to perform the capacity planning and to specify the initial capacity. As we put more data and delete data, S3 will shrink and expand automatically. S3 provides different storage classes to store different types of data (old/new, frequently/infrequently accessed) and the data can be moved from one storage class to another using S3 Object Life Cycle Management. Or else use the AWS S3 Intelligent Tiering to let AWS decide when to move the data from one storage class to another. AWS CloudFront which is a CDN (Content Distribution Network) can optionally be used to make the website load faster to the end-user.

S3 with the free tier provides 5GB of storage, 20,000 Get Requests, 2,000 Put Requests for free every month for the first year and beyond at on a pay-on-usage model. In this article, we would be creating a static website on S3.



Hosting Static Website with AWS S3


Here is the full tutorial video based on "How to Create and Host a static website in Amazon S3" and S3 C.O.R.S. πŸ‘‡πŸ‘‡



Step 1: Creating Bucket in S3


Go to the S3 Management Console and click on “Create Bucket”


Enter the Bucket name. Note that the Bucket name should be unique. Add something at the end to get a unique Bucket name. Select the Region where the data must be stored. Click on Create and the Bucket should be created as shown below. A Bucket is a container for storing folders and files.



Step 2: Giving the public permissions to the S3 Bucket


Any folder/file in the Bucket would only be visible to the owner who created it. For a website, the Bucket should be given public access for the rest of the world to access it as a webpage. Click on the Properties tab, make sure the “Block public access” is selected, and click on the Edit button. Unselect “Block all public access” and click on Save. Type the word confirm and click on the “Confirm” button.

This step doesn’t give the public permission to the S3 Bucket but will allow us to make the Bucket and its content public later in the next step. AWS has introduced these additional steps and hoops, as there had been a good number of incidents where sensitive data has been put in the S3 Bucket and without the proper settings it was made public for everyone to access the sensitive data.




Now is the time to make the Bucket public. Click on the “Bucket Policy” and enter the below policy, make sure to change the Bucket name to what was created in Step 1. Click on Save to make the Bucket public. Note that AWS will let us know three times that the Bucket has been made public, just to make sure that we don’t make in public accidentally.
1
2
3
4
5
6
7
8
9
10
{
"Version":"2012-10-17",
"Statement":[{
"Sid":"PublicReadGetObject",
"Effect":"Allow",
"Principal": "*",
"Action":["s3:GetObject"],
"Resource":["arn:aws:s3:::my-pictures-website/*"]
}]
}



Step 3: Enabling Static website hosting and uploading the website to S3

Now is the time to enable “Static website hosting” for S3. Notice that by default, it is disabled. Click on the card and select “Use this Bucket to host a website”. Enter the Index document as index.html and the Error document as error.html. Make sure to note down the Endpoint, this is the URL used to access the S3 website. Click on Save.

Note that the “Static website hosting” would be enabled by now. The Index document is the default HTML to be displayed and the Error document is the HTML to be displayed when the HTML page which we are trying to access is not there in S3.








Now is the time to upload the index.html and error.html. Go to the Overview tab and click on Upload. Click on “Add Files” and then Upload. The same steps must be repeated for index.html and the error.html pages.




Here is the content of index.html and error.html.





Step 4: Access the webpage hosted in S3

Open the URL got from “Step 5” to get the index.html displayed. To the end of the URL, anything besides the index.html and the error page would be displayed. The URL is not user-friendly, a user-friendly URL can be created using AWS Route53.







Wednesday, January 5, 2022

What is AI, Machine Learning, Deep Learning, and Data Science

What is AI? 

AI on its own really isn’t anything: just lines of code. When it comes to how that code is used in society and how those uses impact people, however—that’s when AI becomes more than just code. In The People’s Guide to AI (written by the fantastic Mimi Ọnα»₯ọha and Diana J. Nucera), AI is described as “like salt,” in that when it is added to a product, that product is transformed.

AI can be employed to help software and other tech products accomplish a wide variety of tasks, from sorting or locating information in a search engine to recommending music on Spotify. Forms of AI exist in public spaces such as schools, hospitals, and workplaces, as well as in the privacy of our homes.

To function, AI needs data. Data allows AI systems to build patterns, which they then use to generate predictions and simulations or to infer information about the world. Often, this data is gathered, extracted, and mined as a focussed process to build an understanding of communities and of how we use technology.


Here is the video which is fully based on the Difference between AI, Machine Learning, Deep Learning, and Data ScienceπŸ‘‡πŸ‘‡



What is Machine Learning?

Machine learning is a subset of artificial intelligence (AI). It is focused on teaching computers to learn from data and to improve with experience – instead of being explicitly programmed to do so. In machine learning, algorithms are trained to find patterns and correlations in large data sets and to make the best decisions and predictions based on that analysis. Machine learning applications improve with use and become more accurate the more data they have access to. Applications of machine learning are all around us –in our homes, our shopping carts, our entertainment media, and our healthcare.




What is Deep Learning?

Deep learning is a branch of machine learning. Unlike traditional machine learning algorithms, many of which have a finite capacity to learn no matter how much data they acquire, deep learning systems can improve their performance with access to more data: the machine version of more experience. After machines have gained enough experience through deep learning, they can be put to work for specific tasks such as driving a car, detecting weeds in a field of crops, detecting diseases, inspecting machinery to identify faults, and so on.



What is Data Science?

Deep learning networks learn by discovering intricate structures in the data they experience. By building computational models that are composed of multiple processing layers, the networks can create multiple levels of abstraction to represent the data.

For example, a deep learning model known as a convolutional neural network can be trained using large numbers (as in millions) of images, such as those containing cats. This type of neural network typically learns from the pixels contained in the images it acquires. It can classify groups of pixels that are representative of a cat’s features, with groups of features such as claws, ears, and eyes indicating the presence of a cat in an image.



What is Data Science?

Data science is a multidisciplinary approach to finding, extracting, and surfacing patterns in data through a fusion of analytical methods, domain expertise, and technology. This approach generally includes the fields of data mining, forecasting, machine learning, predictive analytics, statistics, and text analytics. As data is growing at an alarming rate, the race is on for companies to harness the insights in their data. However, most organizations are faced with a shortage of experts to analyze their big data to find insights and explore issues the company didn’t even know it had. To realize and monetize the value of data science, organizations must infuse predictive insights, forecasting, and optimization strategies into business and operational systems. Many businesses are now empowering their knowledge workers with platforms that can help them conduct their own machine learning projects and tasks. Being able to extract trends and opportunities in the massive amounts of data being infused into a business will give an organization a competitive advantage.



Monday, January 3, 2022

Amazon Routing Policies

What Is Amazon Route 53?

Amazon Route 53 (Route 53) is a scalable and highly available Domain Name System (DNS) service. Released on December 5, 2010, it is part of Amazon.com's cloud computing platform, Amazon Web Services (AWS). The name is a possible reference to U.S. Routes, and "53" is a reference to the TCP/UDP port 53, where DNS server requests are addressed. In addition to being able to route users to various AWS services, including EC2 instances, Route 53 also enables AWS customers to route users to non-AWS infrastructure and to monitor the health of their application and its endpoints. Route 53's servers are distributed throughout the world. Amazon Route 53 supports full, end-to-end DNS resolution over IPv6. Recursive DNS resolvers on IPv6 networks can use either IPv4 or IPv6 transport to send DNS queries to Amazon Route 53.


What is Policy-Based Routing?

In computer networking, policy-based routing (PBR) is a technique used to make routing decisions based on policies set by the network administrator.

When a router receives a packet it normally decides where to forward it based on the destination address in the packet, which is then used to lookup an entry in a routing table. However, in some cases, there may be a need to forward the packet based on other criteria. For example, a network administrator might want to forward a packet based on the source address, not the destination address. This permits routing of packets originating from different sources to different networks even when the destinations are the same and can be useful when interconnecting several private networks.


Here is the full video based on AWS Routing policiesπŸ‘‡πŸ‘‡





Routing policies are used to: 

  • Manipulate route attributes (the attribute depends on the routing protocol) 
  • Decide which routes go into the routing table 
  • Decide which routes to advertise to neighbors 
  • Redistribute routes



Route 53 Routing Policies


Simple

This is the default routing policy. Use this only when you have exactly one resource such as one EC2 web server. This policy can contain multiple values but it returns one resource. This policy is not recommended for production sites.


Weighted

This one is fantastic for new deployments or release testing new versions. It’s based on a numerical value ranging from 0 to 255. If you specify a value of 0 for all regions then it’s routed equally.


Failover

Allows creating two records for the same name. This starts like a simple policy but with a health check. If that single web server is unhealthy then you can point elsewhere. That next pointer can be another web server or possibly an error.html page hosted in AWS S3.


Geolocation

Use this when you want to serve your site based on the location of the client or user.


Geoproximity

This is somewhat complicated so I would like to point to original documentation for the full explanation.


Latency

When you have multiple resources in multiple regions, this policy routes the user, not to the closest resource necessarily but the resource that responds the fastest or lowest latency


Multivalue answer

This one lets your return multiple values for each of your resources. The client or user browser randomly chooses one. Optionally you can add health checks. If any value becomes unhealthy then the client chooses another value to resolve. This is not an alternative solution to load balancing, it’s an enhancement.



Ethical Hacking Techniques: Cracking WPA/WPA2 Wi-Fi Using WPS and Capturing Handshakes

In the realm of cyber security, ethical hacking plays a crucial role in identifying and addressing vulnerabilities. One of the areas where e...