logo tech writers

tech writers

This is our blog for technology lovers! Here, softplayers and other specialists share knowledge that is fundamental for the development of this community.

Learn more
Git Gui Windows: How to create, edit and delete files?
Tech Writers January 17, 2022

Git Gui Windows: How to create, edit and delete files?

Here at Tech Writers we have already taught a complete tutorial on how to install and configure Git Gui for Windows in a simple way, in addition to showing how to keep your project updated. If you've already checked out the article on how to install Git Gui, but still don't know how to perform other functions in the tool, check out below how to perform some basic operations, such as creating files in Git Gui, editing and/or deleting. It is worth remembering that, before carrying out any file manipulation operations, you must update your project. This is because the update will avoid conflicts that are difficult to resolve, such as those that occur on the GIT server and not in your local environment. For conflict resolution, if necessary, we recommend Tortoise's own article. How to create a file in Git Gui? First, here's how you can create folders or new files in the Git GUI. It works like this: inside the project folder, where you consider it pertinent, create your Windows folders and files normally. After creating them, when you want to send them to the remote repository, don't forget to update GIT first. Once updated, follow the steps below to upload your files: Right-click on the file or folder, click on the “TortoiseGit” option and then click on “Add”; two. After this step, send it by clicking the “Commit” button; 3. Enter a message describing the change made and press “Commit”; 4. Press the “Push” button to send and then click “OK”; 5. Finally, press “Close”. How to update Git files? Now that you've learned how to create Git files or folders, let's get up to speed. Follow the steps below to update your Git files: First of all, update your project. Once updated, change the desired file. This will mark the file with a red icon; two. To commit changes, right-click on “Git commit”, then click on “Master”; 3. Enter the message that describes the change and click “Commit” to proceed; 4. Send to the remote repository via “Push”; 5. Press “Ok” and to close click “Close”. If you want to delete the files, check out the next step by step! How to delete files from Git for Windows? Again and before any procedure, update your project. Then, to delete Git for Windows, follow the steps below: Go to the file and delete it normally; Go to the root of your project and check if it has a red icon; 3. Right click and go to Git “Commit”-> “master”; 4. Enter the message of the change made; Follow the same process as any other Commit, clicking “Commit” > “Push …” > “Ok” > “Close”. That's it, you've already deleted the file. Even so, other operations may be necessary, depending on your intended use of GIT, such as merges, conflict resolution and the like. For these cases, GIT clients integrated into IDEs, or even GIT on the command line tend to be better. If you still wish to use these operations with TORTOISE, we suggest reading the complete project documentation. In it you will find details of each of these cases and how to execute them in the tool. In the case of basic use, such as maintaining documentation, this guide will probably serve you well. We hope you understood everything about the topic in our Git Gui Windows Tutorial! Did you enjoy learning a little more about Git for Windows?

Innovative and impactful businesses
Tech Writers January 07, 2022

Innovative and impactful businesses

https://open.spotify.com/episode/3uN1SCpdezUS0YFCpDLjY2?go=1&sp_cid=65617f9945b6dafa4bd6df3d4f755a20&utm_source=embed_player_p&utm_medium=desktop No nosso segundo episódio da Together in Tech, debatemos sobre a história do desenvolvimento da tecnologia e seus impactos. Hoje, no terceiro bate-papo, nós mostramos a concretização de como se deu esse avanço da tecnologia. Por isso, convidamos a Gerente de Operações da Construíde, Flávia Figliolino, para contar sobre oportunidades de negócios inovadores que geram verdadeiro impacto positivo na sociedade, como é o caso da Construíde. O que é a Construíde? A Construíde é uma organização não governamental (ONG) que tem como propósito impactar vidas através da construção de moradias dignas e com segurança. Esse projeto social foi consolidado há quase 5 anos e auxilia diversas famílias em vulnerabilidade, classificadas na classe D e E da sociedade (renda total de 0-2000 reais por mês).  Inovação dentro do cenário brasileiro Durante a conversa, Flávia expôs sua visão relacionada à inovação da Construíde e a importância de existir soluções revolucionárias para a sociedade atualmente. Como essa é uma organização sem fins lucrativos, o que é executado não gera um retorno financeiro. Por isso, o maior desafio que a empresa enfrenta hoje em dia tem ligação com a captação de recursos.  ”Quando a gente se depara em um cenário de atuação especificamente para esse público que nós atingimos, que é a classe D e E do Brasil, o que mais dificulta é a questão dos recursos, porque a inovação demora mais tempo para chegar pela falta de recursos e pela questão cultural/social.” aponta Flávia. A Construíde tem o objetivo de descobrir alternativas para viabilizar a inovação para lugares onde há pouca infraestrutura. Ou seja, encontrar um caminho que possa ser mais simples levar moradias dignas para famílias desamparadas para quebrar as barreiras culturais e sociais.  O papel da tecnologia na Construíde Hoje em dia, o avanço da tecnologia, junto da sua aplicação, tem sido um grande facilitador na vida das pessoas. No bate-papo, Flávia conta que seu foco maior como Gerente de Operações da Construíde é ajudar as famílias necessitadas. Só que, além disso, é preciso fazer o contato com agentes que possam viabilizar a construção de moradias. Ou seja, são duas pontas que precisam ter uma ligação para poderem ser possibilitadas. Nessa situação, quem faz o papel da tecnologia é quem está preocupado em achar soluções para levar inovações para a comunidade.  É muito comum o fato das comunidades não terem nenhum tipo de inovação. Há certas conjunturas em que famílias não possuem acesso à internet, por exemplo. A tecnologia tem a capacidade de compartilhar diversos tipos de conhecimento e informação, mas infelizmente muitas pessoas são privadas disso. No contexto da pandemia do COVID-19 isso dificultou bastante o aprendizado, pois as aulas estavam sendo feitas através do modo online.  ”Cada vez mais a gente está caminhando como sociedade, como humanidade, para entender que cada um precisa do outro. Ninguém construiu nada sozinho até hoje. As pessoas que se enxergam fazendo algo sozinhas, eu acredito que elas têm um prazo de validade menor. Cada vez mais estamos vendo o mundo precisando se reconectar” Flávia manifesta sua opinião a respeito da parceria de diferentes áreas de trabalho. Visões de mundo diferentes que se complementam A Gerente de Operações da Construíde acredita que a sociedade ainda está muito distante de se unir em diferentes áreas para se ajudar. Infelizmente, há diversas pessoas que pensam somente no próprio lucro do que realmente gerar algum impacto positivo para o coletivo. Além disso, o cenário das ONGs no Brasil também é algo delicado e que precisa de mais atenção por parte da população. Flávia expôs que ainda existem diversos empecilhos que dificultam que essa inovação chegue para todos.  Mas, a sociedade está no caminho certo, basta rever algumas questões para que tudo fique mais viável e acessível para todos. Precisamos usar a tecnologia e aprimorá-la cada vez mais para que possamos unir áreas distintas de trabalho e gerar inovações.  Gostou dessas reflexões? Ouça o bate-papo completo. Nele falamos de outras questões relacionadas com esse projeto social ligado a tecnologia. 

How to configure Git on Windows and keep the project updated?
Tech Writers January 03, 2022

How to configure Git on Windows and keep the project updated?

Do you want to learn how to configure Git on Windows and also know how to keep the project updated? We prepared this content to help you! This guide aims to make it easier to configure Git on Windows for those who have no experience with the system. It also explains how to perform basic operations, such as configuring the Git client on the machine, cloning a project, adding, removing and editing files. In order to facilitate our explanation, we divided the article into two parts to teach you how to configure Git on Windows. Some basic concepts, such as what a clone, pull or push is, will not be covered here. This is because these are more theoretical concepts about Git and the objective of this text is to explain the practical part. To understand these concepts, we recommend reading this Lumis article. It is worth remembering that the article indicated was made using a Gitlab server. Therefore, if you want to work with GitHub, or GitServer, you would just need to adjust your navigation when finding the clone commands for your remote repository. How to configure Git on Windows and install it? As a Windows GUI tool for Git, we will use Tortoise Git. This tool integrates with your system's Explorer, allowing you to use Git directly in project folders. To install, follow these steps: Download and install Git for Windows through this Git Hub project or this direct link; To install, simply press “Next” continuously until the installation of this first program is complete; Then, download Tortoise (Git client for Windows) here; Start the installation by proceeding with all the default options defined by the program; When the user and email are requested, enter the user data from your Git server in the fields; Create a centralized folder for your projects. We suggest that you create the “git” folder in your user’s root folder. After following this step-by-step, the Git client is already installed on your machine and ready to use. How to set up a project in Git for Windows? After completing the previous step, it's time to set up a Git for Windows project. Do it as follows: Inside the Git folder you created (e.g.: C:\Users\Your_usuario\git), create the folder that will store your project data (e.g.: my-project); Once the folder is created, right-click on it and click on the “Git Clone…” menu; After that, go to your Git web, enter the project you want to clone, and click on the “Clone” button, copying the HTTPS link; Paste in the URL; Check the Recursive and Branch options, stating the “master” branch (if you wish to work with the master branch); Press “OK”; press “Close”; With this, you will have the project configured in your local environment. Getting the latest version: how to update the Git project? It's always interesting to update your project. This avoids conflicts with changes made by other colleagues. Therefore, always start by updating your project, and, before sending anything to the server, update it again. This will make your life much easier. To update the project, it's very simple: Go to your project folder where the green icon appears; Right-click, and in the “TortoiseGit” menu, click the “Pull” button; Click “OK”; If you want to see the differences that came with this update, click on the “Pulled Diff” button; If not, just click the “Close” button. This article continues in part 2, where we will teach you how to perform operations on files in your Git repository. Stay tuned to our page so you don't miss any content!

Decorator: Learn when to use this design pattern and see a practical example
Tech Writers December 20, 2021

Decorator: Learn when to use this design pattern and see a practical example 

Decorator is one of the most popular and useful design patterns in object-oriented programming and is a flexible and powerful alternative to traditional subclasses. However, its implementation is relatively similar to Composite, which may raise some doubts. Today, we are going to simplify the applicability and concept of the Decorator design pattern, covered by GoF (Gang of Four) in their book “Design Patterns”. Keep reading and discover what Decorator is, when to use it and see a practical example! What is the definition of the Decorator design pattern? Decorator is a structural design pattern that allows you to add behaviors to an object dynamically, without having to change the object's original code. In other words, it allows you to add or remove behaviors to an object in a flexible and modular way, without the need to change its internal structure or create subclasses for each possible combination of behaviors. Decorator, also called “Wrapper”, is the fifth structural design pattern listed by the GoF. Its intention is relatively simple to understand, since it only seeks to add some functionality within classes. As described by the authors: “Its intention is to dynamically add additional responsibilities to an object. Decorators provide a flexible alternative to using subclasses to extend functionality.” Here at Tech Writers we also have an article covering another design pattern, Strategy, which you can also check out. Official diagram from the book “Design Patterns: Reusable Object-Oriented Software Solutions” When to use Decorator? The Decorator design pattern can be useful when you need to add extra functionality to an object without changing its original structure, serving as an alternative to traditional subclasses. It is also useful when you have several customization options or combination of functionalities and you want to avoid creating excessive subclasses. In other words, it is recommended whenever you need to add responsibilities to an object in a flexible and dynamic way. Practical example of using the Decorator pattern To better understand the concept, let's analyze a practical example of implementing the Decorator pattern. Let's look at the following scenario: In a given cafeteria, each of the snacks available on the menu has different versions: normal, gourmet and vegan. Bringing it to the world of development, how could we reuse as many methods/attributes in common between each of the snacks (objects)? Here, we can apply Decorator, where the gourmet and vegan snack are “variants” of a common snack. Below is an example, using an X-Salad and a Hot Dog as menu options: We can start with a simple statement of what the snack could be. To simplify Decorator, we'll just change the price between gourmet, vegan and regular. So, let's just stick with the getValor() method. Here, we have the implementation of our “common” snacks. These objects are also called “concrete components” within this design pattern. Each of the concrete components has its own attributes and methods. For simplicity’s sake, let’s just focus on the value of snacks. So, the first implementation of our Decorator appears. At first, it only serves as an intermediate class for the concrete decorators, who will come next. In some scenarios, including ours, the creation of this method is optional, since it only defines the way in which the child decorators are instantiated. Still, in this example we will follow the structure proposed by GoF. One of the main disadvantages of this intermediate class is the increase in code complexity. In a more real scenario, this class could have some methods and require their implementation by the child classes. In our case, we are just delegating the implementation of getValor(), which comes from the Lanche interface. As concrete decorators, according to our example, we would have the following: As we can see, Decorators, specifically in our case, only have one value increment modification. This “extra behavior” brought to snacks will serve as a model to decorate specific components, such as the XSalada or the Hot Dog. When a Gourmet Snack is instantiated with an ” will be added to the original price of the hot dog. Of course, value increment is just an example. Using this concept, any addition of functionality or change in behavior could be applied to snacks. The important thing is to understand the objective: instead of creating the classes CachorroQuente, CachorroQuenteVegano, CachorroQuenteGourmet, XSalada, XSaladaVegano, And you, did you already know this design pattern? Still have any questions about the Decorator Pattern?

Tech Products: Check out the main insights from the Proud Tech 2021 Product Trail!
Tech Writers December 13, 2021

Tech Products: Check out the main insights from the Proud Tech 2021 Product Trail!

With the aim of developing knowledge and communication between companies and people in the technology area, Proud Tech is an online event that has already had two editions. Here, we will summarize the presentations on the Product Tech track in 2021, which was attended by the following speakers: Misael Soares; Fabricio Massula. If you weren't able to attend the event and want to know a little more about it, your goals and each trail, access our full content right now! Tech Products: B2C to B2B Technological products can be applied to different types of business. The so-called tech products were the topic of the talk by our partner Misael Neto, who spoke about digital transformation and its impacts on B2C and B2B commerce. Misael highlighted the existence of three fundamental characteristics of business between companies. These pillars are very important for the growth of your business. Check out what they are below: 1. Long sales cycles B2B businesses have medium and long-term contract terms. Therefore, it is common for companies to carry out more intense market research. This way it is possible to avoid unqualified suppliers. Bad suppliers can hinder the business for a long time or generate losses such as a breach of contract, for example. This is what makes the purchasing decision more complex. Given the large number of factors that must be taken into consideration, efforts are holistic. It’s no use just for the sales department to follow up. Marketing needs to help with fundraising strategies and service needs to stand out as a competitive differentiator. Furthermore, Misael highlights that, in B2B negotiations, the most recent sales can overshadow older ones. Sales and customer service can put a lot of effort into recruiting and not pay due attention to customer retention and happiness processes, which can lead to losses. The golden tip of the talk was not to use standardized and low-personal service. It is necessary to focus on creating commercial and interpersonal strategies aligned with the customer and their needs. What the speaker indicates is that the seller has direct contact with the person who will make the purchase. In this way, the exchange between companies becomes more personified. Buyers are not direct users Never forget that the buyer is not an end user. The acquisition is usually made by sectors that are distant from the operation (such as purchasing or even management), something that deserves your reflection. In the case of technology-related B2B purchases, the buyer is looking to improve return on investment (ROI), and the user is looking for excellent usability of the platform. The strategy to be successful in this case is to offer products that solve administrative pain (cost-benefit and return on investment) without neglecting usability, an essential factor for the product's success with end users. Finally, Misael adds that, in this type of negotiation, the selling company will have to deal with a complex network of influencers to make decisions. The organization tends to be very sales-oriented Throughout the talk, another prominent factor was highlighted by Misael: the need to build a quality, modern sales sector that follows trends and discussions in the consumer market. This is no longer a factor of competition, but an expectation of customers, who want to count on quality service, capable of answering their questions, and who is ready to assist them with implementation challenges. Tech product management in platform businesses When talking about tech product management, Misael Soares starts the conversation by conceptualizing what a work management platform is. In his view, it corresponds to an integrated digital environment that allows holistic action across the company's sectors and simplifies the exchange of strategic information. The speaker presents two main subdivisions: Technical – Dev to Dev It is a place that brings together various components, common services and tools for developers to work in their companies. Generally, it is a hub of cross solutions, which can be used in different ways, at different moments in the development of software. Some examples of this case are: Azure; Google Cloud; AWS; Twillo; Stripe. Intermediation — Suppliers to consumers For Misael, this is the main type of platform for tech companies. They are separated into several subcategories. Check out the main three below: Content For those who work producing content, these intermediation platforms provide creation tools, in which people can create materials in different formats. Market Place For companies that are supplying products, this type of platform generates visibility, allows comparisons with competitors, offers technology, and also enables recognition in the market. For consumers, the tool facilitates price comparison and provides transparency for purchases. It is user-oriented to benefit from negotiation, such as comparing different offers. Product extension Aims to increase the value delivered to consumers. In other words, the team of developers creates platforms integrated into the product and the customer receives an optimized experience of what they are consuming. How a product centric initiative changed Fabrício Massula's life Another highlight of the event was the participation of Fabrício Massula. The entrepreneur presented us with a success story regarding the implementation of product centricity in his business, and what benefits this generated for his company. Fabrício is the founder of the company Lett, which was purchased by Neogrid for R$38,5 million. However, he makes it clear that not everything was rosy on this path. Massula and his team began to analyze the entire experience of purchasing everyday goods, such as milk, chocolate, among other items. After checking some websites that offer the sale of this type of product, they observed that many platforms have misleading information, a fact that can significantly affect the sales process. It was then that they developed software to facilitate product management for these e-commerce stores. To do this, they used the teaching and help of companies that were already at the top. And it was in a course held with the Silicon Valley Product Group that Fabrício and his team gained several insights into how to work with their new platform. Both this case presented by Fabrício and the lectures given by Misael make clear the importance of technology for day-to-day business. This demonstrates the relevance of events like Proud Tech for the lives of entrepreneurs who need digital platforms and for professionals who want to update themselves and explore new solutions. Spaces for spreading knowledge and promoting dialogue about tech products and other technology-related issues are essential for business growth.

Software architecture and organizational structure: check out the main insights from Proud Tech 2021!
Tech Writers December 08, 2021

Software architecture and organizational structure: check out the main insights from Proud Tech 2021!

Proud Tech is an online event for technology professionals that had its 2nd edition on November 11, 2021. One of the most important topics covered on the day was software architecture, a subject aimed at those who want to gain more knowledge and good insights into the technological area. Bringing together renowned experts and vast experience such as Rodrigo Branas, Elemar Junior and Klaus Wuestefeld, the event was missed, but it will return with everything in 2022! So if you weren't able to participate, don't worry! In this article we will show you everything that happened and the main topics covered in the plenary that will boost your career in the tech area. Relationship between software architecture and organizational structure In the plenary session on software architecture and organizational structure, Elemar Junior, CEO of EximiaCo and Chief Software Architect of PagueVeloz, led the talk and, of course, it was a success! On that occasion, the concept and relationship between these two topics were brilliantly explained: What is software architecture? It's the way operating systems and programming languages ​​work. Through it, it is possible to know what type of software or application will be built there. In this sense, every company that generates solutions needs to implement software architecture in its activities and guide team members on how to do it. Within the topic, he also cited Conway's Law, which defines the following: “Every company that designs a system ends up producing a copy of the organization's communication structure.” In simple terms, this means that each team needs to think about the phases of the software construction process, within the organizational structure: Presentation Application Domain Infrastructure Subsequently, the steps mentioned above mean the teams of a company. They need to communicate to test the systems created, correct errors and advance to the final stage. Clean Architecture In the lecture on Clean Architecture, Rodrigo Branas gave a show of knowledge. He, who is a Software Architect and owner of a company that develops solutions for the education area, brought powerful insights on the topic to the public. The concept of clean architecture, created by Robert Cecil Martin, is about organizing software codes in a simple way. In this sense, the purpose is to make it easily adjustable if necessary. Still according to Martin, clean architecture has a main theme which is: “The objective of software architecture is to minimize the human resources required to build and maintain a given system.” Therefore, it is important to use clean architecture in all software development or programming processes in a company. This way, it will be easy to develop and expand product solutions created by technology companies. LGPD In the plenary with Odair Biasi, Legal Coordinator at Softplan, he explained the importance of LGPD and the main concepts that can be applied in companies. Concept of LGPD in accordance with Law No. 13.709 / 2018: the General Personal Data Protection Law was created to protect the rights to freedom, control and transparency over your information. Therefore, all legal and personal data processed in Brazil or abroad must comply with the LGPD Law. Therefore, in a technology company it is very important that the team uses this law when dealing with information from customers and the organization itself. Live Coding: Prevalence with TDD in Clojure Klaus Wuestefeld, CEO of Percival, led the plenary with a talk on Prevalence with TDD in Clojure. The concept of TDD is supported by three laws: It is not possible to write production code without first thinking about testing it; You cannot establish too many faults for the same code, as this may generate compilation errors; Just like excessive testing, creating just one test for the program code is not ideal. Why Clojure? Because it is the official general programming language, it is easily reproduced in Java (JVM). This makes it easier to automate projects from Clojure / JAVA. Using this system optimizes the company's time and resources, as professionals will know what and how to create a new schedule. Test Driven Development (TDD) are these tests within the software architecture theme that we mentioned now. They help developers find errors at any stage of testing and fix them quickly. Conclusion Proud Tech was born from the need to promote integration and communication between teams.