Arrangement
Equipped with the subject matter for your argument or speech, after having determined the issue at hand, thought out appropriate supporting arguments drawn f...
Equipped with the subject matter for your argument or speech, after having determined the issue at hand, thought out appropriate supporting arguments drawn f...
Know the areas where you must hunt for, and track down what you are trying to find. Once you have surrounded the entire place with the nets of your though...
The nature of eloquent and persuasive speech has been fiercely debated. Is rhetoric an art or a skill? Does it require natural ability, or can it be aquired ...
“You do what you can for as long as you can, and when you finally can’t, you do the next best thing. You back up but you don’t give up.”
Encryption is when you change data with a special encoding process so that the data becomes unrecognizable (it’s encrypted). You can then apply a special dec...
Intrusion Detection Systems (IDS) and Intrusion Prevention Systems (IPS) are both parts of the network infrastructure. IDS/IPS compare network packets to a c...
Server hardening is a general system hardening process that involves securing the data, ports, components, functions, and permissions of a server using advan...
The increasingly digital world makes it easier for hackers to intercept corporate information and user conversations. However, it also presents opportunities...
Attacks can be categorized in two main types: “Passive” when a network intruder intercepts data traveling through the network, and “Active” in which an intru...
Encryption At Rest
Database hardening involves securing both the contents of a digital database and the database management system (DBMS), which is the database application use...
Containerized applications managed by cloud-native platforms have no control over their lifecycle, and to be good cloud-native citizens, they have to listen ...
“Everything is now software and the OSI model doesn’t matter anymore”
Elastic Compute Cloud (Amazon EC2)
Every mission critical application should have a foolproof disaster recovery strategy. To ensure the high availability of any application, it is essential to...
Learners are expected to do much of their learning virtually or at a distance from one another in face-to-face classes.
The Socratic method (also known as Socratic debate) is a form of cooperative argumentative dialogue between individuals, based on asking and answering questi...
Threat modeling works to identify, communicate, and understand threats and mitigations within the context of protecting something of value.
A speech serves as an ideal medium when presenting information in meetings.
“Communicate unto the other person that which you would want him to communicate unto you if your positions were reversed.”
Before you start taking any notes be clear about why you are attending the talk or meeting. Basically what are you hoping to learn or gain from it.
Get your emails opened, read and responded every time.
It may seem like an easy and simple task, but crafting a great email is an art. Here you can find some pieces of advice I would give to anyone struggling wit...
Effective communication is a process of exchanging ideas, thoughts, knowledge and information such that the purpose or intention is fulfilled in the best pos...
“No one can whistle a symphony. It takes a whole orchestra to play it.”
If the number of applications grows in our system, it becomes difficult to manage. Docker is not enough, since we need a coordination to do the deployment, t...
Cloud Native applications need both a scalable and available infrastructure layer (e.g. Kubernetes new tab and its ecosystem of tools new tab) and a scalable...
In mathematics, the theory of optimal stopping or early stopping is concerned with the problem of choosing a time to take a particular action, in order to ma...
“If changing strategies doesn’t help, you can try to change the game. And if that’s not possible, you can at least exercise some control about which games...
SPA stands for single page application. Strictly speaking, it’s a single page website which dynamically updates in a client’s browser. A more general underst...
Three-tier architecture, which separates applications into three logical and physical computing tiers, is the predominant software architecture for tradition...
One of the realities of three-tier applications is that they are, as a general rule, stateful.
Layer 7 (HTTP) load balancing offers versatility. You can load balance requests based on anything HTTP – including the payload.
GSLB is the means by which you ensure that if one data center (cloud or traditional) isn’t responding, you can find another. GSLB can be applied at the domai...
An alternative design pattern to QBLL is the throttling pattern, which centers on the concept of the “noisy neighbor” problem.
The retry pattern, a common cloud design pattern when dealing with third-party interactions, encourages applications to expect failures. Processes that imple...
Queue-based load leveling (QBLL) is a common cloud design pattern that helps with scale problems as an application grows. Rather than performing complex oper...
Named after the divided partitions of a ship that help isolate flooding, the bulkhead pattern prevents a single failure within an application from cascading ...
Peripheral tasks such as Monitoring, Logging etc are critical to most applications and often integrated within them. However, these tasks run alongside the s...
Traditionally, people interact with Information Systems through a CRUD data store. Read and Write Data models are often the same. As the complexity of the ap...
When we talk about Cloud Applications, Micro-services often come to mind. This is an architecture style where multiple micro-services i.e. remote APIs or thi...
Move configuration information out of the application deployment package to a centralised location. This can provide opportunities for easier management and ...
There are situations where failures can be caused by unexpected situations and take relatively longer to fix. Retry or waiting for the request to timeout may...
Implement a façade or adapter layer between different subsystems that don’t share the same semantics. This layer translates requests that one subsystem makes...
Create helper services that send network requests on behalf of a consumer service or application. An ambassador service can be thought of as an out-of-proces...
“ The Tao is not difficult for those who have no preferences. When love and hate are both absent, everything becomes clear and undisguised. Make the small...
Imagine the simplest change to your production system that you can think of. You want it to be so simple that you can ignore the variable cost of development.
Here are 8 specific things You should pay close attention to when conducting code reviews for tests.
Review fewer than 400 lines of code at a time.
When reviewing code you need to know what is expected. Are you reviewing for security, functionality, maintainability, and/or style? Does your organization h...
Serverless architectures are application designs that incorporate third-party “Backend as a Service” (BaaS) services, and/or that include custom code run in ...
The concept of “Design for Failure” is often used to describe the approach that assumes that there will be a hardware or system failure somewhere, sometime –...
“The wealth required by nature is limited and is easy to procure; but the wealth required by vain ideals extends to infinity.”
Microservices - also known as the microservice architecture - is an architectural style that structures an application as a collection of services that are
As blue/green deployments become more popular, developers and companies are constantly applying the methodology to new and innovative use cases.
Blue/green deployment is a technique for releasing applications by shifting traffic between two identical environments running different versions of the ...
DAO is really a ** J2EE pattern **. It is very easy to implement in PHP and it helps enormously to separate the access to the database from the rest of the c...
PHP implements a way to reuse code called Traits.
Do Treat your infrastructure as code Use version control for your infrastructure code. Make use of bug tracking/ticketing systems. Have peers review change...
“If a man going down into a river, swollen and swiftly flowing, is carried away by the current — how can he help others across?”
The three CI/CD teams should incorporate testing into the software development lifecycle at the different stages of the CI/CD pipeline.
You can consider multiple deployment strategies and variations for rolling out new versions of software in a Continuous Delivery process. The most common dep...
AWS recommends organizing three developer teams for implementinga CI/CD environment: application team infrastructure team tools team.
One misconception about continuous delivery is that it means every change committed is applied to production immediately after passing automated tests. Howev...
Infrastructure as Code means a way of provisioning resources in a repeatable and consistent manner.
Infrastructure as Code (IaC) is the management of infrastructure (networks, virtual machines, load balancers, and connection topology) in a descriptive model...
“Even the finest sword plunged into salt water will eventually rust.”
It seems counterintuitive that spending time will free up time, but that’s exactly what one-on-ones can do.
You should make sure your reviews are unsurprising, fair, and motivating.
You, your previous manager, and your new manager meet in the same room or video call. Most of the talking happens between the managers, but there should be c...
While every manager might have their own management style, there are certain “pillars” that make a great 1:1 meeting.
A 1:1 meeting (pronounced one-on-one or one-to-one meeting) is a regular check-in between two people in an organization – typically a manager and an employee...
“The most important consequence of self-sufficiency is freedom.”
In computer programming, the flyweight software design pattern refers to an object that minimizes memory usage by sharing some of its data with other similar...
In software engineering, the singleton pattern is a software design pattern that restricts the instantiation of a class to one “single” instance. This is use...
In computer programming, an object orgy is a situation in which objects are insufficiently encapsulated via information hiding, allowing unrestricted access ...
In software development, the yo-yo problem is an anti-pattern that occurs when a programmer has to read and understand a program whose inheritance graph is s...
The “ninety-ninety” rule states that the first 90 percent of code construction uses up 90 percent of development time, and that the remaining 10 percent of c...
Overengineering (or over-engineering, or over-kill) is the act of designing a product to be more robust or have more features than often necessary for its in...
“A leader is best When people barely know he exists Of a good leader, who talks little, When his work is done, his aim fulfilled, They will say, “We did t...
Bikeshedding occurs when a development team spends a disproportionate amount of time and effort on a trivial or unimportant detail of a system, such as the c...
State is a behavioral design pattern that lets an object alter its behavior when its internal state changes. It appears as if the object changed its class.
Chain of Responsibility is a behavioral design pattern that lets you pass requests along a chain of handlers. Upon receiving a request, each handler decides ...
Proxy is a structural design pattern that lets you provide a substitute or placeholder for another object. A proxy controls access to the original object, al...
Vulnerability scanners are automated tools that allow organizations to check if their networks, systems and applications have security weaknesses that could ...
Congestion games are a class of games in game theory first proposed by American economist Robert W. Rosenthal in 1973.
“Don’t explain your philosophy. Embody it.”
Linux is a clone of UNIX, the multi-user operating system which can be accessed by many users simultaneously. Linux can also be used in mainframes and server...
The goal set by the Container PSR is to standardize how frameworks and libraries make use of a container to obtain objects and parameters.
When programming in any language the process of adding comments involves writing notes alongside the code to describe what the code does and how it works. Th...
Operators in PHP enable us to perform tasks on variables and values such as assign, multiply, add, subtract and concatenate them.
If you look up the word constant in a dictionary it will probably tell you that the word is used to describe something that is non-changing and non-variable,...
The git reset command is a complex and versatile tool for undoing changes. It is invoked mainly in three different ways, corresponding to the command line ar...
“The Only Thing That Is Constant Is Change -”
A merge conflict is an event that takes place when Git is unable to automatically resolve differences in code between two commits. Git can merge the changes ...
A swarm consists of multiple Docker hosts which run in swarm mode and act as managers (to manage membership and delegation) and workers (which run swarm serv...
The engine consists of three major components: Docker Daemon: The daemon (dockerd) is a process that keeps running in the background and waits for commands ...
An image registry is a centralized place where you can upload your images and can also download images created by others. Docker Hub is the default public re...
Images are multi-layered self-contained files that act as the template for creating containers. They are like a frozen, read-only copy of a container. Images...
In the world of containerization, there can not be anything more fundamental than the concept of a container.
“When you delegate work to a member of the team, your job is to clearly frame success and describe the objectives.”
One of the main reasons for using scripting languages such as PHP is to build logic and intelligence into the creation and deployment of web based data. In o...
One of the benefits of PHP being a server side scripting environment is that it gives the web developer easy access to the filesystem of the server on which ...
An object is a self-contained piece of functionality that can be easily used, and re-used as the building blocks for a software application.
Web servers are typically stateless entities. That is to say they serve up web pages without regard to who requested the page and with no knowledge of whethe...
PHP Sessions allow web pages to be treated as a group, allowing variables to be shared between different pages.
In the world of programming and scripting there are two ways to write code. One way is to write long, sprawling and monolithic sections of script. Another is...
“No man ever steps in the same river twice, for it’s not the same river and he’s not the same man.”
In PHP you can find six types of variables: integer string float boolean array objects
In terms of web page content we have two extremes.
PHP is an intuitive, server side scripting language. Like any other scripting language it allows developers to build logic into the creation of web page con...
The first standard is the basic coding standard. These are the basic rules that the voting members of the Framework Interoperability Group feel that you shou...
Event dispatching has been around for a long time, in various forms, in many languages.
It describes a common interface for logging libraries.
“Love is the only force capable of transforming an enemy into a friend.”
PSR-4 is a specification for auto-loading of classes from the file path. It describes where the files to be autoloaded are located.
Historically PHP, unlike other programming languages, has never had a standard that establishes how code should be written and structured. This has led to pr...
The gift-exchange game is a game that has been introduced by Akerlof and Yellen to model labor relations. Two players are at least involved in such game – an...
A signaling game is a simple type of a dynamic Bayesian game.
Doing accessibility testing is just the right thing to do.
In game theory, a Bayesian game is a game in which players have incomplete information about the other players.
“The key elements in the art of working together are how to deal with change, how to deal with conflict, and how to reach our potential…the needs of the t...
In economics and game theory, complete information is an economic situation or game in which knowledge about other market participants or players is availabl...
A Colonel Blotto game is a type of two-person constant-sum game in which the players (officers) are tasked to simultaneously distribute limited resources ove...
Fair cake-cutting is a kind of fair division problem. The problem involves a heterogeneous resource, such as a cake with different toppings, that is assumed ...
The prisoner’s dilemma is a paradox in decision analysis in which two individuals acting in their own self-interests do not produce the optimal outcome.
In game theory, a simultaneous game or static game is a game where each player chooses their action without knowledge of the actions chosen by other players.
In game theory, a sequential game is a game where one player chooses their action before the others choose theirs.
“When you strip away the genre differences and the technological complexities, all games share four defining traits: a goal, rules, a feedback system, and...
In computer science, a thread of execution is the smallest sequence of programmed instructions that can be managed independently by a scheduler, which is typ...
Although there are many types (e.g., symmetric/asymmetric, simultaneous/sequential, et al.) of game theories, cooperative and non-cooperative game theories a...
In game theory and economic theory, a zero-sum game is a mathematical representation of a situation in which each participant’s gain or loss of utility is ex...
The game of chicken, also known as the hawk–dove game or snowdrift game, is a model of conflict for two players in game theory.
Game theory studies interactive decision-making, where the outcome for each participant or “player” depends on the actions of all.
People see success as positive and failure as a negative. Failure isn’t a bad thing. You can learn, grow and evolve from your past mistakes. In business, fai...
“True intuitive expertise is learned from prolonged experience with good feedback on mistakes.”
Git changed the way development teams collaborate and think of merging and branching.
The efficiency of an algorithm is related to the amount of resources it requires to obtain a solution to the problem (fewer resources, greater efficiency). I...
Big O notation is a mathematical notation that describes the limiting behavior of a function when the argument tends towards a particular value or infinity.
A deck of cards naturally has the structure of a product set and thus can be modeled mathematically by
Games of chance hold an honored place in probability theory, because of their conceptual clarity and because of their fundamental influence on the early deve...
Probability theory is the branch of mathematics concerned with probability.
“You don’t learn to walk by following rules. You learn by doing, and by falling over.”
The birthday problem or birthday paradox concerns the probability that, in a set of n randomly chosen people, some pair of them will have the same birthday.
Hash collisions are practically unavoidable when hashing a random subset of a large set of possible keys. For example, if 2,450 keys are hashed into a millio...
In computing, a hash table (hash map) is a data structure that implements an associative array abstract data type, a structure that can map keys to values.
In computer science, a set is an abstract data type that can store unique values, without any particular order. It is a computer implementation of the mathem...
A dictionary represents an unordered collection of keys and values. The Dictionary data type is optimized for fast lookup of values.
A tuple is a data structure that is an immutable, or unchangeable, ordered sequence of elements. Because tuples are immutable, their values cannot be modifie...
“Individual commitment to a group effort–that is what makes a team work, a company work, a society work, a civilization work.”
In computer science, a linked list is a linear collection of data elements whose order is not given by their physical placement in memory. Instead, each elem...
An array is a collection of items stored at contiguous memory locations. The idea is to store multiple items of the same type together. This makes it easier ...
We can define the queue data structure as a restrictive linear FIFO (first in firstout) type structure, this indicates that the first element that entered th...
We can define the stack data structure as a linear restrictive structure of type LIFO (last in first out), this indicates that the last element that entered ...
Being a great boss means helping to boost employee productivity and job satisfaction through effective management.
SonarQube is available for free under the GNU Lesser General Public License. An enterprise version for paid licensing also exists, as well as a data center e...
“The shopping cart is the ultimate litmus test for whether a person is capable of self-governing.”
The systemctl command is a utility which is responsible for examining and controlling the systemd system and service manager.
Being a leader is tiring and demanding. You’ve got so many pieces moving around at the same time. You’ve got deadlines to meet, you’ve got clients to attend,...
The Gantt chart is a graphical tool whose objective is to expose the expected time of dedication for different tasks or activities over a given total time. D...
With Maslow’s theory, an employee’s beginning emphasis on the lower order needs of physiology and security makes sense.
Maslow’s hierarchy of needs is a motivational theory in psychology comprising a five-tier model of human needs, often depicted as hierarchical levels within ...
Organizational change refers to the actions a business takes to change or adjust a significant component of its organization.
“Concealed talent brings no reputation.”
A software development manager plans, directs, and coordinates all activities related to writing software programs.
There are two ways to create a RegExp object: a literal notation and a constructor. Parameters for literal notation are enclosed in slashes and do not use q...
The workflow is the study of the operational aspects of a work activity: how the tasks are structured, how they are carried out, what is their correlative or...
A one-time password (OTP), also known as one-time PIN or dynamic password, is a password that is valid for only one login session or transaction, on a comput...
The YubiKey is a device that makes two-factor authentication as simple as possible. Instead of a code being texted to you, or generated by an app on your pho...
Two-Factor Authentication (2FA) works by adding an additional layer of security to your online accounts. It requires an additional login credential – beyond ...
“Every day, in every way, I’m getting better and better”
The process of troubleshooting and fixing the bugs in your code isn’t intuitive to anyone who hasn’t spent a long time learning to code.
Without fail, the code we write as software developers doesn’t always do what we expected it to do. Sometimes it does something completely different! When th...
Although there is no precise procedure for fixing all bugs, there are a number of useful strategies that can reduce the debugging effort.
Surprisingly, the debugging process may take significantly more time than writing the code in the first place. A large amount (if not most) of the developmen...
Few of us enjoy asking for help.
Establishing a culture of peers training peers
“In the midst of chaos, there is also opportunity”
Social learning theory, proposed by Albert Bandura, emphasizes the importance of observing, modelling, and imitating the behaviors, attitudes, and emotional ...
PPTP (Point to Point Tunneling Protocol), is an outdated communications protocol that allows the implementation of virtual private networks or VPNs.
Document Object Model or DOM is essentially a platform interface that provides a standard set of objects to represent HTML, XHTML and XML documents, a standa...
Every app has a main() function. To display text on the console, you can use the top-level print() function:
Flutter is a free and open-source mobile UI framework created by Google and released in May 2017.
PHP is a general-purpose programming language that is especially suited to web development.
“How an employee initially perceives a company in terms of opportunity has a huge impact on how long they will stay.”
By “onboarding” I don’t mean the first day or week or month you start a new job and complete paperwork, learn where the bathroom is, and how to file expense ...
Priorities and concerns of employees are constantly evolving throughout their time at your company.
JavaScript’s syntax is the set of rules that define how JavaScript programs are constructed
JavaScript is a programming or scripting language that allows you to implement complex functions in web pages, every time a web page does more than sit there...
Fast Forward Merge
The git push command is used to upload content from the local repository to a remote repository.
“The greater the difficulty, the more glory in surmounting it. Skillful pilots gain their reputation from storms and tempests. ”
The git pull command is used to pull and download content from a remote repository and instantly update the local repository to reflect that content.
Merge is Git’s way of rejoining a forked history.
Branching means you diverge from the main line of development and continue to do work without messing with that main line.
When a project is under Git version control system, they are present in three major Git states .
The Advanced Message Queuing Protocol (AMQP) is an open standard application layer protocol for message-oriented middleware. The defining features of AMQP ar...
A virtual private network (VPN) is a computer network technology that allows a secure extension of the local area network (LAN) over a public or uncontrolled...
“Simplicity is prerequisite for reliability.”
Friendly interactive shell (abbreviated as fish) is the name of a Unix shell that is intended to be interactive and user-friendly, unlike other shells.
A code review is a synchronization point among different team members and thus has the potential to block progress.
Gitlab is a Git-based collaborative software development and version control web service. In addition to a repository manager, the service also offers wiki h...
We define a test case as being a written document that provides comprehensive information on what, and how to test. A test case contains details such as the ...
Requirement Analysis, also known as Requirement Engineering, is the process of defining user expectations for a new software being built or modified.
A test plan is a document detailing the objectives, resources, and processes for a specific test for a software or hardware product. The plan typically conta...
Quality control starts and ends with training.
If you work in quality assurance, you understand just how rapidly different emerging technologies are beginning to change the nature of your work. IoT (the i...
Quality assurance is used to refer to the process of verifying, both internally to our team and externally to clients, that the product we’ve created meets t...
Almost every action we take is the result of past learning yet, for some people, learning still remains an activity undertaken in, or associated with, an edu...
Although we are all different and our experiences when learning differ, we can define a series of methods and / or practices that allow us to capture and ret...
Remote learning is the process of teaching and learning performed at a distance.
When we use the term ‘remote training’, most people’s first thought is something similar to an online meeting.
Lack of face-to-face supervision
“Learning experiences are like journeys. The journey starts where the learning is now, and ends where the learner is more successful. The end of the journ...
It doesn’t matter what you do. Good teaching practices are important.
To gain experience using Pytest I am going to write code that works like a calculator.
To gain experience using Pytest I am going to write code that works like a calculator.
To gain experience using Pytest I am going to write code that works like a calculator.
To gain experience using Pytest I am going to write code that works like a calculator.
Pytest is a testing framework based on python. It is mainly used to write API test cases.
“Do not judge me by my success, judge me by how many times I fell down and got back up again.”
Jenkins is an open-source server that is written entirely in Java. It lets you execute a series of actions to achieve the continuous integration process, in ...
Puppet is a cross-platform client-server based application used for configuration management. It handles the software and its configurations on multiple serv...
Gherkin uses a set of special keywords to give structure and meaning to executable specifications.
BDD (Behavior Driven Development), is a behavior-directed development strategy which has evolved from TDD (Test Driven Development), although it is not a tes...
GoLang was reportedly conceived by developers at Google when they were waiting for the code compilation to complete in a project.
The producer-consumer problem is a classic example of a multiprocess synchronization problem. The program describes two processes, producer and consumer, bot...
“The most effective debugging tool is still careful thought, coupled with judiciously placed print statements.”
systemd is a Linux initialization system and service manager that includes features like on-demand starting of daemons, mount and automount point maintenance...
Cloud computing is the on-demand delivery of IT resources over the Internet with pay-as-you-go pricing.
Ansible is a free software platform for configuring and managing computers.
Amazon Elastic Compute Cloud (Amazon EC2) provides scalable computing capacity in the Amazon Web Services (AWS) Cloud.
Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several times a day. Each check-in ...
Continuous Deployment (CD) is a software release process that uses automated testing to validate if changes to a codebase are correct and stable for immediat...
A post-mortem is held after an incident has taken place.
Having access to the network is a key feature of most Linux systems. Users want to surf the net, send and receive email and transfer files with other users.
You can build scripts to automate repetitive parts of your work, which frees your time and ensures consistency each time you use the script. For instance, if...
“It is essential to know that no single specific technology is associated with Zero Trust architecture. The Zero Trust is a security model based on the pr...
Splunk is a piece of software used for searching, monitoring and analyzing big data generated by machines, applications, systems and IT infrastructure throug...
Security information and event management (SIEM) is a subsection within the field of computer security, where software products and services combine security...
Equipped with servers, firewalls, intrusion detection systems, antivirus software and other specialized systems, a SOC monitors network and Internet activity...
Version control, also known as source control, is the practice of tracking and managing changes to software code.
A huge topic, but it’s an important aspect of automation in DevOps.
Let’s talk about docker and the buzzword containers.
“Be not afraid of going slowly, be afraid only of standing still. ”
Bash does not support native regular expressions like some other standard programming languages.
In Linux, everything is considered a file.
Software projects take the form of source code, which is a human-readable set of computer instructions. Since source code is not understood directly by the c...
The kernel of the operating system is like an air traffic controller at an airport, and the applications are the airplanes under its control. The kernel deci...
Once a user has entered a command, the terminal then accepts what the user has typed and passes it to a shell.
The definition of the word Linux depends on the context in which it is used. Linux stands for the system kernel, which is the central controller of everythin...
“it is not the most intellectual of the species that survives; it is not the strongest that survives; but the species that survives is the one that is abl...
You have already defined your strategy for test automation, you’ve put practices in place to build a culture that supports your strategy.
Writing automated tests that run perfectly against one environment it’s challenging in and of itself, but what about when you’re ready to scale your one su...
Many automation projects fail due to unrealistic expectations.
Without a clear strategy in mind, many teams make the mistake of automating their tests for their current situation.
Test automation is most successful when there is collaboration amongst different team members: the product owners, business analysts, developers, testers an...
Let’s take a moment to consider what is your goal for starting a test automation initiative and what is it that you want to accomplish, who do you envision p...
If bugs occur (which they certainly do), the person finding the bug should be able to report (document & send) the bug to people in charge of fixing that...
Like police inspectors, we as developers rely on evidences which we gather through asking the right questions. A well-executed bug reporting strategy will br...
“Tests are sometimes mistaken with quality assurance. These two notions are not identical: 1) quality assurance ensures that the organization’s processes ...
Bug severity and bug priority are two commonly used terms in software testing. However, they are often used interchangeably, which is incorrect.
Time management is key in most software development projects. Especially when a lot of bugs start to come in, features requests pop up and new feature releas...
Code Red was a computer worm first observed on the Internet on July 15, 2001. It attacked computers running Microsoft’s IIS web server.
What is IPv6 stateless address auto-configuration?
IPv6 is an upgrade to the IPv4 protocol, designed to solve address exhaustion.
Despite its size, the Internet also suffers from a lack of space.
“Creativity involves breaking out of expected patterns in order to look at things in a different way.”
Mirai is a botnet whose targets are devices of the so-called Internet of Things (IoT for short).
Nimda is a computer worm. It spread quickly, surpassing the economic damage caused by previous outbreaks such as Code Red.
ILoveYou (or VBS / LoveLetter) is a worm written in VBScript. In May 2000, it infected approximately 50 million computers, causing losses of more than 5.5 bi...
WannaCry is an example of encryption ransomware, a type of malicious software (malware) that cybercriminals use to extort money.
Spyware is malware that collects information from a computer and then transmits it to an external entity without the knowledge or consent of the computer’s o...
Ransomware is a type of malicious program that restricts access to certain parts or files of the infected operating system and asks for a ransom in exchange ...
“If you can’t fly, then run, if you can’t run then walk if you can’t walk then crawl, but whatever you do you have to keep moving forward”
A computer worm is malware that replicates itself to spread to other devices.
A botnet is a set or network of computer robots (or bots), which run autonomously and automatically.
A modem is a signal modulator and demodulator, a device capable of converting digital signals into analog ones, but also analog into digital.
A router is a device that connects computers that work within the framework of a network.
Data science is the field of study that combines domain expertise, programming skills, and knowledge of mathematics and statistics to extract meaningful insi...
“As data scientists, our job is to extract signal from noise.”
Ethernet is a standard for local area networks.
Data Over Cable Service Interface Specifications (abbreviated as DOCSIS) is a globally-recognized telecommunications standard that enables high-bandwidth dat...
The presentation layer ensures the information that the application layer of one system sends out is readable by the application layer of another system. For...
The OSI model defines the application layer as the user interface responsible for displaying received information to the user.
The session layer provides the mechanism for opening, closing and managing a session between end-user application processes, i.e., a semi-permanent dialogue.
The protocols of the transport layer provide host-to-host communication services for applications.
The physical layer includes the basic network hardware transmission technologies of a network. It is a fundamental layer that underlies the logical data stru...
“Quality is never an accident; it is always the result of intelligent effort.”
The network layer is responsible for packet forwarding including routing through intermediate routers and it also manages quality of service (QoS), and recog...
The data link layer or layer 2 is the second layer of the OSI seven-layer model of computer networks.
Performance issues tend to arise when networks grow unplanned.
An input kludge is a type of failure in software (an anti-pattern) where simple user input is not handled.
To reinvent the wheel is to duplicate a basic method that has already previously been created or optimized by others.
A phrase used to describe a situation where a programmer lets performance considerations affect the design of a piece of code.
A poltergeist is a short-lived, typically stateless object, used to perform initialization or to invoke methods in another more permanent class.
A common anti-pattern in graphical user interfaces.
In software engineering, tester-driven development or bug-driven development, is an anti-pattern where the requirements are determined by bug reports or test...
“First do it, then do it right, then do it better.”
A device for the temporary storage (caching) of Web documents (such as Web pages, images, and other types of Web multimedia) to reduce server lag.
a.k.a. HTTP, a protocol which allows us to make requests for data and resources, such as HTML documents.
A test suite that covers the main functionality of a component or system to determine whether it works properly before planned testing begins, also known as ...
Fuzzing or fuzz testing is an automated software testing technique that involves providing invalid, unexpected, or random data as inputs to a computer progra...
A method of software testing that examines the functionality of an application without peering into its internal structures or workings.
In white-box testing an internal perspective of the system, as well as programming skills, are used to design test cases.
“Talk is cheap. Show me the code.”
A level of software testing where a system is tested for acceptability. The purpose of this test is to evaluate the system’s compliance with the business req...
Any type of software testing done after code is changed in order to discover errors , lack of functionality, or functional differences with respect to the ex...
A type of testing where software modules are integrated logically and tested as a group.
Unit tests are what programmers use to make sure that a code unit is working as expected.
Composite is a structural design pattern that lets you compose objects into tree structures and then work with these structures as if they were individual ob...
Builder is a creational design pattern that lets you construct complex objects step by step. The pattern allows you to produce different types and representa...
Abstract Factory is a creational design pattern that lets you produce families of related objects without specifying their concrete classes.
“Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program.”
A facade is a class that provides a simple interface to a complex subsystem which contains lots of moving parts.
Bridge is a structural design pattern that lets you split a large class or a set of closely related classes into two separate hierarchies —abstraction and im...
Extending a class is the first thing that comes to mind when you need to alter an object’s behavior.
An adapter is a special object that converts the interface of one object so that another object can understand it.
The Visitor pattern suggests that you place new behavior into a separate class called visitor, instead of trying to integrate it into existing classes.
The Template Method pattern suggests that you break down an algorithm into a series of steps, turn these steps into methods, and put a series of calls to the...
The Prototype pattern delegates the cloning process to the actual objects that are being cloned.
This pattern lets you define a subscription mechanism to notify multiple objects about any events that happen to the object they’re observing.
The Mediator pattern suggests that you should cease all direct communication between the components which you want to make independent of each other.
The strategy pattern allows switching out one algorithm or policy for another without modifying the client.
The singleton pattern is used to limit creation of a class to only one object.
A normal factory produces goods; a software factory produces objects.
Model-view-controller , also known as MVC, is a software design pattern that separates the business logic from the user interface and the code that manages i...
“Waste no more time arguing about what a good man should be. Be one.”
Test-driven development (TDD) involves two practices: Test First Development and Refactoring.
SSH, or secure shell, is a remote administration protocol that lets users, wherever they are, spawn a remote shell to work on their servers.
UDP is a transport layer protocol that serves as an alternative to TCP.
If a tree falls in a forest and no one is around to hear it, does it make a sound?
Nmap (Network Mapper) is a free software utility that lets you explore, manage and audit the security of computer networks.
The Internet is a large network made up of a finite number of devices. A finite but extremely large number
The internet protocol allows two devices, wherever they are, to communicate with each other.
When I started hacking HTB boxes I felt lost.
Any sufficiently advanced technology is indistinguishable from magic. Arthur C. Clarke