Tag: Lógica


  • Há um tempo eu li “The Pragmatic Programmer“, uma espécie de livro de auto-ajuda para programadores. Não é um livro técnico, não vai te ensinar técnicas ou tecnologias, mas fala de um jeito de pensar e traz uma coleção de conselhos daquele tipo que parece óbvio mas ninguém nunca faz. Um desses conselhos era aprender…

  • Detalhezinho sobre a linguagem que vale a pena conhecer, e uma boa dica de lógica sobre um erro muito cometido por iniciantes: “We shouldn’t be fearful of writing about what we know. Even if you write from the most basic point of view, about something which has been ‘around for ages’, you’ll likely be saying…

  • Papo de Maluco

    Hoje estava brincando com Requests e tive essa ideia maluca: import requests import re def Ed(text): params=dict(server=’0.0.0.0:8085′,charset_post=’utf-8′, charset=’utf-8′,pure=1,js=0,tst=1,msg=text) return re.sub(‘<[^>]*>’,”,re.sub(r’\n+$’,”, requests.get(‘http://www.ed.conpet.gov.br/mod_perl/bot_gateway.cgi’, params=params).text)) def SeteZoom(text): params=dict(server=’127.0.0.1:8088′,pure=1,js=0,tst=1,msg=text) return re.sub(r’\n+$’,”, requests.get(‘http://bot.insite.com.br/cgi-bin/bot_gateway.cgi’, params=params).text) msg=’Oi!’ while True: print ‘SeteZoom: %s’ % msg msg=Ed(msg) print ‘Ed: %s’ % msg msg=SeteZoom(msg) Teste aí, o resultado às vezes é mais inteligente que muito…

  • Python from Humans

    O Arthur me indicou e eu quase chorei ao ver:  

  • https://github.com/elcio/visualdal Críticas, sugestões e, claro, pull requests são muito bem-vindos!

  • Números bem torturados

    Dizem que Delfim Neto dizia que números, quando bem torturados, são capazes de confessar qualquer coisa. Eu concordo. Sempre que você ouvir números impressionantes gaste algum tempo pensando, aplique um pouco de matemática básica e duvide um pouco do que você ouviu. Vi no Facebook hoje o pessoal compartilhando esse artigo: Paulistas compram mais carros…

  • Para iniciar este post, é preciso deixar algo claro: diferente da minha postura com os polêmicos ponto-e-vírgula, em que sei que sou “promíscuo e relaxado”, eu sou muito reticente quanto ao uso de eval() em javascript. O principal motivo é que eval() me cheira a gambiarra. Mas tenho muita dificuldade em dizer porquê. Na verdade,…

  • XML não é a resposta 2: parsing

    Em meu último post sobre esse assunto, expliquei porque prefiro, na maioria dos casos, usar um formato de descrição de dados como JSON ao invés de XML. Infelizmente, parece que nem todo mundo concorda comigo, e há uma porção de dados úteis disponíveis apenas em XML. O que não é um problema, certo? Do que…

  • XML não é a resposta

    Não me entenda mal, XML é uma idéia interessantíssima, pela qual sou apaixonado. Tenho dado aula de XML, escrito HTML como XML válido, publicado e consumido dados em XML, acompanhado as iniciativas de Open Data e RDF no W3C. O problema é que, enquanto alguns mercados subutilizam XML, tornando o intercâmbio de dados muito complexo,…

  • Dica de Python: glob

    Um módulo Python pequeno, com uma única função muito simples, mas que você precisa conhecer é o glob. O que ele faz é obter uma listagem de diretório: import glob files=glob.glob(‘*’) O que equivale a: import os files=os.listdir(‘.’) Porém o glob é muito poderoso. Podemos fazer: glob.glob(‘*.mad’) Ou: glob.glob(‘../pasta/*’) Fica a dica.

  • Parallel Python

    Embora seu computador possa ter dois, quatro, oito ou até dezesseis núcleos de processamento, o Python só usa um deles de cada vez (mesmo trabalhando com threads). Parallel Python resolve o problema. Um exemplo simples, para você entender como funciona: ppserver = pp.Server(ppservers=()) job1 = ppserver.submit(funcao_demorada, (), (), ()) job2 = ppserver.submit(funcao_demorada, (), (), ())…

  • Fiz essa versão do clássico joguinho Lights Off: O jogo é simples, e o objetivo é apenas apagar todas as luzes. Por curiosidade, fiz também o algoritmo que resolve o jogo: O desafio está lançado. O primeiro que colocar nos comentários a URL de uma página com um botão “solve” como o meu ganha uma…

  • utf8_decode em Javascript

    Navegando por aí, acabei esbarrando no blog do meu amigo Marcos Rossow (nossa, quanto tempo!) E encontrei esse post: JavaScript UTF-8 Decode, com um código tirado daqui: JavaScript utf8_decode. Tem duas coisas que me incomodam nessa abordagem. A primeira é essa mania que muita gente tem, particularmente programadores PHP, de tratar UTF-8 como um “código…

  • Hein?

    Trecho de código legado (ASP) que pegamos aqui: if len(request(“price”)) = 3 then     valorTotal = left(request(“price”),1) elseif len(request(“price”)) = 4 then     valorTotal = left(request(“price”),2) elseif len(request(“price”)) = 5 then     valorTotal = left(request(“price”),3) end if Jênio.

  • Brincando com a API do twitter

    Resolvi experimentar um pouco a Twitter API. É linda, do jeito que toda API deveria ser. É REST, muito fácil de entender e colocar para funcionar, e devolve dados em XML, JSON, RSS e ATOM. Essa simplicidade permite interagir com a API usando ferramentas simples da linha de comando do Unix, como o wget e…

  • Fuja da complexidade

    Abri o OpenOffice Writer, mandei gravar uma macro, escrevi “teste”, selecionei e pintei de vermelho. Olha o código gerado: sub Main rem ———————————————————————- rem define variables dim document as object dim dispatcher as object rem ———————————————————————- rem get access to the document document = ThisComponent.CurrentController.Frame dispatcher = createUnoService(“com.sun.star.frame.DispatchHelper”) rem ———————————————————————- dim args1(0) as new com.sun.star.beans.PropertyValue…

  • Data errada no Javascript? Bug?

    Um amigo me escreveu agora para mostrar algo muito curioso. Abra sua Firebug, ou qualquer outro lugar onde você roda Javascript, e teste: new Date(2008,8,11) Você deve ter como retorno um objeto de data, que se impresso mostra: Thu Sep 11 2008 00:00:00 GMT-0300 (BRT) Porque setembro e não agosto, você pode se perguntar. É…

  • Não entre em pânico

    Você está usando um terminal conectado a um servidor Unix quando as coisas começam a se comportar de maneira estranha. Depois de algum tempo você descobre o problema. Vai até a mesa de um programador novato e descobre que ele, como root, digitou: # cd # rm -rf * O sujeito percebeu a burrada antes…

  • No Greg’s Wiki você encontra os Bash Pitfalls, uma lista de problemas comuns entre os programadores bash iniciantes. Encontrei vários dos meus erros comuns lá. E aprendi um bocado.

  • Divirta-se: Puzzles do Wendel

    Exercício de lógica. Esses Puzzles do Wendel me fizeram perder um tempão! Boa diversão, depois conte para a gente aqui nos comentários até onde você foi. IMPORTANTE: não escreva as respostas, senão você estraga a brincadeira dos outros.