Skip to content

Instantly share code, notes, and snippets.

View johnnyferreiradev's full-sized avatar

Johnny Ferreira johnnyferreiradev

View GitHub Profile
@johnnyferreiradev
johnnyferreiradev / mergeArrayOfObjects.js
Created August 7, 2020 14:27
Function to merge two arrays of objects based on a property, preventing repetition.
const mergeArrayOfObjects = (arrayA, arrayB, prop) => {
const reduced = arrayA.filter((aItem) => !arrayB.find(bItem => aItem[prop] === bItem[prop]));
return reduced.concat(arrayB);
}
@johnnyferreiradev
johnnyferreiradev / recursive_promise.js
Created May 7, 2020 18:19
Function that joins all the data of an endpoint with pagination
// import api from 'axios'; // axios is required
function getAllData(page = 1, dataList = []) {
return new Promise((resolve, reject) => {
api.get(`/endpoint/`, {
params: {
page, // Current pagination page
},
}).then((response) => {
const newPage = page + 1;
<!DOCTYPE html>
<html lang="pt">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Aula 27022020</title>
</head>
@johnnyferreiradev
johnnyferreiradev / index.js
Created November 18, 2019 18:41
Minha solução para o desafio 01 do Bootcamp GoStack 2019
const express = require('express');
const server = express();
server.use(express.json());
// Banco de dados
const projects = [];
let reqNumber = 0;
@johnnyferreiradev
johnnyferreiradev / sessions.php
Last active November 9, 2019 15:36
Tutorial simples da utilização de sessions no Laravel
// Criando uma sessão vazia
$request->session()->put('bag', []);
// Pegando a sessão
$bag = $request->session()->get('bag');
print_r($bag);
// Inserindo dados em uma sessão
$request->session()->push('bag', ['product_id'=>18, 'qty'=> 18,]);
$bag = $request->session()->get('bag');
@johnnyferreiradev
johnnyferreiradev / ambiente-dev-laravel-ubuntu.md
Last active October 29, 2019 16:22
Comandos para a instalação do apache2, mysql, composer, laravel install e nodejs.

Comandos para a instalação do apache2, mysql, composer, laravel install e nodejs.

Atualização da lista de pacotes

sudo apt update

Instalação do Apache

sudo apt install apache2

Instalação de Ferramentas necessárias posteriormente

sudo apt install curl git unzip

@johnnyferreiradev
johnnyferreiradev / cpfMask.js
Created October 12, 2019 17:18
Máscara para a formatação de cpf em NodeJs.
module.exports = (cpf) => {
return cpf
.replace(/\D/g, '') // Substitui caracteres não numericos por vazio
.replace(/(\d{3})(\d)/, '$1.$2') // Captura grupos de 3 numeros e adiciona o ponto
.replace(/(\d{3})(\d)/, '$1.$2')
.replace(/(\d{3})(\d{1,2})/, '$1-$2')
.replace(/(-\d{2})\d+?$/, '$1') // Captura dois numeros após um traço (-) e impede a inserção de novos números
}

Configurações de Intalação

  1. Atualizar o projeto via composer: composer update
  2. Gerar chave do projeto: php artisan key:generate
  3. Rodar a migrate o seed da tabela de usuários: php artisan migrate --seed
  4. Gerar o autoload das classes: composer dump-autoload
  5. Limpar o cache de rotas: php artisan route:cache
  6. Limpar o cache de configurações: php artisan config:cache
  7. Limpar o cache de views: php artisan view:cache
@johnnyferreiradev
johnnyferreiradev / seg.cpp
Created May 14, 2019 00:44
Algoritmo para segmentação de imagens com binarização
#include <QCoreApplication>
#include <opencv2/opencv.hpp>
using namespace cv;
int binariza(int pixel, int nivel) {
if(pixel <= nivel) {
pixel = 0;
} else {
pixel = 255;
@johnnyferreiradev
johnnyferreiradev / PCV.js
Last active March 5, 2024 22:03
Implementação da Solução (Força Bruta) do Problema do Caixeiro Viajante em JavaScript
/*
* Implementação em JavaScript por Johnny Ferreira (https://gist.github.com/johnnyferreiradevweb/)
* baseado na implementação de BárbaraGCOL (https://github.com/BarbaraGCOL)
*/
/* Um campo do vetor que contera a melhor rota */
function Rota() {
var cidade1, cidade2, custo;
}