Portal da Transparência Municipal – RS

Ainda em fase de desenvolvimento, mas já disponível ao público, o Portal de Transparência Municipal do RS agrupa as consultas dos portais da transparência da esfera municipal (Prefeitura, Câmara de Vereadores, Institutos e outros órgãos) em um só local.

Para realizar pesquisas de empenhos, para verificar o faturamento do CNPJ nos municípios, o portal é uma excelente ferramenta.

A consulta de empenhos nos portais da transparência do Governo Federal e Governo Estadual é bem simples, e agora com a disponibilização deste novo portal, ficará muito mais fácil verificar os valores empenhados em licitações de todos os órgãos públicos.

https://transparencia.tinx.com.br/

Acesse o portal, confira na página inicial os relatórios de exemplo que disponibilizamos.

Precisei fazer crack do meu próprio programa

Esta semana recebi uma ligação bem curiosa: era um antigo cliente pra quem fiz um programa em 1999.

Ele me disse que um dos campos parou de funcionar. O campo ano só aceitava valores até 2016; não podia digitar 2017.

No mesmo dia tinha um compromisso ao lado do escritório dele, aproveitei para visitá-lo. Ele me explicou que desde o ano 2000 mantém um computador com Windows 98 exclusivamente para rodar o programinha. Disse que já precisou trocar o HD várias vezes, mas que sempre mantém uma cópia de segurança.

Copiei os programas e os arquivos de dados.

– “Não esquece o BDE“, ele me lembrou. Realmente bem útil.

De volta ao escritório, criei uma máquina virtual com Windows XP. Copiei tudo pra lá. Rodou legal – aliás, tenho que me lembrar de sugerir essa ideia do VirtualBox pra ele.

Como você já deve suspeitar, já não tenho mais os fontes em Delphi.

Só viemos a conhecer os softwares de controle de versão (CVS, SVN) lá em 2004. Até então a gente fazia backups em HDs e CDs, mas não os encontrei mais.

Em 1999 a internet era discada e lenta: mandar uma versão nova para o cliente era demorado. Mas se você usasse o AsPack (compactador / obfuscador), seus arquivos .EXE ficariam bem menores.

Aqui iniciou o passo mais difícil: descompactar o meu próprio .EXE.

Baixei inúmeras ferramentas que prometiam descompactar o AsPack – rodei todas no ambiente virtualizado para proteger o PC principal de possíveis malwares. Mas AQUELA versão do AsPack que utilizei nunca era compatível.

Nas minhas buscas pela internet, surgiu a opção do OllyDbg, para fazer um dump de um processo em execução. Com a ajuda do seguinte vídeo consegui reproduzir os passos, e finalmente extraí o que seria o .EXE original.

Testei o .EXE extraído e funcionou perfeitamente. Agora eu podia voltar ao problema original: corrigir algum if do campo ano para permitir que fosse digitado um valor maior que 2016.

Baixei a versão portable do editor hexadecimal HxD – https://mh-nexus.de/en/hxd/.

Ao abrir o executável descompactado, procurei por “2016” e não achei nada; claro: não deve ser uma String, e sim um número.

“Puxei” na calculadora do Windows – modo Programador – como é 2016 em hexadecimal: 07 E0, mas também não encontrei nada.

Então notei que o editor HxD permite procurar não apenas Strings, mas Inteiros também!

Voilá!

Ele localizou três ocorrências de E0 07  (que é quase igual ao 07 E0, só que invertido, por causa da ordem dos bits mais significativos. (DOOUH!!!)

Troquei E0 por E9; salvei o arquivo como App_2025.exe e testei. Tudo funcionando!

Já estamos em tratativas para modernizar o software, utilizando uma abordagem mais moderna: hospedado na nuvem, mas sem pressa: tem bastante tempo até 2025!

Sites confiáveis: como adicionar?

Quando você abre uma planilha do Excel ou documento do Word que foi baixado da internet, os programas da Microsoft bloqueiam a edição como forma de prevenir possíveis códigos maliciosos.

Este arquivo foi originado de um local da Internet e pode não ser seguro. Habilitar Edição
Modo de Exibição Protegido

Central de Confiabilidade

Existem pelo menos duas formas de contornar isso: a primeira, e menos recomendada, é acessar o menu Central de Confiabilidade e desativar o Modo de Exibição Protegido para arquivos originados da internet.

Central de Confiabilidade

Isso permitirá a abertura de qualquer arquivo. Por isso assegure-se de baixar os arquivos de fontes conhecidas e confiáveis.

Sites Confiáveis

A segunda opção é muito recomendada para quando você baixa os arquivos sempre do mesmo site. Basta você adicionar o endereço do site aos Sites confiáveis do Windows, através das configurações da janela Opções de Internet.

Por exemplo, sua empresa utiliza um backend que gera relatórios em Excel, e cada vez que você gera o relatório, precisa autorizar a edição. Este é um candidato perfeito para esta opção que vou descrever a seguir.

Abra as Opções de Internet.

Opções da Internet

Na aba Segurança, clique em Sites Confiáveis, e depois no botão Sites.

Adicione o endereço dos sites confiáveis. Você pode obrigar a utilização do prefixo HTTPS, mas também pode desmarcar esta opção se o seu site não possui segurança SSL.

O endereço do site pode ser preciso, ou utilizar “coringas” com o símbolo * (asterisco). Exemplos:

  • https://www.tinx.com.br
  • https://*.tinx.com.br             (aceitará https://qualquer-host.tinx.com.br)
  • *.tinx.com.br       (aceitará qualquer host, e também HTTP e HTTPS)
Sites confiáveis

Com essa alteração suas planilhas vão abrir diretamente dos sites confiáveis!

Google Photos: armazenamento ilimitado para suas fotos

Envie as fotos do smartphone pra nuvem, e não fique sem espaço para os eventos de final de ano!

Natal, piscina, praia, ano novo… centenas de fotos e vídeos, e rapidamente você recebe uma mensagem:

“Armazenamento quase cheio”

Pra evitar isso a sugestão é utilizar o Google Photos, que é o novo serviço de fotos que substitui o antigo Picasa, e que funciona no Android, iOS e no computador.

O melhor de tudo: o espaço do Google Photos é ilimitado. 

O aplicativo para Google Backup Photos para Windows às vezes custa a enviar todas as fotos, mas observamos aqui que se você rodar ele como administrador ele funciona perfeitamente – #ficaDica.

O programa de backup detecta cartões de memória de câmeras digitais e pergunta se deseja enviar as fotos pra sua conta.

As fotos do smartphone são enviadas automaticamente. Você pode definir se também quer enviar os vídeos, e quando quer enviar tudo isso: somente no WiFi, e somente quando estiver conectado ao carregador, por exemplo.

Com as fotos devidamente enviadas pra nuvem, você pode escolher algumas delas e criar álbuns, compartilhar com amigos e familiares, e até mesmo criar álbuns em que outras pessoas podem colaborar enviando fotos delas.

Você também pode usar o poder de pesquisa do Google, dentro das sua conta, para encontrar fotos específicas por data, pessoas, assuntos:

Por que demora tanto para enviar?

Enviar as suas fotos pode demorar muito tempo, na verdade, vários dias. Isso acontece porque em links de internet residenciais a velocidade de envio é só uma fração da velocidade de download.

É comum em um link de  10mbits de download, ter somente 1mbit de upload. Por isso demora tanto para enviar, e por isso também que a internet fica muito lenta enquanto você envia as fotos! Mas vale muito a pena.

No computador você acessa suas fotos neste link:

https://photos.google.com/

Mais informações sobre os aplicativos disponíveis neste link:

https://photos.google.com/apps?hl=pt-BR

SQL: Ordenação avançada por comparação

Alerta Nerd: a seguir informações técnicas para desenvolvedores!

Usando a lógica booleana nas consultas SQL podemos ordenar consultas de banco de dados de uma forma bastante criativa.

Uso normal do Order By

Normalmente usamos a cláusula ORDER BY para tarefas comuns, por exemplo, podemos fazer a listagem de cidades ordenadas pelo nome:

Colocando o registro mais útil no início

No entanto, as vezes é mais interessante colocar alguns resultados especiais no topo da listagem, para facilitar o acesso dos usuários do sistema.

Por exemplo, num sistema para compra de passagens intermunicipais, você poderia colocar a capital do estado e as cidades próximas em primeiro, e depois as demais cidades em ordem alfabética.

Abaixo uma forma de fazer isso, utilizando uma só consulta:

São duas 2 condições de ordenação, a primeira inclui a cidades que desejamos em primeiro lugar. Como pode ver, foi usado o comparativo diferente <>, isso se explica pela lógica booleana. VERDADEIRO = 1, FALSO = 0.

Para maior clareza, podemos usar o símbolo de igual e inverter a ordenação da primeira cláusula, com o operador DESC (ordem decrescente):

Múltiplos registros no início

Caso precisarmos incluir mais cidades, podemos ampliar a primeira cláusula. Não precisamos, todavia, comparar os nomes, se tivermos os IDs também é possível simplificar a busca com o comparativo IN:

Note que mesmo os 4 primeiros resultados são ordenados também por nome (ordem alfabética), pois é o segundo critério do comparativo.

Em que cidades estão a maioria dos meus clientes?

Outros usos mais complexos podem ser feitos. Por exemplo, se o seu vendedor precisar criar um cadastro novo, que tal mostrar as cidades com mais clientes em primeiro lugar, e depois as demais cidades?

Para conseguir isso precisamos contabilizar os clientes com um LEFT JOIN, pois podem existir cidades sem qualquer cliente.

Order By simples pelo número de clientes

Abaixo um exemplo de como faríamos para simplesmente ordenar as cidades pela quantidade de clientes:

O problema neste tipo de consulta é que para encontrar uma cidade que não tenha tantos clientes será mais difícil, pois os dados mais abaixo não tem ordenação lógica.

Por exemplo, uma cidade com apenas 3 clientes está em algum lugar no meio da lista, e o vendedor terá que ler os itens um por um até encontrar o item desejado.

Comparando quantidades de registros

Vamos arrumar isso ordenando as cidades com mais de 100 clientes em primeiro, e as demais alfabeticamente, utilizando ORDER BY + COMPARAÇÃO:

No resultado da consulta podemos distinguir duas listas: a primeira com as cidades principais, e a segunda com as demais cidades.

A ordenação secundária se dá por ordem alfabética.

Considerações finais

Este é um recurso que pode ser bem útil, principalmente para ajudar na experiência dos usuários do sistema.

Ele evita ter que fazer 2 consultas separadas ou mesmo utilizar 2 selects com UNION, e isso traz um ponto positivo que é a simplificação da consulta no que diz respeito à sua manutenção de código.

É preciso verificar se este tipo de consulta pode causar algum impacto na performance das suas consultas.

Este comportamento do Order By + Comparação não funciona em todos os tipos de bancos de dados, mas já pude realizar testes no MySQL e no SQLite do Android com sucesso.

Outros bancos de dados podem oferecer formas alternativas, por exemplo, fiz o seguinte teste no Firebird 2.1, utilizando a função IIF(), e gerando um tipo de consulta que a gente vê com mais frequencia por aí! 😉

Explicando: Order By 1 significa ordenar pela primeira coluna, que no caso é o resultado da função IIF().

BB: Retirar senha de atendimento pelo celular

O Banco do Brasil disponibilizou através do seu aplicativo para smartphones a opção de retirar uma senha de atendimento presencial sem precisar estar na agência.

Imagine a situação: você combinou de encontrar os amigos na cafeteria durante o horário de almoço, mas terá que sair logo, pois precisará passar no banco.

A solução: basta “pegar” uma senha direto pelo app do banco.

Como eu descobri isso? Eu descobri do pior jeito: na fila do banco. Por essa razão achei legal compartilhar!

Veja se o seu banco também tem este recurso e compartilhe aqui!

Dica: não confie muito na previsão de atendimento, no meu caso, por sorte, fui atendido bem antes do tempo previsto! 😉

AudioSwitch – aplicativo para Windows

Este programinha open source permite alternar rapidamente o dispositivo de som, por exemplo da caixa de som para o fone de ouvido, e vice-versa. 🎧 / 🔊

É bastante customizável, funciona para dispositivos de output, como caixa de som, fone com fio, fone Bluetooth, e também para dispositivos de input tais como microfone, audio-in, muito legal pra quem faz vídeo tocando instrumento, por exemplo.

Através da criação de atalhos de teclado, por exemplo, [CTRL] + [MUDO], dá pra alterar entre os dispositivos rapidamente.

Caso seu teclado não tenha as teclas multimídia, você pode usar outra combinação.

Dica: “Don’t forget to save!”
Caso alterar as configurações, sempre clique em “Save Settings”! 😉

Download: https://github.com/sirWest/AudioSwitch/releases

Bloquear propaganda da operadora AND telemarketing

Aqui estão duas coisas indesejadas:
– receber SMS da operadora;
– receber ligações de telemarketing.

Para deixar de receber SMS da operadora é fácil: basta enviar SAIR com letras maiúsculas para:

  • Claro: 888
  • Oi: 55555
  • TIM: 4112
  • Vivo: 457

Já para registrar um bloqueio do seu número para ligações de telemarketing no Rio Grande do Sul, você pode fazer seu cadastro neste endereço: http://www.proconbloqueio.rs.gov.br/

O bloqueio do Telemarketing bloqueia todas as ligações indesejadas? Veja a resposta lá neste endereço na seção “Perguntas e Respostas”.

Quando me refiro a Telemarketing, tenho que salientar que são as empresas que oficialmente são registradas para este fim, e que realmente vão respeitar a sua opção de não receber mais mensagens.

E o que fazer com aqueles SMS com ofertas da Sky, Claro HD, Consórcio Chevrolet, Honda, Yamaha? Veja no nosso outro post!

7726: SMS Pirata – Adicione este número na sua agenda!

7726 – adicione este número na sua agenda!

A imagem pode conter: texto

7726 – é para lá que você deve encaminhar mensagens de SMS consideradas abusivas. Tanto SPAMs como tentativas de golpes, prêmios e sorteios falsos.

Adicione este número na agenda do seu telefone, infelizmente você vai usar bastante. Mas quanto mais gente usar, mais mal-feitores das comunicações serão barrados.

O SMS Pirata – www.smspirata.com.br – é um projeto com apoio das principais operadoras de telefonia – Claro, Vivo, Oi e Tim.

Ao encaminhar uma mensagem SMS, você deverá digitar também o número original do remetente, pois nem todos os celulares encaminham esta informação.

A mensagem enviada para 7726 é gratuita.

O remetente do SMS recebido possui mais de 6 dígitos ou um número de celular convencional?? Desconfie!! Provavalemente é um SMS pirata!

sugere o site. Nunca responda para o remetente ou ligue de volta.

Se a mensagem indesejada for da própria operadora, veja o nosso outro post sobre como cancelar este tipo de mensagem inconveniente.

Como bloquear propaganda da operadora e telemarketing