Archive for abril, 2009

17th abr 2009

Porque o Gmail também falha…

Ver um erro 500 logo na entrada do Gmail me faz ficar tranquilo: se os deuses erram e deixam a aplicação ter erro interno, porque nós, simples mortais, não podemos? #FAIL

gmail_erro

Posted by Posted by Chris under Filed under fail, web 2.0 Comments 7 Comments »

16th abr 2009

O POG nosso de cada dia #6

Mais um pra série; dessa vez, o requisito é uma funcionalidade em uma página para direcionar o usuário para uma ou outra página dependendo do estado/cidade que ele escolher – o cliente passa a lista das cidades que são excessão, umas 5, e redirecionam para uma url; as demais, mandam para outra url.
Implementei dois selects, um que de cara já lista todos os estados do Brasil e que, quando tem um estado selecionado, populo o outro select com as cidades desse estado usando requisição assíncrona via javascript pegando a lista do backend. Com isso, como fazer para redirecionar o usuário?

Solução bonita

Dar o submit no form para uma url para que o backend receba o id da cidade e verifique numa lista para qual url será feito o redirecionamento. Essa lista pode estar, por exemplo, numa tabela do banco relacionada com a tabela de cidades (que populou o select).

O Problema

Tempo e custo. Alterar o backend é sempre mais caro e mais demorado. E o cliente não queria aprovar dessa forma…

POG

Simples: tratar regra de negócio na interface. Nunca é correto, mas é mais rápido…
Tendo o select com as cidades (imaginando que esse é populado por javascript, requisição assíncrona):

<select name=”stateCities” id=”stateCities”>
<option value=”1″>cidade 1</option>
<option value=”2″>cidade 2</option>
<option value=”3″>cidade 3</option>
<option value=”4″>cidade 4</option>
<!– etc… –>
</select>

é só criar um listener no onchange desse select (fiz isso usando a Prototype) que verifica se o value da cidade selecionada está num array pré-definido (e hard-coded). Se estiver, direciono para uma url, senão, para outra…

Event.observe(“stateCities”, “change”, function() {
/*
lista das cidades que redirecionam para url 1
Campinas: 7
Ribeirão Preto: 54325
São José dos Campos: 78768
*/
var cities = ["7", "54325", "78768"];
//usa método member de Enum da prototype para verificar se existe elemento no array
if(cities.member($F(this)))
window.open(“http://www.minhaurl1.com”);
else
window.open(“http://www.minhaurl2.com”);
});

Posted by Posted by Chris under Filed under POG, javascript Comments 9 Comments »

15th abr 2009

O POG nosso de cada dia #5

Sei que vou criar uma boa discussão por aqui, mas já deixei claro que não gosto de algumas coisas na jQuery. Ela se tornou paraíso para criação de código mal-estruturado no javascript (até porque é tão fácil de utilizar – e isso é uma das suas vantagens – que muita gente sem conhecimento profundo de programação consegue usar. Aí, quando a complexidade aumenta…).

Claro, consigo ver os benefícios e pontos positivos da jQuery, mas algumas coisas não saem da minha cabeça.
E uma delas, pra mim,  é um dos POGs máximos: um método mágico que faz duas coisas ao mesmo tempo.

Exemplificando: como retornar o innerHTML de um objeto do DOM com a jQuery?

$(“#myId”).html();

E como se faz pra alterar o innerHTML?

$(“#myId”).html(“meu conteúdo”);

Por mais que seja simples e fácil, isso não entra na cabeça de todos 99% dos programadores que estão acostumados com linguagens orientadas a objeto… um método que lê dados (getter) não poderia ser o mesmo que altera (setter). Pode causar muita, mas muita confusão, num código maior.
E coisas desse tipo são frequentes na jQuery.

Sim, atirem as pedras, estou esperando! hehe

Posted by Posted by Chris under Filed under POG, javascript Comments 30 Comments »

14th abr 2009

Benchmark entre Mac OS e Ubuntu 8.10

Muito bacana esse post do MeioBit que reproduz um benchmark entre o Mac OS e o Ubuntu feito pelo Phoronix, condensando as informações desse site.

A idéia, jamais, é ficar na briguinha qual OS é melhor do que o outro… são apenas indicadores que, para mim, funcionam como curiosidade e, no caso, confirmar o que eu acho e que me levou a usar o Ubuntu para trabalhar e o Mac OS no uso doméstico: performance melhor do Ubuntu quando o assunto é trabalhar com ferramentas de desenvolvimento/programação, e superioridade do Mac OS para rodar outros aplicativos – e para uso contíno.

mb_php_compilation_3

Melhor performance do compilador do PHP no Ubuntu

mb_urban_terror_3

Melhor performance do Mac OS rodando aplicativos gráficos

A conclusão? São dois ótimos sistemas; escolha ao seu gosto!

Posted by Posted by Chris under Filed under Tecnologia Comments 7 Comments »

13th abr 2009

Enquete – modificar tema de um OS para parecer com outro?

Estava lendo esse post sobre como modificar o GNOME (no Ubuntu) para que ele fique com cara do Mac OS.

Já vi muita coisa por aí desse naipe, inclusive formas de deixar o Windows XP com a cara do Mac OS, temas do GNOME para fazer com que fique parecido com o Windows, e diversos outros tipos de putarias modificações…

O que você acha de modificar tema de um OS para parecer com outro?

View Results

Loading ... Loading ...

Posted by Posted by Chris under Filed under apple, enquetes, linux Comments 17 Comments »

10th abr 2009

9 pacotes de ícones para o Ubuntu

Quer mudar a aparência da instalação do seu Ubuntu? Existem muitas formas e a mais rápida e impactante é mudando os ícones do sistema.

Vejam esses 9 pacotes para o GNOME:

Posted by Posted by Chris under Filed under linux Comments 3 Comments »