Diciotech

A tech dictionary for people who want to learn more about technical terms within technology! 📖
Currently with 177 terms! 🚀

PT-BR

2FA

2FA (Two Factor Authentication) is an authentication process that requires two different authentication factors to establish identity. In short, it means requiring a user to prove their identity in two different ways before granting access. 2FA is a form of multi-factor authentication.

Abstraction

An abstraction is a simplification of specific point(s) of some system or behavior that we are trying to understand. In programming, we use abstractions all the time. This means that we don't need to understand all the deep technical details to write code - like the inner workings of a computer. Instead, we can use simpler ideas to create our programs.

Adversarial Training

It is a type of machine learning training that uses an adversarial model to train a model. In it, two machine learning models are trained in an adversarial manner, where one model is responsible for generating fake data and another model is responsible for identifying fake data. Adversarial training is used to generate realistic fake data, which can be used to augment a training dataset.

AIoT

AIoT (Artificial Intelligence of Things) is the combination of Artificial Intelligence (AI) with the Internet of Things (IoT). Its main goal is to automate and accelerate the processing of data generated by IoT devices, with minimal human intervention. This facilitates data analysis and makes decision-making faster. Without AI, although there would be a large volume of information available, it would be necessary to rely on human intervention to make it useful.

Algorithm

An algorithm is like a cake recipe for a computer. It is a set of organized steps that help solve a problem, such as doing math or analyzing information.

Angular.js

Angular.js is a tool developed by Google that facilitates the creation of websites or applications that work as a single page (SPAs), that is, without reloading the entire page with each interaction. It organizes the code efficiently using "modules" and "dependency injection", which helps keep everything easier to manage. Large companies like Google and Microsoft use this technology.

API

API is an acronym that means Application Programming Interface. It is a code structure that meets some requirements, following development standards and patterns, facilitating the organization of large systems. It provides functionalities and information for applications and websites. For example: the Post Office API that provides ZIP code and address queries in a simplified manner.

Argument

An argument is a value or piece of information that you provide to a function or method during its call. These arguments are used by the function to perform a specific task or to make decisions based on the values provided. In short, arguments are input data that allows a function to do its job and produce a desired result or perform desired actions.

Artificial Intelligence

Also called AI, it is a field of computer science that studies how computers can simulate human intelligence and cognition. It focuses on developing systems capable of performing tasks that could previously only be done by humans, such as speech recognition, decision making, language translation, and pattern recognition. AI is a broad field that includes several subareas, such as machine learning, natural language processing, computer vision, among others.

Artificial Neural Network

It is a computational model inspired by the central nervous system of an animal, which consists of a set of interconnected processing units, called artificial neurons, that simulate the way neurons communicate with each other. Artificial neural networks (ANNs) are used to solve complex and non-linear problems, such as pattern recognition, speech recognition, computer vision, among others.

Autoencoder

It is a type of artificial neural network composed of two neural networks in the encoder-decoder format, being one responsible for encoding input data into a latent space and the other for decoding data from a latent space back into the input space. It is often used to compress input data in applications such as image and video compression, dimensionality reduction, and data augmentation.

Automatic Speech Recognition

A field of artificial intelligence that focuses on developing systems that can analyze and understand human speech, allowing computers to transcribe and process audio stimuli into text. Automatic speech recognition and natural language processing are related but distinct categories of AI. Automatic speech recognition focuses on the process of converting spoken words into text and symbols, while NLP is the process of converting text into a structured format that a computer can understand and process. Automatic speech recognition is used in a wide variety of applications, such as virtual assistants, navigation systems, audio transcription, and more.

AWS Commit

AWS Commit is Amazon's (AWS) source code hosting platform and is fully integrated with the AWS ecosystem, allowing easy automation and integration with other AWS services, such as CodePipeline (for CI/CD), IAM (permission control), and CloudWatch (monitoring).

Batch Size

Batch size is a hyperparameter of machine learning models that controls the number of examples used in a single run of the model. It is used to control how quickly a machine learning model learns and can be tuned to improve its performance. A very small batch size during training requires less memory but more iterations to complete an epoch, while a larger batch size allows for faster training with fewer iterations per epoch but takes up more memory.

BitBucket

Like GitHub, BitBucket is also a source code hosting platform and also has integrated CI/CD tools, but it integrates especially well with Atlassian tools, such as Jira, and supports Git and Mercurial repositories, while GitHub only supports Git.

Blue-green deployment

Blue-green deployment is a deployment strategy that consists of having a replica of the production environment. New software versions are deployed to this replica, and after deployment, user traffic is switched to the environment with the new version, thus releasing access to this new version for all users. One of its advantages is that, in case of errors in the new version, it is sufficient to redirect user requests back to the previous system. To better understand blue-green deployment, imagine that you have two kitchens in a restaurant: one blue and one green. The blue kitchen is running and serving customers, while you prepare the green kitchen. When the green kitchen is ready, you start using it to serve customers. If everything goes well, you disable the blue kitchen. If there are problems, you can quickly switch back to the blue kitchen.

Botnet

A botnet is a network of internet-connected devices infected with malware (malware is a malicious program that affects a device), allowing cybercriminals to take down websites using this network of devices. The devices can range from a computer to an IoT device (an IoT device is a device connected to the internet without using cables, for example: smart TVs, smart lamps, smart refrigerators and cell phones).

Branch

A branch is like a copy of your project at a specific point in time. It's like you create a separate version to work on new ideas without touching the main version. Each Branch can be edited separately, allowing you to develop new things without disturbing the main code.

Bug

The term Bug is commonly used to inform that there is a problem in the program or environment. It can be incorrect or unexpected behavior, usually caused by incorrect logic in the code, causing failures during the execution of a software.

C

C is a general-purpose, structured, imperative, procedural, ISO-standardized, compiled programming language created in 1972 by Dennis Ritchie at AT&T Bell Labs to develop the Unix operating system (which was originally written in Assembly).

C++

C++ is a general-purpose, multi-paradigm (its support includes imperative, object-oriented and generic languages) compiled programming language. Since the 1990s it has been one of the most popular commercial languages, and is also widely used in academia due to its high performance and user base.

Cache

Cache is a technique for temporarily storing data often used to improve performance and speed of access to that data in computer systems.

Canary deployment

Canary deployment is a deployment strategy that consists of having a replica of the production environment. New software versions are deployed to this replica, and after deployment, the release of the new version is done gradually, directing a percentage of user requests to the environment containing this new version. To perform this gradual switching, a load balancer, for example, can be used. To better understand canary deployment, imagine you have a restaurant and want to launch a new dish on the menu. However, instead of offering this new dish to all customers, you select only a small group of customers to whom the dish will be offered and test how they will react to the dish. If the feedback is positive, you can start offering the new dish to a larger group of customers, until the dish is actually launched on the menu for all of them.

Chatbot

It is a computer program that simulates a human being in a conversation through text or voice messages, widely used to automate repetitive tasks and provide support and assistance to users. Chatbots can be used in a wide variety of applications, such as customer service, virtual assistants, among others.

Class

A class, in software development, is like a template and a "model" for creating objects. It defines the attributes (data) and methods (functions) that objects created from it will have. They help organize code, allowing reuse and abstraction of data and functionality into a coherent structure.

CLI

A Command Line Interface (CLI) is a way to interact with computer programs where you type commands instead of clicking buttons or using menus. There are different ways to use software, such as the graphical interface (GUI), which is the one we see with images and buttons, or through APIs, which allow other programs to communicate with the software. An example of software that can be used in various ways is GitHub, which can be accessed through a browser, a desktop application, or through the terminal, using the command line (CLI).

Clone

Cloning a repository is like taking a local copy of that project into your own workspace. It's like having your own version of the code to tinker with as you please. This allows you to work on a local version of the code, make changes, and contribute back to the main project when you're ready.

Cloud Computing

Generally speaking, it refers to the use of computer services, such as file storage and program execution, over the Internet. This means that you do not need physical equipment, as everything is done online. You can access your data and programs from anywhere, at any time, without worrying about maintaining physical equipment.

CMD

The CMD (short for "Command Prompt") is a command-line interface present in the Windows operating system. See Terminal for more information.

Code Review

It is a good practice that is highly recommended for the systems development process, through which the team's developers help each other. Normally, after the development stage of each task is completed, before the code is made available for testing, the team evaluates what was done and makes suggestions on what can be improved, when necessary. This brings several benefits. Some of them are: improving the technical side of the team, improving development, code quality, team integration, everyone knows what is being developed, among others.

Code Smells

Code smells are indicators of potential problems in the code that, while they do not cause immediate errors or prevent the software from working, can suggest areas of risk that could lead to future difficulties in maintaining and evolving the code. They often point to design issues, duplication, complexity, or lack of clarity that can make the code more difficult to understand, modify, or extend.

Commit

When we work with code versioning (which is highly recommended), the word commit is quite common among developers. But this word is also used by those who work with databases. When there is a set of changes made to a code, the person executes the commit command that saves what was done within the project. There is also the semantic commit, which means that this set of changes must have a meaning for the project. The commit also serves to finalize a transaction within a database management system, making the changes visible. This transaction will normally start with the begin command and end with the commit command.

Component

A component is a fundamental, reusable unit of user interface construction. It encapsulates the logic and presentation related to a specific part of the interface. Components can be compared to building blocks that, when combined, form complex interfaces. They promote code organization and maintainability, since they can be developed and tested independently. Components can accept properties (props) as input and render information based on those data, allowing for flexible customization.

Computed variable

It is a variable that does not store a value directly, it calculates or derives its value from other variables or data.

Computer Vision

It is a field of artificial intelligence that studies how computers can obtain and process information from visual stimuli. It focuses on developing systems that can analyze and understand images and videos, allowing computers to recognize objects, people, places, movements, and other visual elements. Computer vision (CV) is used in a wide variety of applications, such as facial recognition, self-driving cars, medical diagnosis, among others.

Continuous Delivery

Continuous Delivery (CD) is a software development practice that ensures that the code is always ready to be deployed to production at any time. After Continuous Integration (CI), the software is automatically prepared for releases, with an automated deployment process and rigorous tests that ensure its quality. The benefits of CD include faster deployments, reduced risks, and continuous feedback from end users. Tools such as Spinnaker and Octopus Deploy are commonly used to facilitate this practice.

Continuous Integration

Continuous integration is the practice of frequently testing the parts of the code that are added to a project. This prevents bugs and errors from being added, efficiently performing specific tests that verify the integration of each part.

Convolutional Neural Network

It is a type of artificial neural network that uses a mathematical operation called convolution in one or more of its layers. A Convolutional Neural Network or CNN is often used to process input data that has a matrix structure, such as images, and is widely used in computer vision applications, such as image and video recognition.

CORS

Cross-Origin Resource Sharing is a security policy for websites. It determines how resources on a web page can be accessed by another page on a different domain. For example, an image or CSS file can usually be shared between different sites without problems, but JavaScript code often has stricter restrictions.

CSS

Cascading Style Sheets is a mechanism for adding styles to a web page such as colors, sizes, fonts, etc. It is possible to link the HTML file to the CSS by adding a link to a CSS file that contains the styles.

CSS Preprocessors

CSS preprocessors are like special tools that make styling a website easier. They make it possible to create more complicated styles that can be reused in different parts of the site. Think of them as smarter ways of choosing colors and fonts to make a website look good and work. Examples: SASS/SCSS and LESS.

Curl

Tool for transferring data to/from a server, i.e. making a request using various protocols, the most common being HTTP. When you hear the term 'make a curl for x' it means that you need to make a request for x, but not necessarily using the curl tool. Curl is widely used because it is simple to use via the command line (terminal), not requiring third-party software to make calls.

curl https://www.google.com

Data Augmentation

It is a data preprocessing technique used to increase the size of a training dataset available to a machine learning model by generating new data based on the existing data, which improves its performance and reduces the risk of overfitting. For example, an image dataset can be augmented using rotations, zooms, mirrorings, and other geometric transformations.

Dataset

A dataset is a set of data that can be used to train and test machine learning models. Different parts of the dataset are typically used for training and testing to avoid overfitting. Parts can also be used for validation and inference. A dataset is made up of several examples, which in turn are made up of several data points. For example, a cat dataset might contain several examples of cats, where each example might be made up of one or more images and several associated attributes, such as size, breed, and color.

DBMS

DBMS (Database Management System) is a type of system that allows the user to manage databases, performing operations such as creating and modifying tables, allowing access for users, among others. We can say, for example, that MySQL is a DBMS.

DDoS

DDoS is an attack where many devices try to connect to a website at the same time to overload it.

Deep Learning

Deep Learning or DL is a subset of machine learning that uses deep artificial neural networks to learn representations of complex data. Due to the multiple layers present in a deep neural network, deep learning tends to be much more time-consuming than traditional machine learning, but tends to offer higher performance, efficiency, and accuracy. Deep learning is one of the most advanced areas of artificial intelligence.

Deep Neural Network

Deep Neural Network or DNN is a type of artificial neural network with several layers of interconnected processing units. It is called a deep neural network due to the number of hidden layers used in the deep learning model. While a basic neural network is made up of an input layer, an output layer and a few intermediate layers (also called hidden layers), a deep neural network has several hidden processing layers, which can reach thousands. These additional layers give these networks the ability to make predictions with greater accuracy when compared to a simpler neural network, but they require millions of sample data points and hundreds of hours of training.

Deploy

Deployment is a complex process. But it means that a package of what was developed in the environments was installed. A version is generated to be made available. For this deployment to happen, it can be an automated process with tools, or done manually, depending on the structure.

Design Critique

It is a collaborative process where designers, developers and other stakeholders review and evaluate a design project or concept in a constructive way. The goal is to obtain valuable feedback on the aesthetic effectiveness, functionality, and usability of the design, allowing to identify strengths and areas of improvement. During the process, participants discuss aspects such as visual coherence, user experience and adherence to product goals and technical feasibility, promoting an open environment where ideas can be shared. This process not only improves the final result, but also strengthens collaboration and learning within the team.

Design Ops

A practice that optimizes and integrates the design process in digital product development teams, promoting collaboration between designers, developers and stakeholders. It implements frameworks, tools, and processes that improve the efficiency, consistency, and quality of design. The focus is to create a structured environment that allows designers to focus on the tasks at hand, while operational aspects, such as documentation and resource management, are managed effectively. This aligns design goals with business objectives, resulting in more cohesive and well-designed digital products.

Design System

It is a set of guidelines, components, and standards that guide the creation and maintenance of consistent user interfaces and experiences in digital products. It includes elements such as: color palettes, typography, icons, and layout standards, in addition to being a documentation for designers and developers on how and when to use the design system components. It aims to improve development efficiency, ensure visual and functional coherence, and facilitate collaboration between design and development teams.

DevOps

It is a practice that integrates software development (Dev) and IT operations (Ops) to improve collaboration and efficiency between teams. It focuses on automation and the integration of development, testing, and deployment processes, enabling faster and higher-quality releases. The approach emphasizes continuous communication, continuous integration (CI), and continuous delivery (CD), promoting an agile and responsive development lifecycle, resulting in software delivered more efficiently and reliably.

DOM (Document Object Model)

A representation of the tree structure of HTML elements on a page, which allows dynamic manipulation of content. Think of it as a map of the page that JavaScript uses to understand and change the content. It's like a 'blueprint' of the page.

Domain Adaptation

It is the ability to apply an algorithm trained on one or more 'source domains' to a different but related 'target domain'. Domain adaptation is a subcategory of transfer learning. In domain adaptation, the source and target domains all have the same feature space (but different distributions), while transfer learning includes cases where the feature space of the target domain is different. For example, a spam filtering model trained on data from one user can be adapted to a new user who receives completely different emails.

DoS

DoS is a denial of service attack. In this attack a single computer is used to make many queries to a website in a short space of time with the aim of taking it offline.

Early Stopping

It is a machine learning model training technique that stops training when the model's performance stops improving. It is used to avoid overfitting and generate a model with good performance.

Embedding

It is a vector representation of an object, such as a word, a sentence or an image. It is used to represent objects in a more compact and efficient way, allowing machine learning models to learn relationships between objects. For example, a word can be represented by a vector of real numbers, where each dimension represents an attribute of the word, such as gender, number, tense, among others. This vector representation can be used as input to a machine learning model, allowing it to learn relationships between words, such as synonyms, antonyms, among others.

Encapsulation

Encapsulation works like a "magic box" that hides the internal details of an object. This means that an object's data and inner workings are kept private and cannot be accessed directly from the outside. Instead, the object provides controlled interfaces (public methods) for interacting with it. This helps protect the object's data and control how it is used, promoting code security and organization.

Environment

We usually call environment the place or servers where what was developed is available for testing, validation, end users to use, or other needs. It can be a physical computer or available in the cloud. There are local and dev environments (where development is taking place), homolog (or even hom, homol, homologation - where tests are usually done), and production (where the final system, developed and tested, is available to users).

Epoch

Is a complete iteration of a machine learning model over a training data set. Training with a very small number of epochs may not be enough for a model to learn, while a very large number may cause overfitting.

Expo CLI

Expo CLI is a tool that makes it easier to develop mobile applications for iOS and Android. It is used to quickly create a project with React Native.

Few-Shot Learning

It is a type of machine learning that uses few labeled data to train a model. In it, a machine learning model (usually pre-trained) is trained with new labeled data, containing few examples per class. Few-shot learning is widely used to solve classification problems on small data sets.

Fine-tuning

Is the process of training a pre-trained machine learning model on a new dataset. It is used to adapt a base model for a specific task, improving its performance and reducing training time compared to training from scratch. Fine-tuning is commonly used in computer vision and natural language processing models.

Fork

Forking is like creating an independent copy of a project. It's like taking someone else's project, copying it, and having it in your own account. This allows you to make your own changes without touching the original project. This is common in open source projects.

Foundation Models

Also called base models, these are machine learning models that are pre-trained on large datasets and are commonly made available for use by third parties. They are used as base models for various applications in computer vision, natural language processing, among others. Foundation models can be used frozen, as a feature extraction layer, or fine-tuned, generating a complete model.

Frameworks

They are like collections of tools, components and solutions that you can find in the same package (the framework) that facilitate the creation of complex applications.

Front-end Development

Front-end development is the development of the graphical interface, so that users can view and interact with what has been developed.

Function

A function is a block of code that performs a specific task and can be called from other parts of the program. It helps organize and reuse code, making software more modular and readable. Functions may take inputs (called arguments) and can return a result (return value) or simply perform an action.

Garbage Collector

Garbage collector is a tool that helps to free up space in the computer's memory automatically. Imagine that, when developing a program, you use memory blocks to store information. Over time, some of these blocks are no longer needed. The garbage collector identifies these "useless" blocks and cleans them, returning the space for the system to use again. This is especially useful in programming languages such as Java, C# and JavaScript, where this process is done automatically, helping to avoid problems and making the computer faster.

Generative Adversarial Network

Generative Adversarial Network or GAN is a type of artificial neural network composed of two competing neural networks trained in an adversarial manner. The generative neural network is trained to generate new data, while the discriminative network is trained to distinguish between real data and fake data. In this way, the two neural networks compete with each other, which leads to a continuous improvement of both and generates two specialized models, which can be used separately after being trained. The generative model is often used to generate new, more realistic images, videos, audios and texts, such as human faces, videos of people talking, audios of people singing and news texts. The discriminative model is commonly used to identify fake data.

Generative Neural Network

It is a type of artificial neural network that generates new data based on a set of training data. This data is usually variations of the input data, such as changes in a person's expressions in a video. It is often used to generate new images, videos, audios and texts, and can be used for data augmentation.

Git

Git is a distributed version control system widely used for tracking changes to files and coordinating work on software development projects.

GitHub

GitHub is a web-based source code hosting platform that offers a variety of services related to version control and collaboration in software development (it is used in conjunction with Git). It is widely used by developers around the world to store, collaborate, manage, and control the source code of software projects.

GitLab

GitLab is a Git-based source code hosting platform that, like GitHub, offers integrated CI/CD (continuous integration and continuous delivery) tools directly. It stands out for having an "open core" policy, in which it is possible to access and contribute to its source code, being much more transparent than other platforms that keep their source code closed.

GPT

It is a large language model created by OpenAI. Namely Generative Pre-trained Transformer, it is capable of generating high-quality texts, such as news articles, poetry, and fiction, based on a small piece of text as input. It is one of the most advanced language models in the world and is capable of performing a wide variety of natural language tasks, such as machine translation, text summarization, code generation, among others. The latest versions also support other data types, such as images.

Gradient

The gradient simply measures how much the output of a function changes if you change the inputs by a small amount. It measures the change in all the weights of the neural network relative to the difference in the calculated error. You can also think of a gradient as the slope of a function. The larger the gradient, the steeper the slope and the faster a model can learn. But if the slope is zero, the model stops learning. In mathematical terms, a gradient is a partial derivative with respect to its inputs.

Gradient Descent

Neural network models are usually trained by an optimization algorithm that is a variation of gradient descent. During learning, input training data helps the model learn, and the loss function evaluates how accurate the prediction performance is for each iteration. As training progresses, the goal is to reduce the loss function/prediction error by iteratively adjusting the parameters. Specifically, the gradient descent algorithm has a forward pass (or forward propagation) step and a backward pass (or backpropagation). In the forward propagation step, the input data is passed through the neural network and the output is calculated. In the backward propagation step, the gradient of the loss function is calculated with respect to each weight in the neural network, and the weights are updated according to the gradient. The algorithm then takes a gradient descent step to minimize the loss function (taking into account the learning rate).

Gradient Explosion

Exploding gradient is a problem that occurs when the gradient of a loss function grows exponentially during the training of a machine learning model. This can result in model parameters diverging to infinity, causing the learning process to fail. When gradients explode, weight updates during training can become so large that they cause the model to revert to a large error, instead of minimizing it with each iteration. Gradient explosion can be caused by several factors, such as a very high learning rate, a poorly designed loss function, among others.

Green IT

Green IT, also known as Ecological IT or Green Computing, represents the sustainable side of information technology. Its concept revolves around the analysis and implementation of initiatives and programs that impact the environmental sustainability and social responsibility of companies and organizations. Its main highlight is making technology a potential source of solutions for environmental problems.

Honeypot

A honeypot is a security system configured to detect, divert, or in some way neutralize attempts of unauthorized use of information systems. The definition of honeypot comes from the world of espionage, where the spy Mata Hari uses a romantic relationship as a way to steal secrets. They are described as the placement of a "honey pot". It attracts cybercriminals as a trap, allowing administrators to monitor their activities and develop better defenses.

HTML

HTML is a markup language used to build web pages. HTML documents can be interpreted by browsers.

HTML/XML Tag

A tag is a markup element used in markup languages, such as HTML and XML, to define the structure and meaning of a document. They are used to define the beginning and end of an element, such as a paragraph, a table, or an image. Tags are written between angle brackets, such as <tag>, with the marking of the end of an element defined as </tag>. If an element has no other elements inside it (also called child elements), it can be defined only as <tag /> instead of <tag></tag>.

Hyperparameter

Also called a training parameter, it is a parameter of a machine learning model that is not changed during training. It is used to control the behavior of a machine learning model and can be tuned to improve its performance.

IDE

IDE is short for Integrated Development Environment. It is a program with graphical interfaces that facilitate the interaction of developers in the creation of applications. Typically an IDE includes a source code editor and debugging tools to identify and correct errors. Popular examples of IDEs include Android Studio, Eclipse, and Visual Studio Code.

Infrastructure as Code

Infrastructure as Code (IaC) is the practice of building infrastructure (such as resources within a cloud provider) through coding, just as we do when developing software. To code the infrastructure, tools like Terraform are used. The infrastructure code is versioned and can be kept separate or together with the application code that will use this infrastructure later. Infrastructure as Code is like a detailed recipe book for cooks: instead of giving verbal instructions, you write everything in the book, ensuring that everyone follows exactly the same instructions and prepares the dishes consistently and accurately. This reduces errors and facilitates environment replication.

Inheritance

Inheritance works like a "family tree". It allows a class or object to inherit characteristics and behaviors from another parent class. This means that the child class inherits the attributes and methods of the parent class, saving time and promoting code reuse. Inheritance is a way to organize and structure code by creating class hierarchies that represent relationships between real-world objects.

IoT

IoT (Internet of Things) is a type of technology composed of a network of interconnected devices and objects, such as sensors, cameras, household items, electronic devices, and vehicles, for example. Its goal is basically to connect the most diverse equipment to the internet in order to capture and exchange data with other devices, ranging from simple household objects to sophisticated industrial tools.

Issue

An issue is like a note that notes a problem or something to be done in a project. It is like a reminder that can be used to talk about bugs, request new features, discuss improvements, or keep an eye on a task.

JavaScript

JavaScript is a structured, interpreted, high-level scripting language with weak dynamic typing and multi-paradigm. Along with HTML and CSS, JavaScript is one of the three core technologies for building websites.

jQuery

A library of JavaScript functions that interact with HTML in a much faster and simpler way than plain JavaScript.

JSF

JSF (JavaServer Faces) is an evolution of JSP, where rich interface navigation component libraries were introduced, such as Primefaces, facilitating the construction of front-end applications.

JSON

It means JavaScript Object Notation. JSON is a type of file and has a structure with data name and data value. Depending on the type of API we build, we use the JSON format to transfer data between systems. For example: API that queries customers in your business. The API response may come in JSON format.

{name: 'Morganna', cpf: '000.000.000-00', email: 'email@email.com'}

JSP

JSP (JavaServer Pages) is an old technology that allowed the construction of HTML pages using the Java language. With it, it was possible to execute business logic on the screen, taking Java objects to the front in an easy way. Everything was executed by an application server, which translated the code into a final HTML before returning to the browser. Nowadays, it is only found in legacy systems.

Labeled Data

Also called annotated data, this is data that has a label or tag that indicates what it represents. It is used to train supervised or semi-supervised machine learning models, where the goal is to predict an output value based on a set of input values. For example, a dataset of images of cats and dogs might be labeled with the class of each image, allowing a machine learning model to be trained to classify images of cats and dogs.

Lambda

Lambda is an anonymous function in programming that can be defined and used without a specific name, often used for simple one-line expressions.

sum = lambda x, y: x + y

Laravel

Laravel is a tool for developing web systems in PHP. It offers ways to deal with common needs in this type of application, as well as having simplified integration with various database systems, queues, and others.

Large Language Model

Also called LLM, it is a language model that uses deep learning to learn representations of natural language data. It is trained on massive sets of textual data, such as books, news articles, and web pages, and is capable of interpreting and generating high-quality text. Large language models are used as baseline models for a variety of natural language applications, such as machine translation, text summarization, code generation, and more.

Latent Space

Also called latent feature space or embedding space, it is a vector space (manifold) that can be generated from the training of a machine learning model. A position within this space is defined by a set of latent variables that emerge from the similarities of objects, so that items that resemble each other are positioned closer together. In many cases, the dimensionality of the latent space is chosen to be smaller than the dimensionality of the input data space, making the construction of this space an example of dimensionality reduction, which can also be seen as a form of data compression. The latent space can be completely unintuitive, high-dimensional, complex, and non-linear, which can increase the difficulty of interpretation. Some visualization techniques have been developed to connect the latent space to the visual world, but there is usually no direct connection between the interpretation of the latent space and the model itself that generated it. Among these techniques is t-SNE, in which the latent space is mapped to two or three dimensions for visualization. Distances in latent space do not have physical units, so the interpretation of these distances can depend on the application.

Learning Rate

Also called LR, it is a training hyperparameter for machine learning models that controls how quickly a machine learning model learns. It is one of the most important hyperparameters of a machine learning model and can be adjusted to improve the model's performance. It controls how big the step will be taken during learning towards the minimum calculated by the gradient. A very high learning rate can cause the gradient to explode, while a very low learning rate can cause the gradient to disappear. There are several techniques that allow you to change the learning rate during training, such as learning rate decay, learning rate scheduling, learning rate warming, among others.

Load balancer

A load balancer is a tool used to distribute the load (of user requests, for example) among multiple servers. The goal of using a load balancer is to improve the performance of applications, avoiding overload on a single server. In addition, a load balancer can help us scale a system and ensure its high availability. To better understand the concept, let's think of a supermarket queue: if we had only one cashier to serve us, this cashier would probably be overloaded with so many people trying to pay for their purchases. In this case, people are directed to different cashiers to avoid a bottleneck and a long wait time at a single cashier.

Loop

A loop is a control structure that allows you to repeatedly execute a block of code while a condition is true. It is used to automate repetitive tasks and save time and effort. There are several types of loops, such as the 'for' loop, the 'while' loop, and the 'do-while' loop.

Loss Function

It is a mathematical function that measures the difference between the value predicted by a machine learning model and the actual value of the training data. It is used to evaluate the accuracy of a machine learning model and adjust its parameters to improve its performance. There are several types of loss functions, each suited to a different type of machine learning problem.

Low Level Language

A programming language that has little or no computer abstraction. It is a programming language that is closest to machine language.

Machine Learning

Machine Learning or ML is a subset of artificial intelligence (AI) that studies how computers can learn from and make predictions about data, without being explicitly programmed. Most AI is done with machine learning, so the two terms are often used synonymously, but machine learning is just one method used for this. It is used to solve complex problems and automate tasks that would be too time-consuming or impossible for humans.

Manifold

In differential geometry, a manifold is a high-dimensional topological space (surface) that locally resembles Euclidean space. In machine learning, a manifold is a latent feature space that can be generated from training a machine learning model. The manifold hypothesis suggests that high-dimensional data (e.g., real-world data like images and videos) are contained in a low-dimensional space, where relationships between the data are more easily identified. The idea is that by mapping the data to a low-dimensional space, it is possible to find patterns and relationships more easily than in the original high-dimensional space.

Material

Material.io is a design system created and supported by Google's designers and developers. Material.io includes detailed UX guidelines and UI component implementations for Android, Flutter, and the web.

Memory Address

It is a number that uniquely identifies a memory location in the computer. Everything that is declared in a programming language is stored in the computer's memory, and to access this data it is necessary to know the memory address where it is stored.

Merge

Merge is like putting together puzzle pieces in code development. It's when we combine changes from different parts of the code to create a unified version. Imagine merging the work of a team that added new features back into the main project. That's Merge - bringing it all together into a single line of development.

Metric

Also called an evaluation metric, it is a measure used to evaluate the accuracy or performance of a machine learning model. There are several types of metrics, each suited to a different type of problem.

MLOps

It is a practice that combines machine learning model development and IT operations (Ops) to facilitate the implementation and continuous management of machine learning models in production. The goal of MLOps is to ensure that models are developed, tested, deployed, and monitored efficiently and at scale. This involves automating processes such as model training, validation, and monitoring, as well as promoting collaboration between data scientists, software engineers, and operations teams. MLOps aims to reduce development cycle time and increase model reliability and performance, enabling organizations to better leverage data-driven insights.

Mobile First

This concept dictates that when creating a website, we must first meet the needs of mobile devices.

Named parameter

It is a way to pass values to a function or method by specifying the name of the corresponding parameter.

Natural Language Processing

Also known as NLP, it is a field of artificial intelligence that studies how computers can understand and interpret human language. It focuses on developing systems that can analyze, understand, and generate natural language, allowing computers to process and respond to written information. NLP is used in a wide variety of applications, such as chatbots, machine translation, sentiment analysis, among others.

Neural Architecture Search

Neural Architecture Search or NAS is an optimization process that uses search algorithms to find the best neural network architecture for a given dataset. It is used to find the best neural network architecture to solve a given problem, improving performance and reducing training time compared to manually searching for the best architecture.

Next.js

Next.js is a tool based on React that helps create faster and more SEO-friendly websites. It allows pages to be generated on the server (SSR) or created statically (SSG), which improves page loading time and user experience.

Node.js

Node.js is an environment that allows you to run JavaScript on the server. This means that you can use JavaScript to create and run server-side applications.

Non-Linearity Function

Also called an activation function, it is a mathematical function that is applied to the output of neurons in an artificial neural network. It is used to introduce nonlinearities into an artificial neural network by changing the output value of each neuron in a layer before sending it to the next layer, allowing the network to learn complex relationships between the input data and the output data. For example, the most commonly used nonlinearity function is the ReLU (Rectified Linear Unit) function, which returns 0 if the input value is negative and returns the input value itself otherwise.

Normalization

It is a data processing technique used to transform data into a common scale. It is used to improve the performance of machine learning models by reducing variance and training time. There are several normalization techniques, such as batch normalization, layer normalization, weight normalization, among others.

NoSQL

NoSQL (Not Only SQL) is a database approach that allows you to store, retrieve, and manage data in a flexible and scalable way, without the rigid structure of relational tables, being suitable for unstructured or semi-structured data.

Null Coalescence

Logical operator that allows you to handle null values, returning the value on the right if the value on the left is null.

let value = desiredValue ?? 42

Object

An object, in software development, is like a character in a video game. It has characteristics (data) and can do things (methods). For example, a "car" object can have a color, speed and brand (characteristics) and can accelerate, brake and turn (actions/methods). Objects are instances of classes and allow you to organize code in a way that represents real-world entities, making it more understandable and reusable.

Object-oriented programming

Object-oriented programming (OOP) is a programming paradigm that is based on the idea of modeling software around objects, which are instances of classes. Each object contains attributes (data) and methods (functions) that operate on that data. This allows code to be organized in a more modular, reusable, and real-world object-oriented way. OOP promotes concepts such as encapsulation, inheritance, and polymorphism, facilitating the creation of more flexible, understandable, and scalable systems.

Optimizer

Also called an optimization algorithm, it is an algorithm that adjusts the parameters of a machine learning model to minimize the loss function. It is used to train machine learning models and improve their performance.

Optional Chaining

Optional Chaining is a feature in JavaScript to handle situations where you need to access properties of nested objects but are not sure whether those properties actually exist. This helps avoid 'TypeError' errors when trying to access something that has not been defined.

const person = name?.city?.address;

ORM

Object-relational mapping (ORM) is how we translate tables from a database into code, turning them into classes and objects.

Overfitting

This is a problem that occurs when a machine learning model fits training data very well, but fails to generalize to new data. This is seen when the model performs very well on the metrics for the training data, but performs poorly on the test data. Overfitting can be caused by several factors, such as a very complex model, a very small training dataset, among others.

Pair Programming

Pair programming means programming in pairs. It is a technique in which two people (or more) work together on a task. This helps in the exchange of knowledge and experience between developers. Two heads are better than one, right? Some ways to apply pair programming: one person is working on the code while receiving guidance from the other and they switch positions; one person develops the tests and the other develops the functionality. Don't see pair programming as a waste of time. Good integration and a sense of support in the team can make all the difference in the quality of what is delivered.

Parameter

A parameter is a piece of information passed to a function or method as part of its call.

Pointers

A pointer is a programming language data type that stores or refers to the memory address of another value located in the computer's memory. A pointer refers to a location in memory and gets the value from that location. As such, a pointer is a data type that 'points' to a value.

int *pointer; // pointer to an integer in C/C++ language

Polymorphism

Polymorphism allows objects of different types to behave similarly through a shared interface.

Pre-Processing

Also called data preprocessing, it is the process of transforming raw data into a format suitable for data analysis. It is generally used to prepare data for training machine learning models and thus improve their performance. Preprocessing involves several steps, such as data cleaning, normalization, transformation, dimensionality reduction, among others.

Property

Properties, often abbreviated as 'props', are mechanisms that allow you to pass data from a parent component to a child component. They are used to customize the behavior and appearance of a component. For example, when creating a button, you can pass properties such as the background color, displayed text, and text size as props. Props are crucial to making components reusable and configurable, allowing them to adapt to different usage contexts.

Pull Request

It is a change request within a project. This request can be made to fix a problem, add a new feature, suggest changes, among other reasons. This change request is made so that there is an evaluation of what is being changed within the project, understanding whether it makes sense for the context at that moment. The request can be pending until people responsible for the project or those who have permission approve it. Other rules can be added to these requests, such as building the application, running successful tests and whatever else makes sense for the project in question.

Python

Python is a programming language widely used in web applications, software development, data science, and machine learning (ML). Developers use Python because it is easy to learn, and it runs on many different platforms.

React

React is an open-source JavaScript library used to create interactive and dynamic user interfaces in web applications and other environments, such as mobile, TV, virtual reality, among others. It stands out for its component-based programming model and efficiency in updating the user interface, making it a popular choice in front-end development.

React Native

It is a Javascript framework based on React for developing cross-platform mobile applications.

Recurrent Neural Network

Recurrent Neural Network or RNN is a type of artificial neural network that uses loops and states to process data. It is often used to process input data that has a sequential structure, such as text, audio, video, and time series, and is widely used in natural language processing applications, such as machine translation, speech recognition and sentiment analysis.

Recursion

Recursion is a method/function that calls itself to solve a problem.

Reinforcement Learning

Reinforcement Learning, or RL, is a type of machine learning that uses rewards to train a model. It is widely used to solve decision-making problems, where the goal is to maximize a reward. For example, a machine learning model can be trained to play a game, where the training dataset consists of actions and associated rewards.

Reinforcement Learning from Human Feedback

Reinforcement Learning from Human Feedback (RLHF) is a technique that trains a reward model directly from human feedback. RLHF is used in tasks where it is difficult to define or measure a clear algorithmic solution, especially when dealing with complex tasks involving human values or preferences, but where humans can easily judge the quality of the model's output. For example, if the task is to generate a compelling story, humans can rank different AI-generated stories based on their quality and reject those that are inappropriate or outside the model's knowledge space. A famous example of a language model trained by RLHF is OpenAI's ChatGPT. A major challenge is the scalability and cost of human feedback, which can be slow and expensive to obtain compared to unsupervised learning. The quality and consistency of this feedback can also vary depending on the task and the individual preferences of humans. If the feedback is not unbiased, or is inconsistent or incorrect, the model can become biased.

Repository

A Repository is basically a box that holds all of your project's material. Think of it as a place where you store your code, history of changes, and other important files. There are local repositories on your computer and remote repositories on shared servers.

Responsiveness

The ability of a website or application to adapt to different screen sizes and devices, such as smartphones, tablets, and desktops.

RPA

Robotic Process Automation is a technology that enables the automation of repetitive, rule-based tasks using software robots to perform primarily repetitive activities. These robots mimic human actions in digital systems, such as clicking buttons, filling out forms, copying and pasting data, accessing systems, and executing predefined processes.

Ruby

Ruby is a dynamically typed, strongly typed, multiparadigm interpreted programming language with automatic memory management. Ruby supports functional, object-oriented, imperative, and reflective programming. It is like a digital toolbox that can create, organize, and make different parts of a computer program interact, being able to handle many different programming styles.

Ruby on Rails

Ruby on Rails, or simply Rails, is an open-source tool written in Ruby to create websites and web applications dynamically and efficiently. It organizes development into three main parts':' the data (Model), the user interface (View), and the system logic (Controller)'–' a pattern known as MVC. Rails is designed to save developers time with its "convention over configuration" philosophy, which provides ready-made standards and reduces the need for manual adjustments. It is a reliable choice for creating fast, scalable, and secure applications, being used by both startups and large companies.

Scrum

It is a method of managing projects where work is broken down into small chunks called 'sprints', which typically last a few weeks. The team works closely together, meeting regularly to plan, review, and adjust work. The goal is to deliver value quickly and iteratively, responding to changes and feedback as the project progresses.

Semi-Supervised Learning

It is a type of machine learning that uses labeled and unlabeled data to train a model. It is widely used to solve classification problems of large data sets, where the goal is to predict an output value based on a set of input values. Semi-supervised training is used when there is a large set of unlabeled data and a small set of labeled data, and is more efficient than supervised training and more accurate than unsupervised training.

Smart Cities

Smart cities are locations that use organized urban infrastructure and digital technologies to optimize their processes. This includes the use of devices with Artificial Intelligence and the Internet of Things, among others.

SOLID

The SOLID principles are five guidelines for object-oriented software design, promoting more flexible, robust and maintainable systems. They are: Single Responsibility Principle (a class should have only one responsibility), Open/Closed Principle (classes should be open for extension, but closed for modification), Liskov Substitution Principle (subclasses should be replaceable by their superclasses without changing the correctness of the program), Interface Segregation Principle (classes should not be forced to implement interfaces they do not use) and Dependency Inversion Principle (high-level modules should not depend on low-level modules; both should depend on abstractions).

Spread Operator

The spread operator is an operator that is present in several programming languages, which allows copying and combining elements from one data structure into another, facilitating the efficient manipulation of information.

SQL

Structured Query Language (SQL) is a programming language used to manage data in relational databases. It's like a language that allows us to talk to databases to do things like search, add, update, and delete information.

Stack Navigation

In the context of React Native, it is a navigation technique between the application's screens, when the application has back and forward buttons, for example.

Stateful Widget

A StatefulWidget, in Flutter, is a component that has mutable internal state, allowing it to respond to state changes and dynamically update the user interface.

Stateless Widget

A StatelessWidget, in Flutter, is a component that has no internal mutable state, ideal for parts of the user interface that do not change over time and do not rely on state.

Style Guide

It is a library that brings together style guidelines and visual standards for the creation of digital products. It includes elements such as typography, color palettes, use of icons and layouts, but does not cover technical aspects such as code. The objective of a style guide is to ensure visual consistency and coherence in brand communication, serving as a reference for designers and marketing and communication teams, but without the direct collaboration of developers.

Supervised Learning

Supervised learning is a type of machine learning that uses labeled data to train a model. It is used to solve classification and regression problems, where the goal is to predict an output value based on a set of input values. For example, a machine learning model can be trained to classify images of cats and dogs, where the training dataset consists of images of cats and dogs labeled as such. Supervised training is one of the most common types of machine learning and can be used to solve a wide variety of problems.

Svelte

Svelte is a JavaScript tool that transforms code during the construction of the website or application, without needing an extra layer to work in the browser. This makes it faster and lighter compared to other similar tools.

Swift

Swift is a programming language created by Apple. With it, you can develop applications for Apple devices and operating systems, such as iPhones (iOS), Macs (macOS), Apple Watches (watchOS) and Apple TVs (tvOS).

SwiftUI

SwiftUI is an Apple tool for creating the visual part of applications using the Swift language. Unlike UIKit, which is more traditional, SwiftUI allows you to describe the user interface in a simpler and more direct way, making it easier to both create and maintain your code.

Terminal

The Terminal is a CLI that allows users to interact directly with the operating system using text commands, instead of a graphical interface (GUI). In the Terminal, you can perform a series of tasks and commands directly, such as navigating directories, manipulating files, configuring the system, and running programs. We can highlight terminals such as: Bash (Linux and MacOS), Zsh (Linux and MacOS), Fish (Linux and MacOS), CMD (Windows), and PowerShell (Windows).

Ternary Operator

The ternary conditional operator is a shorthand way to make a choice between two options based on a condition. It works like this: if the condition is true, it returns the first result; if it is false, it returns the second. It's like a compact version of an "if-else" in a single line.

Expression(condition) ? True(exp1) : False(exp2);

Transfer Learning

A machine learning technique in which knowledge learned from one task is reused to improve performance on a related task. For example, knowledge gained from learning to recognize cars can be applied when trying to segment images of cars. In transfer learning, the model that is transferred is called the source model, and the model to which it is transferred is called the target model. The source and target tasks are different but related, and the source task is used to aid in learning the target task. The source and target data can be from the same modality (e.g., images) or from different modalities (e.g., images and text).

Transformer

A type of artificial neural network that uses an encoder-decoder architecture to process input data. Transformer models apply a set of mathematical techniques, called attention or self-attention, to detect the subtle ways in which even distant data elements in a series influence and depend on each other. By finding patterns between elements mathematically, transformers eliminate the need for large, labeled datasets, which are expensive and time-consuming to produce. Any application that uses sequential data from text, images, or videos is a candidate for transformer models.

Typed variable

A typed variable is one that has a data type associated with it (e.g.: int, float, string).

UI Design

It is the process of creating the visual and interactive part of a digital product, such as a website or an application. This includes the design of buttons, menus, icons, and the entire look and feel of the layout, ensuring that it is aesthetically pleasing and easy to navigate. The goal of UI Design is to make users feel comfortable and attracted to the look of the product, applying colors, typography and visual elements that align with the brand identity.

UIKit

UIKit is a set of tools provided by Apple for creating the visual parts of iOS applications. It provides a set of classes and components for building and managing the user interface, including elements such as buttons, tables, views, and gestures.

UML

It is a visual language that software developers use to describe and design software systems. It offers different types of diagrams, such as class, sequence, and activity diagrams, to represent different aspects of a system. These diagrams help teams better understand and communicate software ideas and designs.

Underfitting

It is a problem that occurs when a machine learning model does not fit well on the training data and cannot generalize to new data. This is seen when the model performs poorly on both the training data and the test data. Underfitting can be caused by several factors, such as a model that is too simple, a training dataset that is too small, among others.

Unsupervised Learning

It is a type of machine learning that uses unlabeled data to train a model. It is used to solve clustering problems, where the goal is to find patterns in a dataset. For example, a machine learning model can be trained to cluster images of cats and dogs, where the training dataset consists of images of cats and dogs without associated labels. The model is then responsible for finding patterns in the data and clustering the data according to those patterns, independent of any other information.

UX Design

It is the process of creating products and services that offer a positive and efficient experience for users. This involves understanding the needs and behaviors of the people who will use the product, to ensure that it is easy to use, accessible and enjoyable. The goal is to make the user's interaction with the product intuitive, helping to solve problems and meet expectations, from the first contact to continued use. It is about designing experiences that make users feel satisfied and engaged with the product.

Vanishing Gradient

Vanishing gradient is a problem that occurs when the gradient of a loss function decreases exponentially during the training of a machine learning model. As the gradients often become smaller until they are close to zero, the new weights calculated by the model will be virtually identical to the old weights, without any updates. As a result, the gradient descent algorithm never converges to the optimal solution and the model stops learning. Vanishing gradient can be caused by several factors, such as a very low learning rate, a poorly designed loss function, among others.

Versioning

Code versioning is the control of changes made to a project over time by tracking and recording modifications made to the source code.

Vue.js

Vue.js is a JavaScript tool used to create user interfaces, that is, what people see and interact with on a website or application. It is easy to add to existing projects and is widely used to build sites that function as a single page (SPAs).

WAF

The WAF (Web Application Firewall) helps protect web applications by filtering and monitoring incoming traffic on web applications. It protects against the most common types of attacks, such as: cross-site request forgery, cross-site scripting (XSS), file inclusion, and SQL injection, among others.

XML

XML (eXtensible Markup Language) is a markup language that defines a set of rules for encoding documents. It is a markup language like HTML, but XML was created to be more flexible, allowing the creation of new tags, while HTML has a limited number of predefined tags. It is a generic language that can be used to represent any type of structured data. XML is a very popular language, being used in databases, system configuration files, information transmission, among others.

Zero-Shot Learning

It is a problem setting in deep learning where, at test time, a model is given samples of classes that were not observed during training and needs to identify the class to which they belong. Unlike standard machine learning, where models must correctly classify new samples into classes that were already observed during training, in zero-shot learning no samples of the classes of the new data were provided during the training of the classifier. Therefore, it can be seen as an extreme case of domain adaptation. Zero-shot methods usually work by associating observed and unobserved classes through some form of auxiliary information, which encodes distinctive observable properties of the objects. For example, given a set of images of animals to be classified, along with auxiliary textual descriptions of what the animals look like, an artificial intelligence model that has been trained to recognize horses but has never seen a zebra can still recognize a zebra when it also knows that zebras look like striped horses.

Diciotech uses cookies to ensure you get a better experience. Disabling site cookies may impair the functionality of some features and by continuing to use, you agree to our Cookie Policy. Read more