segunda-feira, 7 de novembro de 2022

Estudo Arrays Java

Array é uma estrutura de dados, onde armazenamos dados continuamente e guardamos seu endereço de memória, assim podemos resgatar os elementos (valores armazenados) através do seu índice (posição em que tal valor foi armazenado).

Em Java teríamos: 

int numeros[] = new int[2]; 

int é o tipo dos valores que serão armazenados no array, como Java é uma linguagem de fortemente tipada, não podemos armazenar nenhum valor de outro tipo.

numeros é o nome do array que pode ser escolhido pelo programador, ele será usado para acessarmos o array posteriormente

[] usamos os colchetes para declarar que usaremos a estrutura de dados array

new int[2] usamos para separar os espaços na memória necessários (2)

2 é o comprimento do array, o número de posições que poderão ser usadas para armazenar elementos

Assim conseguimos armazenar dados da seguinte forma:

numeros[0] = 5;

O primeiro índice do array sempre será zero, sendo assim um array de duas posições terá os índices 0 e 1, um array de três posições terá suportará os índices 0,1 e 2 e assim por diante.

Para descobrir qual será o último índice suportado por aquele array basta pegar a quantidade de posições e subtrair 1. 

Primeira posição de um array de cinco posições: 0

Ultima posição de um array de cinco posições: 5-1 = 4

quarta-feira, 30 de setembro de 2020

Fundamentos de Arquitetura de Sistemas Web

Introdução ao funcionamento da Web

 HTTP é um protocolo usado para obter recursos como documentos HTML e possibilitar a troca de dados na Web. Ele utiliza a arquitetura cliente-servidor, onde as requisições são iniciadas por algum tipo de aplicação e em seguida enviadas para o servidor que poderá de retornar uma resposta.

Os servidores de proxy de encaminhamento ou convencional, responsáveis por intermediar/despachar as conexões de saída entre clientes e servidores, são utilizados para fazer filtragens, e melhorar a segurança de redes.

 Já um proxy reverso é capaz de repassar o tráfego de rede recebido, para um conjunto de servidores, se tornando a principal interface para requisições externas.

Tipos de Arquitetura

Monolito: tipo de aplicação na qual todo o código base está contido em um só lugar, tendo assim todas as funcionalidades definidas no mesmo bloco. Esses blocos são comumente divididos entre camadas de abstração como: Apresentação (a camada visualizada pelo usuário), Negócio (toda a lógica e regras da aplicação, Dados (camada de conexão com redes e banco de dados).

Prós:

      Baixa complexidade

      Monitoramento Simplificado (Facilidade em colocar logs e monitoramento, por ter um único código base)

Contras:

      Stack única (dificuldade em adicionar serviços em linguagens diferentes)

      Compartilhamento de recursos (Não há a possibilidade de aumentar a capacidade da aplicação em único recurso ou funcionalidade).


Microserviços: várias aplicações se comunicam entre si através de várias apis leves, os serviços são criados com uma única função, assim é possível ter uma escalabilidade flexível ao sistema.

Message Broker: intermediário de mensagens, converte uma mensagem para o protocolo formal do destinatário.

Prós:

      Stack dinâmica

      Simples escalabilidade

      Desacoplamento (com message brockers)

      Menor complexidade (com pipeline manager cria uma de fila de requisições)

Contra:

      Acoplamento (um serviço tem uma dependência direta de outro, pode ser resolvido com message brocker entre serviços “uma interface entre serviços”, porém o message brocker torna-se um ponto único de falha)

      Monitoramento mais complexo

      Provisionamento mais complexo




terça-feira, 29 de setembro de 2020

Caso de uso comanda eletrônica

 





Caso de uso simples de um programa de um aplicativo de comanda eletrônica.


segunda-feira, 28 de setembro de 2020

O que é block chain?

Entendendo Peer-to-Peer (P2P)

Arquitetura de Rede: Peer-to-Peer ou pares em pares é uma arquitetura de redes onde cada um dos pontos funciona tanto quanto cliente como servidor, ou seja, todos os computadores da rede ficam interligados em uma cadeia descentralizada, sem hierarquia.

Modelo de Negócio: O modelo de negócio Peer-to-Peer ou Consumer to Consumer tem como caraterística a ausência de uma empresa para intermediar uma transação entre dois consumidores.

A rede blockchain

A Blockchain é responsável por disponibilizar por todo o mundo as transações comerciais Peer-to-Peer, ou seja, sem intermediários. Ela é uma tecnologia comumente utilizada para trocar informações comerciais, firmar contratos, transferir dinheiro e rastrear produtos. Também pode ser usada tanto por pessoas físicas quanto jurídicas em redes públicas e privadas.

 As redes Blockchain estão atraindo atenção de grandes empresas, bancos e governos, por conta dos seus benefícios de rastreabilidade, transparência, integridade e segurança nas negociações.

O papel de validar informações referentes a transações, como verificar se o comprador tem a quantidade necessária de saldo para as transações é atribuído a vários mineradores, usuários que são recompensados por assegurar a autenticidade das informações.

No fim de uma transação um registro digital permanente de compra e venda é armazenado no ledger, um tipo de livro-razão público e distribuído para toda a rede, esses registros formam blocos, que são adicionados a outros blocos, formando uma cadeia.

Cada novo bloco contém dois códigos hash, um referenciando o bloco anterior e outro representando sua identificação para ser usado pelo próximo, para adulterar a rede

Blockchain seria necessário sabotar as cópias de todos os blocos em toda rede.

Qualquer dispositivo que se conecte à Blockchain, pode ser considerado um ‘node’, já os ‘fullnodes’ são nós que possuem uma cópia completa de todas as transações Blockchain, os demais nodes utilizam essas informações para que as transações sejam processadas.

Carteiras Digitais (WALLET)

A carteira digital, é um programa de software que armazenada criptomoedas e interage com várias Blockchains utilizada para enviar e receber criptomoedas, além de monitorar transações.

Blocos

Blocos são conjuntos de transações ou informações validadas, que possuem números de blocos, hash do bloco anterior, dificuldade alvo, marcação de tempo, valor nonce, Hash da lista de transações e Assinatura. Porém o bloco inicial não possui registro de transações de outros blocos.









domingo, 6 de outubro de 2019

Bloqueando carácteres não numéricos utilizando expressões regulares (Regex) - JavaScript

Muitas vezes, ao criar um input como idade, queremos que o usuário só possa digitar números, uma solução simples utilizando o próprio HTML é deixar o type do input como number, porém ele ainda permite alguns caracteres especiais como o "-" hífen, por esse motivo criei uma solução simples com JavaScript utilizando as expressões regulares.

Primeiro criamos o input e atribuimos uma função javascript na propriedade onkeyup passando como parâmetro o próprio elemento:

<input type="text" onkeyup='onlynumber(this)'/>

Porque usar a onkeyup ao invés da onkeydown ou onkeypress? Pois nesse caso queremos que o caractere seja trocado imediatamente após o usuário soltar a tecla.

Agora criaremos a função na tag <script>:

<script> 
function onlynumber(doc){
   
}
</script>
A função foi nomeada como onlynumber e recebe um único parâmetro nomeado de doc.

Agora vamos criar uma variável com expressões regulares que aceite somente caracteres não numéricos, para isso usaremos o Metacaractere '\D'.

Lista de Metacaracteres:











fonte da imagem: https://www.youtube.com/watch?v=9r48XuOB4DA

function onlynumber(doc){
       var regex = /\D/g; //Obs: utilizamos as barras '/ /', para declarar a expressão regular;
}

Agora precisamos que a cada tecla pressionado, que input receba um valor não numérico o programa troque esse valor para vazio:

function onlynumber(doc){
            var regex = /\D/g;
            doc.value=doc.value.replace(regex,''); //Pegamos o valor do elemento(this) e trocamos ele por              //vazio caso ele seja compatível com nossa expressão regular;
 }

Memórias de Computadores

Conceitos de Memória

Uma memória é um dispositivo que permite um computador armazenar dados temporariamente ou permanentemente e utiliza como unidade básica o bit (0 ou 1). 

As memória primarias são um tipo de memória que o processador pode endereçar diretamente, sua função principal é a de conter a informação necessária para o processador num determinado momento.
Exemplos: RAM, Memória Cache. 

Já as memórias secundárias, costumam se referir aos dispositivos de armazenamento periféricos, como discos ópticos e fitas magnéticas, que são acessados através dos controladores de E/S.

Palavra é o número de bits usados para representar um inteiro e ao tamanho da instrução, já a Unidade de Transferência é o número de bits lidos ou escritos na memória de uma só vez.

Características de Memórias:

Localização: 
Pode ser classificado como Interna ou Externa.

Interna: Memória Principal, Cache e Registradores. 
Externa: Dispositivos de Armazenamento periféricos. 

Capacidade: 
Expressa normalmente em bytes ou palavras.

Desempenho:
O desempenho é medido em:

Tempo de Acesso ou Latência:
O tempo gasto para realizar uma operação.

Tempo de Ciclo de Memória:
É o tempo de acesso mais qualquer tempo adicional antes do segundo acesso.
(Aumento de Latência no segundo acesso) .

Taxa de Transferência:
Taxa em que os dados podem ser transferidos para dentro ou fora da unidade memória.




Voltei a publicar no blog, a partir de agora ele vai estar bem mais ativo, com muito conteúdo de computação, espero que gostem =)




terça-feira, 13 de fevereiro de 2018

Pixel Arts feitas no Paint

Mesmo o Paint sendo um programa muito antigo ainda conseguimos criar várias coisas legais com eles, um exemplo disso são as pixel art, ampliando as imagens em 800% conseguimos visualizar os pixels e consequentemente criar imagens através deles, apesar de ser bem trabalhoso podemos conseguir bons resultados. 
Exemplo de uma pixel art simples feita no paint:

domingo, 29 de outubro de 2017

Black Fish Alpha

Black Fish Versão 0.1

Viaje pelas profundezas do mar como um peixe abissal nesse jogo.


terça-feira, 24 de outubro de 2017

Grand Adventure

GRAND ADVENTURE VERSÃO 0.1

 Ajude Seraph uma anjo caido a derrotar o rei demonio

sexta-feira, 8 de setembro de 2017

Jogo de Tiro ao Alvo (Flash) - Phantom Hunter

Imagem relacionada
Cace fantasmas em uma floresta mal assombrada, disparando magias contra eles assim que aparecerem pontuando o máximo possível.

terça-feira, 5 de setembro de 2017

Movimentação de Personagem no Flash

 Resultado de imagem para Rosa dos ventos RPG
Resolvi postar aqui um código para facilitar, a criação de jogos no Flash na parte da movimentação: 

onClipEvent (enterFrame) {
_root.speed = 5;
if (Key.isDown(Key.UP)) {
this._y -= _root.speed;
}
if (Key.isDown(Key.DOWN)) {
this._y += _root.speed;
}
if (Key.isDown(Key.LEFT)) {
this._x -= _root.speed;
}
if (Key.isDown(Key.RIGHT)) {
this._x += _root.speed;
}
}



Obs: Coloque isso no seu personagem (Movie Clip).

Explicando o Código:
_root.speed=5; - Aqui você está definindo que a variável Speed que representa a velocidade do personagem é igual a 5.

if(Key.isDown(Key.UP)) - Quando pressionado a tecla UP (Flechinha pra cima)
this._y -= _root.speed; - A posição do personagem na vertical para cima vai ser alterada de acordo com a velocidade. Assim já deve dar para entender as outras teclas.

Lembrando que Y = Vertical e X = Horizontal.

sábado, 2 de setembro de 2017

Continuando a criar jogos no Flash

Finalmente comecei a programar a movimentação dos personagens, além de montar sprites através de Pixel Art para os jogos, enquanto fazia isso descobri o quanto é fácil inserir um jogo feito no flash em uma página web, apesar da notícia que em 2020 os navegadores não forneceram mais suporte para o Flash Player.

Página no Navegador:

Começando a criar jogos no Flash

  Apesar de ser uma software muito antigo, o Macromedia Flash Player ainda é um bom  meio de começar a criar jogos, lá podemos aprender conceitos básicos como gravidade, colisão entre muitas outras coisas além da possibilidade de criar todo o jogo utilizando as linhas de código junto com a interface gráfica.
 Por esse motivo iniciei meu estudo para conseguir um conhecimento básico sobre jogos do flash.