teleren/devto huggingface dataset:
5 differences you must know between Terraform and Ansible
Tags: devops, terraform, ansible, devjournal
Published: 2023-05-18 01:31:00

Terraform and Ansible, the ultimate showdown!  

They both have their own unique powers. Here are the 5 differences you must know to make the right choice:


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xih0rqvjw2udwa90lu89.png)

## Difference 1
Terraform is an IaC tool for provisioning and managing infrastructure. Vs Ansible is a configuration management and automation tool for software and services.


## Difference 2
Terraform uses a declarative approach to provisioning infrastructure. Vs Ansible uses an imperative approach to configuring systems.


## Difference 3
Terraform uses its own proprietary language, HashiCorp Configuration Language (HCL), while Ansible uses YAML or JSON.


## Difference 4
Terraform provides a state management feature, which keeps track of the infrastructure it manages, while Ansible does not have a similar feature.


## Difference 5
Terraform can be used for multi-cloud orchestration, while Ansible is used for automating the configuration of servers, network devices, and cloud services.

Thanks for reading this.

If you have an idea and want to build your product around it, schedule a call with [me](https://calendly.com/pragyanatvade).

If you want to learn more about DevOps and Backend space, [follow me](https://dev.to/pragyanatvade).

If you want to connect, reach out to me on [Twitter](https://twitter.com/pragyanatvade) and [LinkedIn](https://www.linkedin.com/in/pragyanatvade/).
Troubleshooting 'Something Is Already Running on Port 3000' Error in ReactJS (Simple Solution)
Tags: react
Published: 2023-05-18 01:11:54

When developing a project with React, running `npm start` in your terminal launches your application in a web browser. However, there may be instances where the application fails to launch, accompanied by an error message in the terminal that states:

```
Something is already running on port 3000.
```

This means that another program is running on the same port, preventing your application from starting. Only one program can use a specific port at a time. 

To resolve this issue, simply run the following command in your terminal: 

```
npx kill-port 3000
```
This command will remove any program that might be using the same port. By doing so, it frees up the port, allowing you to start your application without any conflicts.

Afterward, rerun `npm start`, and your application will successfully launch.
SAS Function isBusinessDay
Tags: sas, sql, datefunctions, proc
Published: 2023-05-18 00:29:45

This is an auxiliary function to **isBrHoliday**, demonstrated in the previous post, to validate whether a date is a business day, disregarding weekends and holidays. the code can be added along with the previous block inside **proc fcmp**.

```
proc fcmp outlib=work.sas_functions.dateFunctions;

	/*
	===================	
	 * FUNCTION:isBusinessDay
	 * AUTHOR: Dutra - dutra@relevants.org
	 * DESCRIPTION: Tests a date to validate if it is a 
Brazilian national holiday or non-business day, returning 0 or 1.
	===================
	*/
	function isBusinessDay(date);
	
		if weekday(date) in (1, 7) or isBrHoliday(date) = 1 then
			return(0);
		else return(1);
		
	endsub;


quit;

options cmplib=work.sas_functions;
```
Twitch Mention Notifier web extension
Tags: twitch, node, notifications, extension
Published: 2023-05-18 00:25:00

I want to share with you the browser extension I developed for Twitch platform users, called Twitch Mention Notifier! 🚀

With this extension, you'll never miss a mention in the chat when you're in another browser tab, for example. Whenever someone mentions your name, Twitch Mention Notifier will send an instant notification, displaying the time of the mention, the username of the person who mentioned you, and the message sent. 📢

It's extremely easy to use, and all the instructions you need, including how to download the extension, are available in the repository's README 🙌

Repository: https://github.com/ocsoares/twitch-mention-notifier

I would appreciate any feedback !
Execuções Síncronas e Assíncronas: Compreendendo a Diferença e a Importância na programação
Tags: programming, beginners, development
Published: 2023-05-18 00:11:14

Existem duas abordagens amplamente utilizadas na programação que são as execuções síncronas e assíncronas. Neste artigo, mostrarei as diferenças entre elas e como cada uma pode influenciar o fluxo de execução de um código.

###Execução Síncrona:

Na execução síncrona, as tarefas são executadas em sequência, uma após a outra. Cada tarefa precisa ser concluída antes que a próxima possa iniciar. Essa abordagem é útil em situações em que a ordem das tarefas é importante e dependências precisam ser respeitadas.

A execução síncrona pode ser mais adequada para determinados tipos de tarefas em que seja necessário garantir a consistência e a integridade de dados. Isso evita condições de "corrida", ou seja, onde múltiplas tarefas tentam acessar ou modificar o mesmo recurso simultaneamente, podendo levar a resultados indesejados.

* Um exemplo prático de execução síncrona:
Quando você precisa de um medicamento, você primeiro vai a farmácia, pede ou dá a receita ao farmacêutico; Ele te dá o remédio você paga e só então usa o medicamento.

###Execução Assíncrona:

A execução assíncrona, por sua vez, não é necessário que uma tarefa termine para que outra inicie. Essa abordagem melhora a eficiência e a capacidade de resposta do código.

Além disso, a execução assíncrona é particularmente importante em ambientes onde a concorrência é essencial. Em sistemas de processamento paralelo, por exemplo, várias tarefas podem ser executadas simultaneamente em diferentes núcleos de processamento, aproveitando ao máximo a capacidade de processamento disponível.

* Um exemplo prático de execução assíncrona: 
Quando você vai fazer um café, você pode deixar a água fervendo enquanto prepara o filtro, pega o pó, as xícaras.
Não é necessário esperar a água ferver para poder fazer as demais tarefas.

Conclusão:
As execuções síncronas e assíncronas desempenham papéis importantes no desenvolvimento. 
A escolha entre execuções síncronas e assíncronas dependerá das características específicas de cada tarefa e das necessidades do sistema.

É importante notar que, em alguns casos, a combinação de execuções síncronas e assíncronas pode ser a abordagem ideal. Por exemplo, é possível utilizar a execução assíncrona para realizar chamadas a serviços externos ou operações demoradas, enquanto as tarefas locais podem ser executadas de forma síncrona, respeitando dependências e garantindo uma ordem adequada.

Com o conhecimento e o uso adequado dessas abordagens, é possível desenvolver códigos eficientes e capazes de lidar com tarefas complexas de forma otimizada.
Netting the first Contenda SDK
Tags: dotnet, sdk
Published: 2023-05-18 15:57:05

---
title: Netting the first Contenda SDK
published: true
date: 2023-05-18 00:00:00 UTC
tags: dotnet, sdk
canonical_url: https://blog.brainstory.ai/net-sdk/
---

We’re dropping our new .NET Software Development Kit (SDK) like it’s hot, for all you C#, F# and VB.NET code warriors out there! This baby is the fruit of our burning love for making your life with Contenda a walk in the park. Your friendly neighborhood dev advocate just got a turbo boost! And guess what? This .NET SDK is open source, up for grabs on both [NuGet](https://www.nuget.org/packages/Contenda.Sdk) and [Github](https://github.com/Contenda-Team/contenda-dotnet-sdk/)!

![Demo gif of .NET SDK](https://contenda.co/blogimages/netsdk.gif)

An SDK is similar to a LEGO set, providing all the necessary pieces and instructions to assemble a complex structure - all without you having to build those pieces themselves.

This release is like the first step on the moon for us - a giant leap towards making our product your new favorite content creation tool. We can’t wait to hear your thoughts, and oh boy, are we stoked to see the genius stuff you’ll cook up with our SDKs! And hold on to your keyboards, ‘cause this ain’t the end of the line! We’re geared up to roll out libraries in even more languages, spreading the love to more tech advocates.

If you’d like to learn more, please feel free [to reach out to our team on Discord](https://discord.gg/bYda4pQz2v) or [sign up for our email list](https://contenda.ck.page/96e4e60222).

Prepare to do more with less, ‘cause we’re just getting started!
Me, animes and this blog
Tags: animes, programming, creator, motivation
Published: 2023-05-18 13:37:22

---
title: Me, animes and this blog
published: true
date: 2023-05-18 00:00:00 UTC
tags: animes, programming, creator, motivation
canonical_url: https://datsfilipe.dev/blog/me-animes-and-this-blog
---

Animes has been a significant part of my life since childhood. From my early days watching *Naruto* and *Dragon Ball*, my current favorites include *One Piece*, *Evangelion* and *Code Geass*. Today, I want to delve into how animes serves as a powerful source of motivation, driving individuals to strive for excellence. One recent anime that particularly resonated with me is Blue Lock—I became an ardent fan of this series.

The motivation I speak of is the kind that fuels one's desire to excel, to become better at something and ultimately, the best version of oneself. This is precisely the journey I am embarking on. I aspire to embark on my own hero's journey, venturing into the wilderness of programming, and sharing technology-related content through this blog. While it won't be solely focused on programming, it will predominantly revolve around this subject.

## This blog isn't for you

I want to clarify that this blog is primarily for my personal growth and self-expression. Although you may find the posts interesting, they are not specifically tailored for you. Inspired by a creator called *Fabio Akita*, who I've followed since the beginning of my programming journey, I aim to create content that reflects my own vision. *Akita*, through his YouTube channel, compares this approach to *Henry Jones' diary* in the *Indiana Jones* films. Similarly, I hope to achieve the same level of authenticity and personal connection through this blog. Additionally, I do hope that potential recruiters visiting this blog can easily recognize my programming skills and consider me for employment opportunities.

Consider this an introductory post rather than a regular one. Going forward, I plan to share intriguing developments in my journey of learning Rust, most likely over the weekends. Thank you for taking the time to read, and I wish you a pleasant day, afternoon, or night ahead.
SAS Function isBrHoliday
Tags: sas, sql, datefunctions, procfcmp
Published: 2023-05-17 23:55:42

A useful function to test if a date is a Brazilian national holiday. With the necessary adaptations, it can be used for other countries, applying their respective holidays. The function uses **proc fcmp** to work with executions in a different way than the construction of macros, for this purpose the created functions are stored in a specific library in the **outlib** parameter.

```
proc fcmp outlib=work.sas_functions.dateFunctions;

	/*
	===================	
	 * FUNCTION:isBrHoliday
	 * AUTHOR: Dutra - dutra@relevants.org
	 * DESCRIPTION: Tests a date to validate if it is a 
Brazilian national holiday, returning 0 or 1.
	===================
	*/
	function isBrHoliday(date);
		year 			    = year(date);
		anonovo 			= mdy(01,01,year);
		tiradentes 		  	= mdy(04,21,year);
		diaTrabalho 	  	= mdy(05,01,year);
		independencia 		= mdy(09,07,year);
		nsraAparecida 		= mdy(10,12,year);
		finados 		    = mdy(11,02,year);
		republica 		  	= mdy(11,15,year);
		natal 		      	= mdy(12,25,year);
		pascoa 		      	= holiday('easter', year);
		segCarnaval 	  	= pascoa - 48;
		terCarnaval 	  	= pascoa - 47;
		sextaPaixao 	  	= pascoa - 2;
		corpusChristi 		= pascoa + 60;

		if date in (anonovo, segCarnaval, terCarnaval,
 sextaPaixao, pascoa, corpusChristi, tiradentes, diaTrabalho,
 independencia, nsraAparecida, finados, republica, natal
               ) then
			return(1);
		else 
			return(0);
	endsub;

quit;

options cmplib=work.sas_functions; 
```

To use the function just call passing the date parameter. As in the following example:

```
 /*
Function test, defining the date and passing it as a parameter of
the isHoliday function
*/
%let date=%sysfunc(mdy(12,25,2023));

%let isHoliday=%sysfunc(isBrHoliday(&date.));

%put Date=&date. - isHoliday=&isHoliday.;
```

I hope it can help with your projects. I will also make new posts available about other functions that I use to handle dates.
3rd day of my 100 days of code challenge
Published: 2023-05-17 20:52:46

Today, I tried to do some research.

I learned a bit about Hugging Face's Transformers library and less than I wanted about LangChain, I didn't have as much time as I wanted. As today, time got in the way. I'm a bit conflicted about which one I should use, but I'll put more time into trying to create some projects with them tomorrow. I also have my eyes set on a project I'll try to create tomorrow starting with Hugging Face's Transformers library as I already gained some exposure to it today.

Following yesterday, I didn't work on Andrew Ng's Machine Learning course but I did like learning about the concepts and I feel like having a better understanding of these underlying concepts would be interesting and beneficial in the long run. That way, I wouldn't get completely lost as things got more advanced, I personally wouldn't want to treat it like magic and lose control of where it's going. I'll put in some hours for it during the week, but only when I feel I'm getting enough practical experience utilising existing tools.

That's about it, happy coding!

I have to wake up early, so only dedicating roughly 10 minutes to Atomic Habits :)

Edit: Dedicated said 10 minutes, loved reading about how correlating your habits with your identity shapes them to be part of you rather than a task. Once you make it about who you are and not what you're trying to achieve, which in my opinion would just lead to "so what now?", the goal is to become the habit, and then it'll stick on autopilot.
Open source framework design for building natural language APIs
Tags: opensource, ai, python, contributorswanted
Published: 2023-05-17 23:10:24

Hey guys! I just wanted to share a blog post detailing (at a high level) an open source framework I've been working on for building natural language APIs: APIs that enable interfacing with an application using natural language.

https://calligramengineering.substack.com/p/introducing-tablada

The actual open source project will be released in the next few weeks. I mainly wanted to gauge people's interest as to a project like this and wanted to get some feedback from the community on the approach. Any and all feedback is appreciated. If you're interested in contributing to the project, send me an email at asb9tlczd@mozmail.com!
عالم التداول
Tags: codepen
Published: 2023-05-17 22:42:50


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pdmejour671fad5l8yz4.png){% codepen https://codepen.io/Saber1999/pen/oNaMyJL %}
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/66azd7lqktq9ofo1s4c9.png)

- 

1. تلن**_[](

```
url
```
)_**
How to reuse BigQuery cached results
Tags: bigdata, gcp, bigquery
Published: 2023-05-17 22:15:50

When it comes to using Google BigQuery for data analysis, cost-effectiveness is a key concern. While BigQuery itself offers an affordable solution, the real challenge lies in optimising your queries to avoid skyrocketing expenses.

By leveraging the nature of temporarily created tables in BigQuery, you can seamlessly integrate them into subsequent queries, saving costs!

> When you run a query, a temporary, cached results table is created in a special dataset referred to as an "anonymous dataset". [docs](https://cloud.google.com/bigquery/docs/cached-results#how_cached_results_are_stored)

In Short, BigQuery will create a temporary table for each query you run:
![Temp Table](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yhgtuqcdrb7xj471jczk.png)

It can be accessed on subsequent queries and will exist for 24 hours:

![Cached Results](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qmau8mdke7h4itr48oz7.png)

So whenever you are a processing a big chunk of data, keep in mind that this strategy can help you run tests, analysis and even connect it to Looker, happy costs saving!
problem 3:
Tags: javascript, projecteuler, beginners, programming
Published: 2023-05-17 22:13:50

## 
## Question
Largest prime factor

**Problem 3**
The prime factors of 13195 are 5, 7, 13 and 29.

What is the largest prime factor of the number 600851475143 ?

## Solution

function largestPrimeFactor(number) {
  
  let largestFactor = 0;
  let divider = 2;

 
  while (number > 1) {
    if (number % divider === 0) {
      largestFactor = divider;
      number /= divider;
    } else {
      divider++;
    }
  }

  return largestFactor;
}

## Explanation:
pass the number as argument.initialize  largestfactor as 0 and the divider 2 which is the smallest prime number.
if the number is greater than 1 , we check if its divisible by 0;then update largest number to the divider,if the number is not divisible by the prime number we add it.then return the largestFactor.
Introducing Pull Request Tracker - A GitHub Action
Tags: githubhack23, github, opensource, shell
Published: 2023-05-17 21:54:48

## 🧪 What I built

A GitHub Action that will help maintainers keep track of new Pull Requests by giving them detailed information if someone might be trying to push similar or duplicate changes.
<br>

### 🏆 Category Submission: 

<b>Maintainers Must-Have</b>: Make the lives of Open Source maintainers easier.
<br>

### 🔗 App Link

https://github.com/marketplace/actions/pull-request-tracker
<br>

### 🖼 Screenshots 

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rs4s2pxgxwfloei2n1rl.PNG)
<br>

### 💬 Description 

`Pull Request Tracker` is a GitHub Action to easily track similar or duplicated PRs. It runs automatically whenever someone opens a new PR and scans all open PRs for different patterns. The output is a detailed comment with useful information including diff links in case of detected conflicts.
<br>

### 🔗 Link to Source Code 

https://github.com/mateusabelli/pr-tracker
<br>

### 📜 Permissive License 

`Pull Request Tracker` is free and open-source software licensed under the **MIT** License.
<br>

## 👨‍💻 Background

> What made you decide to build this particular app? What inspired you?

My initial idea was to create a tool that could identify if someone is opening a PR that makes the same or similar changes of other contributors with open PRs. To achieve this, I planned three major modules, one for checking pulls, checking conflicts and one for checking hunks.
<br>

### ⚙ How I built it 

> How did you utilize GitHub Actions or GitHub Codespaces? Did you learn something new along the way? Pick up a new skill?

I created this project as a [composite](https://docs.github.com/en/actions/creating-actions/creating-a-composite-action) action, at the beginning I wanted to try making a JavaScript action but I've always felt like the features were easily executed from the command line or using the GitHub CLI `gh`. So that's when decided to go with a composite action running a few shell scripts.

I didn't know how to use shell before, but it felt like a very simple and flexible scripting language, everything that I attempted to do with it, kind of worked, specially integrating the usage of CLI tools, using grep and even some JS code with node.

I learned about GitHub Actions, Shell scripting, a basic usage of GraphQL, the awesome GitHub API, the powerful GitHub CLI `gh`, and I also wrote my best README so far.
<br>

### 🔎 Additional Resources/Info

These videos helped understand GitHub Actions:

- https://www.youtube.com/watch?v=kKbIEPsLj88
- https://www.youtube.com/watch?v=-hVG9z0fCac

---

<table>
  <td>Thanks for reading. Have a nice day!</td>
</table>
Ejercicio Práctico Esteganografía
Tags: spanish, ubuntu, steghide, steganography
Published: 2023-05-17 21:45:25

En esta ocasión, para el ejercicio, se utilizó el sistema operativo de Ubuntu. Donde se instaló Steghide, el cual es un programa de esteganografía que puede ocultar datos en varios tipos de archivos de imagen y audio.

Para su instalación, debe ejecutarse el siguiente comando:

```
sudo apt-get install steghide
```

Posteriormente se descarga una imagen con extensión .jpg y se crea un archivo de texto. 

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bwy5k7f81ns65a13wuq3.jpg)

A continuación se ejecuta el siguiente comando:

```
steghide embed -ef mensaje.txt -cd kitty.jpg -sf imagen_secreto.jpg
```

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cw83tyiju1ng3klmcjlk.png)

Dentro de este comando, se ingresa el archivo de texto a la imagen y se crea una nueva ya con el archivo de texto, esta nueva imagen es llamada "imagen_secreto.jpg".

Luego, se ejecuta el siguiente comando para extraer el archivo de texto de la nueva imagen:

```
steghide extract -sf imagen_secreto.jpg
```

Para poder extraer el archivo, se debe ingresar la contraseña que se estableció anteriormente.

Ya que se ingresa la contraseña, se ejecuta el comando `ls`

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w6tpj5w5kzpgfx1ycj91.png)

Se listan todos los archivos que se encuentran en la ruta y con el comando `vi secreto.txt` para visualizar el archivo extraído.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zeb2p7onhkye9ud7dils.png)

Con esto se finaliza la práctica de esteganografía.