Postagens

Mostrando postagens de maio, 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

Arrays: elementos repetidos e número de ocorrências

Problema: dado um determinado array, como contar quais os elementos repetidos e o número de ocorrências de cada elemento? Existem diversas maneiras de se conseguir isso, até porque algumas linguagens possuem uma extensa biblioteca para utilização com arrays. Mas, para treinar um pouco, vou mostrar uma solução em C++. O código já está comentado. #include <stdio.h> #include <string.h> #include <iostream> using namespace std; // estrutura que contem o valor do número e a quantidade de ocorrências struct number { int value; int count; }; // tamanho definido arbitrariarmente (para facilitar o exemplo) #define MAX 8 // array de entrada int a[MAX] = {5, 3, 5, 1, 1, 1, 2, 1}; // array com estrutura do número number n[MAX]; int used = -1; int found = 0; const int NUL = -1; int main(){ int i, j; // inicializa array for(i=0; i<MAX; i++){ n[i].value = NUL; n[i].count = NUL; } for(i=0; i<MAX; i++){ found = 0; for(j=0; j

Uso do email corporativo

O uso de email, especialmente em ambientes corporativos, sempre traz muita discussão do que se pode fazer e o que não se pode. Neste artigo, tento sintetizar algumas dicas, que julgo serem importantes: 1. Email corporativo pode ser monitorado. Presume-se que ao usar o email corporativo o assunto seja sobre o trabalho, portanto, de interesse da empresa. Esse é o entendimento mais aceito, mas não é uma regra. 2. Webmail não pode ser monitorado. Por ser de uso pessoal, os emails não dizem respeito à empresa, mesmo sendo utilizado dentro do ambiente de trabalho. Como o item anterior, também é o entendimento mais aceito. 3. Criar "Termo de Responsabilidade", com cláusulas de sigilo, responsabilidade e auditoria. Dessa maneira, a empresa busca ficar resguardada em relação a alguns problemas. 4. Não negociar com o sindicato a possibilidade de avisar o funcionário antes de se fazer a auditoria no micro, pois se mais tarde isso for para acordo coletivo, a empresa será obriga

Windows vs Linux vs OSX

Imagem
Bastou que os computadores com o Mac OS X se tornassem mais populares que o número de ataques começou a aumentar. Dãaa. Estava na cara que isso ocorreria. Aliás, acho que o lema do OS X deveria mudar, pois o atual é propaganda enganosa: "O sistema operacional mais avançado do mundo. Levado à perfeição.". Tá, conta outra. Como os usuários do OS X não são acostumados a usar antivírus, o número de ameaças aumentou. Matematicamente demonstrável por: quanto maior o número de computadores usando um sistema operacional e maior o número de usuários despreparados, maior o número de ameaças. Brincadeiras à parte, o maior problema é quem está operando o computador. De nada adianta o sistema operacional ser seguro, se o usuário baixa um arquivo de um site suspeito e executa-o. Aí não tem sistema operacional, software antivírus, bloqueador de malware, que dê conta. Sabem por que os criminosos preferem o Windows? Não é por que ele é mais vulnerável que os outros é porque o Windows d

Tecnologia nos filmes - parte 2

Já falei sobre esse assunto aqui , mas isso parece não ter fim. Gosto muito da série Criminal Minds , mas às vezes, fico espantado com alguns absurdos que são mostrados pela personagem Penelope Garcia, uma hacker recrutada pela FBI. Alguns episódios trazem diálogos mais ou menos assim: - Garcia, preciso de uma lista de todos os crimes ocorridos no Estado da Flórida, por homens de 20 a 30 anos, com histórico de violência, que tenham usado o cartão de crédito nos últimos 3 meses e que tenham filhos de 5 anos com cabelos ruivos. - Certo. Enquanto falávamos já fiz a pesquisa e o resultado já está em seus celulares. Assim até eu resolvo o crime.

Primeiras impressões: iPhone

Apesar de existir mais reviews do iPhone 4 na net do que o aparelho em lojas para vender, gostaria de contribuir com as minhas impressões sobre o "brinquedo", conforme sugerido pelo Alexandre.   Já tive um Samsung Omnia com tela de 4" rodando o Windows 6.5 e fiquei muito desapontado com seu funcionamento, todavia, a comparação com o iPhone 4 é injusta. Explico-me. Um dos grandes atrativos é a retina display que permite toques precisos e imagens incríveis. Aliado a isso, os aplicativos e jogos abusam (ainda bem) desta sensibilidade. Combine às imagens perfeitas, um ótimo som e um processamento fantástico e você terá um belo de um vídeo-game. Por outro lado, como era de se esperar, se você deixar habilitada a função wi-fi e ficar fuçando no aparelho sem parar, prepare-se para andar sempre com o cabinho usb para carregá-lo!   Um fato concreto é você se cadastrar com um Apple ID em um outro país que tenha joguinhos para baixar e aceite seu cartão de crédito inte

Supermáquina

Esse é para quem gosta de jogar Paciência (ainda vem instalado com o Windows?). Agora você pode adquirir por módicos R$ 65.000,00, um supercomputador, o HPC Box ,  para uso pessoal. A configuração é de cair o queixo: até 4 processadores de 1 teraflop Tesla C2050 e C2060 da Nvidia. Segundo a fabricante o poder de processamento é cerca de 100 vezes o de um computador pessoal "normal". Utilidades? Qualquer uma que exija grande quantidade de processamento como análises císmicas, previsões metereológicas, simulações de explosões atômicas (abre o olho CIA, NSA), qual o sentido da vida, e o mais importante: finalmente será possível jogar Crysis 2 em modo full sem travamentos! Será mesmo? Claro que com o Campo de Distorção da Realidade ativado, os Macfags não ficam atrás: veja a configuração, retirada daqui : Dois processadores Intel Xeon “Westmere” de seis núcleos, 2,93 GHz (12 núcleos) 64 GB (8 de 8 GB) Mac Pro RAID Card Drive de estado sólido de 512 GB

Condenados?

A justiça brasileira condenou os pilotos dos EUA, Joseph Lepore e Jan Paul Paladino, que pilotavam o jato Legacy que colidiu com o avião da Gol em 2006. Beleza! Finalmente a justiça foi feita! Peraí, qual foi a pena? Ah,  4 anos e 4 meses. Pequena, não? Calma que piora (sempre piora). A pena foi revertida em prestação de serviço comunitário. Nos EUA! Certas coisas eu não consigo entender. Se foram condenados é por que tiveram pelo menos uma parcela de culpa. E por menor que tenha sido essa parcela, matar 154 pessoas deveria ter uma sentença maior. Pois assim, esses 1580 dias de sentença, equivalem a pouco mais de 10 dias de trabalho comunitário por pessoa!? É, esse não é um país sério mesmo.

Mundo globalizado é assim

Atualmente é muito fácil acabar com a vida de alguém, especialmente se for uma figura pública. Vejamos o exemplo do chefe do FMI, Dominique Strauss-Kahn, acusado de abusar sexualmente de uma camareira. Existiu a denúncia e em poucas horas todo mundo já falava disso. Não sei se é o caso, nem me interessa saber, mas imagine se algum inimigo armou uma cilada para o Strauss-Kahn? Pagou, sei lá, uns U$ 100.000,00 para a camareira falar que foi estuprada. Agora não tem conversa: mesmo que ele não seja culpado (mais uma vez, não sei se é ou não), a carreira (leia-se, ex-futuro canditado à Presidência da França, nas eleições de 2012) dele sofreu um grande revés. O fato (a prisão de Strauss-Kahn) já gerou até mesmo incertezas nos mercados da zona do euro .  Como disse anteriormente, mundo globalizado é assim, acostume-se.

Estatística, probabilidade e acidentes

Já faz algum tempo que queria escrever sobre isso. Só protelei pois não conseguia encontrar a fonte do artigo que me deu a ideia do texto. Como ainda não consegui encontrá-la (falha minha não ter anotado), vai assim mesmo. O artigo que li era um estudo de um norte-americano que falava basicamente que grande parte (3/4) dos acidentes de trens e aviões ocorre quando a lotação é menor que 50%. Ora, é muito fácil citar alguns problemas nesse estudo: - Então basta lotar todos os aviões e trens que a probabilidade de ocorrer um acidente diminui? - Qual o percentual de voos e viagens que sai com lotação de 50%? Mais de 3/4? (Já adianto que no estudo não havia esse percentual). Portanto, é preciso ter cuidado com estatísticas e probabilidades, pois os dados podem ser facilmente direcionados, ainda mais se não houver um escopo claramente definido. Não discuto a informação em si, mas é preciso estar atento ao se divulgar alguns dados e informações.

Campanha Gasolina a R$ 10,00!

Eu fico pensando aqui com os meus botões sobre o aumento do valor da gasolina e chego a seguinte conclusão: - Que passe pra R$ 10,00 o litro!!! Sabe por quê? Veja bem. Hoje está cada vez mais fácil comprar um carro, seja ele novo ou usado. As pessoas de baixo poder aquisitivo ficam praticamente emocionadas com a possibilidade de comprar seu primeiro carro e acabam não medindo as reais conseqüências de tal ato. Veja, o fato de comprar um carro, envolve mais gastos do que somente este ato. Há também o IPVA, licenciamento, seguro, combustível e as tão temidas revisões! Fora que, se for usado, as revisões se transformam em manutenções! Então você que conseguiu comprar seu carro, paga seguro, abastece, troca óleo, faz revisões e está todo feliz andando pra lá e pra cá no seu carrinho sofre, de repente, uma colisão. Desce do seu carro, caminha todo nervoso para ver o tamanho do estrago, percebe que vai sair caro, vai ficar um tempo sem o carro e, aí começa o transtorno, percebe que s

Vai chover?

Segundo o G1 , o primeiro-ministro da Letônia, foi a uma adivinha para ver o futuro do país. Antes que você comece a rir, saiba que o governo do Rio de Janeiro faz a mesma coisa há algum tempo: veja aqui . Aliás, acho que é pior pois tem até contrato. Falando nisso, foi feito por dispensa de licitação? Detalhe importante: no caso do Rio de Janeiro, é preciso ter um cronograma de obras e instalação de radares metereológicos.

Backup dos documentos que estão armazenados na nuvem

Imagem
Apesar de não ser um grande usuário do Google Docs, tenho lá meus 40 e poucos documentos (mas uso mesmo só 5). Depois de ter falado da segurança da computação em nuvem aqui , vi que faltava mais informação de como deixar isso mais seguro. Eis um pequeno tutorial de como fazer backups de seus documentos armazenados na nuvem, mais precisamente no Google Docs. 1. Clique com o botão da direita em um documento qualquer e selecione a opção "Fazer download..."   2. Na janela aberta, selecione a guia "Todos os itens" e clique em "Fazer download" 3. Aguarde enquanto os arquivos são compactados. 4. Concluída a compactação, o download começará automaticamente. Cabem aqui duas observações: 1. No item 3 existe a possibilidade de "Enviar por e-mail quando estiver pronto", mas como a questão central aqui é a segurança da nuvem, não aconselho a usar essa opção; 2. Apesar de ser simples, não é intuitivo, pois é preciso clicar em um arquivo pa

Enquete

Ainda não vi nenhuma enquete do tipo: Você acha que Osama bin Laden está: 1. Morto 2. Vivo, capturado pela CIA 3. Vivo, capturado pela CIA sendo brutalmente torturado 4. Vivo, fugiu para o Afeganistão Diante dos fatos mostrados (ou melhor, não mostrados) até agora, acredito na opção 3.

POG - Programação Orientada a Gambiarras

Fui obrigado a rir pensando no título deste post, mas é a pura verdade. Veja só meu problema. Na minha rede do trabalho, o IP da minha máquina estava mudando direto (dinâmico). Como tenho que acessar minha máquina de casa e muitas vezes em outros locais através da VPN, isso é um verdadeiro incômodo. Assim, resolvi fixar o IP. Até aí tudo bem, mas daí não conseguia mais mapear uma unidade rede que é muito importante para o meu trabalho. E fiquei pensando que se houvesse uma maneira do meu computador informar o IP para mim, através de um outro acesso (um site, um arquivo ftp, etc) seria muito prático. Como tenho acesso ao FTP da rede, criei uma solução simples, mas que parece complicada explicando. Resumindo, meu micro salva o IP em um arquivo TXT e através de um BATCH eu jogo esse TXT para uma área FTP que posso acessar de qualquer computador com acesso a internet e ver qual é o IP atualizado! Só lembrando que tenho um micro com Windows 7 no meu trabalho, então talvez você tenha q

L337, L33T, LEET

Já ouviu falar de L337? E L33T? E LEET? Talvez não tenha ouvido falar, mas muito provavelmente já viu algum termo escrito em leet. Por exemplo: h4(|{3r (hacker), p0rn ou pr0n (porn). Esclarecendo: Leet é uma linguagem, um alfabeto, que começou a ser utilizada nos anos 80, como forma de burlar a censura a certos termos nos BBS. Na versão mais básica é a simples substituição das vogais por números: A = 4 E = 3 I = 1 O = 0 Mas por ser muito flexível pode existir mais de uma forma de escrever a mesma palavra. Veja o exemplo do título deste texto. Leet pode ser escrito como "L337" ou "L33T". As formas mais complexas são abordadas aqui e aqui . Se quiser brincar um pouco existem alguns tradutores de leet para inglês. http://www.brenz.net/services/l337Maker.asp http://www.albinoblacksheep.com/text/leet Existe até mesmo uma versão do Google em leet: http://www.google.com/webhp?hl=xx-hacker 3nj0¥!