Web,ruby, Ajax ou qualquer outra coisa que me venha a cabeça (com prioridade para esta última)
15 fevereiro, 2006
Biblioteca UI do Yahoo!
Yahoo! Developer Network
12 fevereiro, 2006
O blogue do João Craveiro
07 fevereiro, 2006
04 fevereiro, 2006
Elementos e marcadores opcionais
HTML, os marcadores de iníco e fim dos elementos e são opcionais. Assim o código que se segue é um documento perfeitamente válido e conforme o HTML 4.01 Strict. /> /> HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd" /> documento mais pequeno possl /> http-equiv="Content-Type"
content="text/html; charset=UTF-8" /> Mais Pequeno /> />Isto é um documento dos mais pequenos possíveis em
title="HyperText Markup Language" /> /> />
os marcadores sejam opcionais os elementos não o são Lembre-se que um elemento é parte da estrutura do documento e que os marcadores são as declarações para criar a estrutura do documento. Onde se pode determinar sem ambiguidade o marcador inicial e final o HTML permite que estes marcadores sejam opcionais mas os elementos irão surgir na estrutura do documento. No exemplo acima coloquei um marcador final. No HTML tal é opcional pois pode ser determinado sem ambiguidade o final do parágrafo. /> validar um documento com o conteúdo acima no W3C validator. /> XHTML, os marcadores de início e fim dos elementos html, head, e body são obrigatórios devido à exigência de boa constituição do XML que não permite a omissão de marcadores. /> interpretação de documentos pode ser afectada pelo tipo MIME usado quando são servidos, sendo a interpretação ainda dependente do navegador usado. />
03 fevereiro, 2006
Inspector de Tabelas Complexas
Como tratar um Web Designer
Comprimento, Largura e Altura
Z's not dead baby, Z's not dead
AT MEDIA 2006
Andulo - Moinhos de água do Membia
Esta é uma irmã entre várias de uns moinhos construidos sobre o rio Membia, perto da ântiga barragem do Andulo no Bié em Angola.
This is one of a set of photos of watermills built on the river Membia nearby the old waterdam of Andulo, Bié, Angola.
31 janeiro, 2006
ALA - 210 e 211
ALA 210
O triplo objectivo da acessibilidade: obter abreviaturas correctas é quanto a mim o artigo mais interessante deste número, desta vez não acompanho o Jeffrey na sua ironia sobre a Web 3.0. Compreendo contudo que em todos as reuniões aparecem uns mais cromos que outros.
ALA 211
Aperfeiçoar os fundamentos: Um melhor layout CSS de três colunas. Entradas que fazem mais e finalmente um texto de Jeffrey Zeldman (Repescado) Corrija o seu sítio com o DOCTYPE correcto!.
24 janeiro, 2006
RoR: Como Paginar
Paginação Simples
Usar o ajudante de paginação
Paginação à medida
O método de paginação embutido no RoR torna-se limitado quando as suas necessidades se tornam mais complexas. É então necessário usar uma técnica melhor:
O método do Kevin de paginação à medida implica usar quatro passos.
No controlador:
def list
#passo 1: ler e atribuir valores às variáveis que necessitamos
page = (params[:page] ||=1).to_i
items_per_page = 20
offset = (page -1) * items_per_page
#passo 2: efectuar o seu find à medida efectuando
#qualquer tipo de limites ou deslocamentos
# isto é obter tudo em cada página, não se
#preocupar com paginação por agora
@items = Item.find_com_algum_metodo_a_medida(@alguma_variavel)
#passo 3: criar um Paginator, a segunda variável
#tem que ser o número da TOTALIDADE dos items em TODAS as páginas
@item_pages = Paginator.new(self, @items.length, items_per_page, page)
#passo 4: só enviar um subconjunto de @items para a vista
# é aqui que ocorre a magia. Não é necessário voltar a
# fazer outra busca (find)
@items = @items[offset..(offset + items_per_page - 1)]
end
Na vista colocar:
Pages:
<%= link_to('previous', {:params => params.merge('page' =>
@ item_pages.current.previous)}) +
' ' if @ item_pages.current.previous %>
<% for page in @ item_pages -%>
<%= link_to_unless(params[:page].to_i == page.number, page.number,
{:params => params.merge('page' => page)}) %>
<% end -%>
<%= link_to('next', {:params => params.merge('page' =>
@item_pages.current.next)}) if @ item_pages.current.next %>
Esta técnica funciona com conjuntos de dados pequenos e médios (onde não tem que se preocupar com um grande número de registos, embora não os queira ver surgir de uma só vez), mas torna-se limitada quando os registos são em elevado número.
Para grandes conjuntos de dados que necessitem de buscas à medida, necessita de saber o número total de registo, depois criar um Paginador e depois só recuperar os registos desejados.
No controlador:
def list
# passos 1: ler e atribuir variáveis necessárias
page = (params[:page] ||= 1).to_i
items_per_page = 20
offset = (page - 1) * items_per_page
# passo 2: em vez de efectuar uma busca completa descobrir
# só o número de registo
@item_count = Item.find_record_count(@some_variable)
# passo 3: criar um Paginator, a segunda variável tem
#que ser o número de TODOS os items em TODAS as páginas
@item_pages = Paginator.new(self, @item_count, items_per_page, page)
# passo 4: descobrir só o subconjunto pedido de @items
@items =
Item. busca_com_algum_metodo_a_medida(@some_variable,
offset,
items_per_page)
end
Depois necessitará de alterar o método "busca_com_algum_metodo_a_medida" de forma a usar as variáveis offset e items_per_page numa cláusula SQL LIMIT. Se o que descobrir for já complexo, poderá ser mais fácil usar "find_by_sql" em vez de "find".
O código da sua vista pode ser igual ao anterior.
22 janeiro, 2006
Membia
Algumas fotografias de moinhos de água que se encontram em: fotografias do João
19 janeiro, 2006
Profissionais da Web
Esta discussão julgo que deva ter surgido noutras áreas quando as mesmas ainda estavam em plena infância como a nossa. Hoje não é de esperar por exemplo que um engenheiro electrotécnico ache uma falta de liberdade usar elementos industriais padronizados quer por entidades públicas, quer por organismos associativos nos seus projectos.
No entanto usar elementos não padronizados na web é frequente. Nos casos em que tal acrescenta algo seria de pensar pradronizar nos casos em que só aumenta a confusão seria de eliminar. Outro aspecto comum é a necessidade de formação contínua não só da gente que pratica web mas até certo ponto da gente que lhe está à volta (não havendo acordo contudo sobre este aspecto).
É uma discussão que provavelmente se irá manter até que a área estabilize.
Tabelas ou Disposição CSS- II
Uma das coisas curiosas das listas de correio especializadas é a repetição dos mesmos problemas ao longo do tempo.
Um desses problemas recorrentes na lista de correio de desenvolvimento de css (CSS-D) é a pergunta sobre como apresentar dados extraidos de uma base de dados numa tabela.
Que marcadores usar e depois estilizar.
As respostas andam invariavelmente à volta de:
thead td
thead th
tbody td
tbody th...
Dando ainda a ligação a uma galeria de estilos.
Pode ainda ver: Tabelas ou Disposição.
Actualização 2009-01-02: Uma revisitação deste assunto em breve
05 janeiro, 2006
Cábula de RoR (Ruby On Rails)
04 janeiro, 2006
Padrões de Sítios Web
Padrões são soluções óptimas para problemas comuns. À medida que os problemas sejam levantados à volta de uma comunidade e resolvidos, soluções comuns frequentemente emergem de forma espontânea. Eventualmente, a melhor destas destaca-se da ganga e auto identifica-se e vai-se refinando até alcançar o estatuto de Padrão de Concepção.
Christopher Alexander foi o primeiro a nomear este fenómeno em relação aos espaços vividos. Ele e os seus co-escritores introduziram o conceito de Padrões de Arquitectura para descrever características dos espaços vividos fossem eles salas, edifícios ou cidades.
Os Padrões são atómicos no sentido de que podem ser agrupados para formarem padrões mais complexos: um padrão cadeira enquadra-se num padrão sala de jantar que se enquadra num padrão casa que se enquandra num padrão cidade.
Uma ideia que destingue os Padrões de simples prescrições é que os Padrões nunca perdem o sentido do seu contexto; descrevem coisas que funcionam em conjunto e as regras que governam essas colecções.
Os padrões de software encontraram uma grande ressonância na indústria do software em particular entre os que usam Metodologias Ágeis.
Algumas pessoas tiveram aqui inspiração para criar um documento sobre Padrões de Sítio da Web.
29 dezembro, 2005
ALA 209
Neste número uma das luminárias da internet Molly E. Holzschlag apresenta uma analogia entre sítios organicos e sítios com uma organização baseada em grelha «Thinking Outside the Grid» e Brian Crescimanno apresenta o seu «Sensible Forms: A Form Usability Checklist». O artigo repescado deste número é de Scott Jason Cohen «Porque é que está aqui?».
24 dezembro, 2005
Feed Icons
Para quem queira harmonizar o seu sítio com o acordo que já há no momento para utilização do mesmo ícone usado pelo Firefox para distinguir sítios com assinaturas e deseje descarregar o ícone nos mais diversos formatos gráficos então dê uma saltada a href="http://feedicons.com/" icons />
