teleren/devto huggingface dataset:
Magento 2 - Como realmente funcionam as Cron Jobs?
Published: 2022-07-06 22:57:47

# Introdução
Criei esse guia por conta da escassez de conteúdo de Magento 2 em Português e também porque esse tema é um pouco complexo. Vamos lá?

## Por dentro das crons do Magento
No painel admin, em Stores -> Configuration -> Advanced -> System ficam reservadas as configurações de crons por grupo.

Ao criarmos uma cron, utilizamos o seguinte código (Exemplo):

```xml
<group id="index">
    <job name="fcamara_mundipagg_generate_subscription_order"
            instance="FCamara\MundiPaggChargesWebhook\Cron\GenerateSubscriptionOrder" method="execute">
        <schedule>0 0 * * *</schedule>
    </job>
</group>
```

Aqui definimos que o `group` a ser utilizado será o `index`, esse grupo pode ser acessado no caminho citado acima.

## O comando bin/magento cron:run

O comando `bin/magento cron:run` é responsável por executar, agendar e fazer a limpeza das cron jobs. É por isso que esse comando é executado de minuto em minuto.

Você pode conferir essa informação utilizando o comando crontab -l (Caso já tenha instalado as crons, caso não, instale utilizando o comando `bin/magento cron:install`).

O output deve ser algo parecido com: 
```
* * * * * /usr/local/bin/php /var/www/html/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /var/www/html/var/log/magento.cron.log
```

## Por dentro das configurações no painel admin

`Generate Schedules Every`: Determina a frequência de criação de agendamento (em minutos).

`Schedule Ahead for`: Determina quão cedo cron jobs serão agendados (Em minutos).

Exemplo: Se definirmos esse parâmetro para 1440 (24 horas), as tarefas serão agendadas com 24 horas de antecedência.

`Missed if not Run Within`: Determina que, se o cron job não for iniciado após o tempo especificado, ele não será iniciado e terá o status Missed (Em minutos).

`History Cleanup Every`: Define o tempo para que o histórico de tarefas finalizadas seja limpo (em minutos).

`Success History Lifetime`: Tempo de vida do histórico de status de sucesso (em minutos).

`Failure History Lifetime`: Tempo de vida do histórico de status de falha (em minutos).

`Use Separate Process`: Utilizar processo separado.

## Tabela cron_schedule

Na tabela `cron_schedule` é possível ver o histórico de tarefas (crons) que foram realizadas. É importante se atentar ao fato de que esse histórico não é eterno, e, de acordo com como configuramos, eles serão apagados.
Manipulando opções com a tag Select e funções no JavaScript #1
Tags: javascript, webdev, programming, html
Published: 2022-07-06 22:56:57

---
title: Manipulando opções com a tag Select e funções no JavaScript #1
published: true
description: 
tags: #javascript #webdev #programming #html
# cover_image: https://direct_url_to_image.jpg
# Use a ratio of 100:42 for best results.
---

![manipulando opções Cover](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d5b4u8yp0xxaesz032qn.png)

**JavaScript**, *e seus poderes fenomenais*, vão nos acompanhar num projeto de Calculadora de IMC nos próximos artigos.
 
A ideia é construir uma aplicação que entregue conceitos básicos, mas bem feitos, em HTML, CSS e JavaScript.

E hoje vamos falar de manipulação de opções com a Tag **select** e **functions** do JavaScript

## O Projeto

Para exemplificar esse e outros hacks básicos de JavaScript estarei usando um projeto de Calculadora de IMC

_Projeto em desenvolvimento_

![Calculadora de IMC - Etapa 1](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2pzkcjwivv2nb8osm88z.png)

## No HTML

No nosso exemplo, manipulei imagens, onde cada opção possuí uma imagem correspondente.

### O primeiro passo 
é usar a tag **img** para adicionar as imagens no HTML.

```HTML
<img id="image" height="200" src="images/man.png" alt="">
<!-- <img height="200" src="images/woman.png" alt=""> -->
```

A imagem que aparecerá quando o site for carregado deverá ter o id="image", enquanto as outras ficaram comentadas e sem id.

## No JavaScript

### Após isso
é possível criar as opções utilizando as tags **select** e **option** em conjunto.

```JAVASCRIPT
<select onchange="changingSelection(this)">
        <option value="">Selection</option>
        <option value="man">Man</option>
        <option value="woman">Woman</option>
</select>
```

### E aqui vem a mágica
O uso do evento _onChange_ nos permite que alguma ação seja realizada após uma mudança. Nesse caso, ao selecionar a opção, vamos alterar o src do id="img" e como consequência, a imagem será alterada.

```JAVASCRIPT
const image = document.getElementById("image")

function changingSelection(selection){
    const value = selection.value;

    if (value == "man"){
        image.src = "images/man.png";

    } else if (value == "woman") {
        image.src = "images/woman.png";

    }
}
```

Ao capturar o valor do Select, a função vai comparar os resultados e entregar a imagem da opção selecionada. Caso seja vazio, vale o que está no HTML, que nesse caso é a imagem que deixamos sem comentário.

Nessa aplicação, o select é opcional e uma forma de aplicar conceitos básicos, mas a adaptação dessas linhas de código para outros usos te dá infinitas possibilidades. Enfim, divirta-se!

---

Esse é um post escrito por mim :sparkles::heart:

Se você deseja adicionar algo, sugerir correção ou conversar sobre tecnologias e afins, pode me chamar no [Instagram](https://www.instagram.com/drumond_dev/) ou por e-mail no contato.elisadrumond@gmail.com
Decimal Point Precision in Apache NiFi using groovy Script
Tags: apache, nifi, groovy
Published: 2022-07-06 22:45:22

Apache NiFi Doesn't support setting up of Decimal point precision in Expression Language. Thanks to groovy Script Language Support which has the capability to extract the Attributes from flowFiles and modify the values to a particular precision points.

Here are the following steps which help you to accomplish maintaining precision points in the Decimal Values:

1. Drag and Drop an ExecuteScript Processor.
2. Replace the Body of the Script with the following script:
```
import org.apache.commons.io.IOUtils
import java.nio.charset.StandardCharsets
import java.text.DecimalFormat

flowFile = session.get()

Double attr1 = Double.parseDouble(flowFile.getAttribute("<NAME OF THE ATTRIBUTE>"))
def df = new DecimalFormat("#0.00")

def attr1_decimal = (df.format(attr1))

flowFile = session.putAttribute(flowFile, "attr1", attr1_decimal)
session.transfer(flowFile, REL_SUCCESS)
session.commit()
```

3.Finally connect the Success relationship to a Pipeline to view the
Day 587 : Too Much
Tags: hiphop, code, coding, lifelongdev
Published: 2022-07-06 22:35:26

_liner notes_:
- Professional : Pretty much finished up a blog post review for a coworker. Just have to do one more grammar check and put it into the CMS. Other than that, I went through a bunch of GitHub repos and upgrading some code. I did a lot of the newer stuff and examples from the documentation and tutorials and worked my way backwards. Not trying to think too much about all the repos I have to go through! haha.

- Personal : Don't really remember a lot of what I did last night. Pretty sure I went through some tracks for the radio show. I also put up some LED lights in the van. They look pretty good and bright enough to like the van. There's a remote so I can change colors and some other functionality. It's better than the solar lantern thing I was using before because the light is more spread out. Other than that, I watched a few episodes of "The Umbrella Academy".


![View of some gray sharp stone mountain faces in Val Gardena, Italy](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j398lcqhk4iik0cks7pw.jpg)

Going to go through some tracks for the radio show. Then work a little on my side project. Finally end the night off with "Ms Marvel" and "The Umbrella Academy".

Have a great night!

peace piece
Dwane / conshus
https://dwane.io / https://HIPHOPandCODE.com
{% youtube Jj0lPykB89w %}
What is Cherrybomb?.
Tags: api, cherrybomb, blst, openapi
Published: 2022-06-23 00:42:59

## What is Cherrybomb?.

`Cherrybomb` is a tool that can help you avoid user behavior. This tool is open source and can be used by both the OpenAPI and Rust communities.

## How does it work?

It takes in an OAS file, runs a series of checks on it to make sure everything is on par with the OAS, and outputs a detailed table with any alerts found, guiding you to the exact problem and location to help you solve it quickly.

## Features of Cherrybomb

- It can check your logs for business logic flaws.
- It supports OpenAPI and HTTP Logs. 
- The OpenAPI Specification is a standard for specifying how APIs work. The logs can be used to investigate calls.
- This makes it easier to use when developing web applications.

## Different actions in cherrybomb

**OpenAPI Specification Scan**

The OAS is checked for common mistakes and lack of best practices.

**Parameter Table**

The OAS is turned into a descriptive table by Cherrybomb.

**Mapper**

Takes in traffic logs and maps the business logic flow of the application, then outputs a digest file.

**Visualizer**

The digest file is used to visualize the business logic flow of the application.



Gratitude for perusing my article till end. I hope you realized something unique today. If you enjoyed this article then please share to your buddies and if you have suggestions or thoughts to share with me then please write in the comment box.


Above blog is submitted as part of 'Devtron Blogathon 2022' - https://devtron.ai/
Check out Devtron's GitHub repo - https://github.com/devtron-labs/devtron/ and give a ⭐ to show your love & support.
Follow Devtron on LinkedIn - https://www.linkedin.com/company/devtron-labs/ and Twitter - https://twitter.com/DevtronL/, to keep yourself updated on this Open Source project.
Grants to Build on Coreum: WASM Smart Contract
Tags: blockchain, javascript, webassembly, rust
Published: 2022-07-06 22:10:05


To incentivize the growth of the ecosystem, the Sologenic Development Foundation is deploying a grant program to fund and accelerate the construction of a sustainable and community-owned blockchain.

Using the well-established Tendermint Consensus Engine and Cosmos SDK, Coreum brings a low-latency proof-of-stake blockchain.

This is a call for all development teams and companies passionate about the [Coreum](https://www.coreum.com/) protocol and network.


**Apply here:** [Coreum Grants Program](https://www.coreum.com/grants)
**Learn More:** [Yahoo](https://finance.yahoo.com/news/coreum-development-grant-applications-open-153900077.html)


## Requirements:

- A successful track record with at least 1-2 projects (It is not necessary for them to be live)
- Strong development knowledge and experience in the blockchain field
- Having an existing community base behind the team is a plus

## Wave 1 Project Focus:

- CORE Wallet: Mobile, Web, and Hardware Firmware
- DeFi Protocols: Automatic Market Makers, Lending and Borrowing d'Apps, Yield Farming d'Apps
- Adding Coreum or CORE support to a project
- Opening Pool Requests for other projects to support the Coreum network.

📅 Application deadline: July 15th.

****
Why WordPress? Some of the Benefits of WordPress Website
Tags: website, deve, wordpress
Published: 2022-07-06 22:01:19

Many options are available today for anyone who wants to create a website. WordPress is an excellent option for businesses. It's easy to find the right solution. It is a CMS system that is almost open-source and can be used to [create websites](https://pnmgroup.co/) with minimal effort.

You will see that most professionals highly recommend WordPress if you look at all sites run by them. When you look at all the benefits associated with WordPress websites, it is clear why. These are the essential benefits that need to be highlighted and should be understood by all.

**Simple Management**
It is not enough to create a modern website. It will help if you continue publishing content and updating everything so that the content is relevant over time. This isn't easy to do using the standard web design approach. WordPress's easy-to-use administration system makes it possible to make changes quickly and without technical knowledge. This means you can easily create a website and manage it without knowing much about technicalities. You can modify a page or create a new one in minutes.

**Complete Customization**
The most important thing to remember when creating a website is to make it unique. Although it may seem impossible to customize a site using themes or plugins, further research will reveal that there are virtually limitless customization options. With the plugins and themes, you can make your site look exactly how you want it to. This is a massive advantage over most other CMS systems.

**Low resource use**
Slow loading speeds can be a significant problem for a website. WordPress is a CMS system that requires the least amount of resources. You can expect your site to load very quickly if you're a skilled user. Modern websites must load as soon as possible to be attractive to visitors. You only have a few seconds to grab the visitors' attention, so you want your site to load quickly.

**Minimum Design Knowledge Necessary**
This is most likely the most crucial benefit you should remember. This platform was created to assist those who don't know much about web design in getting a website. We had to rely upon professional web developers in the past because there wasn't any other choice. Today, however, we have the opportunity to take advantage of CMS systems such as WordPress, which make the website design more accessible and more efficient. At last, if you are looking for a [web development agency toronto](https://pnmgroup.co/web-design-and-development) than do visit PNM Group.
¿El ERC721A es tan bueno como dicen?
Tags: azuki, openzeppelin, web3
Published: 2022-07-06 21:47:17

---
title: ¿El ERC721A es tan bueno como dicen?
published: true
description: 
tags: azuki, OpenZeppelin, web3
cover_image: https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6m14oyx04dyjzpmaoazw.png

---

La colección de NFTs de Azuki destaca por su estilo artístico. Pero además de eso trajo a la mesa el ERC721A una nueva implementación del estándar ERC-721. El objetivo de esta librería es ahorrar gas a los participantes que deseen comprar mas de un NFT en el mercado primario. En este video haremos pruebas y compararemos los gastos de gas para los NFTs lanzados con Azuki y para los NFTs lanzados con las librerías de OpenZeppelin.

https://www.youtube.com/watch?v=TTEzsdQKU-g

## Ejecuta los tests

Al ejecutar los siguientes comandos bajarás los tests desde el repo de github de [Filosofía Código](), los ejecutarás y verás los resultados en la terminal.

```bash
git clone https://github.com/FilosofiaCodigo/ERC721AComparison.git
cd ERC721AComparison/
npm install
npx hardhat run scripts/gas-comparison.js 
```

## Ejemplos usados en este video

Aquí les dejo los contratos con funcionalidad mínima que usamos para realizar los tests.

### Azuki NFT

```solidity
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;

import "erc721a/contracts/ERC721A.sol";

contract Azuki is ERC721A {
    constructor() ERC721A("Azuki", "AZUKI") {}

    function mint(uint256 quantity) external payable {
        // `_mint`'s second argument now takes in a `quantity`, not a `tokenId`.
        _mint(msg.sender, quantity);
    }
}
```

### Openzeppelin NFT

```solidity
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";
import "@openzeppelin/contracts/utils/Counters.sol";

contract GameItem is ERC721URIStorage {
    using Counters for Counters.Counter;
    Counters.Counter private _tokenIds;

    constructor() ERC721("GameItem", "ITM") {}

    function mint() external
    {
        _mint(msg.sender, _tokenIds.current());
        _tokenIds.increment();
    }

    function mintWithAmount(uint amount) external
    {
        for(uint i; i<amount; i++)
        {
            _mint(msg.sender, _tokenIds.current());
            _tokenIds.increment();
        }
    }
}
```

**Gracias por ver este tutorial!**

Sígannos en dev.to y en [Youtube](https://www.youtube.com/channel/UCNRB4tgwp09z4391JRjEsRA) para todo lo relacionado al desarrollo en Blockchain en Español.
What is Software Architecture?
Tags: architecture, microservices, api, programming
Published: 2022-07-06 21:40:30

Software architecture is about making key decisions that will impact how you can make decisions in the future.  It's about giving yourself options at a relatively low cost early on so that your system can evolve over time without a high cost.  Software architecture is about options.

{% embed https://www.youtube.com/watch?v=dvnZfSK4dBI %}

## Join!

Developer-level members of my [YouTube channel](https://www.youtube.com/channel/UC3RKA4vunFAfrfxiJhPEplw/join) or [Patreon](https://www.patreon.com/codeopinion) get access to a private Discord server to chat with other developers about Software Architecture and Design as well as access to source code for any working demo application that I post on my blog or YouTube. Check out the [YouTube Membership](https://www.youtube.com/channel/UC3RKA4vunFAfrfxiJhPEplw/join) or [Patreon](https://www.patreon.com/codeopinion) for more info.


## Follow CodeOpinion
[Twitter](https://twitter.com/codeopinion)
[YouTube](https://www.youtube.com/channel/UC3RKA4vunFAfrfxiJhPEplw/)
Parallelism in Python starter pack
Tags: python, multiprocessing, asyncio, concurrency
Published: 2022-07-06 21:38:37

I'm happy to share with you a post that I wrote for [Globant Medium](https://medium.com/globant). Enjoy!

{% embed https://medium.com/globant/parallelism-in-python-starter-pack-84cd6a3d5e6c %}
[pt-BR] Preciso de um super setup para ser um bom dev?
Tags: programming, blog, discuss, tutorial
Published: 2022-07-06 21:38:16

Você já deve imaginar que uma resposta simples, curta e grossa seria

> Não!

Mas, porque não? Então, esse questionamento é um dos que alguns amigos e conhecidos vêm me perguntando, então resolvi falar um pouco mais, sobre...

## Sonho de todo dev

Então, não dá pra negar que uma boa máquina, ferramentas e apetrechos legais deixam o Batman muito mais divertido né, mas só basta isso para ele combater o crime? Não, então da mesma forma que ele, é o nosso caso como desenvolvedores, qualquer bom profissional almeja sim montar o seu setup **ideal** e estar mais confortável, mas tudo é questão de gosto, tempo e investimento.

As vezes outras situações pesam mais e são mais urgentes na caminhada de um bom dev, seja ele de qualquer tecnologia, então o melhor a se fazer é sempre pesquisar, estudar, investir tempo no que realmente agrega.

## O que realmente precisa um *dev* ou *almejante* a *dev*?

### Notebook ou Desktop

Qual a diferença de ambos? Então, apenas o transporte e manuseio, onde o notebook você terá flexibilidade de levar para onde bem entender e o desktop, é mais trabalhoso de transportar, com tudo, não existem barreiras quando se tem *vontade de aprender e evoluir*.

### Monitor

Esse é um item um tanto quanto opcional, pois sim, ele facilita no quesito de testes e também possibilita melhores visualizações, é de fato uma mão na roda, mas não é obrigatório, então jamais deixe de tentar evoluir por não ter algum recurso ou material que você vê em vídeos ou na internet, o fundamental é sua vontade de aprender e pesquisar.

## Considerações

Ter um setup do momento é sem dúvidas maravilhoso para qualquer desenvolvedor, pois é com isso que todos os dias podemos executar nosso trabalho de forma mais confortável. 

Mas assim como nós seres *humaninhos*, isso é um sonho que podemos ir melhorando com o tempo, bem tranquilo e de boa, o que vai te destacar é justamente não ficar estagnado esperando a oportunidade cair do céu, levanta e corre atrás, aprendizado é muito importante, tanto tecnicamente como para uma vida melhor e mais leve. De acordo com o crescimento da carreira, o setup vai se adequando a isso de forma bem natural.
Two Sum II - Input Array Is Sorted
Tags: leetcode, algorithms, java
Published: 2022-07-06 21:36:31

**Leetcode Problem:** [Two Sum II - Input Array Is Sorted](https://leetcode.com/problems/two-sum-ii-input-array-is-sorted/)

**Objective:**

Given a sorted array and target sum, find the two indexes that add up to the target sum. 

---
**Pattern: Two Pointer Technique**

---
**Approach:** 

1. Have one pointer at the start and one pointer at the end of the array.
2. Initialize the output int [] array with a size of 2, for the two indexes. 
3. Use a while loop with the condition where start < end, since the start index should never be greater than the end index. This means we have already checked all elements from left and right side. 
4. Inside while loop, check if the current sum is equal to the target. If it is, return the indexes.
5. If the current sum is less than target, increment the start index. 
6. If the current sum is greater than target, decrement the end index.

---
**Big-O Notation:** 

Time Complexity: O(n) 
We have iterate through the while loop n times, for each element. 

Space Complexity: O(1)
We do not use any additional data structures for storage. 

---
**Code:**

```java
class Solution {
    public int[] twoSum(int[] numbers, int target) {
        // use two pointer techique because the input is sorted.
        int start = 0; 
        int end = numbers.length - 1;
        int [] result = new int [2];
        
        while (start < end){
            int sum = numbers[start] + numbers[end];
            
            if (sum == target){
                result[0] = start + 1;
                result[1] = end + 1;
                break;
            }
            
            if (sum < target){
                start++;
            } else {
                end--;
            }
        }
        return result;
    }
}
```
Funções parte 2
Published: 2022-07-06 21:34:59

Acabei de postar um vídeo novo e nesse tutorial eu compartilho um pouco sobre funções. 

Dei uma repaginada, agora estou usando NeoVim para gravar os códigos. Eu gosto muito do VSCode mas existe algo no NeoVim que me deixa muito mais empolgado na hora de programar e tmb na hora de gravar kkk

Bom espero que gostem e que possa ajudar quem está começando a programar.

{% youtube VZNsOz_4cdo %}