Compile and install MongoDB v. 3.2.12 on Raspbian 32 bits with Raspberry PI 3 B+
Solução criativa para mouse quebrado usando Python
1. Criatividade na solução de
problemas: Um caso real.
Do mouse quebrado a um keylogger
escrito em Python
Considero a criatividade na solução
de problemas uma das mais interessantes
características psicológicas do ser
humano.
Não acho justo nomear a gambiarra
como um sinônimo de criatividade na
solução de problemas. A gambiarra
resolve o problema rapidamente, com
baixo custo e esforço, mas pode agravar
o problema ainda mais em um futuro
próximo.
A partir deste ponto, considere o
seguinte processo criativo na solução
de um problema relativamente simples:
O problema percebido: Devido a uma
grande utilização e por um longo
período, o botão esquerdo do mouse
parou de funcionar. O mouse dispara o
click por diversas vezes de forma não
padronizada. Ou seja, o funcionamento
esperado de apenas um click por
acionamento não está ocorrendo.
2. A solução imediata: Comprar um
mouse novo.
A solução não imediata: Enviar o
mouse para uma oficina especializada,
substituindo a peça defeituosa. A
solução pode não ser plausível por dois
motivos: a) devido a peça ser muito
específica e não ser encontrada
facilmente no mercado, b) o custo para
adquirir a peça ultrapassa o preço do
próprio dispositivo, inviabializando
financeiramente a solução.
A solução com criatividade:
Pessoalmente consertar o mouse,
substituindo a peça defeituosa por uma
do mesmo tipo que está sem função no
próprio aparelho. Sim, no aparelho há
três peçinhas. Botão esquerdo, meio e
direito. Eu não faço uso do botão do
meio, portanto, a peça que executa o
click do botão do meio está sem uso e
pode ser remanejada para o botão
esquerdo por meio de um soldador de
componentes eletrônicos de baixa
potência.
4. Peças mecânicas
responsáveis pelo
processo do click
(press and release).
Imagem das soldas
refeitas referente as
peças mecânicas
que manejam o
processo do click
(press and release)
Diante desse problema surgiu a
seguinte pergunta: a) Quantos clicks a
peça mecânica do mouse é capaz de
5. executar antes de quebrar? Essa
pergunta levou a uma segunta pergunta:
b) Quantos clicks eu executo por dia em
cada um dos botões?
Devido esse mouse ser do tipo
genérico e sem especificações técnicas,
eu não tenho como responder a pergunta
“a”, porém, com criatividade eu
desenvolvi um programa Python keylogger
(github) com apoio da biblioteca
pynput, esse programa conta os clicks
executados e as teclas pressionadas.
Assim, passo a ter os meios e ser capaz
de responder a pergunta “b”.
Lembrando que cada click é composto
de dois movimentos: Press(pressionar) e
Release(liberar), então, dois registros
são considerados e adicionados no banco
de dados.
A quantidade de clicks executados
foram inseridos e consolidados no DB
PostgreSQL v. 10.10 com a seguinte
modelagem de dados da tabela abaixo que
já apresenta os dados reais respondendo
a questão “b” (Quantos clicks eu
executo por dia em cada um dos botões):
6. +---------------------------------------------+
| --AMOUNT OF BUTTON CLICKS-- |
| DATE(PK) LEFT MIDDLE RIGHT |
+---------------------------------------------+
| 2019/09/20 674 2 14 |
| 2019/09/21 3536 2 44 |
| 2019/09/22 2558 0 60 |
| 2019/09/23 1278 0 26 |
| 2019/09/24 2008 0 52 |
| 2019/09/25 2978 0 26 |
| 2019/09/26 1324 2 40 |
| 2019/09/27 960 0 34 |
| 2019/09/28 226 0 6 |
| 2019/09/29 918 0 34 |
| 2019/09/30 796 0 6 |
| 2019/10/01 1795 0 42 |
| 2019/10/02 776 0 8 |
| 2019/10/03 1066 2 6 |
| 2019/10/04 896 0 24 |
| 2019/10/05 98 0 6 |
+---------------------------------------------+
| AVERAGE 1367.9375 0.5 26.75 |
+---------------------------------------------+
*PK é Primary Key com data invertida
para naturalmente organizar os
registros e auxiliar na consolidação
dos dados.
O valor das teclas pressionadas
foram inseridas analiticamente no DB
NoSQL MongoDB v3.6 com a seguinte
modelagem de dados:
> db.keylogger_co.find().pretty().sort({date:-1})
{
"_id" : ObjectId("5d8cbd8fdfdd918ad3074e1e"),
"date" : "2019/09/26-10:30:55:991315",
"keypressed" : "Key.enter"
}
7. Conclusão:
Todos nós possuímos criatividade na
solução de problemas, todavia, a maior
importância está em reconhecer essa
característica psicológica e “alimentá-
la” com estudo formal e experimentação
empírica. Produzir novos produtos e
soluções, assim como foi demonstrado
neste documento, independentemente do
tamanho e da complexidade do problema.
O processo criativo possui uma
anatomia e é compartilhado por dois
grandes autores: Daniel Goleman em “O
Espírito Criativo” e John Howkins em
“Economia Criativa”. Consulte o link
abaixo para mais informações a respeito
da anatomia do processo criativo.
Fontes:
https://www.github.com/valoreio/keylogger
https://www.slideshare.net/MarcosAurelioBarranc/
criatividade-e-inovacao
Gostou? Dê um like! Fique a vontade em
compartilhar e usar no seu estudo de caso.
Apenas informe a fonte. Obrigado e sucesso!
Ahhh eu tenho uma lista de desejo na Amazon:
8. I have a wishlist at Amazon
https://www.amazon.com.br/hz/wishlist/ls/
2Y2J3ADYO50TH
Could you do me a kindness? :-)
Marcos Aurelio Barranco
SP/SP
14/Setembro/2019
Atualizado em: 29/Outubro/2019