quarta-feira, 24 de fevereiro de 2021

teste Filipe - Teste Notif pelo Firebase

 Chegou uma notificação aqui no telefone do aplicativo Tim + Vantagens.





Será que tem alguém na tim testando um recurso e todo mundo recebeu essa mensagem?



terça-feira, 8 de setembro de 2015

Memory Booster - antigo Buster Memory (2010)

Em 2008, meu irmão havia entrado na escola técnica de informática, então, um dia ele chegou em casa e me mostrou a primeira linguagem de programação que eu conheci: Pascal.



Gostei muito de criar pequenos programas, inventar coisas malucas, criamos até jogos nessas telinhas antiquadas, mas em 2010, eu fiz um curso de leitura dinâmica onde, aprendendo uma técnica de memorização, tive a genial ideia de desenvolver um aplicativo para automatizar o treinamento que eu estava tentado fazer com cartas de papel.







Naquela época eu achava o máximo e ficava horas jogando. Brincava até com os meus amigos e via o desempenho deles melhorando. Hoje o meu desejo é fazer uma aplicação mais atualizada, com as tecnologias de ponta que eu aprendi no mercado de trabalho e nas instituições de ensino.



Obrigado por lerem!

sexta-feira, 8 de agosto de 2014

Impedir badoo de publicar no seu nome

Foi Sem Querer

Há alguns dias me inscrevi em uma rede social chamada Badoo.

Conheci essa rede quando um amigo meu, que cursa Engenharia da Computação, me "enviou" um e-mail pedindo para se inscrever no badoo.

Fiz minha inscrição, e em um certo ponto, o badoo pediu permissão para gerenciar meus contatos do gmail.

Fiquem meio preocupado, mas aceitei. Alguns segundos depois, recebi no meu próprio e-mail a mesma mensagem que havia recebido do meu amigo.

Um dia depois recebi mais duas mensagens desta, então resolvi pesquisar como remover o acesso do badoo.

Removendo o Acesso

1. Clique aqui Visualizar permissões

2. Procure e clique em Badoo.

3. Clique em Revogar Acesso.


domingo, 22 de junho de 2014

Tradução do Zen do Python

Python - Uma linguagem jovem

Python é uma linguagem de programação muito popular, hoje em dia se encontra em oitavo lugar de utilização e se mantém estável.

Estou estudando um pouco desta linguagem e conheci o Zen do Python.

The Zen of Python

    Beautiful is better than ugly.
    Explicit is better than implicit.
    Simple is better than complex.
    Complex is better than complicated.
    Flat is better than nested.
    Sparse is better than dense.
    Readability counts.
    Special cases aren't special enough to break the rules.
    Although practicality beats purity.
    Errors should never pass silently.
    Unless explicitly silenced.
    In the face of ambiguity, refuse the temptation to guess.
    There should be one-- and preferably only one --obvious way to do it.
    Although that way may not be obvious at first unless you're Dutch.
    Now is better than never.
    Although never is often better than *right* now.
    If the implementation is hard to explain, it's a bad idea.
    If the implementation is easy to explain, it may be a good idea.
    Namespaces are one honking great idea -- let's do more of those! 
 

A traduão é esta:

The Zen of Python

    Bonito é melhor que feio.
    Explícito é melhor que implícito.
    Simples é melhor que Complexo.
    Complexo é melhor que complicado.
    Achatado é melhor que aninhado.
    Disperso é melhor que compacto.
    Legibilidade conta.
    Casos especiais não são especiais o suficiente para quebrar as regras.
    Apesar de praticidade vencer a pureza.
    Erros nunca devem passar despercebidos.
    A menos que passem explicitamente "despercebidos".
    Diante de ambiguidades, recuse a tentação de deduzir.
    Deve haver uma --e preferencialmente só uma-- maneira fácil de fazer isto.
    Apesar de que a maneira não pode ser óbvia de primeira, a não ser que você seja "asiático".
    Agora é melhor do que nunca.
    Porém, muitas vezes nunca é melhor do que *agora*.
    Se a implementação é difícil de explicar, é uma péssima ideia.
    Se a implementação é fácil de explicar, pode ser uma boa ideia.
    Namespaces são uma grande ideia gritante -- vamos fazer mais dessas!
 
 
Tive um pouco de dificuldade para traduzir duas linhas.
A primeira foi a linha que fala sobre a maneira óbvia ser a primeira, no original a tradução seria "a não ser que você seja Holandês", mas não ia ter graça, pelo menos pra mim, então eu contextualizei para "asiático".

Quando escolhi "asiático" como tradução, lembrei do lecionador do curso Python Para Zumbis, Fernando Ashikaga.

A outra linha é a que diz "muitas vezes nunca é melhor do que *agora*"

No original, "agora" é composto de duas palavras: "right now".

Right = certo, direito
Now = agora

O problema é que os asteriscos estavam circundando a palavra Right, e eu pensei em mantê-la, mas a tradução ficaria muito estranha: " *bem* agora ".

Então suprimi a primeira palavra e circundei a segunda com "*".


sexta-feira, 20 de setembro de 2013

Alguns passos para Desenvolver um Sistema

    Análise

- Sondar o campo. Qual é a situação atual do lugar?
- Definir o problema. O que é necessário ser resolvido.

    Levantamento de requisitos

- Definir os requisitos mais óbvios.(explícitos)
- Definir os requisitos menos óbvios. (implícitos)

    Gerar artefatos

- O levantamento de requisitos já é um artefato.
- Fazer o diagrama de Caso de Uso.
- Fazer o diagrama de Classes.
- Fazer o diagrama de Módulos.
- Fazer o diagrama de Fluxo de Dados
- Escolher a linguagem a ser utilizada.

    Desenvolver o Sistema

- Implementar as funções em seus devidos módulos.
- Testar os módulos em vários estados iniciais.
- "Juntar" os módulos estabelecendo relações entre eles.
- Botar o sistema pra funcionar.
- Manter o sistema com conteúdo, suporte técnico etc.

quarta-feira, 11 de setembro de 2013

Repelente para Vírus de Pendrive

Esta postagem vai ensinar como se impede os vírus de entrarem em seu pendrive

O que é um vírus?

Vírus é simplesmente um programa pode causar algum prejuízo para o computador ou para quem o utiliza. Atualmente existem registros de milhares de vírus diferentes e aqui veremos uma categoria de vírus que se prolifera através dos pendrives.

Como os vírus entram nos pendrives?

Como já é de se pensar, o vírus entra no pendrive através do computador. Mas quem o impulsiona a entrar lá? Bom, é o próprio computador

Acontece que, como o vírus é um programa e o computador foi projetado exclusivamente para "obedecer" aos programas, o computador não faz nada além do que obedecer ao vírus.

Isto acontece muitas vezes quando o computador reconhece que um pendrive foi conectado e o vírus automaticamente se copia para dentro dele.

Como os vírus passam do pendrive para o computador?

Quando o pendrive infectado é colocado em outro computador, ele pode não infectar imediatamente, mas na hora que você abre o pendrive, o seu computador faz com que o vírus dentro do pendrive "acorde" e infecte o computador.

Por isto deve-se sempre ter o cuidado de ESCANEAR o pendrive (ou qualquer mídia removível) ANTES DE ABRIR.

Receita do Repelente para Vírus de Pendrive

Passo 1 - Formate o pendrive

Se o seu pendrive tem algo importante, passe para o computador antes de formatá-lo.

Em Meu Computador, pressione o botão direito no pendrive e clique formatar.

A formatação tem que ser NTFS.

Se você NÃO optar por formatação rápida, pode demorar muito.

Clique em Iniciar e aguarde.

Passo 2 - Crie a sua Pasta

Abra o pendrive e crie uma Pasta com um nome fácil.

Passo 3 - Bloqueie a Raíz do pendrive

Volte em Meu Computador.

Clique o botão direito no seu pendrive e escolha Propriedades.

Escolha a guia Segurança

Clique no botão Editar

Clique na checkbox Leitura>Negar.

Clique depois em Leitura>Permitir

Clique em Gravar>Negar

Clique OK, Sim, OK.

Passo 4 -Desbloqueie a sua Pasta

Abra o pendrive

Clique com o botão direito na sua Pasta e escolha Propriedades.

Vá na guia Segurança.

Clique no botão Editar.

Clique na checkbox Controle Total>Permitir

Clique OK>Sim>OK

Seu pendrive está livre de malwares.

 

 

 


quinta-feira, 7 de fevereiro de 2013

Posição do Cursor em um Elemento

Problema

Em alguns casos, desejamos descobrir a posição do cursor sobre um elemento, mas não há uma maneira direta para tal, ou se há eu não encontrei na internet.

Exemplo

Podemos imaginar por exemplo como alterar um canvas com base na posição do clique do mouse sobre o mesmo, ou mesmo quando o mouse passa por cima.

Introdução ao JavaScript

JavaScript é uma linguagem de programação baseada em objetos e utilizada em páginas da Web para controlar os elementos e tornar a navegação uma experiência dinâmica e atrativa.

JavaScript - Eventos

Em JavaScript, os eventos são objetos que armazenam atributos referentes a um determinado acontecimento (evento), os eventos podem adquirir informações do Teclado e do Mouse.

JavaScript - Eventos - Posição do Cursor do Mouse

Para saber a posição do cursor do mouse em um determinado evento, usa-se as propriedades clientX e clientY.
Estas propriedades são atributos do objeto evento. Elas retornam números inteiros, as coordenadas X e Y em pixels em relação ao conto esquerdo-superior da tela do navegador.

JavaScript - Janela - Rolagem da página 

É possível determinar também quantos pixels a página foi rolada. Isso é importante para determinar a posição absoluta do cursor, e não a posição relativa ao canto superior-esquerdo, para poder então processar com a posição absoluta do elemento e descobrir em qual coordenada do elemento o cursor está.
Para saber quantos pixels a página foi rolada, usa-se o pageXOffset e o pageYOffset.

JavaScript - Elemento - Posição de desvio

Para saber a posição de um elemento em relação ao conto superior-esquerdo do elemento em que ele está  inserido, usa-se o offsetLeft e o offsetTop.
O elemento em questão não pode setar dentro de nenhum elemento de posição significativamente alterada através de CSS, caso contrário, o resultado estará distorcido, sendo relativo ao último elemento de posição alterada.

A função para descobrir a posição X é
function nX (evento, objeto){
return evento.clientX-(objeto.offsetLeft-pageXOffset); 
}

A função para descobrir a posição Y é
function nY (evento, objeto){
return evento.clientY-(objeto.offsetTop-pageYOffset); 
}