Citação

Lumpy.

O pacote Lumpy é um módulo Python para criação de diagramas de Classes e de Objetos.

O interessante nessa ferramenta é que podemos gerar os diagramas enquanto estamos desenvolvendo as classes do projeto.

Muito útil para otimizar seu tempo na criação de diagramas para documentação.

Além de ajudar em uma visão macro das classes e objetos que estamos criando.

O único problema é que a ferramenta não trabalha muito bem com Python 2.

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

Link

Decorator com Python.

O Decorator são utilizados para alterar o comportamento de uma função ou classe sem precisar alterá-la, simplesmente adicionando um @nomeDecorator.

O Decorator pode ser comparado com um Interceptor no mundo Web, onde interceptamos a requisição antes de executar o método.

Muito útil para criação de validação de campos como CPF, RG, Telefone, Idade, Nome, entre outros, sem precisar alterar o método principal.

Outra coisa legal é utilizar o Decorator para deixar seu código mais limpo, umas vez que você desacopla partes do código do método.

Por trabalhar com Clojures, ou seja, funções dentro de funções, o retorno será a própria função.

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

 

Citação

Python e Lambda.

Funções lambdas estão sendo muito utilizadas na programação pela clareza da sintaxe que geralmente pode ser feita em uma linha.

Em Python, a diferença entre uma função normal e uma função lambda é que não precisamos declarar def no início da função e nem return para determinar o retorno da função.

Em contrapartida, com funções lambdas é necessário indicar com a palavra reservada lambda que estamos iniciando uma função tipo lambda.

O mais interessante na utilização do lambda em Python é a possibilidade de criar Funções Anônimas.

As funções anônimas possibilitam que a função seja escrita e chamada dentro de um parâmetro de outra função, vamos exemplificar mais abaixo.

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

Citação

Compare imagens com Python.

Imagine que você precise comparar as diferenças entre duas imagens.

E se essa diferença for mínima, como um pequeno ponto no meio de uma imagem gigantesca.

Com Python podemos encontrar as diferenças em 1 segundo e sem dificuldades.

Utilizando os módulos Image e ImageChops do Python, podemos fazer essa tarefa de uma forma rápida e simples.

Uma implementação mais simples que o OpenCv e o face_recognition, o módulo ImageChops pode ser bem útil para uma verificação rápida entre imagens.

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

Apache Spark.

Processar uma grande massa de dados para extrair informações e armazenar como acontece em sistemas de Big Data pode ficar mais simples com a ajuda do Apache Spark.

O Apache Spark é uma ferramenta para Big Data que facilita esse trabalho com a proposta de ser bem rápida e eficaz.

A ferramenta também é bem flexível, ele pode ser executada em linguagens como Java, Scala, Clojure, R e Python.

Uma grande vantagem em utilizar o Spark em vez de outras ferramentas Big Data como Hadoop é a possibilidade de integrar ferramentas como:

  • Spark SQL: criando a capacidade de fazer consultas SQL sobre os dados;
  • Spark MLlib: onde possibilitamos criar uma capacidade de aprendizado de máquina para criação, filtragem e redução de dados;
  • Spark GraphX: Adiciona a capacidade de computação baseada em grafos e paralelas;
  • Spark Streaming: Possibilita o processamento de dados via stream em tempo real.

Uma característica do Apache Spark é evitar o deslocamento dos dados durante o processamento, movendo os dados para uma memória fazendo uma otimização no tempo de processamento.

Testes com Spark e Python.

O pré requisito para instalação é ter instalado na máquina um Python com a versão maior que 2.7 e o Pip.

Para instalar a PySpark digite no terminal:
$pip install pyspark

Vamos fazer alguns testes de mapeamento e transformação de dados com Apache Spark e Python.

Crie um arquivo com o texto abaixo e grave como “sucesso.txt” :

O sucesso é construído à noite! Durante o dia você faz o que todos fazem. Não conheço ninguém que conseguiu realizar seu sonho sem sacrificar feriados e domingos pelo menos uma centena de vezes.

Da mesma forma, se você quiser construir uma relação amiga com seus filhos, terá que se dedicar a isso, superar o cansaço, arrumar tempo para ficar com eles, deixar de lado o orgulho e o comodismo.

Se quiser um casamento gratificante, terá que investir tempo, energia e sentimentos nesse objetivo.

O sucesso é construído à noite! Durante o dia você faz o que todos fazem. Mas, para obter resultado diferente da maioria, você tem que ser especial. Se fizer igual a todo mundo, obterá os mesmos resultados.

Não se compare à maioria, pois infelizmente ela não é modelo de sucesso. Se você quiser atingir uma meta especial, terá que estudar no horário em que os outros estão tomando chope com batatas fritas. Terá de planejar, enquanto os outros permanecem à frente da televisão. Terá de trabalhar enquanto os outros tomam sol à beira da piscina.

A realização de um sonho depende de dedicação. Há muita gente que espera que o sonho se realize por mágica. Mas toda mágica é ilusão. A ilusão não tira ninguém de onde está. Ilusão é combustível de perdedores.

“Quem quer fazer alguma coisa, encontra um meio. Quem não quer fazer nada, encontra uma desculpa.”

(Roberto Shinyashiki)

Vamos importar o Apache Spark:
>>> import pyspark
>>> from pyspark import SparkContext
>>> sc = SparkContext()

Vamos carregar o texto em uma variável:
>>> sucessoRDD = sc.textFile("sucesso.txt")

Agora vamos conferir se o texto foi carregado:
>>> sucessoRDD.collect()

Vamos capturar o primeiro parágrafo:
>>> sucessoRDD.first()

Vamos capturar as 5 primeiras frases:
>>> sucessoRDD.take(5)

Vamos fazer uma transformação, separando cada palavra e armazenando em uma variável:
>>> flatMappedConfusion = sucessoRDD.flatMap(lambda line : line.split(" "))
>>> flatMappedConfusion.take(5)

Vamos contar o número de palavras:
>>> flatMappedConfusion.count()

Conclusão.

Com Apache Spark, trabalhos de coleta e processamento de dados ficam bem mais simples e rápido pois além de eficiente, o Spark tornam as tarefas muito mais rápidas e simples de implementar.

Link

Reconhecimento facial.

Desenvolver aplicações com reconhecimento facial hoje em dia já não está tão complexo de se fazer.

Com várias bibliotecas para auxiliar a abstração da camada complexa de negócio, fica mais simples e produtivo o desenvolvimento.

Nesse Post vou demonstrar um simples exemplo em Python para reconhecer a face de uma pessoa utilizando uma biblioteca baseada em dlib.

Segundo o desenvolvedora, a biblioteca fez um benchmark e teve uma precisão de mais de 99% de acerto.

Achei a biblioteca um pouco pesada, mas ela é simples de instalar, não é necessário várias configurações como acontece no OpenCv.

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

Link

Pool de processamento.

No último Post eu havia finalizado sobre o assunto de multiprocessamento, mas encontrei uma feature bem interessante.

Vou mostrar como utilizar de uma forma bem simples um pool de processamento com Python.

A vantagem dessa feature é que não precisamos nos preocupar com o controle dos processos, todo controle é feita pelo framework.

Uma forma de dividir a tarefa entre vários processos e minimizar o tempo de execução.

Um post bem rápido, mostrando 2 exemplos, o primeiro executando em processo simples e outro executando em multi processos que são delegados automaticamente.

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