Erro ao gravar declaração de imposto de renda no Mac? Saiba como resolver!

A partir de amanhã, 06 de março, até o dia 30 de abril, estará aberto o prazo para a entrega de declaração de ajuste anual com o Leão, referente ao famoso Imposto de Renda. Atualmente, a Receita disponibiliza os programas nesta página. Há versões para diversos sistemas operacionais: Windows, Mac OS, Linux, Ubuntu e uma para máquinas virtuais Java.

Erro quando se tenta salvar o arquivo do imposto de renda.

Ocorre que em alguns sistemas, devido às maiores restrições de segurança, podem ocorrer eventuais falhas. Esta dica é válida para os usuários do Mac OS (máquinas da Apple): antes de gravar sua declaração, lembre-se de reparar as permissões em disco. Para isto, é simples: vá em Utilitário de Disco, selecione a unidade em que estão armazenados seus programas (geralmente é única), e clique no botão Reparar Permissões do Disco. Com este simples procedimento, você está autorizando o programa da Receita, que é baseado em Java, a poder escrever arquivos no seu disco local, e com isto poderá salvar a declaração sem maiores problemas. Lembrando que esta dica só é necessária caso você veja a mensagem descrita na imagem acima. 

Captura de Tela 2014-03-05 às 21.03.11

Caso o erro ainda persista, o jeito pode ser apelar para a “força bruta”, atribuindo permissões diretamente à pasta onde fica instalada a aplicação da Receita. Neste caso, abra o terminal e digite o seguinte comando:

chmod 755 ~/Documents
find ~/Documents/ProgramasRFB -type d | xargs chmod 755
find ~/Documents/ProgramasRFB -type f | xargs chmod 644

Ubuntu: resolvendo erro ao montar discos externos

Ontem, por algum motivo do bendito NTFS (padrão de arquivos que infelizmente devo manter por causa de que no trabalho as máquinas onde trabalho são Windows) apresentou um erro semelhante ao listado abaixo:

Error mounting: mount exited with exit code 13: $MFTMirr does not match $MFT (record 0).
Failed to mount ‘/dev/sdb3′: Input/output error
NTFS is either inconsistent, or there is a hardware fault, or it’s a
SoftRAID/FakeRAID hardware. In the first case run chkdsk /f on Windows
then reboot into Windows twice. The usage of the /f parameter is very
important! If the device is a SoftRAID/FakeRAID then first activate
it and mount a different device under the /dev/mapper/ directory, (e.g.
/dev/mapper/nvidia_eahaabcc1). Please see the ‘dmraid’ documentation
for more details.

Na verdade, trata-se de um erro simples, e que normalmente é resolvido com o seguinte comando:

sudo ntfsfix /dev/* (onde o * deve ser substituído pela unidade que deseja corrigir. Observe que na mensagem de erro acima, por exemplo, seria ‘sudo ntfsfix /dev/sdb3’).

Após este comando, o Ubuntu tentará corrigir os erros na unidade NTFS, e você deverá conseguir montá-la. Veja como ocorreu quando fiz este procedimento:

Mounting volume... $MFTMirr does not match $MFT (record 0).
FAILED
Attempting to correct errors... 
Processing $MFT and $MFTMirr...
Reading $MFT... OK
Reading $MFTMirr... OK
Comparing $MFTMirr to $MFT... FAILED
Correcting differences in $MFTMirr record 0...OK
Processing of $MFT and $MFTMirr completed successfully.
Setting required flags on partition... OK
Going to empty the journal ($LogFile)... OK
Checking the alternate boot sector... OK
NTFS volume version is 3.1.
NTFS partition /dev/sdc1 was processed successfully.

Embora alguns dos comandos tenham retornado “FAILED”, consegui montar normalmente meu HD externo, da Samsung.

Pentaho: ERROR_0012 – AdhocWebService.ERROR_0012 – Failed to generate the report preview. Please check the server log for details of the error

Antes de tudo, uma menção honrosa neste post. Já havia escrito uns seis parágrafos, e saí um minuto da minha cadeira, minha cadela (não sei como) conseguiu apagar todo o conteúdo e ainda por cima tornar impossível a recuperação. Depois desta, como impor qualquer limite à capacidade do ser humano em fazer cagadas enquanto usuário? 🙂

Então, voltemos: estou trabalhando numa monografia que visa implantar um modelo de armazém de dados “em miniatura”, mas que demonstre o funcionamento e capacidade de ferramentas livres para a inteligência de negócio (BI). Para isto, estou usando a suíte Pentaho Community.

Trata-se de uma suíte muito poderosa, inteiramente baseada em Java. Entretanto, devido à sua complexidade (trata-se, na verdade, de um conjunto de várias aplicações, modulares, que conversam entre si), tem por característica notável ser muito sensível a erros e falhas. Nesta semana, participei de uma Oficina de Pentaho na Latinoware, em que curiosamente houve um grande atraso no início, porque um relatório não era gerado devido à incompatibilidade da versão do java instalada. O mais engraçado é o fato de que este problema provavelmente tenha sido muito mais didático que a própria oficina em si, uma vez que passamos por logs, testes e outros ajustes até fazer a coisa funcionar.

Então, uma boa prática ao usar o Pentaho é sempre tomar muito cuidado com a versão das aplicações usadas, verificar eventuais incompatibilidades conhecidas e testar qualquer pequena mudança feita, como a instalação de um plugin. Ontem, estava fazendo um relatório de teste baseado no livro “Pentaho na Prática”, um dos pouquíssimos materiais existentes a respeito em português, e lidei com um erro que não tinha solução disponível nos fóruns. Acabei tendo que resolver “na marra”. Portanto, considero importante colocar aqui como resolvi, e relatar minha experiência para que outros aprendam e resolvam eventuais problemas de maneiras mais fácil. Não deixa de ser uma valiosa dica.

Parte 1: o problema

Preciso ainda sistematizar um pouco isto, porque seria muito bom juntar um print da tela. Mas meu problema, basicamente, foi o seguinte: após pegar um relatório BEM simples da introdução do livro, o relatório não era gerado, e aparecia o seguinte erro: ERROR_0012 – AdhocWebService.ERROR_0012 – Failed to generate the report preview. Please check the server log for details of the error. E aí, como resolver?

Parte 2: decompondo o problema

A parte mais importante, em especial para usuários iniciantes, é aprender a lidar com logs do sistema. Eu, quando comecei a programar, tinha a péssima mania de não ler com calma e acabava perdendo muito tempo com isto. Só que no Pentaho temos um monte de arquivos de log, e é preciso também alguma experiência para saber onde correr atrás da informação correta. Repare que a mensagem diz “please check de server log”. Ou seja, confira o log do servidor de aplicação. No meu caso, utilizo o Tomcat, que já vem por padrão quando do download do BI Server. O arquivo de logo do Tomcat é o catalina.out, e está no seguinte diretório: <diretório do bi-server>/tomcat/logs

Confira o arquivo do log que eu postei no pastebin.com. Creio que um dos motivos que devem deixar todos os estudantes desesperados em ler logs é exatamente isto: o que ler nestas centenas de linhas (no exemplo, precisamente 284). Aqui, vou resumir à parte que interessa, as duas primeiras linhas:

  1. 02:34:58,396 ERROR [Logger] misc-java.lang.String: ConnectFactory.ERROR_0001 - [pt_1] Database connection could not be established to: SampleData
  2. org.pentaho.platform.api.data.DatasourceServiceException: javax.naming.NameNotFoundException: Name SampleData is not bound in this Context

Análise do log

É aqui que a mágica começa a acontecer. Logo de cara, o relatório dá erro por um motivo muito simples. Existe uma base de dados SampleData que não foi encontrada:

Database connection could not be established to: SampleData

Por algum motivo, o banco de dados SampleData não estava disponibilizado no Pentaho. Você pode verificar isto no administration-console (PAC), acessível através da porta 8099 após subida do PAC. Lá estão as bases de dados. No meu caso, os problemas relatados no fórum não resolveram, foi apenas uma simples questão de reinserir o banco sample data na interface de administração, conforme dados abaixo:

Configuração da base SampleData
Configuração da base SampleData

E aí, prontinho! O BI server voltou a gerar os relatórios perfeitamente! A dica que dou é para manter uma versão do pentaho “pura”, sem instalar plugins ou gerar qualquer relatório e verificar como setá configurada. Pode facilitar muito, quando você é iniciante!

PHPMyAdmin – Bug na Edição de Tabelas

Se você usa o PHPMyAdmin e está com problemas para editar suas tabelas, com a seguinte mensagem de erro:

As opções editar no Grid, caixa de seleção, Editar, Copiar e Apagar não estão disponíveis.

Você precisará definir uma chave primária na sua tabela. Caso, eventualmente, sua tabela tenha valores repetidos em todas as colunas, o que inviabilizaria esta modificação, a solução é inserir uma nova coluna, de preferência auto-incrementável, e torná-la como chave privada. Para isto, basta selecionar a opção “Única”, na tab Estrutura da sua tabela do Banco de Dados.

Ainda não consegui muita informação a respeito, mas no meu caso, quando houve este problema, a versão nova do PHPMyAdmin (4), verifiquei que ele inseriu uma coluna em branco, que não conseguia apagar de jeito nenhum. Portanto, MUITO cuidado na hora de fazer inserção de dados diretamente pelo PHPMyAdmin!

Testes: Diferença entre Erro, Defeito e Falha

Dentro da Engenharia de Software, o processo de testes de software tem uma terminologia muito confusa: erro, defeito e falha podem até parecer sinônimos, mas neste contexto possuem diferenças significativas. Segundo o International Software Testing Qualifications Board, a aplicação correta destes termos é o seguinte:

  • Erro é fruto da ação humana, que produz um resultado incorreto, como uma falha na escrita de um código; 
  • Defeito, também conhecido como bug, é o resultado de um erro no código, gerando uma anomalia no funcionamento no sistema;
  • Falha, por sua vez, é resultado da execução de um defeito no código.

De certa forma, podemos dizer que há uma gradação: toda falha depende de um defeito, mas nem todo o defeito gera uma falha. Da mesma forma, todo defeito é fruto de um erro, entretanto não são todos os erros que resultam em defeito. Toda falha tem origem num erro.