Citação

Java, signed byte para unsigned.

Em Java, não existe byte unsigned, ou seja de 0 a 255.

O byte em Java são sempre do tipo signed, ou seja de -128 a 127.

Você sabe a diferença entre um byte signed e unsigned?

Basicamente o byte unsigned é representado por números positivos e o signed são representados por números positivos e negativos.

O Java utiliza somente o tipo signed para deixar mais simples e evitar confusão.

Acesse o tutorial completo em: https://nakatech.herokuapp.com/article/javaSigned.html.

Citação

Java Bipredicate.

https://nakatech.herokuapp.com/img/works/20200223/index.jpg

A partir do Java 8 foi introduzido as interfaces Predicate e BiPredicate.

A diferença entre o Predicate e o BiPredicate é que o segundo aceita 2 argumentos.

Ambos são Interfaces funcionais que recebem parâmetros genéricos e retornam um booleano como resposta.

Nesse Post vamos falar somente do BiPredicate.

A interface pode ser muito útil para validar 2 parâmetros de entrada.

Acesse o tutorial completo em: https://nakatech.herokuapp.com/article/biPredicate.html.

Link

Java variável atômica.

https://nakatech.herokuapp.com/img/works/20191215/index.jpg

As variáveis atômicas permitem utilizar operações atômicas.

As Operações atômicas são operações que sempre executam juntos e não podem finalizar incompletos.

Em Java podemos utilizar o pacote java.util.concurrent com algumas variáveis atômicas.

Utilizando as variáveis atômicas temos a facilidade de executar uma variável thread safe e deixar de marcar o método como synchronized.

Variáveis atômicas ajudam a deixar o código mais simples e legível, além de seguro quanto a thread safe.

Acesse o artigo completo em: https://nakatech.herokuapp.com/article/atomic.html.

Citação

Java syncronized.

Não é segredo que trabalhar com várias threads é algo bem complexo e deve ser trabalhado com cautela.

A palavra reservada syncronized é utilizada para garantir que todas as threads trabalhem sincronizadas.

Utilizando o syncronized em métodos, garantimos que o método só é acessado por 1 thread por vez.

Podemos utilizar o syncronized diretamente na assinatura do método ou somente no bloco do método que gostaria de sincronizar.

Em resumo, podemos sincronizar métodos de instância, métodos estáticos e blocos dos métodos.

Acesse o tutorial completo em: Nakatech.

Citação

Julia.

Julia é uma linguagem de programação dinâmica e com rápida interação, muito parecido com Python.

Existem benchmarks onde códigos com Julia chegam a ser tão rápidos quanto códigos feitos em C.

Julia é uma linguagem multi-paradigma, sendo assim podemos combinar programação Orientada a Objetos e Funcional.

Por trabalhar bem com números como Matlab e R, Julia pode ser uma boa opção para trabalhar com ciência de dados.

Outra feature legal é a possibilidade de acessar aplicações C de forma transparente.

Acesse o tutorial completo em: https://nakatech.herokuapp.com/article/julia.html.

Citação

Flask-JWT.

O Flask-JWT é a abstração do JWT(Json Web Token) encapsulado em um pequeno módulo para ser utilizado no Micro-servidor Flask.

O JWT é uma forma de garantir integridade dos dados a partir de uma autenticação baseada em token.

O token JWT é composto por 3 componentes separados por “.”: Header, Payload e Signature.

O Header é onde definimos qual tipo de token e que tipo de criptografia é utilizado na composição.

O Payload são as informações que serão utilizados para algum tratamento após a descriptografia.

O Signature é a chave secreta que será composta no token.

Este Post não entrará em detalhes como funciona o JWT, a abordagem será para mostrar uma implementação JWT e Flask.

Acesse o tutorial completo em: https://nakatech.herokuapp.com/article/flaskJwt.html.

Link

Checked e Unchecked Exception.

Você sabe a diferença entre uma Checked e uma Unchecked Exception em Java?

Muitos desenvolvedores Java não sabem a diferença ou não sabem quando utilizar os 2 tipos de exceptions.

De uma forma simples de explicar, uma Checked Exception é quando conseguimos prever e tratar algumas exceções.

Já uma Unchecked Exception, é quando não conseguimos prever quando o erro pode acontecer e ou não queremos tratar o erro pois ela lança automaticamente uma Exceção.

Além disso uma Unchecked Exception herda RuntimeException e não necessita de um bloco try/catch para lançar uma mensagem de exceção.

Acesse o tutorial completo em: https://nakatech.herokuapp.com/article/exception.html.