Introduza o termo a pesquisar e clique Enter.

Tag: tv wall

JSON/HTML/XML – Qual devolver?

Nov 10 16

Escrito por Luis Nabais @ 16/11/10 21:11 | 2 Comentários »

Bem este post vai servir não só como uma forma rápida de apanhar algumas opiniões como também para ficar com uma nota para mim próprio sobre esta ideia.

Para o meu TV Wall estou a tentar ir o mais longe possível no juntar da API da aplicação com o que efectivamente é visível para os utilizadores e parte disso passa por tentar ter praticamente o mesmo esquema de URLs tanto para o browser como para a API utilizada pelos mais diversos clientes (quer seja a própria aplicação web em javascript ou outra qualquer hipotética aplicação nativa). Isto faz com que os endereços se tornem por exemplo em algo como /show/house para aceder, neste caso, à pagina associada à série House.

Agora o desafio: como fazer o mesmo endereço devolver HTML para um browser mas JSON (ou XML ou qualquer outro formato de dados) para uma aplicação? A minha resposta passa pelos cabeçalhos HTTP, mais concretamente pelo cabeçalho ACCEPT que ao anunciar que aceita um determinado tipo de dados permite-me devolver-lhe esse tipo em particular deixando o HTML normal para fallback.

Claro que eu posso já começar a ver os problemas associados a esta abordagem: e se surgir um browser que manda um cabeçalho a dizer aceitar application/json quando o que o utilizador quer mesmo receber é a versão HTML? E se um cliente enviar no cabeçalho que aceita tanto JSON como XML? Qual dos dois devolver? Sim, isto são tudo questões muito validas e é por isso mesmo que coloquei esta entrada no meu blog. Opiniões?

Os misteriosos 3px em css

Ago 10 14

Escrito por Luis Nabais @ 14/08/10 23:08 | Sem Comentários »

Eu tenho andado a trabalhar em correcções e melhorias do código HTML/CSS do meu TV Wall já há uns tempos para me permitir fazer coisas ainda mais awesome (como drag & drop por exemplo) mas noutro dia deparei-me com um comportamento curioso da renderização de css que me demorou algum tempo até compreender o seu porquê (e na verdade ainda só tenho uma teoria não comprovada).

O problema em questão é o seguinte. Notem a imagem seguinte:

Isto é a típica composição de uma “parede” no TV Wall. Cada um dos rectângulos na imagem é uma célula contida em caixas maiores marcadas a castanho e possuindo cada uma destas ultimas display: inline-block;. Esta organização é uma necessidade por forma a permitir não só que os tamanhos das células sejam variáveis como também para as organizar nas diversas formas pretendidas e ainda para permitir que a parede cresça consistentemente em vez de crescer até ao limite da largura antes de passar para a linha de baixo.

O problema coloca-se com a pequena linha a branco que podem ver na imagem. Cada uma das caixas a castanho é suposto possuir 40em de largura e não possuir qualquer margin ou padding (por questões de consistência que auxiliam nas operações que planeio fazer em javascript) no entanto na realidade todas as caixas possuíam uma “margem” invisível de 3px à sua direita.

Na realidade isto não é nenhuma margin ou padding mas sim uma propriedade chamada de letter-spacing que por defeito no Firefox e no Chrome possui o valor de, lá está, 3px! Porém não consegui corrigir o problema alterando esta propriedade no antecessor das minhas caixas, simplesmente ficava tudo na mesma. A solução passa por algo infinitamente mais simples: colocar cada uma das caixas com float:left; display: block; e presto, os 3px desaparecem e a previsibilidade regressa.

O facto do letter-spacing ser a causa desta situação é apenas uma conclusão a que cheguei visto estar a usar inline-block em vez de um simples block + float como devia ter feito desde o inicio efectivamente complicando a minha situação. Fica no entanto o aviso para outros que possam estar a encontrar o mesmo problema e já agora se eu me tiver enganado na minha conclusão façam favor de me avisar.

Números de Versão

Ago 10 12

Escrito por Luis Nabais @ 12/08/10 22:08 | 2 Comentários »

Um problema que muitas vezes afecta qualquer pessoa que começa a programar seja no código html/css de um website ou num algoritmo para computação de alta performance é a questão de como identificar diferentes versões do código em questão.

Recentemente ao escrever o meu TV Wall andei a pensar cobre como lidar com o numero de versões. Neste caso não há propriamente um grande problema com distribuição dado que o código apenas corre nos meus servidores mas mesmo assim é interessante ter um mecanismo que me permita referenciar as diferentes iterações do código.

Existem varias abordagens para esta questão e eu vou apenas mencionar algumas, dizer porque escolhia uma em detrimento da outra e em que situações acho que cada uma se pode aplicar mas obviamente que estou bastante mais interessado em ver as vossas opiniões e ideias na caixa dos comentários.

Continuar a ler esta entrada >>

pub: