terça-feira, 31 de dezembro de 2019

Aprenda Go e todas as suas tecnologias


#golang #code #software #cuda #orm #iot #faas
This is my #Go language repository. English/Portuguese, with a full #Go programming course: http://golang.network/

segunda-feira, 30 de dezembro de 2019

Deep learning com Go!


#datascience #deeplearning #golang #gorgonia
Deep learning e redes neurais são um assunto muito interessante e a linguagem Go dá suporte a essa tecnologia, com o uso do framework Gorgonia. Vou mostrar como usar: http://golang.network/portuguese/deeplearning1/

sábado, 28 de dezembro de 2019

Multilayer perceptron em Java sem frameworks


#deeplearning #java #MLP #backpropagation
Eis um exemplo que criei para ensinar os conceitos de redes neurais SEM FRAMEWORKS. Inclui Backpropagation com cálculo de gradientes: https://github.com/cleuton/neuraljava/tree/master/multilayerperceptron

sexta-feira, 27 de dezembro de 2019

quinta-feira, 26 de dezembro de 2019

Uma coleção de exemplos de gráficos e física


#game #simulação #opengl #webgl #física #java #javascript #box2d
Aqui está uma coleção de scripts meus para você usar gratuitamente em seu próximo projeto de game ou de simulação!: https://github.com/cleuton/graphicplay

Como os micro serviços se comunicam?


#microsserviços #grpc #rest #coreografia
Veja 3 formas de implementar a comunicação entre micro serviços, com exemplos práticos: http://www.obomprogramador.com/2019/10/orquestracao-versus-coreografia-um.html

segunda-feira, 23 de dezembro de 2019

sábado, 21 de dezembro de 2019

Como evoluir na carreira de Engenharia de Software



#EngenhariaDeSoftware #carreira #empregos #postura

Então, você quer fazer uma carreira bem sucedida em Engenharia de Software. Mas, o que significa exatamente "bem sucedida"? Talvez seja trabalhar em boas empresas, com boa remuneração e pacote de benefícios, evitando o desemprego. Alguns podem considerar que seja trabalhar no exterior. De qualquer forma, isso não envolve necessariamente ser gestor, pois aí já seria uma carreira diferente.


sexta-feira, 20 de dezembro de 2019

quinta-feira, 19 de dezembro de 2019

Aprenda R com Datascience!


#linguagemR #R #datascience #ciênciaDeDados #machineLearning
Pare de passar vergonha! Aprenda #R com datascience de graça e verá que "R" não é só um prenúncio de cusparada! http://datalearninghub.com/R-course/

O Guacamole de jiló em projetos de software


#EngenhariaDeSoftware #gestão #projetos #tecnologia #empregos 
Sabe o que é guacamole de jiló? É quando a soma dos insumos resulta em algo ruim. É isso o que acontece em muitos projetos de software... http://falandosobre.software/porqueissoacontece/

quarta-feira, 18 de dezembro de 2019

Antipatterns, ou "aqui há minstros!"


#engenhariaDeSoftware #arquiteturaDeSoftware #empregos #carreira #gestão #projetos
"Aqui há monstros!" Ah! Adoro o cheiro de #antipatterns de manhã! E você? Se não gosta, veja meu artigo no falandosobre.software: http://falandosobre.software/antipatterns/

terça-feira, 17 de dezembro de 2019

Porque testar não é suficiente!


#EngenhariaDeSoftware #QualidadeDeSoftware #Processo
Usar as boas práticas da Engenharia de Software, independente do modelo de desenvolvimento que usa, pode evitar bugs: https://www.computer.org/education/bodies-of-knowledge/software-engineering

Programação concorrente em Go


#Golang #concorrência #Goroutines #golangNetwork
Programação concorrente em #Go com Goroutines e Channels: http://golang.network/portuguese/goroutines1/

Tudo o que você queria saber sobre redes neurais em Java, mas tinha vergonha de perguntar


#IA #DeepLearning #RedesNeurais #Java #Livro
Aprenda tudo sobre criação de modelos de aprendizagem profunda com Java:
- DeepLearning4J, OpenImaJ, Dlib e OpenCV
- Forward e back propagation em detalhes
- Programação paralela em GPUs com CUDA
- Modelos de regressão, classificação e agrupamento
- Técnicas de regularização: L1/L2, Dropout, Early Stopping
- Processamento de imagens
- Reconhecimento facial

Veja uma amostra aqui: https://github.com/cleuton/neuraljava

segunda-feira, 16 de dezembro de 2019

#FaaS assinatura digital


#FaaS #Serverless #faasGuru #java #crypto #openFaas
Anunciando meu novo blog: faas.guru
Que tal subir uma função de assinatura digital para um ambiente OpenFaaS? Esta aqui, para você estudar e comparar: http://faas.guru/portuguese/openfaas-java/

domingo, 15 de dezembro de 2019

Qualidade de software é o que permite a agilidade


#engenhariaDeSoftware #qualidadeDeSoftware #empregos #carreira
Qualidade de software é o que te faz"ágil", e não legos e postits! Baixe o meu ebook gratuito: https://www.dropbox.com/sh/35d8k6ubnv09wtp/AABkOomGb_lfS9K8iA4UTOJwa?dl=0

sexta-feira, 13 de dezembro de 2019

Projeto de software e gestão de tempo


#engenhariaDeSoftware #projetos #gestão #tempo
Independentemente do seu modelo de processo de desenvolvimento (ágil, cascata, iterativo) as 3 + 1 restrições de projetos existem e precisam ser tratadas: Escopo, Prazo, Custo e Qualidade. E a gestão de tempo impacta todos eles!

http://falandosobre.software/gestao_tempo/

MLaaS e FaaS com Kubernetes e OpenFaaS


#MachineLearningAsAservice #MLaaS #FaaS #Kubernetes #OpenFaaS
Veja aqui um exemplo de reconhecimento facial usando #FaaS #Serverless. Sirva seus modelos de ML sem complicação de infraestrutura! https://lnkd.in/dj9QSgF

quarta-feira, 11 de dezembro de 2019

Como salvar sua pele com testes



#engenhariaDeSoftware #softwareEngineering #tests
Problemas acontecem, afinal, somos humanos. Independentemente do processo que usa (agile ou não) uma boa estratégia de testes pode salvar sua pele: http://falandosobre.software/testes/

Go Lambda! FaaS usando Go!


#golang #FaaS #Serverless #AWS 
Eu tenho um blog sobre FaaS (faas.guru) e agora chegou a hora de mostrar como servir um programa #Go em um ambiente #FaaS: http://golang.network/portuguese/golambda/

terça-feira, 10 de dezembro de 2019

Ser agile não garante a qualidade do software!


#qualidadeDeSoftware
Porque ser agile não é o suficiente!
Como reduzir o custo de manutenção de software com a análise de código
A dívida técnica é resultado de baixa qualidade do código-fonte e sempre cobra juros a cada manutenção, na forma de aumento de prazo e custo. Veja como medir, reduzir e administrar a dívida técnica de projetos de software, pela análise de código.


Neste livro são mostradas técnicas e ferramentas open source que permitirão avaliar e controlar a qualidade de seus projetos de software, entre elas:

Código autodocumentado;
Refatoração;
Princípios de projeto orientado a objetos;
Métricas comuns de qualidade de software;
Cobertura de testes;
Ferramentas: Sonar, PMD, Checkstyle, Findbugs, Cobertura e outras.

3 maneiras de servir seu código comparadas com FaaS


#FaaS #Serverless #Java #AWS #grpc #rabbitmq
Em meu blog, faas.guru, comparo 3 maneiras de servir seu código com o AWS Lambda, para você ver as vantages do #Serverless: http://faas.guru/portuguese/awsjava/

segunda-feira, 9 de dezembro de 2019

Aprenda IA e redes neurais em Java


#ia #deeplearning #backpropagation #gradientdescent #java #neuraljava
Aprenda redes neurais a fundo, com um nível de detalhe sem precedentes: https://github.com/cleuton/neuraljava

Aprenda Go. Até porque cavalo não desce escada!


#Golang #training #tips #GPU
#Camarão-que-dorme-demais-acorda-na-frigideira
Quer aprender #Go? Criar apps sensacionais, com performance arrasadora e de baixa complexidade? Eu te ajudo: http://golang.network

sexta-feira, 6 de dezembro de 2019

Novo livro em breve



#datascience #machinelearning #deeplearning
Meu terceiro livro sobre o assunto estará disponível em breve, mas você pode prová-lo aqui:

https://github.com/cleuton/neuraljava

OpenFaaS e MicroK8s


#FaaS #Serverless #OpenFaaS #microk8s
Ok, vocês perguntaram e eu respondo! Como criar um ambiente para apps Function as a Service em poucos minutos: 

Go e GPU sem stress


#Golang #golangNetwork #CUDA #GPU
Aqui está um tutorial de multiplicação de matrizes usando a GPU com #Go e C. Só no meu blog: http://golang.network/portuguese/cuda/nostress/

quarta-feira, 4 de dezembro de 2019

O curso está quase terminado! Últimas lições disponibilizadas!


#golang #training #machinelearning #iot #faas
Vou postar a última lição do curso básico de #Go, depois, só coisas maneiras! De IoT a FaaS! Acompanhe, aprenda: http://golang.network/

terça-feira, 3 de dezembro de 2019

Aprenda #Go e mude sua vida!


#Golang #engenhariaDeSoftware
Esse é o meu novo blog temático/repositório de exemplos e dicas sobre a linguagem Go, criada pela Google em 2009. Go serve para tudo: #FaaS, #IoT, #MachineLearning etc. E, para começar, estou postando um curso completo e gratuito: http://golang.network/

domingo, 24 de novembro de 2019

Java Crossfit - Code Duel - Histograma em Java


#oBomProgramador #codeDuel #DevXFit #Java
Uma implementação de histograma com Stream API! Vou mostrar com usar a Stream API e AWT/Swig para criar histogramas como este.


terça-feira, 19 de novembro de 2019

Java code duel - Balanced strings


oBomProgramador hashtagcodeDuel hashtagcodeChallenge hashtagjava Balanced strings! Você tem um texto marcado com delimitadores: um esquerdo e outro direito. Verifique se, para cada delimitador esquerdo (início) há um delimitador direito e na ordem esperada. Podem estar entrelaçados e aninhados e os delimitadores podem ter qualquer tamanho e diferentes entre si.


quinta-feira, 14 de novembro de 2019

Foi a rebimboca da parafuseta, ou "o que dizer quando dá M...A"


#engenhariaDeSoftware #gestão #problemas
A cena é comum: Tudo parado, sala de guerra, e a diretoria querendo uma explicação. O que você faz? O que diz a eles? Já vi muita gente boa entrar pela tubulação nesse momento.


quarta-feira, 13 de novembro de 2019

Java Code Duel #3 - Find common elements!


#engenhariaDeSoftware #algoritmos #java #collection #stream #codeDuel #oBomProgramador

O desafio era: Encontrar a interseção entre dois vetores de inteiros, com a limitação  de não repetir os números comuns. E foi dito que você nada poderia assumir quanto à classificação, unicidade e tamanho dos vetores.


terça-feira, 12 de novembro de 2019

Java Stream API - Programação funcional em Java - Parte 2


#engenhariaDeSoftware #java #programaçãoFuncional #lambda #streamapi

A programação funcional é o paradigma do futuro em Java! Com ela, você escreve código mais enxuto e seguro, baseado em funções independentes, reduzindo a complexidade ciclomática do código e até o consumo de memória (evitar criação de objetos em loops).

Veja aqui mais um exemplo bem legal!


segunda-feira, 11 de novembro de 2019

Code challenge - Java - Números romanos e swap


#engenhariaDeSoftware #java #codeDuel

Bom dia! Vou apresentar uma das possíveis soluções para o problema de conversão de números romanos em arábicos e vice-versa.


sexta-feira, 8 de novembro de 2019

JavaXfit - Java Crossfit training 1



Nosso desafio JavaXfit está aqui, com a solução.
Dados: um vetor de inteiros, a quantidade de posições a rotacionar para a esquerda, promova a rotação desejada e retorne o novo vetor. Exemplo: 2 1 2 3 4 5 6 7 8 Resultado esperado: 3 4 5 6 7 8 1 2 Restrição: A complexidade computacional da sua implementação tem que ser até O(n).

terça-feira, 29 de outubro de 2019

Orquestração versus coreografia: Um conto de dois microsserviços


#engenhariaDeSoftware #microsserviços #orquestração #coreografia #java #python #Zookeeper #RabbitMQ

Então, você tem ai um punhado de microsserviços e não sabe exatamente como vai colocá-los em “produção”, ok? É exatamente sobre isso que eu quero falar com você. Falar não! Mostrar!


terça-feira, 22 de outubro de 2019

Decomp: a objetividade em projetos de software


#engenhariaDeSoftware #projetos #gestão
Decomp é uma técnica de estimativa muito eficaz para projetos de qualquer tamanho. É mais objetiva e permite maior ROI em seus projetos de software, e está sendo usada: https://github.com/cleuton/decomp

segunda-feira, 21 de outubro de 2019

Microsserviços em containers imutáveis


#engenhariaDeSoftware #microsserviços #imutáveis #docker #dropwizard #java
A melhor maneira de entregar micro serviços é sob a forma de containers imutáveis. Veja um exemplo meu: https://github.com/cleuton/imutableservicedeploy

terça-feira, 15 de outubro de 2019

A matemática das redes neurais

#ia #datascience #deeplearning #java
Compreender a matemática envolvida nas redes de deep learning lhe ajudará a criar modelos mais Precisos.
Backpropagation é complexo, pois exige que você conheça bem álgebra linear e cálculo diferencial, incluindo as derivadas parciais e a regra da cadeia. Além disso, temos que considerar qual o método de otimização da função de custo e qual a frequência de atualização dos pesos. É um processo doloroso e trabalhoso.
Vou mostrar resumidamente o que seria a atualização de um peso usando backpropagation, que envolve o cálculo das derivadas parciais







quarta-feira, 9 de outubro de 2019

Estimativas sem baralho


#engenhariadesoftware #projetos #gestão #estimativas
Apresento uma técnica consagrada para estimar esforço em serviços de software. Não importa se você usa métodos ágeis, interativos ou em cascata, precisa estimar com precisão: https://github.com/cleuton/decomp

segunda-feira, 30 de setembro de 2019

SIngle Responsability Principle em Java


#engenhariadesoftware #projetoOO #métricas #LCOM4 #java
LCOM 4 é uma métrica sobre coesão de métodos de uma classe, servindo para identificarmos classes suspeitas de violação do princípio SRP (Single Responsability Principle): http://www.obomprogramador.com/2014/03/lack-of-cohesion-in-methods-4-lcom4.html

sexta-feira, 27 de setembro de 2019

Pipeline de deep learning


#ia #deeplearning #pipeline #keras #tensorflow #scikitlearn #python
Quer aprender o fluxo de um trabalho de Deep Learning (pipeline)? Preparação, construção, avaliação e predição? Simples? Leia esse meu tutorial, lá no DataLearningHub: https://github.com/cleuton/datascience/tree/master/keras

terça-feira, 24 de setembro de 2019

Java em gotas: Lambda 101


#java #functionalprogramming #lambda

Continuando como nosso tutorial de Stream API e Lambda, vamos ver os fundamentos de programação funcional em Java, com dois exemplos bem simples: https://www.mycompiler.io/view/8vFJbvQ e
https://www.mycompiler.io/view/4wL0H3B


Frontend reativo com backend em microsserviços


#frontend #backend #web #rest #microsserviços #javascript #react #redux #flask #python Só no meu blog: "reactdontpanic.com" você encontra isso!
Aprenda a criar uma app simples, porém completa, usando React + Redux + Redux-form + Flask(python). Frontend reativo com backend em microsserviços http://reactdontpanic.com/redux_form/

Java Stream API: Porque você precisa evoluir

Imagem: Oracle (https://www.oracle.com/technetwork/pt/articles/java/processamento-streams-java-se-8-2763688-ptb.html)

#java #stream #engenhariadesoftware
Você ainda vive naquele mundinho cheio de "for" e "if"? Precisa aderia à programação funcional, e a Stream API é o primeiro passo.
Criei um tutorial simples sobre Lambda e Stream API em Java para você. Veja só o Gist

https://gist.github.com/cleuton/3572ac7502357dd7f71bc7418d05974d


sábado, 21 de setembro de 2019

Comunicação inter-serviços com gRPC



#softwareengineering #engenhariadesoftware #microservices #communication #grpc
Como dois microsserviços se comunicam? Ou melhor por que se comunicariam? De acordo com o excelente site de Chris Richardson (https://microservices.io/patterns/communication-style/rpi.html) temos dois estilos de comunicação: Síncrono e Assíncrono (via mensageria).
Mensageria, utilizando filas de mensagens ou eventos, é a melhor maneira para implementar padrões como SAGA (https://microservices.io/patterns/data/saga.html) ou CQRS (https://microservices.io/patterns/data/cqrs.html), porém, se o sistema é pequeno ou você tiver restrições orçamentárias para alocar mais nós (como o broker), então a comunicação direta é a melhor opção. E, neste caso, em vez de usar REST/JSON, use um mecanismo mais formal e eficiente, como Apache gRPC, por exemplo.
Neste artigo, mostro como implementar um serviço simples em Python e consumi-lo usando Python ou Java, confira meu repositório: https://github.com/cleuton/InterServiceCommunication


sábado, 14 de setembro de 2019

segunda-feira, 26 de agosto de 2019

Coding challenge


#indoPraPrivada #preparação #codingChallenge
Como está sua preparação para entrevista? Passaria em um "coding challenge"? Que tal começar a praticar? Crie um programa em qualquer linguagem, que consiga sair de um labirinto. Pode ser em modo caractere. O nome desta técnica é Backtracking, mas tente fazer sem googar! Se jogar a toalha, veja a solução no meu curso de python gratuito: http://pythondrops.com/curso/maze/