Voltar a uma linguagem de programação após um hiato, especialmente uma tão dinâmica quanto o Kotlin, é como reencontrar um velho amigo que passou por muitas transformações. Nos últimos três anos, enquanto explorava os paradigmas funcionais de Elixir e a segurança de Rust, o Kotlin não ficou parado. Pelo contrário, evoluiu significativamente, tanto na linguagem em si quanto em seu robusto ecossistema. Neste artigo, compartilho minhas impressões e aprendizados ao revisitar o Kotlin, focando nas mudanças que mais me impactaram e na experiência de reintegrá-lo ao meu fluxo de trabalho, especialmente com o Spring Boot.

Este artigo tem como objetivo mostrar como é possível combinar o Spring Boot e o JavaFx, permitindo a criação de aplicações desktop, modernas e eficientes. O Spring Boot é uma ferramenta poderosa para a criação de aplicativos e conta um excelente gerenciador de injeção de dependência que permite a criação de aplicação Java de forma rápida e fácil. O JavaFx, por sua vez, é uma biblioteca gráfica para a criação de interfaces de usuário em Java. Para isso será mostrada uma aplicação de controle de tarefas utilizando Kanban.

O que é notação big-O? Para quer serve? Onde usar? Se você tem dúvidas do que se trata o big-O esse artigo tentará ajudá-lo a esclarecer algo que é fundamental para todo programador e está em seu dia a dia, mesmo que você não saiba.

“Se você acha simples, então você não entendeu o problema direito.”

– Bjarne Stroustrup

O que é o big-O?

É um conceito que descreve o pior caso ou cenário referente a desempenho de um algoritmo, mas o que isso significa? Existem fatores que determinam o quanto um computador irá performar em uma execução de algoritmo, como CPU, memória, disco, tipo de compilação, etc. Como comparar então qual o mais performático algoritmo em relação a outro? O big-O vem para ajudar nisso como uma forma de descrever a taxa de crescimento do tempo de um algoritmo.

Costuma criar aplicações em lote em Java? Pois, saiba que além de ter uma especificação para tratar essas aplicações, há um framework ótimo para criar e padronizar o código dos mesmos, o Spring Batch! Nesse artigo vou colocar umas pequenas dicas que podem servir para outras pessoas assim como me ajudaram muito.

“É fazendo que se aprende a fazer aquilo que se deve aprender a fazer.”

– Aristóteles

Primeira dica: Spring Batch pode ou não rodar com o Spring Boot

O Spring Boot facilita a configuração de projetos Spring e muitas vezes é fácil ter impressão que todos os projetos precisam rodar com ele, mas isso é falso. Apesar de particularmente recomendar o uso do Spring Boot, o Spring Batch é um framework independente, construído para ajudar na construção de aplicações batch mais robustas, sejam elas web ou não.

No início desse ano comprei o livro O Mítico Homem-Mês por vê-lo em uma lista de livros que todo desenvolvedor de software deveria ler, e ao pesquisar sobre o mesmo, a sinopse me deixou curioso o suficiente para investir na compra. O livro foi escrito em 1975 por Frederick P. Brooks Jr respeitado professor e considerado o criador do mainframe IBM System/360, atuando como gerente de desenvolvimento no projeto. A biografia de Brooks fala por si só, recomendo uma pesquisa prévia sobre o mesmo, pois no artigo irei abordar apenas o livro.

A algum tempo fiz um post sobre Apache Kafka explicando os conceitos principais como o funcionamento, produtores, consumidores, tópicos e outros. Também escrevi sobre um pouco da história do Kafka e aplicabilidade. Para esse post pretendo dar continuidade ao assunto, mostrando na prática o funcionamento dessa ferramenta.

“Para ganhar conhecimento, adicione coisas todos os dias. Para ganhar sabedoria, elimine coisas todos os dias.”

– Lao-Tsé

Configurando o ambiente

Inicialmente é necessário ter o Kafka rodando na máquina para poder praticar a codificação. No endereço https://kafka.apache.org/quickstart ensina como baixar, configurar e executar com um passo a passo bem explicativo. Para esse artigo irá ser utilizado um container mantido pela Confluent devido à comodidade que a abordagem possibilita.

Nesse artigo será mostrado com Java como extrair textos editáveis de imagens utilizando o OCR (Optical Character Recognition) Tesseract, com o auxílio do wrapper tess4j para o código. Não é necessário ter muita experiência em Java, mas é recomendado que tenha familiaridade com comandos básicos do Linux.

A imaginação é mais importante que o conhecimento.

– Albert Einstein

Uma breve história

Fonte: GitHub - tesseract-ocr/tesseract: Tesseract Open Source OCR Engine

Nesse artigo irei mostrar como construir um pequeno programa para baixar e excluir arquivos no Google Drive. Esse programa veio de uma necessidade pessoal que pode servir para outras pessoas.

Um passo à frente, e você não está mais no mesmo lugar!

– Chico Science

Sempre utilizei os serviços do Google, dentre eles o Drive e o Fotos são os que mais me servem. O Fotos sempre serviu como um backup automático de meus vídeos e imagens dos meus dispositivos, mas recentemente houve uma alteração no funcionamento dos serviços (que pra mim foi para melhor) em que os mesmos não partilham mais do espaço de armazenamento do Drive. O backup automático para o fotos com isso não funciona mais, mas trouxe a possibilidade de remover todos os videos e imagens do Drive e mover de vez para o fotos, liberando o espaço do meu Drive.

Kafka é uma ferramenta de mensagens cujo objetivo é ser uma plataforma de streaming (fluxo contínuo) de dados. Um cliente da empresa que trabalho, irá utilizar o Kafka como solução para integrar um grande volume de dados com o sistema que desenvolvemos, isso me fez querer aprender mais sobre a ferramenta e o que ela traz de diferente de outras tecnologias de integração com que trabalhei. Nesse artigo irei escrever sobre esse novo aprendizado e minhas impressões sobre o Kafka, a ideia é fazer uma série de artigos a medida que os estudos avançam, por isso o primeiro será abordando os conceitos e o objetivo do Kafka.

Este artigo é uma tradução do Functional Interfaces in Java 8 o qual a mesma foi gentilmente autorizada por Baeldung e Eugen, responsável por excelentes artigos referentes a engenharia de software e Java, bem como cursos sobre Spring .

“A melhor maneira de iniciar é parar de falar e começar a fazer!”

– Walt Disney

1. Introdução

Este artigo é um guia para diferentes interfaces funcionais presentes no Java 8, seus casos de uso gerais e a utilização na biblioteca padrão do JDK.