Postagens

Mostrando postagens de junho, 2011

Postagem em destaque

Código Limpo: Nomes Significativos

Imagem
Às vezes fico com um assunto na cabeça por semanas, até achar uma situação ou um exemplo que esclareça a situação. Explico: estava querendo já a algum tempo escrever sobre boas práticas de programação, e pensei em iniciar por "Nomes Significativos", para seguir a nomenclatura utilizada pelo ótimo livro Código Limpo , de Robert C. Martin.  Entretanto, ficava sempre amarrado em exemplos que pareciam ser bons, mas que ainda eu não tinha visto a utilidade prática.  Antes de continuar preciso explicar que tenho um hábito de anotar num bloco de papel todas as ideias que surgem, pois elas desaparecem com a mesma velocidade que aparecem. Para isso tenho um bloco e caneta na mesa de cabeceira (além de um no banheiro), pois esses são os lugares onde tenho mais ideias... Vai entender... Semana passada, estava com um problema bem complicado e tive uma ideia: "vou criar uma variável para indicar que quando um arquivo tiver um certo tamanho deve gravar algumas informações no log. Pois

Crimes cibernéticos

A onda de ataques a sites governamentais na semana passada, trouxe a tona muita informação, mas das dezenas de artigos que li e assisti não vi nenhum comentar sobre o real problema: que o brasileiro é ignorante. O país lidera quase todas as listas de crimes, ataques e criação de malware que você puder imaginar. Ora, você pode pensar, o lado bom é que se estamos no topo dessas listas, é porque existem pessoas muito inteligentes por aqui. Em parte sim, mas hoje em dia, qualquer pessoa que tenha acesso a internet pode facilmente baixar um pacote de aplicativos que criam esses tipos de pragas virtuais.  Concordo, porém, que existem pessoas inteligentes do lado escuro da força (huahuahuahuahaua), ou pelo menos espertas. Isso já ocorre desde que o homem anda para frente. Para cada otário existe um malandro (ou espertalhão) pronto para tentar passar a perna. Antes que reclamem, não quero dizer que pessoas normais não possam ter o micro contaminado. Claro que isso pode ocorrer com qualque

Arquivo BAT para monitorar um serviço do Windows

Estava com um problema no serviço IIS de um servidor e de tempos em tempos o serviço caía e logo um usuário ligava reclamando (com razão). Como ainda não descobri a causa do problema, criei um arquivo BAT, que agendei executar a cada 10 minutos, que tenta reiniciar o serviço automaticamente. Quando o serviço está ativo não ocorre nada, e quando o serviço está parado ele é reiniciado. O arquivo BAT é bem simples. Primeiro, tento reiniciar o serviço do IIS (W3SVC) e direciono a saída para o arquivo STATUS.IIS. Depois verifico se existe a string "StartService FAILED" no arquivo gerado. Se existir, o errorlevel é setado pelo FIND como 1 (string encontrada). Finalmente, é só mostrar a mensagem apropriada. Link do script: status_iis.zip

Post rápido do Google Street View

Imagem
Hoje pela manhã (22/06/11), indo buscar minha namorada no aeroporto, me deparei com uma Captiva do Google Street View altamente personalizada com adesivos coloridos e o enorme equipamento no topo do carro. Fiquei surpreso com o que vi, pois finalmente incluíram Florianópolis no circuito das capitais “mais mais” do Brasil. Atualmente, o Street View está em Minas Gerais, Rio de Janeiro e São Paulo ( http://maps.google.com/help/maps/streetview/learn/where-is-street-view.html ): Clique para ampliar Por Gustavo Setta.

Análise de produto: Pedômetro

Imagem
Nem tudo são flores. Nem sempre as compras feitas nos sites, principalmente chineses, são bem sucedidas. Vejam o exemplo do pedômetro que comprei na BuyInCoins. Na verdade, a compra em si, foi tranquila. Fiz o pedido dia 29/04/11 e o produto chegou dia 10/06/11 (41 dias depois). Mesmo sabendo que pelo preço (R$ 2,25) não podia esperar grande coisa, o produto é muito ruim. O objetivo principal do pedômetro é medir a distância percorrida. Conforme o manual (sim, tem até manual - uma página, mas tem), a melhor posição é perto do centro do corpo. Sábado fui conferir o aparelho. Normalmente corro o mesmo percurso de 4 KM (sei a distância pois já marquei com o carro), portanto tenho um padrão de comparação. Comecei a correr e aparentemente estava tudo certo. A certa altura verifiquei a distância percorrida e estava em 800 metros. Quando cheguei na metade do trajeto (2 KM) parei e fui verificar novamente. Estava marcando 1453 metros. Na volta parei e verifiquei mais uma vez, à 800 metros

Análise de produto: Dingoo A320

Imagem
O produto O Dingoo A320 é classificado como um videogame portátil, mas ele é mais que isso. Além de ser compatível com as plataformas Atari* 7800, Atari* Lynx, Odyssey*, Nintendo*, Super Nintendo*, Game Boy*, Game Boy* Color, Game Boy* Advanced, PC Engine*, Neo Geo*, Capcom* Arcade, Mega Drive*, JungleTac* e Dingoo. Ele reproduz vídeos (ASF, AVI, DAT, SWF (Flash), FLV, MPG, MP4, RM, RMVB, WMV e 3GP), aúdio (MP3, WMA, e WAV) e fotos (JPG, BMP, PNG e GIF Animado), rádio FM (com gravação),  gravador de áudio, reprodutor de texto (TXT) e visualização na TV. Pontos fortes - facilidade de operação; - compatibilidade com várias plataformas; - reprodução de diversos formatos de áudio e vídeo; - preço (R$ 155,00); - saída para TV. Pontos fracos - manual muito superficial; - tela muito pequena (apesar de poder jogar na TV); - processador um pouco fraco (em vídeos de resolução mais alta, trava frequentemente). Análise final Ótimo para quem gosta dos jogos clássicos do Atari e Nint

Não é um país sério - parte 2

Sexta-feira. 17:10. BR-101. Movimento intenso de carros, caminhões e ônibus. O trânsito complicado, carros lentos na esquerda segurando o fluxo, caminhões fechando os veículos menores, a maioria mudando de faixa sem sinalizar. O caos. De repente, ao fazer uma curva, logo após a entrada de Governador Celso Ramos, tudo parado. Freiadas, buzinas, pisca-alerta ligado. Coloco AC/DC para relaxar. Depois de 3 KM e muitos minutos chego ao ponto de estrangulamento e, surpresa, a concessionária está fazendo obras de recapeamento na pista. O que é pior, com a coniviência da Polícia Rodoviária Federal, pois a viatura estava parada no acostamento. Sinceramente, não entendo como no dia de maior movimento da semana, na hora de maior movimento do dia, fecham uma pista para fazer um trabalho que poderia ser feito em qualquer outro dia e qualquer outra hora.

Não é um país sério - parte 1

O iPhone 3GS passou a ser vendido no Brasil, pela Tim, por apenas R$ 999,00 . A princípio você deve achar uma maravilha, pois o preço caiu R$ 500,00, mas como a mesma reportagem fala, nos Estados Unidos, ele custa também uma pequena fortuna (U$ 49,00), ou na moeda corrente (nossa não deles), R$ 80,00. Isso mesmo, 12 vezes mais barato! Já falei do custo Brasil aqui , mas 12 vezes!?!?!?! E isso com um desconto de R$ 500,00 senão seria apenas 18 vezes mais caro! Parafraseando o Mário Finardi, do Nixon Vermelho , brasilsilsil .

Mais cuidado, por favor

Acho incrível como as pessoas não prestam atenção. Na maioria dos casos, não tem muito problema, pois basta perguntar novamente, e está resolvido. Em outros casos, isso pode não ser tão simples. Lendo a reportagem, " Nuvem vulcânica cobre RS e chega à região de Curitiba, diz FAB ", encontro um dado contraditório: "Até as 11h da manhã, dos 1.039 voos previstos até o horário no país, 106 deles (cerca de 19,8%) foram cancelados e outros 164 (15%) sofreram atrasos, segundo a Infraero." Ora, se são 1.039 voos, 106 representam 9,8% e não 19,8%. Já 19,8% de cancelamentos, dizem respeito a 206 voos.  E os outros dados/informações estão corretos? Não sei. Só sei que não custa nada confirmar todas as informações antes de publicar. Erros assim, existem aos montes por aí. Acredito que seja a pressa de colocar a notícia no ar, de dar um "furo", sei lá. Isso explica o erro, mas não justifica.

Como comprar da China

Imagem
Como falei anteriormente em compras da China, resolvi fazer uma espécie de guia, para aqueles que não são iniciados.    O primeiro ponto que considero importante, é saber de onde você está comprando. Pessoalmente eu compro do DealExtreme , FocalPrice e BuyInCoins . Existem muitos outros sites como MadeInChina , TinyDeal , SuntekStore que aparentemente são confiáveis, mas ainda não comprei. Para saber se um site é confiável, consulte pessoas que já compraram e procure no site as reclamações que são feitas (i.e., produto não foi enviado, baixa qualidade). Só compre em sites que aceitem o pagamento pelo Paypal ou equivalente. O simples fato do Paypal estar no site já dá uma certa tranquilidade. Depois de encontrar o produto que você quer comprar, o que é fácil, pois existem coisas que nem podemos imaginar, procure pelos comentários dos compradores. Diversas vezes já deixei de comprar por conta de comentários negativos. Crie um limite, pois é muito fácil se empolgar. Pessoalmente eu

Matemática e cerveja

Imagem
Esqueça os Sete Enigmas do Milênio (P versus NP, Conjectura de Hodge, Conjectura de Poincaré, Hipótese de Riemann, Teoria de Yang-Mills, Equações de Navier-Stokes, Conjectura de Birch e Swinnerton-Dyer). São todos simples demais. A história (real) que vou contar se passou em meados dos anos 90. Como os personagens pediram sigilo absoluto, não divulgarei seus nomes. Digamos que fossem Adalto, Alexandre, Gustavo e Sergio. As implicações são sérias demais... Diz a lenda que no final do século passado, durante o verão, numa praia deserta do sul do Brasil, nossos quatro bravos guerreiros juntaram suas forças para tentar derrubar um dos últimos problemas insolúveis da matemática: a fórmula para calcular o número de latinhas (de cerveja) que compõem uma pirâmide de base b, dado que cada fileira tenha um número de latinhas diminuido de uma unidade em relação à fileira anterior. O esforço era hercúleo. Até mesmo a natureza parecia conspirar contra nossos heróis, pois a maré s

Dicas de uso do Microsoft Outlook

Já falei aqui sobre a estrutura de pastas do computador. Agora, vou falar sobre a estrutura de pastas que utilizo no Outlook, que é o cliente de email que utilizo no trabalho. Em minha empresa, temos apenas 20 MB de espaço para email, o que chega a ser uma afronta, para quem está acostumado aos mais de 7 GB do GMail. Mas não tem jeito, tive que me adaptar e para isso fiz o seguinte: A minha Caixa de entrada fica somente com os emails que não li; Assim que leio (e resolvo o problema), movo a mensagem para uma pasta particular (.PST) em meu micro; A estrutura que tenho das pastas é simples. Tenho uma pasta para cada cliente, uma para cada sistema, uma para cursos, e outro para assuntos diversos. Na verdade tenho mais algumas, mas são assuntos bem específicos. A pasta particular contém os dados de no máximo 2 anos (por exemplo: no final de 2010, eu movi todas as mensagens de 2009 para outra pasta particular, chamada Alexandre2009.PST). Dessa maneira não fico com arquivos muito

Mouse sem fio - BuyInCoins

Imagem
Acabo de receber meu Ultra Thin 2.4G 800/1600 DPI Wireless USB Wheel Optical Mouse PC que adquiri na BuyInCoins, dia 13/05/11. Portanto, levou apenas 25 dias.  Essa foi uma das minhas melhores compras (em lojas da China). O mouse é preciso o suficiente para trabalhar sem problemas. É leve e foi o aparelho que teve a instalação mais fácil que vi até hoje. O receptor wireless vem acoplado ao mouse. Basta retirá-lo e conectar a qualquer porta USB disponível que já está funcionando. O preço também é tentador paguei R$ 8,00 (agora subiu um pouco, está por R$ 9,00). Clique para ampliar Tenho mais dois amigos que já usam esse mesmo mouse há um bom tempo e eles não têm reclamações.

Arrays: elementos repetidos e número de ocorrências (em Java)

Resolvi fazer, em Java, o mesmo algoritmo mostrado em Arrays: elementos repetidos e número de ocorrências . Assim é possível comparar os dois códigos e talvez ajude a escolher uma linguagem de programação ou pelo menos mostrar as principais diferenças entre elas. Entre as duas (C++ e Java) acho que a versão feita em Java ficou mais clara. package teste; import java.util.ArrayList; public class Run { public static void main(String[] args) { ArrayTeste at = new ArrayTeste(); at.start(); } } // classe que contem o valor do número e a quantidade de ocorrências class Number { int value; int count; public Number(int x, int y){ value = x; count = y; } } // classe principal class ArrayTeste{ void start(){ // array de entrada int a[] = {5, 3, 5, 1, 1, 1, 2, 1}; int i, j; boolean found; ArrayList<number> lista = new ArrayList<number>(); // percorre o array de entrada for(i=0; i<a.length; i++){ // seta c

Parâmetro não documentado no CFEXECUTE

Esse post é bem específico para desenvolvedores Coldfusion, mas como é um parâmetro não documentado acho que é importante. Oficialmente, a tag CFEXECUTE possui a seguinte sintaxe: O retorno do comando é dado pelos atributos outputFile ou variable . O problema é que somente as saídas do stdout são direcionadas para esses atributos. Caso você precise do stderr a solução é redirecionar o stderr para o stdout . Como sempre, deixei o melhor para o final. Ou você pode usar o parâmetro não documentado do CFEXECUTE, errorVariable , que retorna o... stderr ! A sintaxe é erroVariable = "error variable name". Para endender mais sobre os operadores de redirecionamento, sugiro o texto da Microsoft.

OVNI?

Imagem
Atualizado dia 03/06/11 às 07:54. Hoje pela manhã o céu estava azul, o trânsito calmo na BR-101 e como o visual estava bonito perto da divisa de Tijucas e Biguaçu, na altura do KM 173, resolvi tirar umas fotos. Até aí tudo bem. Diminui da velocidade de cruzeiro para 120 km/h, afinal segurança acima de tudo. E bati a primeira foto, às 07:06 da madrugada manhã: Clique na foto para ampliar. Um minuto depois (07:07 caso alguém não consiga fazer as contas), tirei outra: Clique na foto para ampliar. As fotos foram tiradas com uma camêra de 5 megapixels do celular (Nokia X3-02), com o vidro abaixado (estava sujo, mas já mandei lavar). Reparem que na segunda foto existe um objeto estranho. Demarquei a mesma área em ambas as fotos com um retângulo vermelho. Dados climáticos no momento da foto: Temperatura: 12ºC Direção do vento: WNW Velocidade do vento: 7,56 km/h Pressão: 1019 hPa Umidade relativa: 99% Em tempo, não notei nenhum lapso de tempo e tampouco marcas estranhas no c

Linguagem de programação, qual usar?

Atualizado às 12:30. Às vezes, me perguntam qual linguagem de programação deve-se usar. Sempre respondo que todas (ou muitas), pois depende do que você quer desenvolver. Se você perguntar para um desenvolvedor Java, ele vai falar que Java é melhor; se perguntar para um desenvolvedor C#, o C# é melhor, é lógico. O mesmo ocorre com todas as outras linguagens de programação. Portanto, não existe uma resposta mágica. Mas (sempre há um "mas"), podemos mostrar quais são as melhores e/ou mais utilizadas. No Google Code Jam , que c onheci através do site do Daniel Quadros (ele tem mais paciência que eu e explica detalhadamente cada problema da competição, vale a pena dar uma olhada), milhares dos melhores programadores do mundo tentam avançar pelas várias etapas da competição, e já que são os melhores é de supor que as linguagens por eles utilizadas também sejam as melhores. No terceiro round do GCJ 2011, as linguagens mais utilizadas foram: C++, com 49% Java, com 21% Python