Feed on
Posts
Comments

Imagine você trabalhando na sua fábrica de Software CMMI nível 5, altamente motivado em um projeto em Haskell quando surge o desafio de precisar validar um CPF.

(na verdade o cálculo do CPF é bem simples, e tem dois jeitos parecidos, teoria dos números explica)

Então fiz esse lindo módulo incluindo IO copiado e colado perfeitamente estudado.


cpf_digits :: [Integer] -> [Integer]
cpf_digits a = [dv1, dv2]
-- as 3 linhas abaixos devem estar identadas
        where
        dv1 = calc_vd a
        dv2 = calc_vd (drop 1 (a ++ [dv1]))

calc_vd :: [Integer] -> Integer
calc_vd a = mod (foldl (+) 0 (zipWith (*) a [1..9])) 11

check_cpf :: [Integer] -> Bool
check_cpf a = and (zipWith (==) (drop 9 a) (cpf_digits (take 9 a)))

str2list x = map (a -> (read [a] :: Integer)) x

main = do
        x <- getLine
        let ok = check_cpf (str2list x)
        putStrLn $ show ok

Para rodar você precisa ou do Hugs98 ou do GHC

Compila com o GHC e rode

ghc cpf.hs -o cpf
echo '11111111111' | ./cpf

ou com o hugs

echo '11111111111' | runhugs cpf.hs

111.111.111-11 é um CPF válido btw

Edit: Identação fail

Sobre Isso Aqui

Dado como é o mundo acadêmico:
- Alguém vai reclamar que está fora das regras da ABNT
- Outro pesquisador vai reclamar pois a sua solução é não-linear (logo, pode ter casos não ótimos, causar câncer em cachorrinhos e gatinhos, etc)
- Um doutor vai aparecer e perguntar o que isso tem a ver com “cloud computing”/$modinha_do_dia
- Como co-autor do paper está alguém que nem sabe compilar o programa, não sabe o truque na matemática de ponteiros que é uma parte essencial da performance do algoritmo e ainda por cima sugeriu fazer em Java.
- O fato de você ter resolvido o problema O(n!) em O(n) é irrelevante, você não foi rigoroso no resto do problema nem provou ou citou a referência que diz que “o céu é azul” ou que 2>1

Então depois de um tempo começo a perceber problemas realmente chatos com a Internet de casa (ou melhor, vista do meu notebook).

Daí levo o notebook para outros lugares, o problema se mantém (¬¬). Basicamente as páginas as vezes demoram muito a começar a carregar. (Mas depois vai ok)

Então daí passo a usar outra máquina em outro lugar, e o problema aparece novamente.

#VDM

Curiosamente outros serviços como wget e twhirl parecem imunes ao problema… OQUEI.

Duas coisas

1- Procure uma entrada “search” no resolv.conf e a retire.

2 - about:config no firefox e altere a opção network.dns.disableIPv6 para true

Até agora, melhorou horrores. Ou seja, voltou ao normal \o/

Outro dia apareceu um problema curioso aqui. Máquinas com linux *coff*coff* ao serem ligadas via VGA em uma TV LCD (grande, normalmente), em algumas aplicações mostrava letras muito pequenas (exemplo, Google Maps).

(O que é curioso, uma tela gigante com um texto ridículo de pequeno).

Mas o que acontece?? VGA -> Vesa -> DDC/EDID -> Infos do monitor

Exemplo do meu monitor

(II) intel(0): Supported additional Video Mode:
(II) intel(0): clock: 106.5 MHz Image Size: 408 x 255 mm

Tamanho da imagem e Resolução juntos -> DPI

Bem que Rasterman falou DPI scaling não presta!!! Tamanho grande, resolução baixa, DPI pequeno. (não entendi porque a letra diminuiu).

A solução é a opção “DisplaySize” no xorg.conf. Coloque valores “mais convencionais” e tudo volta ao normal.

Bossa ‘09

Semana passada estive no Bossa Conference 09, (nunca tido ido em alguma grande confêrencia de SL ainda - pois é).

Considero que o principal da conferência foi os contatos com pessoas, algumas das quais eu já tinha ouvido falar ou alguns conhecidos, amigos de um passado recente, e fiz novos amigos. Até conheci a Cora Rónai! tirando fotos dos peixes no laguinho do hotel.

Dica no1 para conhecer gente: faça pergunta nas palestras.

Enfim, se você quer ler minha descrição das palestras que eu vi, leia mais

Continue Reading »

Estou num momentos de novas aventuras, brincando com coisas web, e fazendo uma das coisas que me distrai quase tanto do que ler coisas na internet: ler coisas em livros…
Usabilidade é uma das coisas que acho interessante (provavelmente devido a ódio de coisas sem usabilidade), e quis aprender mais. E como um dos melhores jeito de aprender é ensinar…

Vamos as regrinhas básicas (escolhidas por mim) que ninguém pode esquecer:

Legibilidade

Olha amigo, eu sei que você tem visão de águia e um monitor de 30″ LCD na sua mesa, mas por favor, pense na pessoa que está na lã-ráuse com um monitor CRT coitadinho sem brilho e fora de foco. Ninguém tem que forçar a vista para ler o seu site, especialmente se for a sua avó. E se eu não consigo ler não vou entrar no seu site oras!

Exemplos:

canyouread.png

Consegue ler?? Dê um passo pra trás, e agora? Nada de cores miguxas e baixo contraste, pliz :)

Maus exemplos tá cheio aí. E nada de serifas, por favor… Cereja no bolo: teste para ver se o seu site não quebra (muito) se o tamanho da letra é aumentado no browser.

Aonde eu clico?

O usuário sabe clicar. Ou melhor, sabe clicar em coisas que parecem clicáveis. Se não parece um botão, ou pior, o usuário ficar em dúvida, já era!

Ou é óbvio, ou não é. Pense em coisas que o usuário intuitivamente sabe clicar: botões, abas, panes, fotos, etc. Respeite as ações dos elementos, não faca uma aba abrir uma página em outra janela por exemplo. Entra aqui http://www.amazon.com/ e veja se tem alguma coisa que te faz hesitar ou não em clicar.

Agora, se você pensar em “ensinar o usuário” e colocar uma indicação “clique na flor para entrar”, um jacaré vai invadir sua casa pelo esgoto.

Curiosamente, existe um fenômeno contrário interessante. Se um usuário achar (e isso acontece em milésimos de segundo) que algo é um anúncio, ele vai apagar aquilo do seu foco de atenção e não vai chegar nem perto. Logo, não coloque nada que se pareça um anúncio se não o for.

Links

O usuário sabe o que é um link. Sabe as dicas que o levam a saber o que é um link (cor azul, sublinhado, efeitos mouseover) Não o confunda. E sobretudo, links já visitados tem cor diferente, não estrague isso no CSS

Exemplo de mal exemplo: http://www.linkedin.com/
linkedinss.png

Tá vendo isso?!?! Tá vendo “PROFILE UPDATES”?? Isso não é um link. Agora veja “LINUX EXPERT UPDATES” Isso é um link!!!

W T F Indeed

Hierarquia da informação

Não sabe o que é?!? Para programadores a explicação é fácil. É a diferença de você ler um código identado e ler um código não identado.

Outro exemplo? Qualquer jornal (online ou não). Tem o título do jornal. Tem o título da notícia. E tem a notícia em si. Ado ado ado cada um no seu quadrado. O “quadrado” do título é a página inteira, o da notícia é o menorzinho que tem o título e a notícia, etc.

Quo vadis

Não deixe o usuário perdido. Será que ele sabe onde está no grande mapa do seu site? Ele saberia chegar de volta a recepção ou fica chorando no meio do corredor porque se perdeu da mãe? No wordpress aqui eu vejo no topo exatamente onde estou. Write > Write Post (com abas). Outro método são “breadcrumbs” (a Amazon usa isso): Tools and weapons >> Fire >> Flame Thrower

Lógico que para o usuário voltar aonde estava ele tem que ser capaz de ir em primeiro lugar. Abas, listas de links, tudo isso ajuda o usuário a se localizar.

Ah sim, tente não quebrar o botão “Back”, ok, as vezes não dá, mas não o quebre por qualquer bobagem.

Também evite links do tipo sualoja.com/cgi-bin/abcdef/blah.php&lala=7298728372212?xik=ACC89879874398749874 ou pior, locais não acessíveis diretamente com um link.

Lógico que se é um blog ou um site simples isso é mais fácil.

Livros de 2008

Com vontade de discorrer sobre o ano que passou, com suas questões e montanhasrüssas, sinto-me atolhado de livros, retermêei a mencionar dos livros que acho que li em 2008 (e não antes), avacalhando a nova gramatica no processo.

Sem mais delongas

South Park e a Filosofia

De Karl Popper a Marx, Platão e outros, como os livros da série * e a filosofia, capítulo a capítulo mostrando as questões mostradas nos episódios de South Park. Desde as bases da filosofia até a defesa do Casamento Gay e eleições. Meu capítulo favorito é o dedicado ao episódio “Gnomes”, sobre a Filosofia Libertária. Pena que não falaram nada sobre a Towelie (ok, falam um pouco no capítulo de inteligência artificial) ou sobre Mr. Hankey

Introdução ao Mundo do Vinho

Ah, o que falar… Ebriarnosemos com estilo! O livro explica com detalhes os tipos de uvas, de vinhos, as regiões produtoras, etc, etc. O que esperar de um livro de vinho é o que tem no livro!

DIca mais valiosa (IMHO) do livro: Fuja dos saca-rolha formato parafuso, use os formato hélice.

Investimentos Inteligentes

Uma boa leitura para quem não sabe o que fazer com o dinheiro. Especialmente relevante nesse momento de crise. Como diz o autor, é nas crises que acontecem as grandes oportunidades

De Olho em Springfield

Escrito por um fã, na linha de coleções de fatos, citações e personagens dos Simpsons. Muito divertido

Shell Script Profissional

Pra quem precisa fazer milagres com Shell Script, também foca em boas práticas que deveriam estar na cachola de todo desenvolvedor por aí. Apesar da profundidade não deixa de ser leitura bem fácil com destaque para as piadinhas

Tudo o que você pensa, pense ao contrário

Alguns poderiam chamalo de livro de auto-ajuda, acharia injusto um rótulo desses. O livro foi feito, basicamente, como um Powerpoint em formato livro. Ou talvez um livro de criança, com muitas figuras e letras grandes. Mas é invaluable. Escrito por Paul Arden (nem parece um publicitário) o livro é bom para nos lembrarmos de um monte de besteirinhas que sempre esquessemos ou nos acomodamos…

A Cabeça de Steve Jobs

Tecnicamente começei a lelo dia 31/12 lá pelas 16h00 então é de 2008! Livro fantástico sobre a história desse louco pirado com toque de midas. Ninguém precisa demitir pessoas no elevador mas suas idéias, seu bom gosto e capacidades são admiráveis. Bom, fiquei verdadeiramente com pena da família dele quando explicaram que Steve demorou algumas semanas pra decidir qual máquina de lavar roupa comprar.

Mitos da Inovação

Explica sobre mitos propagados por “especialistas” que acham que inovação se contrata, se executa das 9h as 18h e se constrói. Interessante.

Não me faça pensar!

Esse é o livro que qualquer pessoa que faça qualquer programa/site que seja usado por leigos deveria ler. O título já resume tudo, e ele não entra profundamente em detalhes que outros livros entram, mas é uma ótima introdução. “O que não é simples de usar não vai ser usado tanto”.

#fmds

Participei esse fim de semana do Fórum de mídias digitais Um evento com muitos conhecidos da blogosfera, insightful, e muito divertido.

Fotos!(não são minhas - ganha um prêmio pra quem me achar aí :P - apareço em 2 fotos)

Algumas coisas interessantes que reparei

No bingo sai “monetização” (nem falaram) entra “radfahrer” :P Não fizeram muitos pontos though…

Netbooks?? Negócio é AiFone, N95, HTC, etc, etc Todo munto tuitando live!!! Não sei se porque a onda ainda está subindo, mas era nítida a diferença de quantidade de iPhones vs. eeePCs (talvez tivesse outro netbook, não lembro, só sei que tinha um Air perdido)

É bem legal ver gente pegando uma idéia e transformando em site (e melhor ainda, transformando em $$) Fantásticos os cases do Videolog, do Compra3 (bem como outros que não lembro o nome!)

As festas e passeios com o pessoal foram bem legais

Note to self: fazer cartões do blog na próxima :P Colecionei alguns, indo do profissional ao jato-de-tinta. O que vale é a intenção:)

stweet.png

Ou talvez apenas a tag-cloud do meu twitter

Viva a hipocrisia

manif.jpg

As dezenas de pessoas que são assaltadas e sequestradas diariamente na frente, bem como os alunos que são roubados dentro das diversas universidades ao redor dessa bosta também querem paz. Aah, mas esses não podem fazer manifestação, daí é coisa de chato, de sem graça. Ninguém pode cansar de ser otário, não senhor…

Gozado que só reclamam da polícia, mas é a única que pode conter a própria violência interna que existe lá. Aah lógico, um matando o outro não tem problema nenhum

Aprenda aqui como fazer uma invasão e ganhar dinheiro com isso

Eleições no Rio: Um candidato foi exemplo de transparência e honestidade. O outro, bem… E quem ganhou mesmo, e quem votou mesmo?!?!?! Humm….

Minha opinião sobre as manifestações é que quanto mais idiotas e mais inúteis mais frequente são. E isso não tem nada a ver com direita e esquerda, cima ou baixo, todas me dão nojo. E as manifestações TFP ainda por cima são redundantes, fantástico. Protestando algo que já é proibido, tsk tsk tsk…

Já aquelas que poderiam mudar algo, são SUMARIAMENTE proibidas.

Braziuziuziu a saída é o aeroporto e ainda bem que o aeroporto internacional não é aquele que te transforma em churrasco ai ai ai

Older Posts »