quarta-feira, 27 de março de 2019

Reconhecimento e classificação facial com CNN - Rede neural convolucional usando Tensorflow


#python #IA #redeNeural #CNN #reconhecimentoFacial

Continuando minha série de artigos sobre visão computacional e reconhecimento facial, mostrarei um método bem mais preciso de classificação de rostos, ou seja, identificação de pessoas com base em fotos.

Esta demonstração utiliza o Tensorflow e um modelo de rede convolucional que eu criei e treinei com imagens minhas e de algumas personalidades públicas, selecionadas da Internet.

sábado, 23 de março de 2019

Comparação de rostos com Java e C++ utilizando HOG


#C++ #java #opencv #dlib #reconhecimentoFacial #faceRecognition #IA #deepLearning

HOG - Histogram of Oriented Gradients (histograma de gradientes orientados) é um descritor de imagens, capaz de resumir as principais características de uma imagem, como rostos por exemplo, permitindo comparação com imagens semelhantes.

Este artigo e tutorial é de dois anos atrás e eu resolvi atualizar e modernizar o código-fonte para publicar novamente.

quinta-feira, 14 de março de 2019

Python, paralelismo e GIL - Nem tudo funciona como você pensa


#python #multiprocessing #thread #OBP8anos #oBomProgramador
Bom, neste artigo vou mostrar a você um pouco das idiossincrasias do Python e seus efeitos no seu projeto de software. Veremos uma característica curiosa, o GIL - Global Interpreter Lock, e como podemos contorná-lo. Este artigo é original do meu blog de cultura Python: http://pythondrops.com


quarta-feira, 13 de março de 2019

Linguagens de programação: estatísticas do Githut.info


#engenhariaDeSoftware #linguagens #github
Olhar as estatísticas do githut.info pode nos dar insights sobre o uso de linguagens de programação. Por exemplo: "active repositories" tem Javascript em primeiro lugar, afinal, é a linguagem mais ativa no Github, mas Swift está melhor em "new forks" e "new watchers", o que significa que esta atraindo a atenção de novos adeptos. E, surpreendentemente, R está em primeiro lugar em "new forks". Um "new fork" diferencia quem apenas quer utilizar o software de quem quer desenvolver ou melhorar o software.

terça-feira, 12 de março de 2019

Framework móvel multiplataforma


#mobile #multiplatform #framework #lua
AAMO Framework, meu projeto de framework móvel.
Um framework móvel, multiplataforma, baseado em Lua, que permite criar apps totalmente nativas, em Android, iOS e Desktop (Windows, Linux e MacOS).
Algumas empresas ao redor do mundo já o utilizaram como base para seus produtos. Vamos lá... dê uma olhada.

segunda-feira, 11 de março de 2019

Ruby está morrendo?


#engenhariaDeSoftware #ruby #rails
O que está acontecendo com Ruby? Está morrendo? Amargando a 15ª posição na lista TIOBE de popularidade, ainda apresenta forte tendência de queda. Até 2010 só sa falava em Ruby e Rails. Vários artigos tentam explicar essa queda, como este: https://www.informationweek.com/devops/programming-languages/the-rise-and-fall-of-ruby-on-rails/a/d-id/1329443

sexta-feira, 8 de março de 2019

Fábrica de salsichas



#engenhariaDeSoftware #infraestrutura #TI
Vivemos uma explosão tecnológica atualmente. É um mar de acrônimos, siglas e nomes exóticos, formando um turbilhão imenso, o qual, se não tomarmos cuidado, acabará nos engolindo.

Para fugir deste turbilhão, é preciso pensar nas necessidades do seu cliente. O que é essencial para ele? Como podemos entregar um MVP? Qual é o seu orçamento? Quanto ele realmente espera gastar com o Projeto? Qual é o seu ciclo de produção e de manutenção?



quinta-feira, 7 de março de 2019

Deploy de hadoop


#hadoop #bestPractices #technologyRadar

Isso é algo que aprendi com muita dor! O Hadoop (e o HDFS) são sistemas com estado e você não deve usar o "pensamento em nuvem" ao implementá-los. Este é o melhor conselho que já conheci.
"Quando as organizações escolhem uma distribuição vanilla Hadoop ou Spark em vez de uma das distribuições do fornecedor, elas precisam decidir como desejam provisionar e gerenciar o cluster. Ocasionalmente, vemos "handcranking" de clusters do Hadoop usando ferramentas de gerenciamento de configuração, como Ansible, Chef e outras. Embora essas ferramentas sejam ótimas no provisionamento de componentes de infraestrutura imutáveis, elas não são muito úteis quando você precisa gerenciar sistemas com estado e geralmente podem levar a um esforço significativo para tentar gerenciar e desenvolver clusters usando essas ferramentas. Em vez disso, recomendamos o uso de ferramentas como o Ambari para provisionar e gerenciar seus clusters Hadoop ou Spark com preservação de estado."

quarta-feira, 6 de março de 2019

Microservice Envy


#engenhariaDeSoftware #technologyRadar #microservices
A melhor frase sobre microsserviços que eu já vi: "É importante lembrar que os microsserviços negociam a complexidade de desenvolvimento para a complexidade operacional" e esse tradeoff nem sempre é considerado.
Eles aconselham a evitar o antipattern: Microservice Envy. Eis uma tradução:

"Os microsserviços surgiram como uma técnica de arquitetura líder em sistemas modernos baseados em nuvem, mas ainda achamos que as equipes devem proceder com cuidado ao fazer essa escolha. A Microservice Envy tenta que as equipes complicem sua arquitetura tendo muitos serviços simplesmente porque é uma opção de arquitetura da moda. Plataformas como o Kubernetes facilitam muito a implementação de conjuntos complexos de microsserviços, e os fornecedores estão impulsionando suas soluções para o gerenciamento de microsserviços, potencialmente liderando equipes ainda mais nesse caminho. É importante lembrar que os microsserviços negociam a complexidade de desenvolvimento para a complexidade operacional e exigem uma base sólida de testes automatizados, entrega contínua e cultura de DevOps."