Technologies

Cyber Security

What is Cyber Security? 

Cybersecurity is the protection of internet-connected systems such as hardware, software and data from cyberthreats. The practice is used by individuals and enterprises to protect against unauthorized access to data centers and other computerized systems.

With an increasing number of users, devices and programs in the modern enterprise, combined with the increased deluge of data -- much of which is sensitive or confidential -- the importance of cybersecurity continues to grow. The growing volume and sophistication of cyber attackers and attack techniques compound the problem even further.

The cybersecurity field can be broken down into several different sections, the coordination of which within the organization is crucial to the success of a cybersecurity program. These sections include the following:

  • Cloud security
  • Critical infrastructure security
  • Physical security
  • End-user education
  • Network security
  • Application security 
  • Data security

The benefits of implementing and maintaining cybersecurity practices include:

  • Business protection against cyberattacks and data breaches.
  • Protection for data and networks.
  • Prevention of unauthorized user access.
  • Improved recovery time after a breach.
  • Protection for end users and endpoint devices.
  • Regulatory compliance.
  • Business continuity.
  • Improved confidence in the company's reputation and trust for developers, partners, customers, stakeholders and employees.

Types of cyberthreats include:

  • Malware 
  • Ransomware
  • Social engineering
  • Phishing
  • Distributed denial-of-service (DDoS) attacks
  • Advanced persistent threats
  • Man-in-the-middle (MitM) attacks

Mobile Applications

What are Mobile Applications?

A mobile application, most commonly referred to as an app, is a type of application software designed to run on a mobile device, such as a smartphone or tablet computer. Mobile applications frequently serve to provide users with similar services to those accessed on PCs. Apps are generally small, individual software units with limited function.

Apps are divided into two broad categories: native apps and web apps. Native apps are built for a specific mobile operating system, usually iOS or Android. Native apps enjoy better performance and a more finely-tuned user interface (UI), and usually need to pass a much stricter development and quality assurance process before they are released.

There are several types of apps currently available:

Gaming apps: The equivalent of computer video games, they are among the most popular types of apps. They account for one-third of all app downloads and three-fourths of all consumer spending.

Productivity apps: These focus on improving business efficiency by easing various tasks such as sending emails, tracking work progress, booking hotels, and much more.

Lifestyle and entertainment apps: Increasingly popular, these encompass many aspects of personal lifestyle and socialization such as dating, communicating on social media, as well as sharing (and watching) videos. Some of the most widely known apps such as Netflix, Facebook or TikTok fall into this category.

Other app types include mobile commerce (M-commerce) apps used to purchase goods online such as Amazon or eBay, travel apps that help a traveler in many ways (booking tours and tickets, finding their way through maps and geolocation, travel diaries, etc.), and utility apps such as health apps and barcode scanners.

Cloud Computing

What is cloud computing?

Cloud computing is a general term for anything that involves delivering hosted services over the internet. These services are divided into three main categories or types of cloud computing: infrastructure as a service (IaaS), platform as a service (PaaS) and software as a service (SaaS).

A cloud can be private or public. A public cloud sells services to anyone on the internet. A private cloud is a proprietary network or a data center that supplies hosted services to a limited number of people, with certain access and permissions settings. Private or public, the goal of cloud computing is to provide easy, scalable access to computing resources and IT services.

Cloud infrastructure involves the hardware and software components required for proper implementation of a cloud computing model. Cloud computing can also be thought of as utility computing or on-demand computing.

Cloud computing can be separated into three general service delivery categories or forms of cloud computing:

  • IaaS. IaaS providers, such as Amazon Web Services (AWS), supply a virtual server instance and storage, as well as application programming interfaces (APIs) that let users migrate workloads to a virtual machine (VM). Users have an allocated storage capacity and can start, stop, access and configure the VM and storage as desired. IaaS providers offer small, medium, large, extra-large, and memory- or compute-optimized instances, in addition to enabling customization of instances, for various workload needs. The IaaS cloud model is closest to a remote data center for business users.
  • PaaS. In the PaaS model, cloud providers host development tools on their infrastructures. Users access these tools over the internet using APIs, web portals or gateway software. PaaS is used for general software development, and many PaaS providers host the software after it's developed. Common PaaS products include Salesforce's Lightning Platform, AWS Elastic Beanstalk and Google App Engine.
  • SaaS. SaaS is a distribution model that delivers software applications over the internet; these applications are often called web services. Users can access SaaS applications and services from any location using a computer or mobile device that has internet access. In the SaaS model, users gain access to application software and databases. One common example of a SaaS application is Microsoft 365 for productivity and email services.

Computer Games

A personal computer game, also known as a PC game or computer game, is a type of video game played on a personal computer (PC) rather than a video game console or arcade machine. Its defining characteristics include: more diverse and user-determined gaming hardware and software; and generally greater capacity in input, processing, video and audio output. The uncoordinated nature of the PC game market, and now its lack of physical media, make precisely assessing its size difficult.

Access to computers has increased significantly over recent decades, and the number of children playing games on computers has increased too. This essay will consider the positive and negative impacts of this and discuss ways to avoid the potential negative effects.

With regards to the positive effects, playing computer games can develop children’s cognitive skills. Many popular games require abstract and high level thinking skills in order to win, skills that may not be taught at school. For example, children need to follow instructions, solve complex problems and use logic in many of the games that are currently popular. Such experience will be beneficial to a child’s progression into an adult.

However, concerns have been raised about the prolific use of computer games by children, much of this related to the violence they contain. The problem is that in many of the games children are rewarded for being more violent, and this violence is repeated again and again. For instance, many games involve children helping their character to kill, kick, stab and shoot. This may lead to increased aggressive feelings, thoughts, and behaviours.  

In order to minimize these negative impacts, parents need to take certain steps. Firstly, some video games are rated according to their content, so parents must check this and ensure their children are not allowed to have access to games that are unsuitable. Parents can also set limits on the length of time games are played. Finally, parents should also take an active interest in the games their children are playing so they can find out how they feel about what they are observing. 

To sum up, there are benefits of computer games, but there are disadvantages too. However, if parents take adequate precautions, the severity of these negative impacts can be avoided.

IoT

What is IoT?

The Internet of things (IoT) describes physical objects (or groups of such objects) with sensors, processing ability, software, and other technologies that connect and exchange data with other devices and systems over the Internet or other communications networks. 

Internet of things has been considered a misnomer because devices do not need to be connected to the public internet, they only need to be connected to a network and be individually addressable.

The field has evolved due to the convergence of multiple technologies, including ubiquitous computing, commodity sensors, increasingly powerful embedded systems, and machine learning. Traditional fields of embedded systems, wireless sensor networks, control systems, automation (including home and building automation), independently and collectively enable the Internet of things. In the consumer market, IoT technology is most synonymous with products pertaining to the concept of the "smart home", including devices and appliances (such as lighting fixtures, thermostats, home security systems, cameras, and other home appliances) that support one or more common ecosystems, and can be controlled via devices associated with that ecosystem, such as smartphones and smart speakers. IoT is also used in healthcare systems.

There are a number of concerns about the risks in the growth of IoT technologies and products, especially in the areas of privacy and security, and consequently, industry and governmental moves to address these concerns have begun, including the development of international and local standards, guidelines, and regulatory frameworks.

Databases

What is a database?

A database is information that is set up for easy access, management and updating. Computer databases typically store aggregations of data records or files that contain information, such as sales transactions, customer data, financials and product information.

Databases are used for storing, maintaining and accessing any sort of data. They collect information on people, places or things. That information is gathered in one place so that it can be observed and analyzed. Databases can be thought of as an organized collection of information.

Businesses use data stored in databases to make informed business decisions. Some of the ways organizations use databases include the following:

  • Store personal data
  • Secure personal health information
  • Keep track of customers.
  • Improve business processes.

Some of the main organizational databases include the following:

  • Relational
  • Distributed
  • Cloud
  • NoSql
  • Object-oriented
  • Graph

While the different types of databases vary in schema, data structure and data types most suited to them, they are all comprised of the same five basic components.

  • Hardware. This is the physical device that database software runs on. Database hardware includes computers, servers and hard drives.
  • Software. Database software or application gives users control of the database. Database management system (DBMS) software is used to manage and control databases.
  • Data. This is the raw information that the database stores. Database administrators organize the data to make it more meaningful.
  • Data access language. This is the programming language that controls the database. The programming language and the DBMS must work together. One of the most common database languages is SQL.
  • Procedures. These rules determine how the database works and how it handles the data.

Setting up, operating and maintaining a database has some common challenges, such as the following:

  • Data security is required because data is a valuable business asset. Protecting data stores requires skilled cybersecurity staff, which can be costly.
  • Data integrity ensures data is trustworthy. It is not always easy to achieve data integrity because it means restricting access to databases to only those qualified to handle it.
  • Database performance requires regular database updates and maintenance. Without the proper support, database functionality can decline as the technology supporting the database changes or as the data it contains changes.
  • Database integration can also be difficult. It can involve integrating data sources from varying types of databases and structures into a single database or into data lakes and data warehouses.

A DBMS enables users to create and manage a database. It also helps users create, read, update and delete data in a database, and it assists with logging and auditing functions.

Software testing

What is software testing?

Software testing is the process of evaluating and verifying that a software product or application does what it is supposed to do. The benefits of testing include preventing bugs, reducing development costs and improving performance.  

There are many different types of software tests, each with specific objectives and strategies:

  • Acceptance testing: Verifying whether the whole system works as intended.
  • Integration testing: Ensuring that software components or functions operate together.
  • Unit testing: Validating that each software unit performs as expected. A unit is the smallest testable component of an application.
  • Functional testing: Checking functions by emulating business scenarios, based on functional requirements. Black-box testing is a common way to verify functions.
  • Performance testing: Testing how the software performs under different workloads. Load testing, for example, is used to evaluate performance under real-life load conditions.
  • Regression testing: Checking whether new features break or degrade functionality. Sanity testing can be used to verify menus, functions and commands at the surface level, when there is no time for a full regression test.
  • Stress testing: Testing how much strain the system can take before it fails. Considered to be a type of non-functional testing.
  • Usability testing: Validating how well a customer can use a system or web application to complete a task.

Even a simple application can be subject to a large number and variety of tests. A test management plan helps to prioritize which types of testing provide the most value – given available time and resources. Testing effectiveness is optimized by running the fewest number of tests to find the largest number of defects.

AR and VR

What is augmented reality and virtual reality?

Augmented reality (AR) is the integration of digital information with the user's environment in real time. Unlike virtual reality (VR), which creates a totally artificial environment, AR users experience a real-world environment with generated perceptual information overlaid on top of it.

Augmented reality is used to either visually change natural environments in some way or to provide additional information to users. The primary benefit of AR is that it manages to blend digital and three-dimensional (3D) components with an individual's perception of the real world. AR has a variety of uses, from helping in decision-making to entertainment.

AR delivers visual elements, sound and other sensory information to the user through a device like a smartphone or glasses. This information is overlaid onto the device to create an interwoven experience where digital information alters the user's perception of the real world. The overlaid information can be added to an environment or mask part of the natural environment.

Virtual reality is a simulated 3D environment that enables users to explore and interact with a virtual surrounding in a way that approximates reality, as it is perceived through the users' senses. The environment is created with computer hardware and software, although users might also need to wear devices such as helmets or goggles to interact with the environment. The more deeply users can immerse themselves in a VR environment -- and block out their physical surroundings -- the more they are able to suspend their belief and accept it as real, even if it is fantastical in nature.

VR is a virtual environment created with software and presented to users in such a way that their brain suspends belief long enough to accept a virtual world as a real environment. Virtual reality is primarily experienced through a headset with sight and sound.

The biggest difference between AR and VR is that augmented reality uses the existing real-world environment and puts virtual information on top of it, whereas VR completely immerses users in a virtually rendered environment. While VR puts the user in a new, simulated environment, AR places the user in a sort of mixed reality.

The devices used to accomplish this are different, too. VR uses VR headsets that fit over the user's head and present them with simulated visual and audio information. AR devices are less restrictive and typically include devices like phones, glasses, projections and HUDs in cars.

In VR, people are placed inside a 3D environment in which they can move around and interact with the generated environment. AR, however, keeps users grounded in the real-world environment, overlaying virtual data as a visual layer within the environment.

Big Data

What is big data?

Big data is a combination of structured, semi structured and unstructured data collected by organizations that can be mined for information and used in machine learning projects, predictive modeling and other advanced analytics applications.

Systems that process and store big data have become a common component of data management architectures in organizations, combined with tools that support big data analytics uses. Big data is often characterized by the three V's:

  • the large volume of data in many environments;
  • the wide variety of data types frequently stored in big data systems; and
  • the velocity at which much of the data is generated, collected and processed.

Companies use big data in their systems to improve operations, provide better customer service, create personalized marketing campaigns and take other actions that, ultimately, can increase revenue and profits. Businesses that use it effectively hold a potential competitive advantage over those that don't because they're able to make faster and more informed business decisions.

For example, big data provides valuable insights into customers that companies can use to refine their marketing, advertising and promotions in order to increase customer engagement and conversion rates. Both historical and real-time data can be analyzed to assess the evolving preferences of consumers or corporate buyers, enabling businesses to become more responsive to customer wants and needs.

Big data is also used by medical researchers to identify disease signs and risk factors and by doctors to help diagnose illnesses and medical conditions in patients. In addition, a combination of data from electronic health records, social media sites, the web and other sources gives healthcare organizations and government agencies up-to-date information on infectious disease threats or outbreaks.

System Software

What is system software?

System software is a type of computer program that is designed to run a computer's hardware and application programs. If we think of the computer system as a layered model, the system software is the interface between the hardware and user applications. The operating system is the best-known example of system software. The OS manages all the other programs in a computer.

System software is used to manage the computer itself. It runs in the background, maintaining the computer's basic functions so users can run higher-level application software to perform certain tasks. Essentially, system software provides a platform for application software to be run on top of.

System software generally includes the following features:

  • High speed 
  • Hard to manipulate 
  • Versatile 
  • Close to the system 
  • Written in a low level computer language

System software manages the computer's basic functions, including the disk operating system, file management utility software and operating systems.

Other examples of system software include the following:

  • The BIOS (basic input/output system) gets the computer system started after it's turned on and manages the data flow between the OS and attached devices, such as the hard drive, video adapter, keyboard, mouse and printer.
  • The boot program loads the OS into the computer's main memory or random access memory (RAM).
  • An assembler takes basic computer instructions and converts them into a pattern of bits that the computer's processor can use to perform its basic operations.
  • A device driver controls a particular type of device that is attached to your computer, such as a keyboard or mouse. The driver program converts the more general I/O instructions of the OS to messages that the device type can understand.

Additionally, system software can also include system utilities, such as the disk defragmenter and System Restore, and development tools, such as compilers and debuggers.