Mudamos de endereço

ESTÁ A PROCURA DE UM BOM EMPREGO?
Tenho uma ótima dica pra você aqui.

mudamos
Ir para o novo blog

Como proteger seu aplicativo com base na data atual na web com php

Introdução

Quem trabalha com desenvolvimento de softwares está sempre procurando formas de proteger seus sistemas contra cópia e contra calote, principalmente aqueles que recebem mensalmente. Uma das formas mais eficientes de se liberar ou bloquear o uso de um aplicativo, é com base na data, mas não a data do computador do usuário, pois ele pode facilmente alterar essa data e assim burlar a proteção.

Outra necessidade pode ser a de sempre ter a hora atualizada. Às vezes pode acontecer da data e a hora do computador não acompanharem a data e a hora corretas por problemas no hardware, mais usualmente por problemas na bateria que mantem esses dados atualizados.

Alguns developers usam lincar o sistema à uma página na Internet que exiba a data e hora oficial de Brasília. Isso é bastante eficiente, mas corre-se o risco do dono da página alterar alguma coisa no script da mesma, o que pode tornar o sistema ineficiente.

O mais prático é o developer ter sua própria página em um servidor na web com a data e hora atualizadas. Dessa forma, ele sempre terá certeza de que o script estará funcionando de forma adequada. Mas devemos fugir do trivial javascript, pois ele, por ser uma linguagem client-side, ou seja, que funciona no computador de quem está acessando a página, irá considerar a data e a hora atual do computador em questão. O mais correto é utilizar uma página desenvolvida em uma linguagem server-side, ou seja, que funciona no servidor. Essa página pode ser desenvolvida em php, asp ou qualquer outra que funcione no lado servidor.

Hoje em dia, há ótimos serviços de hospedagem até gratuitos que oferecem suporte ao PHP. Eu indico a Hostinger, que alem do PHP, tem suporte ao MySql e diversos outros serviços no seu plano gratuito.

Aqui irei demonstrar como integrar uma página php na web a um sistema que utilize VBA no Access. O mesmo esquema pode ser utilizado em Visual Basic ou qualquer outra linguagem desktop.

Como não haverá a necessidade da data e hora serem atualizadas constantemente, poderemos utilizar PHP puro, pois esses dados serão verificados apenas no momento da requisição.

Iniciando no PHP

Antes de tudo, vamos falar um pouco sobre a sintaxe do php para quem ainda não a conhece. Essa linguagem é parecida com html na forma de se iniciar e finalizar o script. Como você deve saber, uma página html começa com a tag <html> e finaliza com </html>. No caso do php, há duas formas de se indicar que estamos iniciando um bloco php. São elas: <? e <?php. Para finalizar o bloco, utilizamos ?>. Assim, a sintaxe elementar de uma página php seria:

<?

instruções

?>

ou:

<?php
instruções
?>

Por razões de compatibilidade, aconselho a usar a segunda forma de inicialização <?php, pois, dependendo das configurações do php, a primeira, <?, pode não funcionar.

Esses elementos podem ficar em uma linha só tambem:

<?php instruções ?>

Para fins de melhor visualização e entendimento do que estamos fazendo, é aconselhável deixar cada elemento em uma linha. E para melhorar ainda mais na hora de analisarmos um bloco de códigos, é aconselhável indentar as linhas hierarquicamente:

<?php
instruções
?>

O php possui várias instruções para imprimir texto em uma página. Entre elas o print, o sprint e o echo. Textos devem ser escritos entre aspas, podendo elas serem simples ou compostas e devem finalizar com um ponto e vírgula:

<?php
echo "Meu primeiro texto";
?>

Quando precisarmos utilizar scripts que tambem ficam entre aspas dentro de um bloco de texto, aí precisaremos mudar o tipo das aspas. É interessante você elaborar um padrão e segui-lo sempre, assim, não se perderá durante o processo de programação da página.

Trabalhando com data e hora no PHP

Para recuperar a data e a hora atual, o php utiliza a variável date. Veja o que usar para cada elemento da data:

ddia com dois dígitos: 01 a 31;

mmês com dois dígitos: 01 a 12;

yano com dois dígitos: 13;

Yano com quatro dígitos: 2013;

hhora com período de doze horas: 01 a 12 am e 01 a 12 pm;

Hhora com perído de 24 horas: 00 a 23;

i: minuto com dois dígitos: 00 a 59;

s: segundos com dois dígitos: 00 a 59.

Como iremos utilizar strings e a variável date, precisaremos saber como concatenar esses elementos em php. No VB utilizamos &. No php, podemos utilizar um ponto( . ).

Implementando a parte PHP do sistema

Podemos utilizar várias formas de se recuperar a data e a hora da página dentro do nosso aplicativo desktop, entre as quais fazer uma pesquisa por algum termo do texto, utilizando o innerText, o outerText. A mais prática de todas é identificando os elementos html dentro da página através de um nome ou de uma id. Esse elemento pode ser um campo, uma div, um span ou qualquer outro. Veja nossa página completa em php. As três linhas iniciais, das quais não falamos, estão comentadas. A barra dupla em php indica início de um comentário:

<?php

header ('Content-type: text/html; charset=UTF-8'); // define a codificação do texto
setlocale(LC_TIME, "pt_BR.utf8"); // define a localidade
date_default_timezone_set('America/Sao_Paulo'); // define o fuso horário

echo "<span id='horaatual'>" . date('H:i:s') . "</span>";
echo "<span id='dataatual'>" . date('d/m/Y') . "</span>";
?>

Na primeira linha, instruímos o php a utilizar a codificação de texto UTF-8, que é a mais própria para o nosso idioma.

Na segunda linha, indicamos nossa localidade, o Brasil.

Na terceira linha, definimos o nosso fuso horário.

Na quarta linha criamos um elemento com id “horaatual”, o qual exibirá a hora atual.

Na quinta linha fazemos o mesmo, mas utilizando a id “dataatual” e retornando a data atual.

São esses dois ids, horaatual e dataatual, que iremos utilizar no nosso aplicativo desktop.

No lugar de span, pode-se ainda usar div ou campos texto ou mesmo uma tabela, na qual os ids ficariam dentro das células, identificando-as.

A função VBA do sistema

Há várias formas de fazer isso. Uma das mais simples é utilizando um componente webbrowser que abrirá a nossa página na web para assim disponibilizar os elementos de pesquisa que precisamos para capturar a data e a hora.

Então, a primeira coisa que faremos é inserir um controle webbrowser no nosso formulário. Esse controle poderá ficar oculto caso ache necessário. Vou utilizar como exemplo para o webbrowser o nome de wbDataHora. Então, no evento “Ao carregar” do formulário, utilizaremos as linhas abaixo:

Private Sub Form_Load()
Me.wbDataHora.Navigate "www.seusite.com.br/datahora.php"
Do While wbDataHora.Busy
DoEvents
Loop
Do While wbDataHora.ReadyState <> 4
DoEvents
Loop
Me.txtDataOficial = Me.wbDataHora.Document.getElementById("dataatual").innerText
Me.txtHoraOficial = Me.wbDataHora.Document.getElementById("horaatual").innerText
End Sub
A primeira linha é responsável por carregar o controle webbrowser com a página que contem a data e a hora.
Os dois blocos Do While fazem o código aguardar até que a página esteja completamente carregada.
As duas últimas linhas carregam a data e a hora nos campos txtDataOficial e txtHoraOficial.
Explicando os elementos das linhas responsáveis por capturar esses dados e coloca-los nos devidos campos:
Document: indica que iremos acessar o documento que está carregado no controle webbrowser;
getElementById: indica que será feita uma pesquisa nos elementos cujo id tenha o nome indicado entre parênteses;
innerText: indica que o texto no interior desses elementos serão printados nos devidos campos do formulário.
Pronto, é isso. Agora tempos a data e a hora oficial e poderemos utilizá-las para liberar ou bloquear o uso da aplicação ou para corrigir a data e a hora do computador.

Vídeo – Como colocar Atalho na barra de tarefas do Windows 7

No vídeo abaixo demonstro como colocar atalhos na barra de tarefas do Windows 7 de forma a abrir o arquivo ou pasta pretendidos e não abrir somente o programa associado ao arquivo ou a pasta raiz do Explorer.

Calcular idade de forma simples e eficiente em VBA

Hoje vou mostrar uma forma bem simples de se calcular a idade com precisão. Geralmente, para esse cálculo, subrtaímos o ano de nascimento do ano atual, certo? Certo. Só que se a pessoa ainda não fez aniversário no ano atual, precisamos diminuir um ano nessa subtração, certo? Certo.

Podemos fazer isso utilizando condições que irão avaliar o mês atual e se for maior que o mês de nascimento, faz o cálculo normal. Se for menor que o mês de nascimento, dimimui um ano na subtração do ano de nascimento para o ano atual. Mas, e se o mês for igual? Aí precisamos verificar o dia de nascimento. Se for menor ou igual ao dia atual, faz o cálculo normal. Se for maior que o dia atual, diminuímos mais um na subtração do ano de nascimento para o ano atual. Nesse caso, teríamos um If aninhado dentro de outro If, certo?Certo?

Bem, podemos fazer isso de forma simplificada verificando mês e dia ao mesmo tempo. Se a junção de mês e dia de nascimento for menor ou igual à junção de mês e dia atuais, fazemos o cálculo normalmente, caso contrário, diminuímos mais um ano na subtração, pois a pessoa ainda não teria feito aniversário no ano atual.

Vamos considerar a data atual como 11/04/2013 e três datas de nascimento, sendo 25/02/1990, 11/04/1992 e 25/07/2000.

A junção do mês e dia atuais, 11/04/2013, é 411.

A junção do mês e dia da primeira data de nascimento, 25/02/1990, é 225. Isso significa que a pessoa já fez aniversário no ano atual, pois 411 é maior do que 225.

A junção do mês e dia da segunda data de nascimento, 11/04/1992, é 411. Isso significa que a pessoa já fez aniversário no ano atual, pois 411 é igual a 411.

A junção do mês e dia da terceira data de nascimento, 25/07/1990, é 725. Isso significa que a pessoa ainda não fez aniversário no ano atual, pois 411 é menor do que 725.

No primeiro e segundo caso, basta fazer a subtração do ano atual para o ano de nascimento. Já no segundo caso, teremos que fazer essa subtração e diminuir mais 1. Sabendo que podemos utilizar a junção do mês e o dia, podemos fazer uma verificação simples pegando o Integer dessas junções. Vamos supor que temos um aplicativo no Access, no qual tem um formulário aonde queremos fazer esse cáluculo. Nesse formulário temos os campos txtNascimento e txtIdade. No campo txtNascimento consta a data de nascimento e o campo txtIdade deverá mostrar a idade. Se formos utilizar o VBA, podemos ter algo assim:

If Int(Month(Date) & Day(Date)) < Int(Month(Me.txtNascimento) & Day(Me.txtNascimento)) Then
    Me.txtIdade = DateDiff("yyyy", Me.txtNascimento, Date) - 1
Else
    Me.txtIdade = DateDiff("yyyy", Me.txtNascimento, Date)
End If
Tambem podemos fazer esse cálculo na fonte do controle txtIdade:
=Iif(Int(Month(Date) & Day(Date)) < Int(Month([txtNascimento]) & Day([txtNascimento]));DateDiff("yyyy";[txtNascimento];Date()) - 1;DateDiff("yyyy";[txtNascimento];Date))
E então, é ou não é uma coisa extremamente simples de se fazer? Você pode aproveitar essa dica e adaptá-la para qualquer linguagem de programação ou mesmo para uma planilha de Excel ou outro semelhante.
É isso. Espero que tenha gostado e que seja útil.
Abraço e até a próxima.

Vídeo – Calcular e validar DV de CPF em VBA no Access

No vídeo abaixo, demonstro como calcular e validar os dígitos verificadores do CPF via VBA no Access.
Veja ainda algumas curiosidades e macetes sobre a sequência numérica desse documento.

Testes de performance no Access

O Microsoft Access tem sofrido, ao longo do tempo, a desconfiança de muitos programadores que o consideram fraco ou uma ferramenta de pouca expressão no ramo de banco de dados e de programação. Hoje iremos analisar mais a fundo os motivos que levaram-o a essa condição.

O Access foi criado para ser uma ferramenta que permitisse a qualquer usuário criar bancos de dados com facilidade. A própria Microsoft sempre procurou enfatizar isso. Por esse motivo, usuários que nunca tiveram contato com esse tipo de aplicativo, achou que poderiam criar soluções completas para qualquer tipo de necessidade. A Microsoft não explicou a diferença entre uma agendinha de contatos e uma aplicação comercial completa, com relacionamentos entre tabelas, integridade referencial entre outros parâmetros.

Com a falta de conhecimentos nesses quesitos, era de se esperar que os aplicativos criados com o Access apresentassem um baixo desempenho e vários outros problemas que levam até mesmo ao corrompimento de dados. Sem conhecer a fundo as funcionalidades e características da ferramenta, vemos usuários criando sistemas com consultas complexas que só fazem com que o sistema demore muito mais do que o necessário para exibir um simples resultado.

Como participante ativo de fóruns e comunidades sobre o Access, vejo usuários que tiveram seu primeiro contato com uma ferramenta de banco de dados e já acham que podem criar sistemas comerciais e viver disso e quando se deparam com o mais grosso mesmo da coisa, recorrem aos fóruns. Já vi frases do tipo:

“Acabei de ter meu primeiro contato com o Access e estou criando um programinha que preciso entregar essa semana. Já criei as tabelas e os formulários mas não consigo ligar o formulário com o subformulário. O que eu tenho que fazer?”

E a pessoa está criando o aplicativo para uma empresa. Não sabe nem relacionar os campos do formulário e subformulário e certamente nem criou os relacionamentos entre as tabelas. E quando a gente pergunta se o fez, a pergunta que vem de volta é “o que é um relacionamento?” E pior que tem bizarrices ainda maiores do que essa. Depois, dentro de pouco tempo, o sistema começa a apresentar lentidão e outros problemas mais graves ainda e o “programador” abandona a empresa e o sistema. Aí vem outro programador que nem se deu ao trabalho de estudar o Access a fundo e logo diz “tinha que ser Access. Isso é uma bomba mesmo.” E então todo mundo embarca na ideia de que a ferramenta não presta sem nem mesmo testá-la em toda sua plenitude.

Com o conhecimento que tenho adquirido ao longo dos anos, digo sem medo que não existe ferramenta limitada. Existe programador limitado ou que não se interessa em ampliar seus conhecimentos em outras áreas. O Access é uma das ferramentas de programação mais versáteis que conheço e que conta com a melhor ferramenta de relatórios entre todas. Limitações existem, claro, assim como existem tambem em todas as outras plataformas. Cabe ao programador superá-las. A maior limitação do Access, ao meu ver, é a capacidade de apenas 2 gigabytes que um arquivo pode ter. Mas isso tambem pode ser superado com a astúcia do programador.

Como esse artigo tem por finalidade discorrer sobre as várias formas de se trabalhar com registros e identificar as mais rápidas, vamos falar sobre as formas de se trabalhar com inserção, consulta e exclusão de registros, entre outras coisas.

Os dados de um banco de dados Access podem ser manipulados em campos de um formulário vinculado à uma tabela ou pode ser manipulado via código VBA. Quando o formulário e consequentemente os campos estão vinculados à tabela e aos campos da tabela, as alterações são feitas automaticamente e tem tempo real. Quando o formulário é desvinculado, essas alterações ou inserção de registros são feitas ao se clicar em um botão por exemplo. É nessa segunda alternativa que estaremos trabalhando.

É possível inserir, alterar e excluir registros de várias formas, bem como é possível fazer consultas tambem utilizando vários métodos. Tanto para inserção de registros quanto para atualização ou exclusão, podemos utilizar um objeto Recordset ou cláusulas SQL. Para cada uma das tarefas, um método diferente pode ser mais eficaz, como demonstrado no vídeo abaixo, no qual vemos ainda outros testes envolvendo listboxes, testes esses que podem ser estendidos às comboboxes:

Como você percebeu pelo vídeo, cabe ao programador saber qual a forma mais eficaz de se trabalhar com cada tipo de tarefa.

O aplicativo que utilizei no vídeo está disponível para download para que você possa testá-lo e entender como os procedimentos foram executados. Faça o download do mesmo e estude as funções VBA para aprender como tudo foi feito.

Os links para baixar o aplicativo está nas descrições do vídeo no youtube, no link http://youtu.be/6uAsxNmjfOs

Ainda existem outros tipos de métodos que podem ser utilizados, dependendo do caso. Agora caberá a você pesquisar mais sobre o assunto.

Espero que esse artigo tenha sido útil. Dúvidas, sugestões e críticas construtivas podem ser postadas.

O CENÁRIO PERFEITO PARA O DIA 20 DE DEZEMBRO

Tudo parece igual e na mais absoluta normalidade. O povo correndo de um lado para o outro na busca incessante pelo dinheiro e pelo poder. Alguns até se lembram que no dia seguinte será o dia 21, mas sem dar grandes importâncias ao fato.

De repente o tempo fecha no planeta inteiro e ao mesmo tempo. Tudo escuro como noite sem lua. Passam-se alguns minutos e de repente vem uma tempestade de grandes proporções e a nível mundial. Coisa nunca acontecida antes na história do planeta. Trovões e relâmpagos incessantes. Chuva torrencial. Os noticiários já anunciam o fato em todas as redes de televisão, alarmando a população e deixando a todos na mais absoluta apreensão.

Para piorar de vez, os grandes telescópios detectam algo vindo no espaço a uma velocidade considerável e não muito distante da Terra. Observando mais atentamente, os cientistas da NASA percebem tratar-se de um enorme corpo celeste vagando pelo espaço rumo ao nosso planeta. Eles percebem que é o maior asteroide já visto. E ele está vindo em nossa direção. Permanecendo a velocidade e direção, o corpo celeste deve atingir o planeta no dia seguinte.

Fenômeno estranho, muito estranho, principalmente pelo fato de um corpo tão grande como esse não ter sido detectado antes e ter surgido aparentemente do nada.

A apreensão é geral, todos se preparando para o grande impacto que, com certeza, seria suficiente para dizimar toda a raça humana. As horas passam, o medo aumenta. De repente, por volta das 6:30 da manhã, o grande ápice, o fim…

O fim da tempestade, o fim da ameaça. O campo magnético da Terra desvia o grande asteroide e tão rapidamente quanto veio a escuridão, a tempestade cessa. Não mais raios, não mais trovões. E a vida segue seu curso normal.

Esse foi mais um episódio da saga “Campo hipotético” por Valdino Campos

Access Dicas para iniciantes

Nomear campos e elementos de um sistema em Access

O Access é uma poderosa ferramenta de programação voltada para bancos de dados relacionais, dispondo de inúmeros e abrangentes recursos. Podemos programar praticamente tudo que imaginarmos no Access, sem contar que ele dispõe do mais poderoso sistema de relatórios entre todos os SGBDs.

Apesar de todo seu poderio, muita gente vê o Access como um brinquedo de crianças ou uma ferramenta voltada para pequenos projetos. Isso se deve em parte aos serviços mal executados, tendo em vista que a própria Microsoft difundiu a ideia de que qualquer usuário poderia criar bancos de dados Access mesmo sem nenhum conhecimento em programação. Em parte, isso é verdade. No entanto, a Microsoft não explicou que esses projetos que poderiam ser criados por qualquer pessoa, seriam projetos bem simples. Ela não explicou que para projetos mais complexos, o usuário precisa ter noção de “modelos relacionais” para que possa fazer o correto relacionamento entre as tabelas, pois essa é a base de um banco de dados relacional.

A Microsoft não explicou, ainda, que para grandes projetos, o usuário dispõe da linguagem de programação VBA (Visual Basic for Application), que é uma linguagem derivada do Visual Basic.

Uma das coissas que mais contribui para o fraco desempenho dos aplicativos Access, alem do já citado relacionamento mal feito ou nem feito, é a forma como se nomeia controles e elementos do banco, alem da forma de se criar consultas mal estruturadas. Aqui vou discorrer apenas sobre a correta nomeação de campos e elementos, pois essa é a temática do momento.

Devido ao grande número de erros que comumente vemos sendo cometidos por quem ainda não tem muita noção e de como funciona um banco de dados Access, resolvi criar esse pequeno artigo com uma série de dicas e macetes para a correta nomeação de campos e elementos de um sistema desses.

É interessante que nomeemos os campos e elementos de um sistema de forma simples e objetiva e de forma que estejamos sempre a identificar o que é cada elemento apenas pelo nome.

Nomes com espaços

Evite colocar nomes com espaços como por exemplo Nome do Cliente. Ao invés disso, você pode colocar NomeCliente. Caso seja em um formulário ou relatório, pode colocar txtNome. Nomes de campos ou elementos com espaços podem causar erros em várias circunstâncias.

Nomes acentuados

Evite colocar nomes acentuados. Embora hoje em dia isso não chegue a ser um problema, pode dar algum erro se rodar o sistema em versões mais antigas. Lembre-se de que quanto mais simples melhor.

Nomeando campos e elementos

Uma dica que considero valiosa na nomeação de campos em formulários e relatórios, bem como na nomeação de elementos como tabelas, formulários, relatórios, módulos, consultas e macros, é dar nomes que lembrem o tipo de campo ou elemento, assim como para que serve os mesmos. Por exemplo, se você tem uma tabela para cadastrar clientes, pode nomeá-la como tblClientes. Desse modo, só em ver o nome você saberá que se trata de uma tabela porque começa com o prefixo tbl e saberá que essa tabela tem como objetivo cadastrar clientes.

Se possui um formulário para a entrada de clientes na tabela tblClientes, pode chama-lo frmCadClientes. Se o form é para consulta, pode ser frmConsClientes.

Um relatório para visualização de clientes pode ser relClientes. Aqui, bem como em alguns casos com formulários, podemos ter muitas variações, dependendo da quantidade e finalidade dos relatórios ou formulários, pois podemos ter subvariações, como relatório para visualizar clientes por ordem alfabética, outro para visualizar clientes por região, etc. Nesses casos, podemos ter relClientesAlfa, relClientesRegiao e por aí afora.

Padronize sua forma de nomear campos e elementos

O importante mesmo é que você tenha um padrão para não se perder durante o desenvolvimento e principalmente para saber o que é e para que serve cada elemento em qualquer aplicação que você for analisar a estrutura.

Em formulários e relatórios podemos ter vários tipos de campos, como campo texto, caixa de combinação, campo memorando, campo sim/não, lista de valores, subformulários, etc. seguindo a lógica apresentada aqui, você pode colocar um prefixo que identifique de imediato o tipo de controle seguido do nome que permita identificar para que serve aquele controle.

Nomeando campos

txtNome – caixa de texto para armazenar o nome do cliente

txtSobrenome – caixa de texto para armazenar o sobrenome

txtDataCadastro – o próprio nome diz tudo

cboCódigoClientes – caixa de combinação para exibir os códigos

mmrObs – campo memorando para observações ou detalhes

Nomeando tabelas, formulários, módulos, relatórios, etc

tblClientes – tabela de clientes

tblProdutos – tabela para cadastro de produtos

tblVendas – tabela para cadastro de vendas

tblVendasDetalhe – tabela para os detalhes das vendas

frmCadClientes – formulário para cadastrar os clientes

frmConsClientes – formulário para consulta de clientes

mdlOcultarJanela – módulo para ocultar a janela do Access

mdlIcone – módulo para definir o ícone da aplicação

Nomes reservados do Access

O Access possui milhares de nomes reservados que ele usa para nomear seus próprios elementos. O uso desses nomes para campos e elementos da aplicação pode causar erros, pois o Access pode confundi-los com chamadas aos seus próprios elementos. Por isso, temos que evitar usar tais nomes. Aqui entra mais uma das vantagens em usarmos os prefixos antes dos nomes. Assim, evitamos esse problema.

Conclusão

Aqui termino esse pequeno artigo. Espero que o mesmo venha a ser útil para todos que precisarem.

Vinculando uma planilha Excel a uma tabela Access – vídeo

No vídeo de hoje, eu demonstro como fazer a vinculação de uma planilha de um documentos do Excel com uma tabela ou consulta de um banco de dados do Access.

DatePicker – o substituto do controle calendário no Access 2007/2010

Como muitos sabem, e quem ainda não sabe agora ficará sabendo, o controle calendário existente nas versões 2003 para trás do Access não existe mais nas versões 2007 e 2010. Na versão 2007 ele ainda funciona, mas na 2010 não tem mais suporte.

Pois bem, entre as soluções para contornar essa questão, uma delas pode ser você usar um controle de terceiros ou então, usar o DatePicker, que é nativo nas versões 2007 em diante e substitui o controle calendário. O problema é que você precisará clicar no ícone do calendário, que aparece quando o campo tipo data recebe o foco, para abrir o calendário e só então escolher a data. Existe uma outra questão que desfavorece o DatePicker pelas vias normais, que é o fato dele perder o DatePicker caso o campo possua máscara de entrada. Bom, aqui veremos como forçar a exibição do DatePicker em campos com máscara e tambem como exibir o calendário automaticamente ao entrar no campo, sem a necessidade de clicar no ícone do DatePicker. Faremos isso usando o nosso querido e idolatrado amigo, o VBA. As linhas de código aqui descritas podem ser usadas no evento "Ao receber foco" do campo tipo data.

Em primeiro lugar, vamos recordar como definimos, nas propriedades do campo, se o DatePicker será ou não exibido automaticamente: nas propriedades do campo, aba "Formato", linha "Mostrar Selecionador de Datas", temos as duas opções possíveis para essa propriedade, que são as seguintes:

Nunca – o DatePicker nunca será exibido.
Para datas – O DatePicker será exibido quando o campo receber o foco, caso seja tipo data e caso não tenha máscara de entrada.

Bom, mas e se eu quiser que meu campo tenha a máscara e tambem exiba o DatePicker quando receber o foco? Aqui, partiremos para o VBA. As opções que definimos nas propriedades do campo, usando o método acima, tambem podem ser feitas via VBA.

Para não exibir o DatePicker:
Me.NomeDoCampo.ShowDatePicker = 0

Para exibir o DatePicker:
Me.NomeDoCampo.ShowDatePicker = 1

Bem, mas ainda fica o problema do DatePicker não ser exibido caso o campo tenha máscara. Para esse caso, podemos usar um terceiro parâmetro:

Para exibir o DatePicker em campo com máscara:
Me.NomeDoCampo.ShowDatePicker = 2

E se eu quiser que o calendário seja exibido automaticamente quando o campo receber o foco sem a necessidade de clicar no ícone do calendário?

Para exibir o calendário automaticamente:
DoCmd.RunCommand acCmdShowDatePicker

Entendendo o ano bissexto e calculando-o via VBA

Hoje, enquanto eu lia algumas matérias na Internet, me deparei com uma matéria relacionada ao ano bissexto e então pensei em elaborar uma função simples para poder calcular se o ano é bissexto ou não. Isso pode ser útil, por exemplo, para montar um calendário personalizado, para o qual precisamos saber quais anos são bissextos para podermos preencher corretamente o mês de fevereiro em uma combobox ou listbox ou mesmo em uma tabela. Aí você diz: "isso é fácil, todo mundo sabe que o ano bissexto ocorre de quatro em quatro anos". Bom, parcialmente correto. Temos que nos lembrar que são de quatro em quatro anos para anos múltiplos de quatro. Bom, muita gente sabe disso, mas não são apenas essas as regras que precisamos saber. Veja, abaixo, o que precisamos saber:
1 – o ano bissexto ocorre de quatro em quatro anos;
2 – o ano bissexto ocorre nos anos múltiplos de quatro;
3 – a regra acima não se aplica para anos que terminam em "00" exceto quando for múltiplo de 400.
Assim sendo, tudo que precisaremos é retornar o resto do ano dividido por 4 ou por 400 e tambem por 100. Nos dois primeiros casos, o ano será bissexto se o resto for 0. No terceiro caso, será bissexto se o resto for diferente de 0 para 100 e igual a 0 para 4. Veja a nossa funçãozinha abaixo:


Dim Dias As Integer

If Me.cboAno Mod 400 = 0 Or (Me.cboAno Mod 4 = 0 And Me.cboAno Mod 100 <> 0) Then
Dias = 29
Else
Dias = 28
End If

Pronto, agora é só preencher a combo dos dias para quando o mês for fevereiro:


Dim TDias As Integer

Me.cboDias.RowSource = ""
Me.cboDias.RowSourceType = "value list"

For TDias = 1 To Dias
Me.cboMeses.AddItem TDias
Next

Obviamente temos os outros meses do ano. A ideia, nesse caso, seria ter uma variável para verificar o mês e colocar o número de dias correspondente e, para o fevereiro, adicionar a função acima. Obviamente, tambem, há outras formas de se fazer a mesma coisa, mas deixo essa dica para ajudar, tambem, a entender a formação do ano bissexto.

Mas, por que temos o ano bissexto de 4 em 4 anos menos nos anos múltiplos de 100? Bom, é porque o ano solar tem um pouco mais de 365 dias mas não chega a 6 horas de diferença. Se fosse 6 horas redondo, bastaria acrescentar um dia a cada 4 anos, mas como falta alguns minutos para seis horas, essa diferença é tirada nos anos múltiplos de 100. O ano solar é igual a 365,2425 dias. Se fosse 365,25, aí sim, seriam exatamente seis horas a mais. Essa é uma curiosidade que muita gente não sabia, talvez pelo fato de que nossa expectativa de vida, no geral, seja inferior a um século.

Espero que meu pequeno artigo seja útil.

Atalhos de teclado do Google Chrome

 
Google Chrome
Hoje deixo para vocês que ainda não conhecem, uma lista de atalhos de teclado para facilitar o uso do Google Chrome. Espero que seja útil.

Atalhos de guia e janela

Ctrl+N – Abre uma nova janela.

Ctrl+T – Abre uma nova guia.

Ctrl+Shift+N – Abre uma nova janela no modo de navegação anônima.

Pressionar Ctrl+O e, em seguida, selecionar arquivo – Abre um arquivo do seu computador no Google Chrome.

Pressionar Ctrl e clicar em um link. Ou clicar em um link com o botão do meio do seu mouse (ou rolar o mouse) – Abre o link em uma nova guia em segundo plano.

Pressionar Ctrl+Shift e clicar em um link. Ou pressionar Shift e clicar em um link com o botão do meio do seu mouse (ou rolar o mouse).
Abre o link em uma nova guia e alterna para a guia recém-aberta.

Pressionar Shift e clicar em um link.
Abre o link em uma nova janela.

Ctrl+Shift+T
Reabre a última guia que você fechou. O Google Chrome lembra as dez últimas guias fechadas.

Arrastar um link para uma guia.
Abre o link na guia.

Arrastar um link para uma área em branco na barra de guias.
Abre o link em uma nova guia.

Arrastar uma guia para fora da barra de guias.
Abre a guia em uma nova janela.

Arrastar uma guia para fora da barra de guias e em uma janela existente.
Abre a guia na janela existente.

Pressionar Esc ao arrastar uma guia.
Retorna a guia para a posição original.

Ctrl+1 a Ctrl+8
Alterna para a guia no número de posição especificado na barra de guias.

Ctrl+9
Alterna para a última guia.

Ctrl+Tab ou Ctrl+PgDown
Alterna para a próxima guia.

Ctrl+Shift+Tab ou Ctrl+PgUp
Alterna para a guia anterior.

Alt+F4
Fecha a janela atual.

Ctrl+W ou Ctrl+F4
Fecha a guia ou pop-up atual.

Clicar em uma guia com o botão do meio do mouse (ou rolar o mouse).
Fecha a guia em que você clicou.

Clicar com o botão direito do mouse ou clicar e manter pressionada a seta Voltar ou Avançar na barra de ferramentas do navegador.
Exibe seu histórico de navegação na guia.

Pressionar Backspace ou Alt e a seta para esquerda ao mesmo tempo.
Vai para a página anterior no seu histórico de navegação da guia.

Pressionar Shift+Backspace ou Alt e a seta para a direita ao mesmo tempo.
Vai para a próxima página no seu histórico de navegação da guia.

Pressionar Ctrl e clicar na seta Voltar, na seta Avançar ou no botão Ir na barra de ferramentas. Ou clicar em um dos botões com o botão do meio do seu mouse (ou rolar o mouse).
Abre o destino do botão em uma nova guia em segundo plano.

Clicar duas vezes na área em branco na barra de guias.
Maximiza ou minimiza a janela.

Alt+Home
Abre sua página inicial na sua janela atual.

Atalhos de recursos do Google Chrome

Alt+F ou Alt+E
Abre o menu de ferramentas, que permite personalizar e controlar as configurações no Google Chrome.

Ctrl+Shift+B
Ativa e desativa a barra de favoritos.

Ctrl+H
Abre a página "Histórico".

Ctrl+J
Abre a página "Downloads".

Shift+Esc
Abre o "Gerenciador de tarefas".

Shift+Alt+T
Define o foco na primeira ferramenta na barra de ferramentas do navegador. Você pode usar os seguintes atalhos para se mover na barra de ferramentas:

  • Pressione Tab, Shift+Tab, Home, End, seta para a direita eseta para a esquerda para mover o foco para diferentes itens na barra de ferramentas.
  • Pressione Espaço ou Enter para ativar os botões da barra de ferramenta, incluindo ações da página e do navegador.
  • Pressione Shift+F10 para acessar qualquer menu de contexto associado, por exemplo, o histórico de navegação do botão "Voltar".
  • Pressione Esc para mudar o foco da barra de ferramentas de volta à página.

F6 ou Shift+F6
Muda o foco para o próximo painel acessível pelo teclado. Os painéis incluem:

  • Realça o URL na barra de endereços
  • Barra de favoritos (se visível)
  • O conteúdo principal da web (incluindo qualquer barra de informações)
  • Barra de downloads (se visível)

Ctrl+Shift+J
Abre as ferramentas de desenvolvedor.

Ctrl+Shift+Delete
Abre a caixa de diálogo "Limpar dados de navegação".

F1
Abre a Central de Ajuda em uma nova guia (nosso favorito).

Ctrl+Shift+M
Alternar entre usuários múltiplos.

Atalhos da barra de endereço

Use os seguintes atalhos na barra de endereço:

Digitar um termo de pesquisa e pressionar Enter.
Executa uma pesquisa usando seu mecanismo de pesquisa padrão.

Digitar a palavra-chave de um mecanismo de pesquisa, pressionarEspaço, digitar um termo de pesquisa e pressionar Enter.
Executa uma pesquisa usando o mecanismo de pesquisa associado à palavra-chave.

Começar a digitar o URL de um mecanismo de pesquisa, pressionar Tabquando for solicitado, digitar um termo de pesquisa e pressionar Enter.
Executa uma pesquisa usando o mecanismo de pesquisa associado ao URL.

Ctrl+Enter
Adiciona www. e .com à sua entrada na barra de endereço e abre o URL resultante.

Digitar um URL e pressionar Alt+Enter.
Abre o URL em uma nova guia.

Ctrl+L ou Alt+D
Realça o URL.

Ctrl+K ou Ctrl+E
Coloca um "?" na barra de endereço. Digite um termo de pesquisa após o ponto de interrogação para realizar uma pesquisa usando seu mecanismo de pesquisa padrão.

Pressionar Ctrl e a seta para a esquerda ao mesmo tempo.
Move o cursor para o termo chave anterior na barra de endereço

Pressionar Ctrl e a seta para a direita ao mesmo tempo.
Move o cursor para o próximo termo chave na barra de endereço

Ctrl+Backspace
Exclui o termo chave anterior ao seu cursor na barra de endereço

Selecionar uma entrada no menu suspenso da barra de endereço com as setas do seu teclado e pressionar Shift+Delete.
Exclui a entrada do seu histórico de navegação, se for possível.

Clicar em uma entrada no menu suspenso da barra de endereço com o botão do meio do mouse (ou rolar o mouse).
Abre a entrada em uma nova guia em segundo plano.

Pressionar Page Up ou Page Down quando o menu suspenso da barra de endereço estiver visível.
Seleciona a primeira ou a última entrada no menu suspenso.

Atalhos de páginas da web

Ctrl+P
Imprime sua página atual.

Ctrl+S
Salva sua página atual.

F5 ou Ctrl+R
Recarrega sua página atual.

Esc
Interrompe o carregamento da sua página atual.

Ctrl+F
Abre a barra de localização.

Ctrl+G ou F3
Localiza a próxima correspondência para sua entrada na barra de localização.

Ctrl+Shift+G, Shift+F3 ou Shift+Enter
Localiza a correspondência anterior para sua entrada na barra de localização.

Clicar no botão do meio do mouse (ou rolar o mouse).
Ativa o rolamento automático. Conforme você movimenta o mouse, a página rola automaticamente de acordo com a direção do mouse.

Ctrl+F5 ou Shift+F5
Recarrega sua página atual, ignorando o conteúdo armazenado em cache.

Pressionar Alt e clicar em um link.
Faz o download do destino do link.

Ctrl+U
Abre o código-fonte da sua página atual.

Arrastar um link para a barra de favoritos
Salva o link como um favorito.

Ctrl+D
Salva sua página da web atual como um favorito.

Ctrl+Shift+D
Salva todas as páginas abertas como favoritos em uma nova pasta.

F11
Abre sua página no modo de tela cheia. Pressione F11 novamente para sair desse modo.

Ctrl e + ou pressionar Ctrl e rolar o mouse para cima.
Aumenta tudo na página.

Ctrl e ou pressionar Ctrl e rolar o mouse para baixo.
Diminui tudo na página.

Ctrl+0
Retorna tudo da página para o tamanho normal.

Barra de espaço
Rola a página da web para baixo.

Home
Vai para a parte superior da página.

End
Vai para a parte inferior da página.

Pressionar Shift e rolar o mouse.
Rola a página horizontalmente.

Atalhos de texto

Ctrl+C
Copia o conteúdo realçado para a área de transferência.

Ctrl+V ou Shift+Insert
Cola o conteúdo da área de transferência.

Ctrl+Shift+V
Cola o conteúdo da área de transferência sem formatação.

Ctrl+X ou Shift+Delete
Exclui o conteúdo realçado e o copia para a área de transferência.

Atalhos de guia e janela

⌘-N
Abre uma nova janela.

⌘-T
Abre uma nova guia.

⌘-Shift-N
Abre uma nova janela no modo de navegação anônima.

Pressionar ⌘-O e, em seguida, selecionar arquivo.
Abre um arquivo do seu computador no Google Chrome.

Pressionar e clicar em um link. Ou clicar em um link com o botão do meio do seu mouse (ou rolar o mouse).
Abre o link em uma nova guia em segundo plano.

Pressionar ⌘-Shift e clicar em um link. Ou pressionar Shift e clicar em um link com o botão do meio do seu mouse (ou rolar o mouse).
Abre o link em uma nova guia e alterna para a guia recém-aberta.

Pressionar Shift e clicar em um link.
Abre o link em uma nova janela.

⌘-Shift-T
Reabre a última guia que você fechou. O Google Chrome lembra as dez últimas guias fechadas.

Arrastar uma guia para fora da barra de guias.
Abre a guia em uma nova janela.

Arrastar uma guia para fora da barra de guias e em uma janela existente.
Abre a guia na janela existente.

Pressionar ⌘-Option e a seta para a direita ao mesmo tempo.
Alterna para a próxima guia.

Pressionar ⌘-Option e a seta para a esquerda ao mesmo tempo.
Alterna para a guia anterior.

⌘-E
Fecha a guia ou pop-up atual.

⌘-Shift-W
Fecha a janela atual.

Clicar e manter pressionada a seta "Voltar" ou "Avançar" na barra de ferramentas do navegador.
Exibe o seu histórico de navegação na guia.

Pressionar Delete ou ⌘-[
Vai para a página anterior no seu histórico de navegação da guia.

Pressionar Shift-Delete ou ⌘-]
Vai para a próxima página no seu histórico de navegação da guia.

Pressionar Shift enquanto clica no botão "+" no canto superior esquerdo da janela.
Maximiza a janela.

⌘-M
Minimiza a janela.

⌘-H
Oculta o Google Chrome.

⌘-Option-H
Oculta todas as outras janelas.

⌘-Q
Fecha o Google Chrome.

Atalhos de recursos do Google Chrome

⌘-Shift-B
Ativa e desativa a barra de favoritos.

⌘-Option-B
Abre o gerenciador de favoritos.

⌘-,
Abre a caixa de diálogo "Preferências".

⌘-Y
Abre a página "Histórico".

⌘-Shift-J
Abre a página "Downloads".

⌘-Shift-Delete
Abre a caixa de diálogo "Limpar dados de navegação".

⌘-Shift-M
Alternar entre usuários múltiplos.

Atalhos da barra de endereço

Use os seguintes atalhos na barra de endereço:

Digitar um termo de pesquisa e pressionar Enter.
Executa uma pesquisa usando seu mecanismo de pesquisa padrão.

Digitar a palavra-chave de um mecanismo de pesquisa, pressionarEspaço, digitar um termo de pesquisa e pressionar Enter.
Executa uma pesquisa usando o mecanismo de pesquisa associado à palavra-chave.

Começar a digitar o URL de um mecanismo de pesquisa, pressionar Tabquando for solicitado, digitar um termo de pesquisa e pressionar Enter.
Executa uma pesquisa usando o mecanismo de pesquisa associado ao URL.

Digitar um URL e pressionar ⌘-Enter.
Abre o URL em uma nova guia em segundo plano.

⌘-L
Realça o URL.

⌘-Option-F
Coloca um "?" na barra de endereço. Digite um termo de pesquisa após o ponto de interrogação para realizar uma pesquisa usando seu mecanismo de pesquisa padrão.

Pressionar Option e a seta para a esquerda ao mesmo tempo.
Move o seu cursor para o termo chave anterior na barra de endereço

Pressionar Option e a seta para a direita ao mesmo tempo.
Move o seu cursor para o próximo termo chave na barra de endereço

Pressionar Shift-Option e a seta para a esquerda ao mesmo tempo.
Realça o termo chave anterior na barra de endereço

Pressionar Shift-Option e a seta para a direita ao mesmo tempo.
Realça o próximo termo chave na barra de endereço

⌘-Excluir
Exclui o termo chave anterior ao seu cursor na barra de endereço

Pressionar Page Up ou Page Down no menu da barra de endereço.
Seleciona a entrada anterior ou a próxima no menu.

Atalhos de páginas da web

⌘-P
Imprime a sua página atual.

⌘-Shift-P
Abre a caixa de diálogo "Configuração de página".

⌘-S
Salva a sua página atual.

⌘-Shift-I
Envia a sua página atual por e-mail.

⌘-R
Recarrega a sua página atual.

⌘-,
Interrompe o carregamento da sua página atual.

⌘-F
Abre a barra de localização.

⌘-G
Localiza a próxima correspondência para a sua entrada na barra de localização.

⌘-Shift-G ou Shift-Enter
Localiza a correspondência anterior para a sua entrada na barra de localização.

⌘-E
Usa seleção para localizar

⌘-J
Vai até a seleção

⌘-Option-I
Abre as ferramentas de desenvolvedor.

⌘-Option-J
Abre o Console JavaScript.

⌘-Option-U
Abre o código-fonte da sua página atual.

Pressionar Option e clicar em um link.
Faz download do destino do link.

Arrastar um link para a barra de favoritos.
Salva o link como um favorito.

⌘-D
Salva a sua página da web atual como um favorito.

⌘-Shift-D
Salva todas as guias abertas como favoritos em uma nova pasta.

⌘-Shift-F
Abre a sua página no modo de tela cheia. Pressione ⌘-Shift-Fnovamente para sair desse modo.

⌘-+
Aumenta tudo na página.

⌘ e –
Diminui tudo na página.

⌘-0
Retorna tudo da página para o tamanho normal.

⌘-Shift-H
Abre a sua página inicial na guia atual.

Barra de espaço
Rola a página da web para baixo.

⌘-Option-F
Pesquisa na web.

Atalhos de texto

⌘-C
Copia o conteúdo realçado para a área de transferência.

⌘-Option-C
Copia o URL da página que você está visualizando para a área de transferência.

⌘-V
Cola o conteúdo da área de transferência.

⌘-Shift-Option-V
Cola conteúdo sem formatação de origem.

⌘-X ou Shift-Delete
Exclui o conteúdo realçado e o copia para a área de transferência.

⌘-Z
Reverte a sua última ação.

⌘-Shift-Z
Repete a sua última ação.

⌘-X
Exclui o conteúdo realçado e o salva na sua área de transferência (recortar).

⌘-A
Seleciona todo o texto na sua página atual.

⌘-:
Abre a caixa de diálogo "Ortografia e gramática".

⌘-;
Verifica a ortografia e gramática da sua página atual

Atalhos de guia e janela

Ctrl+N
Abre uma nova janela.

Ctrl+T
Abre uma nova guia.

Ctrl+Shift+N
Abre uma nova janela no modo de navegação anônima.

Pressionar Ctrl+O e, em seguida, selecionar arquivo.
Abre um arquivo do seu computador no Google Chrome.

Pressionar Ctrl e clicar em um link. Ou clicar em um link com o botão do meio do seu mouse (ou rolar o mouse).
Abre o link em uma nova guia em segundo plano.

Pressionar Ctrl+Shift e clicar em um link. Ou pressionar Shift e clicar em um link com o botão do meio do seu mouse (ou rolar o mouse).
Abre o link em uma nova guia e alterna para a guia recém-aberta.

Pressionar Shift e clicar em um link.
Abre o link em uma nova janela.

Ctrl+Shift+T
Reabre a última guia que você fechou. O Google Chrome lembra as dez últimas guias fechadas.

Arrastar um link para uma guia.
Abre o link na guia.

Arrastar um link para uma área em branco na barra de guias.
Abre o link em uma nova guia.

Arrastar uma guia para fora da barra de guias.
Abre a guia em uma nova janela.

Arrastar uma guia para fora da barra de guias e em uma janela existente.
Abre a guia na janela existente.

Pressionar Esc ao arrastar uma guia.
Retorna a guia para a posição original.

Ctrl+1 a Ctrl+8
Alterna para a guia no número de posição especificado na barra de guias.

Ctrl+9
Alterna para a última guia.

Ctrl+Tab ou Ctrl+PgDown
Alterna para a próxima guia.

Ctrl+Shift+Tab ou Ctrl+PgUp
Alterna para a guia anterior.

Ctrl+Shift+Q
Fecha o Google Chrome.

Ctrl+W ou Ctrl+F4
Fecha a guia ou pop-up atual.

Clicar em uma guia com o botão do meio do mouse (ou rolar o mouse).
Fecha a guia em que você clicou.

Clicar com o botão direito do mouse ou clicar e manter pressionada a seta Voltar ou Avançar na barra de ferramentas do navegador.
Exibe seu histórico de navegação na guia.

Pressionar Alt e a seta para a esquerda ao mesmo tempo.
Vai para a página anterior no seu histórico de navegação da guia.

Pressionar Alt e a seta para a direita ao mesmo tempo.
Vai para a próxima página no seu histórico de navegação da guia.

Clicar na seta "Voltar", na seta "Avançar" ou no botão "Ir" na barra de ferramentas com o botão do meio do mouse (ou rolar o mouse).
Abre o destino do botão em uma nova guia em segundo plano.

Clicar duas vezes na área em branco na barra de guias.
Maximiza ou minimiza a janela.

Atalhos de recursos do Google Chrome

Alt+F
Abre o menu "Ferramentas", que permite personalizar e controlar as configurações no Google Chrome.

Ctrl+Shift+B
Ativa e desativa a barra de favoritos.

Ctrl+H
Abre a página "Histórico".

Ctrl+J
Abre a página "Downloads".

Shift+Esc
Abre o "Gerenciador de tarefas".

Ctrl+Shift+J
Abre as ferramentas de desenvolvedor.

Ctrl+Shift+Delete
Abre a caixa de diálogo "Limpar dados de navegação".

F1
Abre a Central de Ajuda em uma nova guia (nosso favorito).

Ctrl+Shift+M
Alternar entre usuários múltiplos.

Atalhos da barra de endereço

Use os seguintes atalhos na barra de endereço:

Digitar um termo de pesquisa e pressionar Enter.
Executa uma pesquisa usando seu mecanismo de pesquisa padrão.

Digitar a palavra-chave de um mecanismo de pesquisa, pressionarEspaço, digitar um termo de pesquisa e pressionar Enter.
Executa uma pesquisa usando o mecanismo de pesquisa associado à palavra-chave.

Começar a digitar o URL de um mecanismo de pesquisa, pressionar Tabquando for solicitado, digitar um termo de pesquisa e pressionar Enter.
Executa uma pesquisa usando o mecanismo de pesquisa associado ao URL.

Ctrl+L
Realça o URL.

Ctrl+K ou Ctrl+E
Coloca um "?" na barra de endereço. Digite um termo de pesquisa após o ponto de interrogação para realizar uma pesquisa usando seu mecanismo de pesquisa padrão.

Pressionar Ctrl+Shift e a seta para a esquerda ao mesmo tempo.
Move o seu cursor para o termo chave anterior na barra de endereço

Pressionar Ctrl+Shift e a seta para a direita ao mesmo tempo.
Move o seu cursor para o próximo termo chave na barra de endereço

Ctrl+Backspace
Exclui o termo chave anterior ao seu cursor na barra de endereço

Selecionar uma entrada no menu suspenso da barra de endereço com as setas do seu teclado e pressionar Shift+Delete.
Exclui a entrada do seu histórico de navegação, se for possível.

Clicar em uma entrada no menu suspenso da barra de endereço com o botão do meio do mouse (ou rolar o mouse).
Abre a entrada em uma nova guia em segundo plano.

Pressionar Page Up ou Page Down quando o menu suspenso da barra de endereço estiver visível.
Seleciona a primeira ou a última entrada no menu suspenso.

Atalhos de páginas da web

Ctrl+P
Imprime sua página atual.

Ctrl+S
Salva a sua página atual.

Ctrl+R
Recarrega a sua página atual.

Esc
Interrompe o carregamento da sua página atual.

Ctrl+F
Abre a barra de localização.

Ctrl+G ou Enter
Localiza a próxima correspondência para a sua entrada na barra de localização.

Ctrl+Shift+G ou Shift+Enter
Localiza a correspondência anterior para a sua entrada na barra de localização.

Pressionar Alt e clicar em um link.
Faz download do destino do link.

Ctrl+U
Abre o código-fonte da sua página atual.

Arrastar um link para a barra de favoritos
Salva o link como um favorito.

Ctrl+D
Salva sua página da web atual como um favorito.

Ctrl+Shift+D
Salva todas as páginas abertas como favoritos em uma nova pasta.

F11
Abre sua página no modo de tela cheia. Pressione F11 novamente para sair desse modo.

Ctrl e + ou pressionar Ctrl e rolar o mouse para cima.
Aumenta tudo na página.

Ctrl e ou pressionar Ctrl e rolar o mouse para baixo.
Diminui tudo na página.

Ctrl+0
Retorna tudo da página para o tamanho normal.

Barra de espaço
Rola a página da web para baixo.

Home
Vai para a parte superior da página.

End
Vai para a parte inferior da página.

Atalhos de texto

Ctrl+C
Copia o conteúdo realçado para a área de transferência.

Ctrl+V ou Shift+Insert
Cola o conteúdo da área de transferência.

Ctrl+Shift+V
Cola o conteúdo da área de transferência sem formatação.

Ctrl+X ou Shift+Delete
Exclui o conteúdo realçado e o copia para a área de transferência.

Criar perfil no Orkut e conta de Email – Vídeo


Vídeo tutorial que demonstra como criar um perfil no Orkut e uma conta de email para ser usada na criação desse perfil.

Esse vídeo tutorial foi criado atendendo a vários pedidos de usuários iniciantes que não estão conseguindo criar seus perfis.



VBA Access – Como enviar emails, via SMTP, usando o CdoSys

Neste artigo irei demonstrar como enviar emails, via SMTP, usando o componente CdoSys. Este componente costuma ser instalado automaticamente com as novas versões do Windows ou quando instalamos alguns programas como, por exemplo, o Outlook.

O que é o CdoSys?

Resumidamente falando, é um componente criado pela Microsoft que tem por finalidade fornecer argumentos para o envio de emails via SMTP. Este componente fornece todos os argumentos presentes em programas de emails e webmails, tais como: título da mensagem, destinatário, com cópia (cc), com cópia oculta (cco), corpo da mensagem e envio de anexos.

Uma vantagem que temos ao usar este componente, é que podemos fornecer a opção de envio de mensagens com anexos diretamente do aplicativo, seja ele Access, Visual Basic, seja implementando em uma página web integrada à linguagem Asp ou Php, por exemplo.

Como faço para utilizar esse recurso?

Em primeiro lugar, é necessário conferir se o sistema possui a DLL CdoSys instalada na pasta System32. Caso tenha, é provável que ela esteja presente nas referências do módulo VBA do seu aplicativo. Para conferir se ela faz parte da lista, abra qualquer formulário em modo estrutura ou design e abra o módulo VBA do mesmo, ou pressione as teclas ALT+F11.   Já no módulo, clique no menu Ferramentas e depois em Referências.  Consulte na lista de referências se existe a “Microsoft CDO for Windows 2000 Library”. Em caso positivo, marque-a.

Referências

Caso ela não esteja presente nas referências, clique no botão Procurar, localize-a e confirme.  Se tudo der certo, ela já estará presente e referenciada. Caso não dê certo, pode ser que seja necessário registrá-la.  Para isso, abra o prompt do DOS ou cmd, digite regsvr32 cdosys.dll e dê Enter.  Se tudo funcionar direitinho, será exibida a mensagem de Sucesso.

OK, ela já está registrada e referenciada no VBA, e agora?

Agora chegou a hora de declarar variáveis que representarão as rotinas presentes na DLL e que são responsáveis pelo desempenho das funções que lhe são competentes.

Em primeiro lugar, precisamos declarar as variáveis que representarão o objeto CdoSys e instanciá-las:

Para acessar o tutorial completo visite o link http://usandoaccess.com.br/tutoriais/tuto38.asp

Arrays – veja como utilizá-las para simplificar e automatizar tarefas

A poucos dias atrás peguei um aplicativo desenvolvido por uma outra pessoa para fazer a manutenção e uma das coisas que me chamou a atenção foi a forma utilizada por essa pessoa para colocar o mês com as iniciais do nome em inglês. A ideia inicial seria que o mês fosse exibido sempre da mesma forma, independente das configurações regionais do computador em que o aplicativo estivesse rodando. Para isso, o programador utilizou algo como abaixo descrito:

Dim mes As String

If Format(rs!Data, "m") = 1 Then
mes = "JAN"
ElseIf Format(rs!Data, "m") = 2 Then
mes = "FEB"
ElseIf Format(rs!Data, "m") = 3 Then
mes = "MAR"
ElseIf Format(rs!Data, "m") = 4 Then
mes = "APR"
ElseIf Format(rs!Data, "m") = 5 Then
mes = "MAY"
ElseIf Format(rs!Data, "m") = 6 Then
mes = "JUN"
ElseIf Format(rs!Data, "m") = 7 Then
mes = "JUL"
ElseIf Format(rs!Data, "m") = 8 Then
mes = "AUG"
ElseIf Format(rs!Data, "m") = 9 Then
mes = "SEP"
ElseIf Format(rs!Data, "m") = 10 Then
mes = "OCT"
ElseIf Format(rs!Data, "m") = 11 Then
mes = "NOV"
ElseIf Format(rs!Data, "m") = 12 Then
mes = "DEC"
End If

Me.datacadastro = mes & Format(rs!Data, "/dd/yyyy")

A ideia seria exibir a data no formato MAY/12/2012. Funciona corretamente. O problema é que após verificar todos os módulos de formulários e relatórios, me deparei com 24 blocos desses, sendo que em alguns tinham até 3 com variáveis nomeadas como mes1, mes2 e mes3, sendo cada uma dedicada a um campo diferente do formulário ou relatório.

Se cada bloco contem 25 linhas de código, multiplicando por 24 chegamos ao total de 600 linhas. Imagina o tempo gasto no processo, mesmo copiando e colando, pois tem que alterar nomes de campos e de variáveis. Tudo isso poderia ser simplificado utilizando uma função pública, na qual seria utilizado apenas um bloco:

Public Funtion Meses(Mes As String) As String

Dessa forma, tudo seria reduzido à apenas um bloco com 25 linhas. Mas, pensando bem, podemos reduzir ainda mais se utilizarmos Arrays em uma função pública.

O que é uma Array?

Na programação, Array pode ser definido como uma variável que armazena dados de um mesmo tipo. No exemplo acima, armazenaria a inicial dos nomes dos meses em inglês.

Quando colocamos os dados que queremos em um conjunto de dados dentro de uma Array, cada um desses dados recebe um índice que, por padrão, começa no índice 0(zero) igual às coluna de uma combobox ou listbox ou mesmo os índices dos campos de uma tabela. Para utilizarmos um determinado dado do conjunto, basta passar o número do índice. Para o caso dos meses, teríamos índices de 0 a 11.

Como utilizar a Array para capturar o número do mês?

Como dito acima, cada dado de um conjunto de dados de uma Array, possui um número que o identifica, assim como os meses podem ser numerados de 1 a 12. Como a Array, na sua forma padrão, inicia no zero, podemos pegar o número do mês menos 1 para compatibilizar com o número do mês na Array.

Para facilitar o processo e deixar a função disponível para qualquer formulário, relatório ou consulta, criaremos um módulo e, dentro desse módulo, criaremos uma função pública:

Public Function Meses() As Variant
Meses = Array("JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC")
End Function

Pronto, agora basta utilizar a função Meses aonde precisarmos formatar a data. Ainda utilizando o exemplo que deu origem a esse artigo, podemos fazer assim:

Me.datacadastro = Meses(Format(rs!Data, "m") – 1) & Format(rs!Data, "/dd/yyyy")

Nesse caso, o Format(rs!Data, "m") captura o número do mês no campo rs!Data de um determinado registro. Se o mês em questão for maio, o número "m" será 5. Na nossa Array, o índice, ou seja, o número de "MAY" é 4, pois a Array começa no 0. Por isso utilizamo o – 1 para subtrair 1 número para fazer a equivalência entre o mês do registro e a Array.

Veja que utilizando Array, o número de linhas de código caiu de 600 para apenas 3, ou seja, 0,5% do total de linhas inicial. Não é uma maravilha?

Aqui finalizamos nosso artigo referente à esse assunto. Espero que possa ser útil.

Barra de progresso – como elas funcionam? Entenda as medidas e velocidades da informática

Quem já baixou algum arquivo da Internet ou instalou um programa no computador,  já viu aquelas barras que exibem o progresso do download ou da instalação do aplicativo, certo? Certo. O que muita gente pergunta é como elas funcionam e se os dados que elas exibem são fiáveis.

Bem, vamos tentar entender um pouco o funcionamento dessas barrinhas. Primeiro, precisamos saber que existem barras que exibem o progresso das mais diversas tarefas, como por exemplo: download de um arquivo da Internet, instalação de um programa, cópia de arquivos entre pastas em um computador ou entre computadores de uma rede, trabalho específico de um software como por exemplo a compilação de um vídeo em um dvd, etc.

Progresso de download

Você já deve ter observado que as informações da barra de progresso de download variam bastante, não? Por que isso acontece? Vamos lembrar como funciona a Internet e a conexão de um pc.

Quando contratamos um serviço de acesso à Internet, temos vários planos de velocidade para escolher de acordo nossas necessidades e principalmente o nível de alegria do bolso. Os planos podem ir de parcos 100 kbits/s (sim, ainda tem operadora que oferece essa merreca de velocidade) até dezenas de megabits por segundo. Pois bem, muita gente contrata uma certa velocidade e quando vai fazer um download, se decepciona ao ver que a velocidade está muito abaixo daquela contratada. Vamos entender o motivo para isso. Para tal iremos, primeiramente, entender a relação entre as diversas medidas de espaço ocupado por um arquivo no computador ou de velocidade na Internet:

bit – menor unidade de medida. Pode ser usada para representar dois estados de informações, como Sim ou Não.

Byte – 1 byte é igual a 8 bits. Em termos de armazenamento de dados, podemos dizer que em um arquivo de texto do Word por exemplo, cada caractere ocupa cerca de 1 Byte de espaço no hd;

Kilobyte – 1.024 bytes. À partir daqui, cada unidade de medida equivale a 1024 unidades da medida imediatamente anterior. O Kilobyte pode ser abreviado para KByte ou KB;

Megabyte – 1.024 Kilobytes. Abraviações: MByte ou MB. Um arquivo de música em mp3 ocupa cerca de 1 Megabyte por minuto de duração. Um vídeo mpeg com qualidade razoável pode ocupar cerca de 10 Megabytes por minuto e um vídeo de boa duração, cerca de 30 Megabytes por minuto;

Gigabyte – 1.024 Megabytes. Abraviações: GByte ou GB. Um filme de boa qualidade pode ocupar cerca de 1 Gigabyte. As memórias de computador doméstico estão agora na casa dos Gigabytes.;

Terabyte – 1.024 Gigabytes. Abraviações: TByte ou TB. Os discos rígidos domésticos mais recentes chegaram agora à casa dos terabytes. Já temos discos rígidos no mercado com capacidade de mais de 1 Terabyte;

Petabyte – 1.024 Terabytes. Abreviações: PByte ou PB. 1 Petabyte é muita coisa para um computador doméstico. À partir dessa grandeza, essas medidas podem ser vistas em grandes servidores, nos quais podem ter dezenas ou centenas ou mesmo milhares de processadores e discos rígidos para se chegar à essa medida;

Exabyte – 1.024 Petabytes. Abreviações: EByte ou EB;

Zettabyte – 1.024 Exabytes. Abreviações: ZByte ou ZB;

Yottabyte – 1.024 Zetabytes. Abreviações: YByte ou YB;

Brontobyte – 1.024 Yottabytes. Abreviações: BByte ou BB;

Geopbyte – 1.024 Brontobytes. Se o Exabyte é uma medida para a qual iremos demorar muito a ver em um pc, imagina essa. A menos que novas descobertas proporcionem um salto gigantesco para a tecnologia, levaremos milhares de anos para isso.

As operadoras oferecem o serviço em bits enquanto a velocidade de download é medida em Bytes. Mas, qual é a diferença? A diferença é que um Byte contem oito bits como vimos acima. Portanto, para saber a velocidade de download em Bytes, divida a velocidade em bits por oito. Se, por exemplo, a velocidade contratada é de 1 megabit por segundo, e considerando que 1 megabit equivale a 1.024 kilobits, dividimos 1.024 por 8 e obtemos uma velocidade máxima de 128 Kilobytes por segundo. Mas, por que as operadores de Internet usam o bit ao invés do Byte se tudo mais, ou quase tudo, é medido em Bytes? Por uma razão muito simples: para passar a sensação de que está vendendo um produto muito melhor ou muito mais veloz do que realmente é. O usuário sem conhecimentos logicamente irá preferir uma Internet de 10 megabits por segundo ao invés de uma de 1,25 Megabytes por segundo.

Quanto à pergunta inicial, se podemos confiar no tempo de download informado, eu diria que podemos, apesar da grande oscilação nas informações. Isso acontece porque o sinal de Internet não é contínuo. A velocidade real depende de diversos fatores, entre eles: o número de usuários conectados, o número de programas abertos no computador, o número de programas acessando a rede e o número de downloads simultâneos no computador. Depende, ainda, do número de usuários baixando o mesmo arquivo ou acessando o servidor aonde está o arquivo, alem da configuração do hardware do usuário.

O tempo e a porcentagem de download são medidos mais ou menos assim: tamanho do arquivo dividido pela velocidade de download no momento. Como essa velocidade pode variar, a cada momento o cálculo é refeito. Temos que considerar ainda a impossibilidade de se saber exatamente o espaço que está sendo ocupado pela parte já baixada e talvez o cálculo ser feito por estimativas. Como exemplo, vamos supor um arquivo de 10 Megabytes, o que dá 10.240 Kilobytes e uma velocidade inicial de 200 Kbytes por segundo.

10.240 / 200 = 51,2 segundos

Se ao iniciar o download a velocidade era de 200 KBytes por segundo e, tendo passado 5 segundos, a velocidade caiu para 100 KBytes por segundo, teremos, por estimativa, baixado 1.000 KBytes. Estariam faltando 9.024 KBytes, agora na velocidade de 100 KBytes por segundo. O tempo inicial de 51,2 segundos, nesse momento, estaria em 46,2 segundos (51,2 – 5 = 46,2). Refazendo os cálculos, portanto, teríamos:

9.024 / 100 = 90,24 segundos

Aqui vimos que, mesmo já tendo baixado um parte do arquivo e já tendo passado quase 10% do tempo inicialmente estimado, o mesmo quase dobrou. Aqui foi possível entendermos como os dados são influenciados.

Progresso de instalação de programas

A instalação de um programa pode ser apresentada de diversas maneiras, dependendo de como o software foi programado para informar o progresso. Dependendo do programa, dezenas, centenas ou milhares de arquivos são copiados para diferentes locais do disco rígido. A barra de progresso pode exibir a porcentagem de arquivos já copiados e uma estimativa do tempo de término com base nesse número e no tamanho do arquivo. Talvez considerando, tambem, a velocidade de processamento do hardware, que interfere diretamente no tempo.

Quando o progresso é baseado apenas no número de arquivos, poderá haver momentos em que se demora minutos para a barra alcançar 1% e de repente ela avança 50%. Isso pode ocorrer quando está copiando um arquivo muito grande e em seguida se tem vários arquivos muito pequenos.

Em muitos casos, a instalação ainda manipula o registro do windows para guardar informações necessárias à validação e funcionamento do programa e tudo isso é contado.

Há, ainda, aqueles instaladores que copiam os arquivos ou baixam o instalador real da aplicação pela Internet e que considera o download como 50% do progresso e a instalação como os outros 50%. Como, dependendo da velocidade da conexão, pode demorar horas para baixar o instalador, a sensação é que a instalação levou horas para instalar a metade do programa e instalou a outra metade em poucos segundos.

No caso de processos internos de um programa, como por exemplo a realização de um backup ou a queima de um dvd, o processo é semelhante á instalação de um programa.

Aqui terminamos esse pequeno artigo sobre o funcionamento e fiabilidade das barras de progresso. Espero que seja útil para alguns pelo menos.

Abraço e até a próxima matéria.

Como salvar videos do youtube no computador

Veja uma dica bem simples para salvar vídeos do youtube no seu computador, sem ter que instalar nada no pc.

Você pode salvar apenas o áudio em mp3 ou pode escolher entre alguns formatos de vídeo com alguns níveis de qualidade.

Alegria canina

Veja o quanto um cão se sente feliz ao ver a paisagem passando pela janela do carro.

Uma princesinha chamada Aline

A história que doravante passo a contar trata-se de um fato verídico. Os nomes dos personagens foram alterados afim de preservar suas identidades.


Alvino era um jovem de 27 anos, que morava em uma cidadezinha do Mato Grosso, porém, ele não era filho desse Estado, mas sim, do Estado de Goiás. Devido a certos acontecimentos, ele resolveu se mudar para outra cidade, essa no Estado de Minas Gerais, deixando para trás pai, irmã, primos e amigos, para ir morar com um casal de tios com os quais ele, juntamente com o pai e a irmã, já haviam morado durante uns treze anos no passado, e primos que ele já não via há algum tempo.

Era mais ou menos quinze horas da tarde do dia sete de maio de 2000, quando ele partiu da cidade onde morara por quase dez anos, rumo a Minas Gerais, chegando ao seu destino por volta das três horas do dia seguinte, uma viagem de aproximadamente doze horas.

Já eram sete horas da manhã, quando Alvino chegou na casa dos parentes. Seus tios moravam em uma casa pequena nos fundos do lote, e os primos, na casa da frente.

Alvino chegou primeiro na casa dos tios, que tinha uma entrada lateral. Lá, ele comeu um pedaço de bolo acompanhado de um copo de leite morno, enquanto colocava a conversa em dia com os tios.

Já por volta das nove horas, ele terminava de entregar algumas lembrancinhas enviadas pelos parentes do Mato Grosso, quando ouviu uma voz angelical dizer da porta:

– Sua benção, tio! Sua benção, tia!

Enquanto os dois respondiam, quase ao mesmo tempo, Alvino se virou para ver quem chegava. Era Aline, sua priminha de cinco anos de idade, filha de seu primo, que morava na casa da frente.

Alvino conversou um pouco com sua priminha Aline e, já nesse momento, ele percebeu o quanto aquela menina era especial. Ele só não poderia supor, de forma alguma, que os dois viessem a ter uma amizade tão linda e tão forte, a ponto de ele desejar de todo o seu coração que Aline fosse sua filhinha.

Como a casa dos tios era pequena, Alvino passou a dormir na casa dos primos, onde morava Aline, o que aproximou ainda mais os dois. Aline dormia com a cabecinha no colo dele quase todas as noites.

A relação de Alvino com todos, nas duas casas, era sempre harmoniosa, e tanto o pai quanto a mãe de Aline, diziam que o rapaz moraria na casa deles até que se casasse.

E assim, a amizade de Alvino com sua princesinha ia crescendo e se fortalecendo a cada dia mais, tanto que a própria Aline, por mais de uma vez, disse que se tivesse que escolher outra pessoa para ser o pai dela, com certeza essa pessoa seria Alvino.

E era assim que todo mundo via os dois. Quem não os conhecia, achava realmente que ele era o pai de Aline, pois sempre que ele ia a algum lugar, Aline estava junto. A menina parecia ter por ele uma afeição muito grande, e ele também seria capaz de qualquer coisa para proteger aquela princesinha tão especial.

Alvino costumava dizer que estava programado nos computadores celestiais que ele deveria ser o pai de Aline, mas como ele demorava a se mexer, a se casar para poder nascer Aline, e Deus já não podendo mais esperar, mandou ela como sua prima, a qual ele deveria conhecer alguns anos depois, quando descobriria o maior presente que Deus poderia lhe dar.

Alvino e Aline conviveram sob o mesmo teto durante quatro anos, os quatro melhores anos da vida do rapaz, segundo suas próprias palavras, quando ocorreu algo que abalou muito Alvino. Os pais de Aline já não estavam se entendendo até que aconteceu o inevitável, os dois se separaram, e Aline foi com a mãe morar na casa da avó. Alvino sabia que o dia que se separasse de sua anjinha preciosa, sentiria uma grande dor no peito, mas não sabia que seria tão forte. Aline também, segundo as palavras de sua avó, sentia muita falta dele. Às vezes, ela ligava para Alvino, e pedia para ele ir até lá, que ela queria vê-lo. Alvino nunca se recusou a atender um pedido da menina, mesmo porque estar junto dela era a melhor coisa de sua vida. Era algo inexplicável, Alvino sempre gostou de criança, gostava de brincar com elas, mas, depois de um tempo, se cansava. Com Aline era diferente, ele jamais se cansava de estar junto dela, talvez pelo fato dela ser tão meiga e carinhosa, um encanto de menina, que conquistava a todos com seu jeitinho humilde e cativante.

Hoje Aline tem doze anos, e continua sendo a mesma princesinha que conquistara Alvino há sete anos atrás. Alvino, apesar de vê-la toda semana, e apesar de já ter se passado mais de três anos da separação, ainda sente muita saudade dela, e sente uma tristeza que só se alivia quando ele vê sua anjinha linda. E até hoje, quando Aline não vai à casa do pai, às vezes ainda liga para Alvino, pedindo para que ele vá até a casa dela.

Amor à primeira vista

Eu não acreditava em amor à primeira vista, achava que, para amar, era preciso primeiro conhecer. A quase sete anos atrás, no entanto, um fato fez com que eu mudasse completamente de opinião.

Naquele dia 12 de Maio de 2005, estava eu e meu pai andando pela cidade até que resolvemos entrar em uma loja de artigos esportivos e entre uma vitrine e outra, a vi, encostada ao balcão. Quase perdi a fala, senti meu corpo estremecer ao ver aquela coisa linda, ruiva, cintura fina, boca pequena, orelhas também pequenas. Olhei pra ela e ela para mim, e rolou uma química meio que explosiva. Não me contive e, quase sem perceber, já estava junto dela. Bastou apenas um olhar mais penetrante para que resolvêssemos ir os dois a um quartinho reservado nos fundos da loja. O quarto era meio escuro e silencioso, ideal para um primeiro encontro.

Foi então que pude notar o quanto sua voz era macia e sedutora e seu corpo delicado e ao mesmo tempo forte e viril. Eu já estava embriagado de tanta emoção e completamente apaixonado. Não tive dúvidas, levei-a para casa e hoje sou muito feliz com ela e sempre que estamos juntos, relembro quando nos conhecemos e penso: “bendita seja aquela quinta-feira, dia em que conheci Judith, minha querida violinha”.

Entrevista de Criquio para um grande portal de programadores

A menos de um ano atrás fui eleito o “developer do mês” no svcsoftwarehouse.com, o maior portal de programadores em língua portuguesa, com grande visibilidade nos países que falam o nosso idioma. Como de praxe, fui convidado a dar uma entrevista para o site, à qual reproduzo abaixo, na íntegra.


Criquio Calavera, nome verdadeiro Valdino Campos é conhecido por ser um activo membro em diversos fóruns; MaximoAccess, Comunidade ITLAB, Orkut Brasil, etc. Criquio também se dedica à criação de software e sites. É um devoto adepto das cantoras Lorena e rafaela (www.lorenaerafaela.com.br).

1- Quais são os valores que Valdino Campos carrega e por motivo algum os deixaria para agradar alguém? Explique:
Eu não prejudicaria ninguem conscientemente nem mesmo para agradar a pessoa que eu mais amo, mesmo porque se essa pessoa tentasse me convencer a fazê-lo, é porque não é assim tão digna do meu amor e afeto. A ressalva seria no caso da pessoa amada estar sendo prejudicada ou maltratada sem merecer. Eu não gosto de mentiras e nem de enganar as pessoas. Acho que a pessoa tem que se dar bem na vida pelos seus esforços e não passando os outros para trás.

2- Sabemos que você gosta de compor. Em quem ou o quê você se inspira para criar suas composições? Já te faltou criatividade?
Em nem me considero compositor. Escrevo algumas coisinhas mais por escrever mesmo. Na verdade eu não procuro inspiração, eu deixo que brote na minha mente quando bem acontecer. Às vezes aparece um lampejo assim de repente e eu escrevo. Algumas vezes, fica uma porcaria na hora, mas depois eu vou lapidando.

3- Qual é sua formação acadêmica?
Na verdade, eu tenho apenas o ensino médio. O que sei de informática eu aprendi praticamente sozinho. Fiz alguns cursos, mas esses cursos não me deram muita base não. O que eu tenho de conhecimentos hoje, eu corri atrás para adquiri-los. Posso dizer a mesma coisa em relação à falar inglês. Eu não tenho curso, mas consigo me comunicar bem com quem fala esse idioma.

4- Fale-nos sobre sua profissão. Por que você a escolheu e o que mais lhe agrada em exercê-la?
Eu desenvolvo aplicativos de computador e webpages. Gosto porque faz a gente pensar, raciocinar. É preciso entender a lógica da programação, a lógica a que o aplicativo se destina e entender a melhor forma de fundir isso para que possa sair um trabalho útil para o usuário final. Eu gosto muito de matemática e física e, muitas das vezes, na programação eu tenho oportunidades de colocá-las em prática.

5- Quais os prós e os contra da internet? Você já se imaginou sem ela? Como seria?
A Internet nos abriu as fronteiras do conhecimento. Todo mundo pode saber tudo sobre tudo se quiser. Basta digitar o que pretende saber nos diversos mecanismos de busca e clicar em um botão. No entanto, ela é uma terra sem lei, que é ao mesmo tempo de todos e de ninguem, sendo imprescindível que busquemos a veracidade das informações a nós passadas, checando a idoneidade da fonte. A gente conhece muitas pessoas, faz novas amizades, algumas delas para a vida. Mas, se não soubermos usá-la, podemos ter grandes prejuízos, desde a infecção por virus, spywares e outras pragas que podem nos roubar informações bancárias ou outras informações sigilosas até mesmo conhecer pessoas sem escrúpulos que se fazem de grandes amigos e apaixonados com o intuito de tirarem vantagens, podendo até nos trazer risco de morte. As crianças precisam ter uma orientação e vigilância constante por parte dos pais e responsáveis, porque o que mais tem é pedófilos que se passam por crianças tambem para iludir os pequenos e tentar tirar vantagem da inocência deles. A Internet pode ser muito boa ou pode ser mortal. Cabe a nós saber usá-la com cuidado e eficiência.
Eu não arranco os cabelos se ficar sem Internet. Caso ela fuja de mim, eu vou fazer outras coisas, outros trabalhos, ver tv nas horas livres. Eu não sou viciado em nada graças a Deus.

6- O que você acha dos foruns de informática, em especial de programação? Tem desempenhado algum trabalho em foruns?
Participo de foruns aonde tento ajudar a quem precisa de informações sobre aquilo que faço de melhor, que é a programação, manutenção de computadores e outros trabalhos de informática, que vão desde o uso de determinados programas até edição de fotos, vídeos, etc. Nesses foruns, a gente acaba por dar outros tipos de orientações tambem. Na verdade, eu aprendo muito tambem, é uma partilha de conhecimentos. Muita coisa do que eu faço na área de programação, eu aprendi tentando achar a solução para dúvidas postadas nesses foruns.

7 – O que te excita na área de programação e te faz querer seguir em frente nesse ramo?
A programação dá-nos um mundo de infinitas possibilidades. Como disse, ela nos exige um grau de raciocínio mais apurado, aonde precisamos entender a lógica para termos uma base afim de elaborarmos nosso trabalho da forma mais produtiva possível. Quando não estou trabalhando com programação, eu passo o tempo exercitando a programação, sempre tentando apurar cada vez mais minhas técnicas. É uma atividade que me satisfaz, que eu pratico com alegria. Se um dia eu perder essa alegria de programar, certamente procurarei outra ocupação.

8 – O que você acha essencial em um aplicativo?
Alem de ter um bom visual e uma boa performance, precisamos caprichar na operabilidade. Um bom aplicativo, hoje em dia, é aquele que consegue associar um design bem feito e agradável aos olhos com funcionalidades que não deixem a desejar para o que o cliente precisa, juntamente com uma boa interface. Quando elaboro um aplicativo, eu procuro me colocar no lugar do usuário final. Eu imagino que quem vai usar o aplicativo será uma pessoa que provavelmente não conhece nada alem de operar um browser e um messenger. Precisamos construir uma interface o mais clara e objetiva possível.

9 – Você acha que um dia as viagens no tempo podem vir a ser possíveis?
Se disséssemos a quinhentos anos atrás, que seria construído, no futuro, um objeto capaz de viajar pelos ares levando 400 pessoas, certamente achariam que somos completamente loucos. Bem, você pode me dizer que a diferença é muito grande. Sim, hoje é, mas a possibilidade de se imaginar um avião levando centenas de pessoas a quinhentos anos atrás, era tão absurda quanto a possbilidade de viagens no tempo hoje. A tecnologia avança a cada vez mais rapidamente. De tempos em tempos, temos um salto tecnológico de grandes proporções. Existem mistérios que ainda nos são totalmente desconhecidos. Quem sabe um dia novas descobertas levantem novas possibilidade até então inimagináveis!

10 – Como você vê a informática para o futuro?
Já temos, hoje, boas prévias do que vem por ai, como por exemplo a interação wireless entre pessoas e aparelhos de tv e computador para jogos e aplicativos. Está chegando ao mercado os teclados virtuais, projetados olograficamente em uma superfície na qual podemos digitar o que queremos escrever. Já é possível projetar a imagem em uma superfície como uma parede, por exemplo. Em breve devermos ter no mercado computadores sem monitor, sem teclado e sem mouse. A nanotecnologia estará cada vez mais presente nos computadores. Existem estudos unindo física e informática bastante avançados no sentido de se diminuir cada vez mais o tamanho dos componentes. Futuramente, teremos no mercado discos rígidos do tamanho da cabeça de um alfinete com capacidade de armazamento muito maiores do que a que temos hoje.

11 – Windows versus Linux. Qual é o melhor?
O melhor sistema é aquele que o usuário mais entende ou o que tem os recursos mais adequados às suas necessidades. Houve um tempo em que Linux era sistema para experts. O usuário comum não conseguia usá-los. Alem disso, a compatibilidade do sistema com aplicativos, drives e drivers era muito pequena, tendo em vista que o Windows domina o mercado de SO. HOje em dia, esses problemas já não são mais tão evidentes. Já existem versões do Linux com operabilidade parecida com a do Windows.


Os comentários dos membros do portal podem ser visualizados no endereço da entrevista

Como adicionar emoticons nas suas mensagens no blog

Deixo aqui dicas para você personalizar suas mensagens com smiles ou emoticons. Demonstre suas emoções através das imagens. Como pode ver, alguns smiles fornecem até três opções de atalhos.

OBS: Retire os espaços.

: ) : – ) : smile :
: D : – D : grin :
: ( : – ( : sad :
: o : – o : eek :
8 O 8 – O : shock :
: ? : – ? : ??? :
8 ) 8 – ) : cool :
: x : – x : mad :
: P : – P : razz :
: | : – | : neutral :
; ) ; – ) : wink :
: lol :
: oops :
: cry :
: evil :
: twisted :
: roll :
: ! :
: ? :
: idea :
: arrow :
: mrgreen :

Lorena e Rafaela – Amor sem fim – clipe oficial

Lorena e Rafaela cantam “Con te Partirò” com incrível perfeição

Lorena e Rafaela se apresentarão em vários programas de TV esse ano

As cantoras sensação da música sertaneja estão com a agenda cheia para esse ano, com apresentações agendadas em vários canais de televisão.

As datas e horários ainda não estão totalmente definidos. Você pode conferir a agenda delas no site www.lorenaerafaela.com.br, bem como conferir as músicas do primeiro cd da dupla e baixá-lo gratuitamente. Poderá, ainda, conferir vídeos das apresentações delas.

Access VBA – Variáveis módulos e funções

Hoje estou deixando um exemplo que eu elaborei para mostrar como usar funções, variáveis e módulos em um aplicativo vba, fazendo com que o tempo de programação reduza bastante, pois essas técnicas ocupam muito menos linhas de código em diversas situações. Deixo tambem um vídeo aonde eu explico como usar esses elementos e, para completar, um texto com algumas outras explicações.
O material aqui postado destina-se aos programadores em início de aprendizado. Espero que seja útil

Link: http://dl.dropbox.com/u/5454503/TNI.zip

Programação VBA – Usando variáveis, funções e módulos


Quando começamos a aprender programação, somos apresentados a três grandes amigos: O If, o Else e o Then. Com essas instruções, que significam SeEntão e Caso contrário, podemos passar um grande número de comandos para o nosso programa.

Isso todo iniciante em programação sabe, certo? Acontece que, por vezes, precisamos referenciar uma mesma ação diversas vezes utilizando os mesmos campos em diversos formulários. Imagine um sistema com 1 formulário. Esse formulário tem um subformulário que pode receber como fonte de objeto 20 outros formulários que contem, cada um, 20 botões de comando para o qual o usuário irá clicar em um desses botões dependendo de uma escolha. Imagine ainda que tenham 20 caixas de texto que Irão guardar a escolha do usuário no formulário principal. Se formos escrever tudo isso em Ifs e Thens, serão necessárias umas 40 linhas de código para cada botão. Multiplicando 40 por 20 botões e ainda por 20 formulários, chegaremos ao total de 16 mil linhas de código. Isso para cada tipo de comando que necessitarmos passar ao nosso aplicativo. Agora, imagine que dependendo da situação, precisaremos passar uns cinco tipos de comando diferentes. Essas 16 mil linhas pulam para 80 mil linhas de código. Mesmo copiando e colando o código em todos os botões, isso levará um bom tempo para ser feito, concorda?

É aqui que entram as variáveis, as funções e instruções como Do e For.

A matemática nos ensina que uma variável é um termo utilizado para representar um valor desconhecido, que pode assumir uma infinidade de valores dependendo da necessidade. Na programação, variável é um objeto capaz de armazenar na memória um valor ou uma expressão. As variáveis são usadas em tempo de execução, ou seja, uma vez fechado o objeto do qual ela faz parte, seu valor se perde.

E o que são funções na programação? Uma função pode ser compreendida como um encapsulamento de instruções e variáveis que podem ser chamadas a qualquer momento por diversos controles sem a necessidade de escrevê-los repetidamente para cada controle. Existem funções privadas e funções públicas. As funções privadas só podem ser chamadas por controles que estejam dentro do formulário ou relatório no qual ela foi declarada. Esse tipo de função deve ser usado em casos aonde os comandos serão utilizados apenas para o objeto do qual a função fizer parte . As funções públicas, por sua vez, podem ser chamadas em qualquer formulário ou relatório. Se os comandos que você vai passar para o aplicativo precisar ser repetido para mais de um objeto, sendo esses objetos, formulários, relatórios, consultas, macros, etc, declare a função como pública.

Quando temos diversas funções, podemos abrigá-las em módulos.

Instruções como Do e For servem para fazer com que um comando seja repetido enquanto uma condição for verdadeira. Por exemplo:

Do While Variável <= Campo → Faça enquanto a Variável for menor ou igual ao Campo
For Each txtVar In Me.Controls
 → Para cada txtVar na minha lista de controles

A instrução Do termina com um Loop, que faz com que a instrução seja repetida até que a condição imposta deixe de ser verdadeira.

A instrução For termina com um Next, que faz com ela passe para o próximo controle da lista após analisar o controle anterior.

No caso citado acima, é essencial que os objetos e controles do aplicativo tenham nomes em comum. Por exemplo, se temos 20 formulários, 20 botões de comando e 20 caixas de texto, usaremos como nomes para os formulários frm01 até frm20, para os botões, usaremos btn01 à btn20 e para as caixas de texto usaremos txt01 à txt20.

Dê uma olhada no vídeo aqui postado e nos módulos aplicativo para entender melhor como tudo isso funciona.

Espero que goste e que possa ser útil para o seu aprendizado.

Pode ser que esse texto passe por edições periódicas afim de ficar cada vez mais mais completo e claro de ser entendido.

PR2 – o robô que joga sinuca e busca a cerveja

A Willow Garage, empresa especializada em desenvolvimento de hardware e software para robôs, acaba de anunciar a chegada do PR2 — um modelo de robô que joga snooker e busca garrafas de cerveja no refrigerador.

O PR2 foi desenvolvido em conjunto com a Universidade Berkeley, da Califórnia, e teve suas habilidades implementadas pouco a pouco.

O PR2 foi criado em junho de 2009. Na época, era capaz de andar pelo ambiente, abrir portas e se plugar sozinho em uma tomada.

O robô recebeu rotinas de programação contendo cálculos de física para se orientar no jogo de snooker.

Alem da função de jogar snooker, PR2 tambem tem excelente habilidade e coordenação motora para abrir geladeiras e pegar garrafas de cerveja.

O robô conta com câmeras de alta resolução para reconhecer as garrafas pelo desenho dos rótulos e escolher a marca solicitada.

Alem de jogar snooker e buscar sua cerveja na geladeira, PR2 ainda consegue dobrar toalhas com perfeição. Ou seja, é um robô que pode agradar tanto aos homens quanto às mulheres.

O robô tem o início das vendas previsto para setembro, mas não foi divulgado o preço para o usuário final.

E aí, quem se habilita a ser o feliz amigo de um PR2?

* * *

VBA/Access como linguagem de programação

Tem se falado muito sobre a performance dos sistemas desenvolvidos em Access e a consistência dos dados. Muitos programadores de outras linguagens depreciam o Access, dizendo que o mesmo foi feito para principiantes, que é uma brincadeira de criança, devido à aparente facilidade de se desenvolver um sistema nele.

Na minha opinião, o que fez muitos desacreditarem no Access, foi essa falsa ideia que surgiu de que criar sistemas nele era tarefa para qualquer um e, por isso, começou a surgir muita besteira feita no Access (lógico que uma ferramenta usada por “qualquer um” só poderia dar nisso). Na verdade, uma agenda simples pode sim ser feita por qualquer usuário, mas o Access vai muito alem disso, muito alem mesmo. Podemos fazer praticamente o que quisermos nele. A questão é que “qualquer um” não sabe nem o que é vba, sql, api, dll, ocx, integração com elementos feitos em flash, acesso por odbc, asp, php, não fazem nem ideia do que é lógica de programação, normalização relacional e etc. Por isso, devido às várias lambanças feitas por “qualquer um”, até mesmo programadores tarimbados no meio viram o Access com um olhar desacreditado e, por isso mesmo, muitas das vezes, nem se interessaram em checar se a ferramenta era mesmo ruim ou não.
Na verdade, “qualquer um” nem é culpado por isso, pois “qualquer um” foi induzido pela própria Microsoft de que era fácil desenvolver sistemas no Access. O problema é que a Microsoft não explicou a diferença entre fazer uma agendinha usando assistentes e macros e desenvolver um sistema robusto para uma empresa.

O Access é uma ferramenta que oferece uma plataforma de trabalho recheada de recursos prontos para serem usados, no entanto, a maioria desses recursos podem ser melhorados e até modificados via códigos vba e sql. O usuário comum não faz ideia de como fazer isso, nem mesmo da existência de tais possibilidades. Por isso criou-se a falsa ideia de que o Access é brincadeira para criança.

Lógico que o Access, assim como qualquer ferramenta de programação, tem seus prós e seus contras. Cabe ao programador identificar os pontos fracos e procurar soluções de adaptações e/ ou implementações, assim como ocorre com qualquer outro SGBD.

O Access possui uma incrível capacidade de integração com componentes dll, ocx, flash entre outros, alem da possibilidade de se trabalhar em conjunto com as APIs do Windows, o que aumenta substancialmente as possibilidades de criação, pois temos milhares desses componentes citados acima alem de milhares de APIs prontas a serem integradas ao sistema, isso sem contar os controles ActiveX que poderão ser adicionados ao aplicativo.

No quesito segurança, existem várias soluções que podemos implementar para tornar os sistemas práticos e seguros.

Por tudo isso podemos afirmar que o Access pode ser uma ferramenta extremamente poderosa nas mãos de quem sabe utilizá-lo com maestria ou pode ser um brinquedo nas mãos do usuário comum. No entanto, o usuário comum criará suas agendinhas simples enquanto o programador competente criará verdadeiros sistemas.


Novo BBB entra na lista de integrantes do programa

A lista inicial de integrantes do BBB 12 está completa novamente. O vendedor Ronaldo, de 31 anos, entra no lugar do advogado Netinho, que desistiu na última hora.

Espera-se que novos integrantes entrem no programa com o decorrer do mesmo, como aconteceu em outras edições.

Veja, abaixo, a foto do novo integrante.

Divulgada lista dos integrantes do BBB 12 2012

Nessa quarta, dia 4, Boninho divulgou a lista dos 12 integrantes iniciais do Big Brother Brasil 2012, que está na sua décima segunda edição. Um deles, o advogado Netinho, desistiu na última hora, mas até o momento não foi anunciada nenhuma substituição.
Para falar a verdade, eu não curto o programa, preferiria que colocassem programas educativos no lugar, pois a tv aberta brasileira está muito carente de programas que realmente edifiquem a educação no país. Mas, como gosto cada um tem o seu, deixo abaixo as primeiras imagens dos integrantes dessa edição, para aqueles que curtem. As imagens foram retiradas do site oficial do programa.

Este slideshow necessita de JavaScript.

Meus softwares – aplicativos que eu criei

Eu sou um grande entusiasta de tecnologia, computação, matemática, física, etc. Como parte disso tudo, me enveredei, anos atrás, pelos caminhos sinuosos e deliciosos da programação. Desde então, tenho criado diversos aplicativos, graças à persistência e procurando aperfeiçoar minhas técnicas a cada dia. Como resultado, tenho criado alguns aplicativos para clientes de diversas partes do Brasil e até no exterior tem software meu em operação.

Deixo abaixo telas de alguns desses softwares, entre os quais há aplicativos para cadastros diversos, envio de email, criação de cartões natalinos com imagem e texto, os quais podem ser formatados e alterados, etc:

Este slideshow necessita de JavaScript.

Novo look do superman no filme com Henry Cavill

Superman terá um novo filme, dessa vez com Henry Cavill no papel principal. Esse será o superman mais diferente de todos, com um novo visual e novo uniforme. O azul está bem mais escuro na nova vestimenta. Pelo menos nas imagens até o momento divulgada, o heroi não usa a cueca vermelha por cima da calça como nos filmes anteriores. O S do peito do voador azul tambem está um pouco diferente do habitual, com traços mais largos. Veja foto abaixo e vote na enquete mais abaixo ainda.

Minhas opiniões nos portais de notícias

De vez em quando, ao ler alguma notícia em sites que permitem comentários, acabo opinando sobre o assunto da notícia. Abaixo deixo algumas dessas opiniões. Você pode ler as reportagens clicando no link “Criquio Calavera” em cada um dos artigos.

10 perguntas que assombram a humanidade

Uma lista com as respostas para a vida, o universo e tudo mais.

Meu comentário:

Cricrio Calavera
em 1/1/2012 às 09:48h

Vou dar a minha versão para algumas das perguntinhas acima: 4 – Ao meu ponto de vista, basta analisar a cadeira do corredor. O primeiro braço é o da esquerda para quem fica à direita do corredor e vice-versa. Portanto, para cada cadeira da direita do corredor, o seu braço é o da esquerda e a última cadeira terá dois braços. Para cada cadeira da esquerda do corredor, se aplica o inverso. 6 – Aqui eu não concordo com a afirmativa. Acredito que pode acontecer de o telefone errado estar ocupado, mas nesse caso não chegamos a perceber que havíamos ligado para o telefone errado, pois ninguem atendeu para dizer que não era o telefone correto. 7 – Nesse caso, nem sempre eu acho que a minha fila anda mais lentamente. Acontece dela chegar mais rápido às vezes. Mas, no geral, acredito que não haja muita diferença, pois cada fila terá serviços mais rápidos e serviços mais demorados, sendo que no geral, ambos se equiparão de alguma forma, apesar de que outros fatores possam interferir, como por exemplo a eficiência do atendente. 10 – Nem sempre a questão é a pilha fraca. Pode ser mal funcionamento por sujeira dentro do aparelho ou algo assim. Assim sendo, em alguns casos, realmente pode fazer a diferença apertar mais forte ou mais vezes até que o efeito desejado seja conseguido.


7 Coisas que você não sabia sobre vírus

Conheça um pouco mais sobre o intrigante universo dos vírus e entenda por que todos devem se proteger dessas pragas.

Meu comentário:
Cricrio Calavera
em 29/12/2011 às 10:35h

Recebo mensagens de “bancos” todo o tempo e mais várias outras mensagens suspeitas. Mas como sou precavido, jamais clico em links que recebo em email, redes sociais e messengers. Quando vejo, pelo assunto, que é de algum “banco”, já nem abro, vai direto para a descarga. Faz mais de 15 anos que navego na Internet e meu pc nunca teve problemas sérios com virus. Por isso digo, o melhor antivirus é o usuário. Tem gente que clica em tudo que vê pela frente. Não pode ver um link escrito “caiu na net fotos da Angélica nua” que já estão clicando. É como diz o ditado: “enquanto tiver incautos para clicar em tudo que vê, o trabalho dos crackers está garantido”.


LHC, a resposta para a origem do universo

O maior e mais ousado projeto já criado pelo homem está a um passo de desvendar os segredos do Big Bang, saiba mais sobre o acelerador de partículas.

Meu comentário:

Cricrio Calavera
em 1/1/2012 às 10:34h

Esse é um experimento realmente impressionante. Eu sou um aficionado por tecnologia e adoro as exatas. A dúvida é: mesmo que consigam criar um efeito semelhante ao que imaginam que teria sido o Big Bang, isso provaria de fato o que ocorreu naquela era remota do universo? Acredito que não podemos desconsiderar o fato de que aqui o efeito foi causado por alguem, ou seja, teve alguem que fizesse com que ele se iniciasse. Nada aconteceria se não houvesse toda uma preparação e toda uma equipe envolvida. Será que isso não nos levaria à possibilidade de que o Big Bang teria sido provocado por uma entidade superior à qual poderíamos chamar de Deus? Ou será que, ao contrário do que acontece aqui, naquela era houve condições adversas que fizessem com que partículas se chocassem de forma tão violenta a ponto de se desintegrarem e tomarem sentido contrário, se unindo às partes de outras partículas, sendo tudo isso em velocidades tão grandes que fizessem com que tudo se repetisse em cadeia e de forma a se expandir em tal velocidade que permitisse a criação de uma grandeza tão abrangente como o universo e tudo que nele há? Eu acho que ainda é pouco para garantirmos tudo isso com exatidão. Acredito que esse experimento será um grande passo, mas ainda necessitará de complemento. No entanto, estamos caminhando cada vez mais rápido à solução dessa equação.


Mito ou Verdade: placa de vídeo onboard não presta?

Um dos grandes mitos envolvendo componentes de um computador é de que placas de vídeo onboards não são lá grandes coisas. O Baixaki pesquisou e trás a resposta agora até vocês!

Meu comentário:

Cricrio Calavera
em 25/12/2011 às 22:47h

Basicamente, eu definiria as vantagens e desvantagens das duas da seguinte forma: placa offboard é boa para quem joga jogo muito exigente. A onboard é ótima para quem não joga jogos muito pesados e ainda tem uma outra vantagem significativa: ela gasta bem menos energia do que a placa offboard. Então, meu amigo, se você precisa apenas de Internet, mensageiro, editor de texto, planilhas e executar som e vídeo, fique com a onboard mesmo que você estará economizando no preço do equipamento de imediato e estará economizando a longo prazo no gasto de energia elétrica. Como eu não sou um extreme gamer, meu pc com placa onboard está excelente. E ainda rodo alguns jogos um pouco exigentes nele, apesar de que o maior uso que faço dele é para desenvolver aplicativos e webpages, tarefas extremamente simples.


Onde estão os ETs? Procure em planetas não similares a Terra

Pesquisadores acreditam que planetas iguais ao nosso não são os únicos habitáveis do universo.

Meu comentário:

Cricrio Calavera
em 23/12/2011 às 19:44h

Eu acredito na possibilidade de ter outros tipos de vida diferente da nossa, que não necessitem dos mesmos fatores terrestres para existirem. Temos no universo muitas galáxias, cada uma com muitos sistemas planetários, em uma (talvez) infindável quantidade de planetas. Aqui mesmo na Terra existem bactérias capazes de sobreviver a ambientes altamente tóxicos e que seriam mortais para os seres humanos. Quem sabe existam seres vivos adaptados ás condições de seu planeta. Talvez seres que não resistiriam à vida na Terra, assim como nós provavelmente não resistiríamos no planeta deles. Talvez exista uma população milhares de anos mais evoluída que nós, que até saibam da nossa existência mas não querem ou não podem vir aqui, mesmo com tecnologia muito mais avançada que a nossa. Ou talvez estejam entre nós sem que saibamos, porque talvez possam ser habitantes de planetas idênticos à Terra tambem, nos quais nós poderíamos viver. O universo é muito grande e muito misterioso para que possamos elaborar teorias baseadas nos poucos conhecimentos que temos em relação ao nosso planeta. Talvez a realidade seja muito diferente longe daqui, a milhares ou milhões de anos luz da Terra.


Pesquisadores descobrem que você pode aprender enquanto sonha

A ideia transmitida pelo filme A Origem pode não estar tão longe da realidade quanto você imagina.

Meu comentário:

Cricrio Calavera
em 28/12/2011 às 00:51h

Houve uma época, quando eu era mais guri, que eu tinha pesadelos constantes. Acontecia de eu perceber que não conseguia me mexer e ficava tentando me mexer. Ficava sem fôlego, muito cansado, até acordar. Depois de um tempo, consegui controlar isso. Quando percebo que estou entrando nesse estágio, simplesmente relaxo e não mexo um músculo sequer. Depois disso, nunca mais tive esse tipo de pesadelo, pois eu desperto na mesma hora ou então mudo de sonho para coisas mais leves. Mas acontece muito de eu saber que estou em um sonho e fazer muita coisa legal. Dia desses, eu estava desenvolvendo um programa de cadastro e controle de documentos para uma exportadora de São Paulo e aconteceu de eu entrar em uma questão meio complexa, que envolvia loop em três tabelas, nos quais eu tinha que pegar um registro de uma primeira tabela, fazer um ciclo pelos registros relacionados em outra tabela, e a cada registro desse ciclo, dar um loop em registros relacionados de outra tabela. Tudo isso para imprimir uma lista classificada em três níveis em um relatório, com uma soma do total em um campo no rodapé. Fiquei um tempo pensando como faria isso, mas o sono estava chegando e eu não conseguia racionar. Então fui dormir. Por uma dessas casualidades sinistras da vida, sonhei com a forma de contornar a situação. Quando acordei, no outro dia, coloquei-a em prática em poucos minutos.

Poemas – Lira casual

Abaixo deixo algumas poesias do livro do meu amigo

Wilmar Rosolen Pimentel,

escritor, compositor e violeiro.


PAIXÃO DERRADEIRA

Eu busco na noite
a estrela primeira
nos bares, taças cheias
p’ra sufocar a paixão derradeira…
Calçadas e calçadas eu ando
para me esquecer que sou tão sozinho
Só do vento – tenho companhia
Só do vento – tenho carinho…

A nostalgia invade- me o peito
e louco tento de tudo fugir
e finjo minha própria dor
cantando canções p’ra me distrair
E quando eu passo e um bar
me abre as portas e me convida a entrar
pego a primeira mulher que encontro
e nos seus braços me deixo enamorar

Depois com os olhos fundos de orgia
e o cansaço de tentar não morrer
volto ao abandono e me desprezo
me fecho e a ninguém quero ver…
E com a boca amarga maldigo a sorte
a morte… – este pensamento que não me deixa
e brindo com fel a boêmia – refugio da dor
solidão, abandono e queixa…


O QUE HOUVE COM O PERFUME?

O que houve com perfume daquela rosa
que havia no jardim à beira do lago?
que fim levaram os beija-flores
que vinham aos bandos sugar o néctar
das flores que haviam por lá?
e as borboletas?
onde estão as borboletas que bailavam
aos raios do sol a música do zéfiro amante
numa coreografia mágica e só delas?
e as abelhas – pingos doirados
de luz e mel, que brincavam entre as vagas do jardim?
e o poeta que cantava em seus versos
esse festival gracioso de vida e candura
num lirismo suavemente adocicado
em que ele mesmo se faz parte dos seus versos?
onde andam todos?
por que já não se fazem mais os versos
que falam de luz, mel, perfumes e flores,
principalmente as flores? será que encontraram algo mais belo e forte,
ou será que perderam o encanto que tinham pela natureza?
existe por acaso, algo mais apaixonante?
e as musas, existem ainda
ou será que também foram deixadas de lado
como tantas outras coisas
que no tempo ficaram sepultadas
pela eternidade sem glórias?


FUGA

Este pranto que dos meus olhos flui
Nest’ hora em que a cismar minha alma antiga
Inquieta, ao tentar evitar evitar- me à esmo
No abismo da vida rolar periga.
Sinto a morte de mim se aproximando
E seu ar gelado a roçar- me as pálbebras
O desespero domina o meu ser
Que em vão procura a luz e não vê paz…

Nesta angústia de viver no abandono
Vou perdendo a fé e até minha crença
Tudo é martírio – solidão – Dues!
Por que deste- me esta cruel sentença?
pobre alma esta que carrego comigo
Escrava de si, é presa ao passado
Tem profundas cicatrizes que a vida
Cruelmente com seu ferro tem deixado.

Contudo, se a morte me der conforto
E para sempre findar esta angústia
Que venha buscar- me enquanto é noite
Quero morrer antes do raiar do dia…
Já que a vida é só tormento e dor
E até meus sonhos deixaram- me ao léu
Que me resta se nem a luz eu encontro
Mesmo quando em fuga procuro o céu?

Foge- me a esp’rança – já não sei de mim
Já nada resta e nada importa agora
Eis que o fantasma da morte me chama
Fecho os olhos – já é finda minha hora…
Deixo pois gravado aqui para sempre
Minha última aventura nesta terra
Perdoem- me portanto aqueles que vêem
Pecado na alma que por amor erra…

Kimi, onde está você?

Eu conheci Kimi e sua mãe em uma pequena vila do sertão. Nunca soube o nome da mãe e nem do pai de Kimi. A única coisa que fiquei sabendo, e que me deixou muito irritado, foi o fato de que o pai da menina era muito mal para ela e para a mãe. A sorte era que ele ficava muito tempo fora de casa, tanto que nem cheguei a vê-lo direito, a não ser em uma única vez que o vi passando pelo quintal, mas não vi muita coisa mais que um vulto.

Kimi era uma garotinha de uns cinco anos de idade, linda, meiga, inteligente e muito carinhosa. Eu não conseguia entender que necessidade alguem poderia ter em maltratar uma pessoinha como Kimi. Você assistiu aquele filme de uma menina paranormal chamada Matilda? Kimi se parecia muito com Matilda quando tinha a idade dela.

Matilda

Foto de Matilda

Pois bem, nessa época, estávamos eu, meu pai e minha irmã em uma casa nessa pequena vila e a mãe de Kimi reclamava dos maltratos do marido e dizia ter muita vontade de fugir daquele lugar e que queria fazê-lo aproveitando os longos períodos em que o malvado ficava fora de casa.
Resolvemos, eu e meu pai, que as ajudaríamos a se verem livre do fascínora. Não morávamos naquela casa onde as conhecemos, e não me lembro muito bem o que exatamente estávamos fazendo ali, mas resolvemos trazê-las conosco.
Não me recordo bem o que aconteceu, mas a mãe de Kimi teve que sair às pressas com a menina de lá e quando ficamos sabendo disso, resolvemos procurá-las para tentar descobrir o que tinha acontecido e onde elas estariam. A essa altura, já estávamos apenas eu e meu pai e não sei por qual motivo, nos separamos na busca por Kimi e sua mãe. Me lembro que peguei uma carona em um carro de um senhor que me levou até uma cidade da qual nem fiquei sabendo o nome.
Nessa cidade, encontrei meu pai com seu violão da frente verde. Foi uma ideia que ele teve, tendo em vista que vez ou outra, ele ou eu tocávamos violão e Kimi adorava ouvir nossas músicas. Meu pai tocava o violão de vez em quando, na esperança de que, se a menina ouvisse, acabaria por reconhecer.
Em um determinado momento, estávamos em frente a uma espécie de casa social, grande, se parecendo com o prédio de uma escola, onde tinham diversas pessoas no pátio cercado por uma grade. A situação lembrava um ambiente onde tinha acontecido alguma guerra ou catástrofe natural, e aquele prédio seria um apoio às pessoas que por algum motivo estavam precisando de alguma ajuda.
Encostamos em uma parte do muro e meu pai começou a tocar alguma coisa. De repente, eis que surge, em uma das portas daquele prédio, Kimi e sua mãe. A menina estava radiante de felicidades. Ela veio correndo em nossa direção e se abraçou com meu pai, que estava mais à frente e mais perto dela. Eu a peguei nos braços logo em seguida. Kimi estava com um sorriso e um olhar de felicidade radiantes. Dei um beijo no queixo dela e ela ampliou ainda mais aquele lindo sorriso. Eu estava muito feliz por tê-las encontrado, e foi nesse momento que acordei e percebi que, apesar de parecer tão real,a ponto de até hoje eu lembrar todos os detalhes, tudo não passou de um sonho.
Talvez eu tenha vivido algo assim em uma vida passada ou talvez Kimi seja dessa vida mesmo e esteja em algum lugar. A única certeza que eu tenho, é que permanece a pergunta:
“Kimi, onde você está?”

Interagindo com o alem

Essa noite que passou eu tive um encontro com minha tia Tuniquinha e mais duas amigas dela. Inicialmente estávamos eu e ela andando por uma rua da cidade. Estávamos vindo da casa de minha prima, uma das filhas dela.

Tia Tunica, como a chamamos, estava andando rápido e sem dificuldades, diferentemente do habitual, pois em sua idade já avançada, o costume mais usual era andar devagarinho, com uma certa dificuldade. Eu comentei com ela:

– Está andando rápido, tia.

Antes que ela falasse algo, me lembrei o motivo:

– Ah, lembrei. A senhora está assim porque já está morta, não é?

– Depois que partimos dessa vida – disse ela – os problemas se vão.

Pouco tempo depois, chegamos à uma casa aonde tinha mais duas amigas dela, tambem já falecidas.

– É aqui que ficamos quando viemos à esse mundo – disse tia Tunica.

– Vocês ainda sentem fome? – perguntei, ao ver que elas estavam preparando comida. Tinha tambem uma garrafa de coca dessas de dois litros, com aproximadamente um quarto do conteudo, em cima de um móvel,o qual não me recordo bem o que era.

Uma das amigas de tia Tunica disse que não sentem fome, mas sentem o gosto da comida, e que as pessoas que partiram para a outra dimensão gostam de comer as comidas que comiam quando pertenciam à nossa dimensão. Imagino que deve ser um prazer dobrado comer tais comidas, uma vez que, na atual condição, a comida não faz mais nenhum tipo de mal. Talvez eu esteja enganado. Vou ver se da próxima vez que a gente se encontrar, eu me lembre de perguntar isso.

Conversamos mais um pouco e então mudei de sonho, ou acordei, não me lembro ao certo agora.

Bem, foi apenas mais um sonho, entre outros que já tive com minha tia e meu tio falecidos. Mesmo sabendo que não mais pertencem à nossa dimensão, nos sonhos não sinto nenhum tipo de medo. A gente conversa sobre coisas desse mundo e sobre coisas do outro mundo ao qual eles agora pertencem. Conversamos naturalmente,como o fazíamos antes de suas partidas.

Não sei se esse tipo de sonho é comum, digo, sonhos em que sabemos estar conversando com quem não está mais entre nós, só que sei que tenho esses sonhos às vezes.

Álbum de fotos de Lorena e Rafaela

FIA muda a tabela de pontuação da Fórmula 1 para 2010

Citação

FIA anuncia mudança na tabela de pontuação da Fórmula 1 para 2010

O Conselho do Automóvel, subordinado à Federação Internacional de Automobilismo (FIA), decidiu nesta sexta-feira modificar a tabela de pontuação do Mundial-2010 de Fórmula 1.”Devido à extensão do grid de largada e seguindo as recomendações da comissão de Fórmula 1, será colocado em andamento um novo sistema de pontuação para a temporada 2010″, anunciou a FIA em um comunicado.Na quinta, a comissão de Fórmula 1 da FIA, formada por acionistas das escuderias, promotores, fornecedores e patrocinadores, propôs uma tabela na qual o vencedor somaria 25 pontos, o segundo 20, o terceiro 15, o quarto 10, o quinto 8, o sexto 6, o sétimo 5, o oitavo 3, o nono 2 e o décimo 1.Até agora, a pontuação era 10, 8, 6, 5, 4, 3, 2, 1.A prosta foi finalmente ratificada pelo Conselho Mundial, reunido nesta sexta, e será aplicada a partir de 2010.

Tendências de ataques virtuais em 2010

Aprenda a se proteger de ataques que podem ficar populares em 2010

Da redação em 26/Nov/2009
O ano de 2009 praticamente acabou. Entretanto, o mundo virtual não pára. Aliás, o mundo virtual parece girar mais rápido que o mundo real. O cenário de ataques virtuais em 2010 já começou a ganhar contornos e palavras até então pouco usadas, como engenharia social.O ponto positivo, digamos assim, da tendência de ataques é que o usuário, você, será um dos grandes responsáveis por manter o computador livre de vírus. Essa responsabilidade poderá ser pesada caso não consiga diferenciar um site falso de um verdadeiro ou tenha o costume de clicar em tudo que recebe por email, por exemplo.

Para facilitar um pouco as coisas, explicaremos como evitar os principais ataques que podem acontecer no cenário “perigoso” em 2010, segundo relatório divulgado pela Symantec, famosa empresa de soluções digitais.



ANTIVÍRUS? É O MÍNIMO
O que é: Quando a indústria reconhece que a abordagem atual dos antivírus não é eficiente para proteger o computador contra ameaças polifórmicas (vírus que se transformam para enganar o antivírus) e programas fraudulentos, que dizem ser de segurança, mas não são, e investem na divulgação de formas de prevenção, é porque a situação não está boa. Este é o cenário atual da indústria de segurança digital.

O que fazer: É só instalar um antivírus de sua preferência e ler a matéria para aprender a evitar ataques diretos. Não tem mais o que fazer 😉



ENGENHARIA SOCIAL: O ALVO É VOCÊ

O que é: Sabe quando um político pede seu voto e em troca promete melhorias no bairro? Só que as melhorias nunca chegam e, para piorar, ele é preso por desvio de verbas públicas? Nesse cenário, ele usou sua confiança e o roubou.  Isso é engenharia social. Na internet, dizem para você clicar em algo, dizem que você vai ganhar 1 bilhão de dólares caso repasse o número da conta corrente, dizem que o banco envia email pedindo senha, mas isso NUNCA acontece. O que acontece de verdade é o download de vírus.

O que fazer: NUNCA clique em algo que você NÃO conheça. SEMPRE desconfie dos emails que pedem para você baixar algum arquivo, principalmente arquivos que você não conheça. Se você tiver dúvida entre o verdadeiro e o falso, tente falar com a pessoa que enviou o arquivo. Isso é o suficiente. Se você não conhece a pessoa que te enviou o arquivo, pode deletar. 


PROGRAMAS DE INSEGURANÇA

O que é: Atualmente vivemos uma época de enxurradas de programas de segurança. O problema é que nem todos protegem o computador, muito pelo contrário. Facilitam a entrada de vírus e, em alguns casos, tornam o computador inutilizável.

O que fazer: Faça download de programas de segurança em sites de download confiáveis, como o Superdownloads, por exemplo. Outra coisa que você poderá fazer é instalar o Remove Fake Antivirus. Ele consegue reconhecer os programas de segurança falsos instalados no PC. Em todo o caso, sempre faça o download em sites de confiança.


APLICATIVOS PARA REDES SOCIAIS

O que é: Com o passar dos anos, as redes sociais ficam mais e mais populares. Chegaram num ponto em que o usuário pode instalar aplicativos para personalizar ainda mais sua página. O problema desses aplicativos é que eles são desenvolvidos por terceiros e a chance do aplicativo ter brecha de segurança é muito grande. Se alguém explorar a falha, o usuário arcará com a conseqüência sem ter chance de se defender.

O que fazer: Torcer pelas redes sociais terem medidas pró-ativas para evitar que aplicativos inseguros fiquem disponíveis para instalação.



SPAM EM MENSAGENS INSTÂNTANEAS

O que é: Você já recebeu uma mensagem de algum contato da lista do MSN e perguntou para ele se era vírus? Pois bem, a Symantec prevê que a cada 300 mensagens enviadas, uma seja desse tipo. Esses links poderão te levar para um site que poderá infectar seu computador de alguma forma que você não consiga perceber.

O que fazer: Leia com atenção sempre o que pedem para você clicar. Veja se tem sentido e SEMPRE pergunte para a pessoa que enviou o link se está correto. Caso você tenha sido infectado e seu MSN esteja disparando mensagens sem sua autorização, use o MSN Photo Virus Remover.



ENCURTAMENTO DE URL

O que é: Já falamos sobre o assunto aqui. Sabe quando você está no Twitter e alguém indica certo link? O link normalmente está encurtado por serviços como Tiny URL ou outros do gênero.  O problema é que não dá saber o verdadeiro domínio da URL quando está nessa forma.  Algum usuário pode se aproveitar disso e colocar links falsos, que poderá infectar seu PC.

O que fazer: O jeito mais simples é instalar o Long URL Please, que é uma extensão para o Firefox que exibe a URL por trás da URL encurtada. Outro método é tomar cuidado com quem indica o link para clicar. Assim como no caso do MSN, sempre pergunte se o link está certo quando estiver em dúvida. Sempre fique desconfiado.


MAIS FORMAS DE ATAQUE

Outras tendências de ataques, como vírus especializados, ataques massivos no Windows 7, crescimento de ataques em Mac e dispositivos móveis e spam em outros idiomas são ataques sem soluções por enquanto. Como dissemos, o antivírus é importante, mas o comportamento do usuário é tão importante quanto. Portanto, sempre desconfie de emails que dizem que você “ganhou um prêmio” ou que pedem para baixar “fotos da viagem em porto de galinhas 2009”.

Já viu um gol contra tão estúpido assim?

 O Anderlecht venceu o Roeselare por 3 a 1, pelo Campeonato Belga, no último sábado. Entretanto, o que mereceu destaque no jogo foi o segundo gol dos donos da casa.

O goleiro do pequeno Roeselare, Jurgen Sierens, de 33 anos, se enrolou todo e protagonizou um dos piores gols contra da história do futebol. Tem gol contra pior?

Estúpido gol contra de goleiro

Curso de formatação e instalação do Windows XP – por Criquio Calavera – O Lobo Solitário

Nesse curso, tento explicar de forma detalhada, como fazer backup de seus drivers e dos arquivos importantes. Depois, explico os passos necessários para se formatar um hd e instalar o Windows XP. Por último, explico como reinstalar os drivers os quais foi feito backup antes da formatação.

Espero que goste, foi feito com carinho.

Você pode baixar uma cópia desse video juntamente com o simulador de instalação do Windows, alem de uma versão demo do Driver Genius. Clique aqui

Criquio Calavera

Dois anos depois

Pois é, faz mais de dois anos q postei aqui pela última vez. Resolvi voltar hoje só para dar sinal de vida mesmo.
Depois escrevo mais.
Até.

Preguiça

Pelo fato de eu ser muito preguiçoso, escrevo mais este dia para dizer que não vou escrever mais.
Abraços

Primeiro dia

Eu acabei de instalar o MSN e estou me familiarizando com o programa. Parece legal, depois conto mais. Até…
%d blogueiros gostam disto: