Archive

Archive for June, 2010

6 x 9 = 42

June 21st, 2010

Que a resposta para a vida, o universo e tudo mais é 42 todo mundo sabe (até o google sabe). Mas fiquei bolada com a equação 6 x 9 = 42, que aparece no volume
2 da trilogia de 5 do “Guia do Moxileiro das Galáxias” (livro que eu recomendo, incluse consta na lista dos 1001 livros para ler antes de morrer).

Para quem não leu ainda, para entender o significado da pergunta fundamental, os personagens Arthur e Ford estão tentando formular a pergunta correta cujo resultado é 42. Tirando letras feitas em pedras numa toalha ao acaso, o diálogo é o seguinte:


– Q– disse Ford–, U, A, L... Qual! Piscou os olhos.
– Acho que está funcionando! – disse. Arthur lhe entregou mais três,
– E, O, R... Eor. Bom, talvez não esteja funcionando – disse Ford.
– Toma mais estas três.
– E, S, U... Eoresu... acho que não está fazendo sentido.
Arthur tirou mais três e depois mais duas. Ford as colocou em seus lugares.
– L, T, A... D, O... Eoresultado... É o resultado! – gritou Ford. – Está funcionando! É fantástico, está funcionando mesmo!
– Tem mais aqui – disse Ford, arrancando-as febrilmente o mais rápido que podia.
– D, E – disse Ford –, S, E, I, S... Qual é o resultado de seis... V, E, Z, E, S... Qual é o resultado de seis vezes... N, O, V, E... seis vezes nove... – fez uma pausa. –Vamos, cadê a próxima?
– Ahn, isso é tudo – disse Arthur –, eram todas que tinha.
Recostou-se, perplexo.
Vasculhou com as pontas dos dedos mais uma vez dentro da toalha mas não havia mais letras.
– Quer dizer que é isso? – disse Ford.
– É isso.
Seis vezes nove. Quarenta e dois.
– É isso. Está tudo aí.

Após esse diálogo, o livro não cita mais nada a respeito, os personagens enfrentam outras aventuras no antigo planeta terra.

Muito curiosa, procurei em blogs e foruns de livros mas fiquei frustada por ver que muitos leitores que leram e recomendam a trilogia, sequer citaram esse fato inusitado (ou até mesmo nem notaram, como anda a sua tabuada?).

Cogitei erro de tradução, mas no livro na lingua original está da mesma forma.

Bom, até que um site sério (desciclopedia!) me clareou as ideias e me salvou da escuridão. O que acontece é que a conta é feita em base 13, e não em base decimal. Não, Douglas Adams não errou na conta!

Tanto que se passarmos o resultado de 6 x 9 (54) para base 13 o resultado é exatamente 42 (fiz o teste num coversor de bases, convertworld.com)

Ufa… muito bom descobrir que não estou ficando louca! Até mais pessoal!

Diversos

A culpa é do sistema

June 14th, 2010

Olha, já ouvi muita coisa nessa vida, mas na minha opinião a desculpa mais esfarrapada é “a culpa é do sistema…” (a pessoa ainda fala com a cara de um cachorrinho todo coitadinho que não pode fazer nada). Para mostrar minha indignação, resolvi escrever este post.

Imagine a situação, você é contratado para fazer um sistema, faz toda a análise, estuda os requisitos, entrevista clientes e usuários, faz a modelagem, faz o protótipo, discute com o cliente, enfim… desenvolve o sistema do jeito que o cliente querm, atendento com perfeição às necessidades do cliente.

Aí algum dono de loja ou de estacionamento que não quer dar descontos para um cliente insistente, o que faz? joga a culpa no sistema! ou seja, não é que ele é um mercenário que só pensa no lucro, é que o sistema não permite dar um desconto!

Muita cara de pau não? se o sistema foi feito moldado exatamente para as necessidades do cliente, é a maior desculpa esfarrapada… e quem fica mau na história somos nós, analistas de sistemas, que somos cruéis e não queremos dar desconto para ninguém.

Pois é, isso é falta de coragem para a pessoa assumir que não vai dar desconto porque é uma política dela ou da empresa, sei lá, mas que o sistema não tem nada a ver com a história…

Um dia ainda vou ter esse diálogo quando ouvir a famosa desculpa:

- Desculpe não fazer isso por voce, o sistema não permite.
- Ah, não tem problema, sou analista de sistemas, é só eu dar uma alterada no código-fonte que o sistema vai permitir tudo que você quiser.

ou então:

- Desculpe não fazer isso por voce, o sistema não permite.
- Nossa sério? Vamos fazer o seguinte, já que o sistema é o problema e está engessando tudo, vamos discutir um orçamento para eu desenvolver um sistema melhor. Faço um desconto de 10% para pagamento feito à vista.

Só para chatear o atendente um pouquinho… afinal, tá na hora de pararem com essa conversa fiada de por a culpa no sistema!

Diversos

PHP x Cookies

June 7th, 2010

Cookies nem sempre são recomendados, principalmente porque por serem armazenados no navegador do cliente, o usuário pode desabilitar o cookie ou até mesmo pior, alterar o valor do mesmo. Como o cookie pode ser confiável desse jeito?

Bom, mas tem aplicações em que é inevitável a utilização de cookies. Eu, por exemplo, estou desenvolvendo um sistema onde resumidamente, preciso pegar informações do banco de dados e passar para uma variável javascript, de forma que pelo código fonte não seja possível ver o valor desta informação.

Qual a solução? COOKIES!! Guardo o cookie com o valor confidencial por PHP, direto do banco de dados, e pelo javascript pego o valor do cookie e armazeno numa variável, de forma que ninguém que não acesse meu banco de dados saiba o valor da variável (muito diferente de utilizar os famosos campos “hidden”).

Em teste, tudo certo… e eis que ao passar para produção, claro, tinha que não funcionar direito… alias essa é uma premissa básica do desenvolvimento de sistemas: não importa o quanto você testa seu programa, ao passar para produção sempre terá um erro desconhecido no qual você perde horas, ou até mesmo dias, estragando de vez seu cronograma de entrega do sistema. (essa é aliás uma das maiores emoções de ser programadora =] )

Após muito mexer e debugar manualmente meu programa (”debugar” em php já viu, é um ctrl+c / ctrl+v / echo aqui / echo acolá que não acaba mais), descobri minha salvação! Por algum motivo não identificável (na verdade o que importa mesmo nestes casos é a solução do problema), muito provavelmente diferença de configuração do php, a função setcookie(…) do php só estava funcionando quando setada antes da TAG <HTML>… todos os cookies que eram criados após esta tag, em produção não eram criados.

Neste caso, a solução foi colocar logo no início da página, o comando “ob_start();” que ativa o output buffering, evitando o erro (que para mim era invisível) “Warning: Cannot modify header information”.

Então é isso, para quem for trabalhar com php + cookies, fica aí a dica!


<?php
session_start();
ob_start(); // linha milagrosa!
?>
<HTML>
<?
// agora posso criar meus cookies mesmo após a tag HTML
setcookie("cookieDaMelissa", "1000", 0, false);
$nome_do_cookie = "cookieDaMelissa";
if(isset($_COOKIE[$nome_do_cookie]))
{
echo "O cookie $nome_do_cookie existe! ";
}
?>
<HEAD>
....

Diversos