Como usar o setInterval

setInterval e clearInterval():

O setInterval() é uma função temporizadora. Ela executa uma função de retorno após determinado tempo. A função setInterval() executará infinitamente, até que você execute a função clearInterval().

Se você é iniciante, você pode pular a explicação Como funciona.

Como funciona?

Sendo uma função assíncrona, a instrução a ser executada é lançada no Event Loop. Mas o que é Event Loop? É uma instrução síncrona, ou seja, quando ela estiver executando, a thread ficará bloqueada e, assim que terminar, a próxima instrução é executada. Como o setInterval() executará infinitamente, sabemos que ele adicionará uma instrução ao Event Loop a cada quantia de tempo que for definida.

Definição:

O setInterval() chama uma função em intervalos de tempo definidos. Ele continuará chamando a função até que o clearInterval() seja chamado, ou que a página seja fechada.

Sintaxe:

// sintaxe da função setInterval, que define um temporizador
// que disparará uma ação definida em tempo estipulado
setInterval(function, miliseconds, parameter1, parameter2, …);
Onde:

function: é a função que será executada;

miliseconds: é o intervalo em milisegundos(ms) em que o código será executado. Se o valor especificado for menor que 10, o valor 10 será utilizado.

parameter: parâmetros para passar para a função.

Exemplo:

<!DOCTYPE html>
<html lang="pt-br">

<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>setInterval() e clearInterval()</title>
</head>

<body>
    <button id="btn">Clique aqui para iniciar</button>
    <script src="main.js"></script>
</body>

</html>
E no JavaScript:
// Crie uma variável
let variavel;

// Crie uma função, utilizando essa variável para 
// declarar o intervalo em que será disparado.
function minhaFuncao() {
    variavel = setInterval(consoleLog, 2000);
}
// Mensagem que será mostrada no console
function consoleLog() {
    console.log("Ola mundo!");
}

// Função será chamada utilizando o evento onclick
document.getElementById("btn").onclick = minhaFuncao;

O clearInterval() limpa o timer configurado pela função setInterval(). Ele desativa a função e não executa a função definida pelo temporizador.

Sintaxe:

// Função clearInterval travará a execução do setInterval
// bloqueando a ação definida pelo temporizador
clearInterval(id_do_setInterval)

Exemplo:

<!DOCTYPE html>
<html lang="pt-br">
<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>setInterval() e clearInterval()</title>
</head>
<body>
    <button id="btn">Clique aqui para iniciar</button>
    <button id="btn2">Clique aqui para parar</button>
    <script src="main.js"></script>
</body>
</html>
E no JavaScript:
// Crie uma variável
let variavel;

// Crie uma função, utilizando essa variável para 
// declarar o intervalo em que será disparado.
function minhaFuncao() {
    variavel = setInterval(consoleLog, 2000);
}
// Mensagem que será mostrada no console
function consoleLog() {
    console.log("Ola mundo!");
}

// Função que será executada para bloquear
// a ação do temporizador definido no setInterval
function pararFuncao() {
    clearInterval(variavel);
}

// Função será chamada utilizando o evento onclick
document.getElementById("btn").onclick = minhaFuncao;
document.getElementById("btn2").onclick = pararFuncao;

Gostou deste artigo? Deixe o seu comentário abaixo:

Gráficos Line e Bar com Chart.js

Criando gráficos com Chart.js

Os gráficos de linhas e barras são gráficos muito utilizados no mundo empresarial. O gráfico de linha é usado para mostrar tendências, comparar conjuntos de dados, mostrar evoluções e diminuições de algum fenômeno. Apresenta a variação de valores dos dados em determinado período.

Se você ainda não viu o artigo Iniciando com Chart.js, acesse-o no link:https://www.mundojs.com.br/iniciando-com-chart-js/

LINHA:

O gráfico de linhas é uma maneira de mostrar os pontos de dados em uma linha. O gráfico em linha permite que um número de propriedades seja especificado para cada um dos conjuntos de dados.

Ao criar o seu documento HTML base, você deverá adicionar um Canvas na sua página.

<!-- adicione a tag canvas no seu HTML -->
<canvas id="myChart"></canvas>

Com o Canvas adicionado, você precisará incluir a biblioteca Chart.js na sua página.

<!-- o link a seguir direciona para a biblioteca online do Chart.js -->
<!-- a biblioteca também está disponível para download no site do Chart.js -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.8.0/Chart.bundle.js"></script>

Para criar um gráfico do tipo Linha, você usará o seguinte código:

// criando um novo objeto, contendo o tipo, os dados
// e as opções que o gráfico terá.
let ctx = document.getElementById('myChart');

let chart = new Chart(ctx, {
    type: 'line',
    data: data,
    options: options
});

Onde:

Type:

É o tipo de gráfico que será feito;

Data:

Os dados que serão inseridos no gráfico.

Options:

As customizações que você fará no seu gráfico.

TYPE:

Este valor define de qual tipo será o gráfico. Você deve utilizar ‘line’ para o formato LINHA.

// type:'line'

DATA:

Para a construção do gráfico, é necessário que os datasets contenham os valores a ser inseridos no gráfico. Para isto, cria-se um vetor com os valores necessários.

Você também poderá inserir uma legenda (label) para a linha do gráfico.

// O objeto data possui os valores dispostos no gráfico
data: {
    // Legendas das Linhas
    labels: ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho'],
    datasets: [{
        // Legenda
        label: 'Meu primeiro gráfico',
        // Define-se a cor da linha.
        borderColor: 'rgb(245,222,179)',
        // Dados a serem inseridos nas barras
        data: [0, 10, 5, 2, 20, 12, 1],
    }]
}

OPTIONS:

Esse objeto define as opções a serem inseridas no seu gráfico. Confira as diversas customizações disponíveis para o seu tipo de gráfico em: https://www.chartjs.org/docs/latest/charts/line.html.

O exemplo a seguir utilizará a opção tension, que define se as linhas serão retas ou possuirão algum tipo de curvatura.

// Esta opção define se as linhas serão curvadas ou retas,
// use 0 para retas.
options: {
    elements: {
        line: {
            tension: 0
        }
    }
}

BARRAS:

O gráfico de barras mostra os valores dos dados com barras verticais. É muito utilizado para mostrar dados de tendências e comparação de vários conjuntos de dados. Cada barra retangular é correspondente a uma categoria e proporcional ao valor do dado na respectiva categoria.

De maneira semelhante à criação do gráfico em linhas, utilizaremos a mesma estrutura HTML para o gráfico de barras.

Para criar um gráfico do tipo Barra, você usará o seguinte código:

// criando um novo objeto, contendo o tipo, os dados
// e as opções que o gráfico terá.
let ctx = document.getElementById('myChart');
let myBarChart = new Chart(ctx, {
    type: 'bar',
    data: data,
    options: options
});

TYPE:

Este valor define de qual tipo será o gráfico. Você deve utilizar ‘bar’ para o formato BARRA VERTICAL e ‘horizontalBar’ para o formato BARRA HORIZONTAL.

// type: 'bar'
// type: 'horizontalBar'

DATA:

Assim como no gráfico em Linhas, é necessário que os datasets contenham um vetor com os valores a ser inseridos no gráfico. Você deve especificar também as cores de cada retângulo, sendo uma cor para cada valor no vetor. Também pode inserir legendas. Confira mais opções em: https://www.chartjs.org/docs/latest/charts/bar.html

// O objeto data possui os valores dispostos no gráfico
data: {
    // Legendas das Barras
    labels: ['Segunda', 'Terça', 'Quarta', 'Quinta', 'Sexta', 'Sábado'],
    datasets: [{
        // Legenda geral
        label: '$ em Vendas',
        // Dados a serem inseridos nas barras
        data: [10, 9, 12, 19, 21, 7],
        // Define as cores de preenchimento das barras
        // de acordo com sua posição no vetor
        backgroundColor: [
            'rgba(255, 99, 132, 0.2)',
            'rgba(54, 162, 235, 0.2)',
            'rgba(255, 206, 86, 0.2)',
            'rgba(75, 192, 192, 0.2)',
            'rgba(153, 102, 255, 0.2)',
            'rgba(255, 159, 64, 0.2)'
        ],
        // Define as cores de preenchimento das bordas das barras
        // de acordo com sua posição no vetor
        borderColor: [
            'rgba(255, 99, 132, 1)',
            'rgba(54, 162, 235, 1)',
            'rgba(255, 206, 86, 1)',
            'rgba(75, 192, 192, 1)',
            'rgba(153, 102, 255, 1)',
            'rgba(255, 159, 64, 1)'
         ],
         // Define a espessura da borda dos retângulos
         borderWidth: 1
    }]
},

OPTIONS:

Esse objeto define as opções a serem inseridas no seu gráfico. Você também pode conferir as diversas opções de customização na documentação do Chart.js.

Neste exemplo será utilizada a opção beginAtZero, que tem a função de começar a barra no valor 0 do eixo X.

// Customização que define onde irá começar a ser erguida a barra
// começando pelo ZERO, no eixo X.
options: {
    scales: {
        yAxes: [{
            ticks: {
                beginAtZero: true
            }
        }]
    }
}

 

Novas atualizações Node.js 12

O Node.js recentemente lançou a versão 12 do Node.js, adicionando melhorias através da V8 JavaScript engine, melhora no desempenho de inicialização, módulos ES6, entre outros.

O projeto Node.js segue uma estratégia LTS (Long Term Support). Os desenvolvedores devem saber que as novas atualizações não estarão prontas em termos LTS até Outubro de 2019. Até lá, os desenvolvedores estão encorajados a reportar questões que eles encontrarem usando o Node.js 12, e essas questões serão resolvidas antes da versão LTS estar completa.

A versão Transport Layer Security (TLS) no Node.js está atualmente na versão TLS 1.3 por padrão, ela inclui numerosas mudanças na criação do protocolo e tornando sua configuração mais direta e segura. Mais além, a TLS 1.3 inclui melhorias no sigilo de encaminhamento e modos de criptografia mais seguros.

O Node.js 12 deixa mais fácil a configuração dos limites do heap, melhorando significativamente o desempenho ao trabalhar com grandes quantias de dados. A atualização para os limites do heap configura o tamanho do heap JavaScript como uma função de memória disponível, em lugar dos padrões V8 para navegadores da web.

Continue lendo “Novas atualizações Node.js 12”

Diferença de var, let e const no JavaScript

Diferenças:

Você sabe qual a diferença entre var, let e const em JavaScript? Sabe como aplicá-las? Descubra tudo no artigo abaixo:

Variável, um breve resumo:

Uma variável referencia um espaço na memória, utilizado para guardar informações. Uma variável é um dos, se não o conceito mais importante em programação, e independe da linguagem de programação utilizada. Na variável, nós armazenamos um valor neste espaço de memória e informamos o seu tipo. Ela se chama variável, pois poderá ser alterada ao longo do tempo, ou seja, o valor é “variável”.

No JavaScript, não precisamos informar o tipo do dado armazenado na memória. Mas existem três tipos de variáveis no JavaScript, elas são:

  • var;

  • let;

  • const;

Agora vamos ver o conceito e aplicação de cada uma delas:

Var:

Em JavaScript, o escopo é dado por funções, e não por blocos. A palavra “var” garante a variável dentro do escopo onde ela foi declarada, ou seja, pode ser acessada de qualquer ponto dentro do código, como no exemplo abaixo:

// var está sendo declarado dentro do escopo da função
function imprimeNome() {
    var nome = "Fulano";
}
imprimeNome();
console.log('Meu nome é: ', nome);

Executando este código, a saída será “Uncaught ReferenceError: nome is not defined”.

Mas por que? Porque a variável nome não possui nenhum valor definido fora do escopo da função, ou seja, a variável nome só existe dentro da função imprimeNome.

Segundo as boas práticas, o var está aos poucos sendo substituído pelo uso do let e const.

Let:

A palavra-chave “let” é usada para declarar as variáveis com escopo de bloco. Ou seja, quando é declarada dentro de qualquer bloco, seja ele uma função, uma condicional ou um loop, ela ficará acessível apenas dentro do bloco do qual foi declarada.

Seu comportamento é igual ao da variável “var” quando ela for declarada fora de função, no escopo global. Observe o exemplo abaixo:

// variável let a declarada no escopo global e
// variável let b declarada no escopo da função
let a = "fulano";
function imprimeNome() {
    let b = "ciclano";
    if (a != b) {
    console.log("Seu nome é ", a, "ou", b, "?");
    }
}
imprimeNome();

Executando o código acima, a saída será: Seu nome é fulano ou ciclano?

Mas por que funcionou? Veja bem, o let possui escopo global e também é acessível dentro da função, portanto, poderá ser acessada e retornar os seus valores.

Const:

A palavra-chave “const” indica uma variável que possui o valor fixo, uma constante. Não significa que é imutável, mas sim, que a constante não poderá ser alterada. A constante pode ser declarada tanto ao escopo global, quando em uma função, funcionando de maneira parecida com o “let”, com a diferença que o “const” terá um valor constante. Veja no exemplo a seguir:

// variável const declarada no escopo global
const valor = 12;
function imprimeValor(){
    for(valor = 12; valor < 15; valor++){
        console.log('Valor: ', valor);
    }
}
imprimeValor();

Executando o código, o retorno será um erro: Uncaught TypeError: Assignment to constant variable. Isso acontece porque o laço for incrementará a constante, alterando o seu valor.

Gostou deste artigo? Deixe sua opinião nos comentários!

Exercício Fácil – Evento com addEventListener()

O que são Eventos?

Eventos são ações que ocorrem em um sistema, resultando em interações que deixam as páginas web mais interessantes. Neste exercício, você deverá criar uma div com dois campos em HTML, chamados A e B, um botão chamado SOMAR, criando também uma função em JavaScript para somá-los. Utilizando o addEventListener, você deverá salvar os números assim que forem pressionados, utilizando-se da função “click”.

Requisitos:

Para este exercício, será necessário conhecimentos em Funções e Eventos.

Exercício:

Com base neste código HTML, crie a função soma e o evento addEventListener que irá receber os valores dos campos “inputValorA” e “inputValorB”.

Utilize este código HTML como base para realização do seu exercício:

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8" />
    <title>Exercicio Eventos</title>
</head>

<body>
    <div id="calculo">
        <!-- Crie os dois campos chamados "inputValorA" e "inputValorB" -->
        <fieldset>
            <label for="inputValorA">Valor de A:</label>
            <input id="inputValorA" type="number" placeholder="Digite o valor de A:">
        </fieldset>
        <fieldset>
            <label for="inputValorB">Valor de B:</label>
            <input id="inputValorB" type="number" placeholder="Digite o valor de B:">
        </fieldset>

        <!-- Criar um botão chamado SOMA -->
        <button class="calculo" type="submit">Somar</button>
    </div>
    <script>
    </script>
</body>

</html>

PARTE 1:

Crie uma função que retorne o somatório dos valores digitados pelo usuário nos campos de formulário.

Caso precise de ajuda, acesse este exercício sobre funções: Exercicio fácil: Funções como Parâmetro/

Protótipo da Função Soma:

// Esta função irá retornar o somatório
// dos valores A e B recebidos nos campos do HTML
function soma(a, b) {
    
    console.log(soma);
}

Parâmetros:

A função deverá receber dois parâmetros, A e B.

Valor de retorno:

A função deverá imprimir no console o somatório dos valores A e B.

PARTE 2:

Crie um evento que receba os valores que foram digitados nos campos “inputValorA” e “inputValorB”. Para isto, você deverá criar uma variável chamada botaoCalculo e utilizar o document.querySelector para selecionar a classe do botão(“.calculo”).

Caso precise de ajuda em eventos, acesse este link e confira o artigo Eventos no JavScript: Eventos no JavaScript

Logo após, deverá criar uma função addEventListener que irá receber os valores digitados.

Realizados estes procedimentos, efetuar a chamada da função soma, que irá retornar o somatório no console.

// Cria-se uma variável para buscar o elemento cálculo
// e após isso, crie um addEventListener para receber os valores dos inputs do HTML
let botaoCalculo = document.querySelector(".calculo");
variavel.addEventListener("click", function (evt) {
    
    let a = // Atribua o valor digitado no inputValorA no formato inteiro
    let b = // Atribua o valor digitado no inputValorB no formato inteiro
    
    // Realize a chamada da função soma, passando como parâmetros A e B
    soma();
})

Resolução:

O seu console.log ficará assim:

Eventos no JavaScript

O que são Eventos?

Eventos são ações que ocorrem no sistema. Envolver eventos na sua página web significa interação, que deixará a sua página mais atrativa e interessante. Podemos utilizar como exemplo, um clique em um botão em uma página web e este clique irá gerar uma ação (um evento).

Cada clique, cada tecla pressionada, um toque em uma tela touchscreen dão vida à sua página, criam interação. Estas interações são conhecidas como eventos.

Os eventos em JavaScript podem ser analisados em camadas. Por exemplo, preencher um formulário e devolver uma mensagem de sucesso ao usuário (alert()):

  • O campo é preenchido;
  • O usuário clica no botão de envio;
  • O botão dispara um evento;
  • O código escuta o evento disparado;
  • A mensagem de sucesso é mostrada ao usuário.

Quando o botão é clicado, o navegador emite a ação, que é conhecida como evento. A aplicação sabe que o botão foi clicado, mas se faz necessário saber o que acontece quando esta ação é realizada, fazendo-se necessário que o código esteja escutando ativamente o evento.

Cada evento disponível possui um manipulador de eventos, que é um bloco de código (uma função JavaScript) que é executado quando a ação foi disparada. Quando o código é rodado em resposta ao evento disparado, estamos registrando um manipulador de eventos. Em alguns casos, os manipuladores de eventos são chamados de escutadores de evento. Os escutadores escutam o evento acionado, e o manipulador de eventos é o código que será acionado em resposta a este acontecimento.

Eventos no JavaScript, como ocorrem?

// Nesta função, um evento será acionado
// quando o usuário pressioná-lo, e irá
// devolver uma mensagem de alerta na tela.
<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8" />
    <title>Exemplo de Eventos</title>
</head>

<body>
    <button>Pressione Aqui</button>
    <script>
        var btn = document.querySelector('button');

        btn.addEventListener('click', mostrarCaixa, false);

        function mostrarCaixa(e) {
            window.alert("Você clicou em mim!");
        }
    </script>
</body>

</html>

Este código gera uma escuta de um evento (clicar no botão) e uma reação a ele (mostrar a caixa de diálogo).

Escutando Eventos (addEventListener()):

Eventos são disparados. A tarefa de escutar o evento certo é tratada pela função addEventListener(). Esta função notifica as outras partes do aplicativo quando o evento é disparado. Ela é usada da seguinte forma:

source.addEventListener(eventName, eventHandler, false);

Onde:

  • source é o nome da função (btn no caso de exemplo acima);
  • eventName é a especificação do evento que será escutado (‘click’ no nosso exemplo);
  • eventHandler é a especificação da função que será chamada quando o evento for disparado ( mostrarCaixa no exemplo acima);
  • O último argumento diz respeito às fases do evento, capturing e bubbling (conceitos que serão vistos adiante).

Manipuladores e Argumentos de Evento:

A função que é chamada quando um evento é disparado é conhecido como Manipulador de Eventos (event handler). Pelo addEventListener, conseguimos perceber que o nosso manipulador de eventos é a função mostrarCaixa.

btn.addEventListener('click', mostrarCaixa, false);

A declaração da função é praticamente a mesma que qualquer outra função declarada, com a exceção de que a função recebe um argumento, conhecido como argumentos de evento (“eventargs”). Estes argumentos de evento fornecem mais detalhes sobre o evento, tornando o manipulador mais inteligente. O manipulador de eventos do exemplo não faz nada com os argumentos do evento, mas serve como base para você criar argumentos ao seu critério.

Os argumentos de evento contém propriedades relevantes ao evento disparado. Por exemplo, uma ação disparada por um click do mouse terá propriedades diferentes em seus argumentos do evento de uma ação disparada por um toque na tela(no caso de telas touchscreen) e de uma tecla clicada.

Borbulhamento e captura de eventos (bubbling e capturing):

Borbulhamento e captura de eventos descrevem o que acontece quando dois manipuladores do mesmo tipo de evento são ativados em um elemento.

Na fase de captura:
  • O navegador verifica se o ancestral mais externo do elemento (<html>) tem um manipulador de eventos registrado nele e o executa.
  • Ele realiza o mesmo procedimento dentro dos elementos filhos até alcançar o elemento clicado.
Na fase de Borbulhamento:
  • O navegador verifica se o elemento clicado tem um manipulador de elementos registrado e o executa.
  • Em seguida, ele passa para o próximo elemento ancestral imediato e realiza a mesma coisa sucessivamente, até alcançar o elemento (<html>).

Amazon GameLift, o seu servidor JavaScript na AWS

Conheça o Amazon GameLift, o servidor ideal para seus jogos.

A Amazon tornou disponíveis servidores em tempo real do GameLift. Você pode, com poucas linhas de JavaScript, criar um servidor de jogos e escalar para seus jogos por uma fração de centavo por jogador por mês.

Sendo uma hospedagem de servidores de jogos dedicados na nuvem, o GameLift consegue maximizar a economia, diminuindo também a latência e o tempo de espera. Veja:

Latência mediana global: 45 ms;

Economia de custo em comparação com soluções co-location: até 70% de economia;

Para iniciar um jogo (incluindo grupos de jogadores em sessões de jogos rapidamente: 100 ms.

Com o GameLift, você poderá focar no seu jogo, dispondo de total atenção para o desenvolvimento, e dispondo menos do seu tempo a se dedicar ao servidor.


Acelerando o desenvolvimento dos jogos:

Com o GameLift da Amazon, é possível enviar o jogo com maior agilidade e oferecendo aos jogadores a experiência que eles esperam. Como a Amazon faz isso?

Escala automaticamente a capacidade do servidor de acordo com o tráfego dos players: Você deixa de pagar por capacidade que não está sendo utilizada quando o tráfego de jogadores está baixo;


Matchmaking flexível:

Você pode usar a solução personalizada da Amazon, chamada FlexMatch para criar jogos competitivos, ou pode usar seu próprio serviço de matchmaking.


Sem inatividade para atualizações:

Precisa lançar atualizações ou novos conteúdos? Com o GameLift ps servidores ficarão ativos 24 horas por dia, 7 dias por semana.


Suporte ao jogo em plataformas cruzadas:

A comunidade fica conectada a todos os tipos de dispositivos, ampliando o grupo de jogadores.


 

Funciona com mecanismos e fluxos de trabalho existentes:

Você pode colocar os servidores em operação na nuvem, integrando facilmente o SDK do Amazon GameLift com mecanismos AAA como Unity, Unreal, Lumberyard ou soluções internas desenvolvidas em C++.


Como usar o Amazon GameLift?

Você pode colocar seus servidores dedicados de jogos em operação com três etapas fáceis:

Cadastre-se em uma conta da AWS (leva menos de cinco minutos e a inscrição será totalmente gratuita no nível gratuito da AWS).

Faça o upload da compilação: Comece a usar o Amazon GameLift.

Implante os servidores de jogo: aprenda a implantar um servidor de jogo com a amostra de servidor da Amazon e veja os dados de jogadores e sessões criadas no painel ao vivo da Amazon GameLift.

Confira mais detalhes no link: https://aws.amazon.com/pt/gamelift/


Definições de preço:

Utilizando o Amazon GameLift, você paga apenas pela capacidade utilizada, não sendo necessário desenbolsar por espaço ocioso. O GameLift cobra as instâncias por tempo de uso e quantidade de dados transferidos.

Veja um exemplo de definição de preço em: https://aws.amazon.com/pt/gamelift/pricing/#gamelift-example


Reduza os gastos usando Auto Scaling:

O Autoscaling do Amazon GameLift pode desativar automaticamente servidores de jogos quando não forem necessários e adicionar novos quando surgirem mais jogadores. O GameLift disponibiliza instâncias spot e sob demanda. Com instâncias spot, você pode ter uma economia de até 90%, mas obtendo o mesmo hardware de alta performance que com as sob demanda. Com o recurso FleetIQ, novas sessões serão colocadas em servidores de jogos com base nas latências do jogador, nos preços das instâncias e nas taxas de interrupção do spot. Saiba mais em: https://aws.amazon.com/pt/blogs/gametech/reduce-cost-by-up-to-90-with-amazon-gamelift-fleetiq-and-spot-instances/


Instâncias do Amazon GameLift:

Com as instâncias spot do Amazon GameLift, você paga o preço spot vigente no início de cada hora da instância em execução. Os preços são definidos pela AWS e são ajustados de acordo com tendências de oferta e demanda de instâncias spot no longo prazo, nunca excedendo os preços sob demanda. Se o preço spot for alterado após a execução da instância, o novo preço será cobrado para uso da instância na hora subsequente.

Veja as tabelas dos valores por hora das instâncias spot e sob demanda separadas por tipo de instância e região em: https://aws.amazon.com/pt/gamelift/pricing/


EXPLORANDO O JAVASCRIPT NA AWS:

AWS SDK para JavaScript no Node.js:

Comece a usar rapidamente a AWS com o AWS SDK para JavaScript em Node.js. Para mais informações: https://aws.amazon.com/pt/sdk-for-node-js/

AWS SDK para JavaScript no navegador:

O AWS SDK para JavaScript permite que você acesse diretamente os serviços da AWS por meio do código JavaScript em execução no navegador. Mais informações em:

https://aws.amazon.com/pt/sdk-for-browser/


Biblioteca do AWS Amplify para web e React Native:

Escolha seus serviços de nuvem e conecte-os facilmente ao seu aplicativo com poucas linhas de código. Acesse:https://aws-amplify.github.io/


Implante Node.js no Elastic Beanstalk:

Com o Elastic Beanstalk, é fácil implantar, escalar e gerenciar seus aplicativos web Node.js usando a AWS, estando disponível para qualquer pessoa que esteja hospedando ou desenvolvendo um aplicativo web usando Node.js. Acesse:

https://docs.aws.amazon.com/pt_br/elasticbeanstalk/latest/dg/create_deploy_nodejs.html


Implante Node.js no AWS OpsWorks:

o AWS OpsWorks permite:

Criação de servidores Puppet Master gerenciados pelo AWS para Puppet Enterprise;

Criação de servidores gerenciados pelo Chef na AWS, incluindo recursos especiais do Chef Automate e usando o Chef DK e outras ferramentas de gerenciamento do Chef.

AWS OpsWorks Stacks: implantar e monitorar aplicativos nas suas pilhas. O Stacks não requer nem cria servidores do Chef, mas executa algumas das tarefas de um servidor do Chef por você.

Acesse mais informações em:

https://docs.aws.amazon.com/pt_br/opsworks/latest/userguide/welcome.html

Atualizações no MundoJS

logo

Olá Pessoal,

Já faz um tempo que não são feitas alterações no site, mas como vocês devem ter acompanhado nestes últimos dias, comecei a retomar as postagens e fazer pequenas implementações.

Infelizmente o plano anterior de fazer grandes mudanças de uma vez não funcionou muito bem, então a ideia é de tornar as mudanças menor e mais frequentes. Segue abaixo uma lista de alterações:

  • O site foi atualizado para usar o PHP 7.2. Um grande passo já que o 7.0 estava causando diversos bugs com o WordPress e/ou plugins.
  • Temporariamente desativamos o cadastro de usuários, mas ele voltará assim que alguns pontos forem implementados.
  • Melhorias de performance. Estamos trabalhando para tornar o site mais rápido.
  • (BETA) Agora possuímos um botão para recebimento de notificações.

Caso você note algum problema, por favor nos mande uma mensagem explicando o ocorrido.

Atualizações no MundoJS

logo

Como o site esteve parado nos últimos tempos, achei importante trazer algumas atualizações para todos.


Instagram

Seguindo o pedido de vários, foi adicionada uma conta no Instagram do MundoJS. Você pode acessa-la pelo link https://www.instagram.com/mundojs/ e seguir nossa conta para receber notificações por lá.

Como aqueles que utilizam o Insta devem saber, não é possível colocar links como no Face ou G+, por isso utilizaremos link reduzidos no corpo do texto. Isso é um teste para vermos se é possível alcançar mais pessoas, mas a experiencia com a ferramenta é limitada, então pedimos ajuda e paciência caso algumas coisas não fiquem tão legais quanto em outros locais.


Cursos (Breve)

Em conjunto com algumas empresas parceiras, estaremos disponibilizando links de cursos de JavaScript e todas as ferramentas vinculadas. A ideia é mostrar opções gratuitas e pagas de cursos do básico ao avançado para aqueles que gostariam de se especializar nessa grande linguagem.


Performance

Depois de muito  trabalho, consegui fazer o site subir de C para B ( http://tools.neilpatel.com/en/analyze/www.mundojs.com.br ). O objetivo é conseguir chegar no B+ ou A. Mas tudo precisa de tempo e cuidados para não quebrar o site. Por favor nos avisem se você notarem algum problema de renderização ou qualquer outra mudança.