Python ChainMap.

O ChainMap é uma feature Python que permite trabalhar com múltiplos dicionários.

Uma observação é que o ChainMap foi introduzido a partir da versão do Python 3.3.

A função permite duplicar chaves em dicionários diferentes, o que não é possível fazer em um dicionário comum.

Mas a função não agrupa as chaves de dicionários distintos, sempre que se faz uma busca por chave, sempre será retornada a primeira ocorrência.

A mesma coisa em caso de solicitar a listagem, só será listado a primeira ocorrência da chave.

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

Link

Python counter.

Em muitos algoritmos computacionais, a utilização de contadores é muito usada.

Existem várias ferramentas Python para trabalhar com contadores, mas o counter é uma das mais eficientes.

Geralmente para trabalhar com contadores, criamos um loop de zero até o total de itens.

Com counter não precisamos adicionar nenhuma lógica com loop para realizar a contagem dos itens.

A única desvantagem é que o counter só consegue fazer a contagem de objetos simples.

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

Link

Python filter.


A função filter do Python permite que no processo de iteração seja possível filtrar elementos através de condicionais.

filter evita a criação de métodos complexos para filtrar uma lista de dados, fazendo isso de forma simples.

Apesar da programação funcional não ser o forte do Python, o filter traz essa capacidade de forma eficiente.

Funções em Python são objetos de primeira classe, ou seja, podem ser utilizadas dentro de outras classes.

O interessante em trabalhar com funções é a possibilidade de passar funções como argumentos, retornar funções ou ambos.

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

Link

Python Luigi.

O Luigi é um framework utilizado para implementações de batch ou rotinas programadas.

Existem formas de implantação de batches sem uso de framework, mas para que “inventar a roda” se já existem soluções prontas?

Acredito que o Luigi seja uma das melhores frameworks para batch para Python.

De uma forma simples, a ferramenta disponibiliza uma interface simples e funcional.

Com algumas features adicionais que podem ajudar o desenvolvimento de processos mais complexos.

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

Link

Python lxml.

O lxml é uma biblioteca Python que permite manipular arquivos html e xml.

O mais interessante é a capacidade de criar arquivos html e xml de forma simples.

Uma ótima ferramenta para criar wrapper html ou xml.

Apesar da maioria das tecnologias atuais utilizarem json para comunicação, ainda existem sistemas legados que usam xml, e nesses casos o lxml pode ser útil.

O mesmo para html, onde podemos gerar códigos html para que seja utilizado em tempo de execução.

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

Java 16.

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

Dia 16 de Março foi lançada a nova versão do Java, o Java 16.

Obedecendo a cadência de lançamentos semestrais, o Java 16 é a sétima versão nessa modalidade de release da Oracle.

Os lançamentos semestrais tem se mostrado muito eficiente, as capacidades são testadas e avaliadas mais rapidamente, não comprometendo a segurança das API’s.

A Oracle informou que o Java 16 ainda receberá mais algumas atualizações trimestrais até o lançamento do Java 17.

Foram corrigidos 1897 problemas da versão anterior, e o mais interessante é que as correções dos bugs foram divididas entre desenvolvedores individuais, desenvolvedores do meio corporativo e funcionários da própria Oracle.

Novidades do Java 16.

Apesar de várias correções absorvidas pela nova versão do Java 16, vamos listar 5 das que achei mais interessantes:

Novos Recursos de linguagem: Foi introduzido novamente Pattern Matching que aprimora correspondência de padrões para a instanceof.

Melhorias JVM: Foi adicionado Metaespaço Elástico, uma capacidade da JVM que aloca a memória de metaespaço em pedaços menores, reduzindo a carga do carregador de classe.

Novas Ferramentas e Bibliotecas: Uma novidade bem interessante que foi introduzido nas ferramentas Java foi a Ferramenta de Empacotamento que agora permite empacotar a aplicação em formato exe, msi, pkg, dmg, deb e rpm.

Características de Incubadora e Visualização: A API Vector (Incubadora) fornece uma iteração inicial de uma API para expressar cálculos vetoriais que compilam de forma confiável em tempo de execução.

Melhorando a Produtividade para Desenvolvedores OpenJDK: Adicionado Recursos de linguagem C++14 (no código fonte JDK) que permite o uso do C++14 no código-fonte JDK, possibilitando alteração do Hotspot.

Conclusão.

A Oracle vem mostrando que está disposta a competir com outras linguagens, disponibilizando e corrigindo as novas capacidades lançadas. O Java 16 apresenta várias melhorias que deixaram a versão mais eficiente.

Link

O.O Java e Python.

Quando falamos em Orientação a Objetos(O.O), logo já pensamos em Java, C++ ou C#.

Mas existem outras linguagens como Python que também possibilitam a programação Orientada a Objetos.

Nesse Post, vamos apresentar algumas diferenças na sintaxe entre Java e Python utilizando Orientação a Objetos.

Apesar do Python possibilitar uma Programação Orientada a Objetos, ainda acho que existem algumas deficiências, como a impossibilidade de deixar as variáveis privadas.

Outra deficiência é que o Python não disponibiliza utilização de Interfaces de forma natural e fluida.

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