Blog and Site, BETA!
Random header image... Refresh for more!

Posts from — January 2010

Designing Social Interfaces

Que bela surpresa eu tive ontem ao chegar em casa e encontrar um pacote de sedex em cima da cama. “Mas espera aí, eu não pedi nada!”. Quando abri, lá estava a cortesia do “Designing Social Interfaces” da O’Reilly:
Designing Social Interfaces Cover

O livro fornece um conjunto de patterns e anti-patterns para a construção de interfaces para sites de redes sociais. São vários. Os autores são os fundadores da Yahoo! Design Pattern Library, então acho que sabem do que estão falando. Outras coisas legais são que os autores liberam a cópia de trechos do livro livremente, então vai dar pra eu ir postando o que eu achar legal conforme eu for lendo o livro, e também liberam os diagramas e fotos do livros sob a Creative Commons no flickr:

http://www.flickr.com/photos/socialpatterns/sets

Tudo muito legal, mais posts em breve :)

January 20, 2010   1 Comment

Como obter a declaração de um array a partir de um array em PHP

Você, alguma vez na vida, precisou escrever uma definição de um array que você tinha em memória no próprio código? Como assim, Zé? Sei lá, por exemplo, na hora de escrever testes no cakephp você muitas vezes precisa definir um array que será utilizado como parâmetro de comparação com os dados obtidas em runtime, right?

Ok, só que aí você tem aqueles arrays enormes que representam os dados obtidos do banco. Você vai ficar digitando todos aqueles campos do array no braço? NOT.

Uma solução ingênua para o problema é utilizar um var_dump() ou print_r() para obter uma representação próxima do array e, então, ir ajeitando o texto para que este se torne uma definição, de fato, de um array.

Mas Zé, será que não tem um jeito mais espertinho de se fazer isso? Tem. Graças ao PorKaria, e seu talento nato para POGs, aprendi uma técnica ninja, conhecida apenas por programadores PHP seniors: “use a json_encode() e depois a json_decode(), oras bolas”.

Suponha que você tenha um array enorme do qual você precisa obter a definição para colocar no seu código. O array está armazenado na variável $meusDados e foi obtida através de um find no banco de dados. Um exemplo no CakePHP:

$meusDados = $this -> Dados -> findByName('Zé');

Suponha que o cake vai retornar um array enorme, já que a minha tabela de dados possui 75 campos. Mas você quer testar, você quer gerar fixtures, você vai ficar “ajeitando” o output de um var_dump() da vida pra poder inserir a definição de uma tabela no código? Não!

É tudo muito simples. Tudo que você precisa, na verdade, é da definição em JSON, e não necessariamente da definição em PHP. O primeiro passo, então, é obter a representação em JSON do array:

var_dump(json_encode($meusDados));

Pronto, copie a representação em JSON escrita na tela, faça as alterações necessárias e então use a json_decode() para definir o array no seu código:

$x = json_decode('representação em JSON do array original', true);

E voilá, $x vai conter o seu array para que você o utilize/manipule como bem desejar.

That’s all folks. :)

January 16, 2010   No Comments

Sobre o “mas” e o “mais”

Uma coisa que eu tenho visto com uma frequência temerosa na Internet é o mal emprego das palavras “mas” e “mais”.

Imagino que tudo tenha começado de maneira inocente, com uma ou outra pessoa usando o mais no lugar do mas, “na hora da pressa” (é, a Internet tem dessas coisas, assim como o naum). Mas, de repente, veio a avalanche. De repente, o banimento do mas passou a tomar forma e está cada dia mais difícil de encontrá-lo em chats e e-mails. Para piorar, há uma semana (+ ou -) eu vi em um COMERCIAL NA TV um belo de um MAIS no lugar do já quase esquecido mas. E eu, inocente, achei que aquela havia sido a gota d’água.

Mas não, a vida, essa sim, é uma caixinha de surpresas. Nas últimas duas semanas eu fui surpreendido pela última “evolução” gramatical da Internet. Vi ao menos umas três vezes pessoas empregando o MAS (pasmem) no lugar do MAIS!!!

O que é isso meus Srs? A Internet é festa da uva, mas vamos manter um mínimo de decência. Se você está lendo este post e a ficha ainda não caiu, vamos lá:

  • Mais é pronome ou advérbio de intensidade, portanto está relacionado com quantidade, aumento, grandeza, superioridade ou comparação. [Mais], normalmente, é o oposto de [menos]. Portanto, se tiver dúvida, substitua-o por [menos] (menas nunca); se for possível a substituição, use [mais]: Você quer seu suco com mais (menos) açúcar?
  • O Mas é a principal das conjunções adversativas. Relaciona pensamentos contrastantes, opositivos ou restritivos. Se eu lhe dissesse: “Minha irmã treinou muito, mas…”, com certeza, não precisaria terminar a frase, porque você iria imaginar que ela foi mal na atividade esportiva. Se tiver dúvida quanto ao uso de [mas], basta substituí-lo por: porém, contudo, todavia, entretanto. Se for possível a substituição use [mas]: Gosto de navio, porém (mas) prefiro o trem.

Compreendido? Aqui fica o meu gesto de revolta :@

Se você ainda está meio na dúvida, veja mais em: O uso do mas, mais e más.

January 13, 2010   5 Comments

Machucando código por diversão e lucro

Excelente apresentação do Ryan Davis e traduzida pelo Fábio Akita:

Machucando Código por Diversão e Lucro – Ryan Davis from Fabio Akita on Vimeo.

IMHO, os pontos altos foram sobre o Desenvolvimento Orientado a Introspecção, as dicas de Auto-Melhoria e o desafio dos potes.

Fonte original: http://www.akitaonrails.com/2008/6/14/machucando-c-digo-por-divers-o-e-lucro

January 5, 2010   No Comments