Web,ruby, Ajax ou qualquer outra coisa que me venha a cabeça (com prioridade para esta última)

09 junho, 2006

Usar update_page em link_to_function

Introdução

Bruce Williams diz que vive numa terra de modelos e ajudantes de Rails. Para nos dar uma ideia de que está a falar a sério diz-nos o seguinte. Que a sua actual aplicação tem serca de 670 ficheiros de modelos separados (com cerca de 8500 linhas) e 75 ajudantes (com cerca de 2350 linhas) e que continua a crescer.

O que é que isto significa - para além do facto de o TextMate ser o nosso melhor amigo? Significa que se há alguma coisa que ele saiba sobre Rails é como gerir um grande volume de modelos e de código relacionado com vistas e construção de infraestruturas para ajudar a SECAR (DRY - não te repitas) o caos.

Ele diz-nos que irá tentar ajudar outros programadores, responsáveis pelo desenvolvimento de sítios na web que estejam no mesmo barco escrevendo uma série de artigos debaixo do título genérico Rails Views. Estes artigos irão realçar técnicas usadas por si no dia-a-dia. Poderá ser que as achemos úteis, e acrescenta que podem não ser a única forma de obter o mesmo resultado mas que é o processo por si usado.

Diz-nos ainda que esta série de artigos Rails Views partem do princípio que o leitor sabe Ruby bem, e dessa forma ele não irá tratar de se focar na explicação dos detalhes pois espera que um programador decente em Ruby os possa perceber. Irá partir do princípio que o leitor usa Edge Rails.

Utilização de update_page na link_to_function

Uma das técnicas que menos vejo usada nas aplicações em Rails e uma das que acho não só elegante mas que poupa tempo é o uso de update_page directamente na link_to_function .

Porque é que não há mais gente a usar esta técnica? Não percebo. Muito do trabalho foi para RJS... e assim porque não usá-lo?

Eis um exemplo rápido, de duas formas. Tornemos todos os parágrafos de texto, verdes, na página usando a classe CSS irish , só porque sim - finja que é dia de S. Patrício por uns instantes. De facto enfiemos rapidamente um anúncio de "Dia de São Patrício" também.

Em primeiro lugar a versão tradicional (mesmo que melhorada com o prototype) link_to_function .

link_to_function("Toca-me!", "$('p').each( function(tag) {tag.addClassName('irish');} ); new Effect.SlideDown('banner',{duration:0.4});" ) e, com update_page : link_to_function("Toca-me!", update_page{|page| page.select('p').each{|p| p.addClassName('irish')} page[:banner].visual_effect :slide_down, :duration => 0.4})

São aproximadamente do mesmo tamanho... qual é a espiga?

  • A Ruby é mais poderosa e mais fácil de ler do que JavaScript tenha em mente que este é um exemplo muito simples
  • Uma vez tendo começado a interpolar dinamicamente ids de diferentes elementos, numa string em javascript (claro está usando escape_javascript ), a versão sem update_page torna-se mais difícil de fazer e de manter (deixe só passar o almoço e volte ao seu código e veja)
  • É mais fácil expandir esta técnica usando outros ajudantes e infraestruturas (passando page para adicionar código comum por exemplo) e depois passar strings para serem concatenadas - correndo o risco de um erro sintático no javascript neste processo (alguém poderá dizer "falta de ponto-e-vírgula?").

Este técnica é pequena e simplesmente a minha preferida.

Entender o que são e para que servem os símbolos da Ruby

Quando uma pessoa está a aprender a utilizar uma infraestrutura como a Ruby On Rails e por essa razão tem que aprender Ruby é importante Entender a utilização dos símbolos na Ruby visto serem algo inerente à própria linguagem de programação.

08 junho, 2006

Levels of Accessibility Knowledge – Le «blog personnel» de Joe Clark

Que o Joe Clark não gosta da nova proposta de directrizes WCAG 2.0 já todos o sabíamos mas que achava que os «especialistas» do grupo de trabalho estm no nível 2 é mauzinho.

Níveis de conhecimento

Nas últimas semanas têm aparecido uma série de especialistas das várias disciplinhas da web que criam escalas sobre os conhecimentos devidos para execução de uma tarefa na web.

Emil Stenström apresenta os 7 níveis de conhecimento sobre CSS, Roger Johansson apresenta os 7 níveis de conhecimento em HTML , Dean Edwards documenta seis níveis de conhecimentos em JavaScript e por fim (pelo menos por agora) Joe Clark apresenta os oito Níveis de conhecimento em Acessibilidade .

Um Guia de Introdução à Ruby - de Eustáquio Rangel

O Eustáquio Rangel acaba de actualizar (com correções) o seu Tutorial de Ruby. Este guia encontra-se escrito em português do Brazil pelo que é necessário algum cuidado na sua interpretação. O tutorial do toq (Eustáquio Rangel) é um ficheiro em formato PDF

26 maio, 2006

A List Apart 217

O «A List Apart» publicou o número 217 com artigos de Joe Clark a querer mandar passear (eufemismo da minha parte) as WCAG 2. A Molly E. Holzschlag escreve sobre Normas Abertas para uma Web Global tocando as problemáticas da internacionalização e da localização. O texto repescado é de Mark Bernstein 10 Pistas sobre escrita na Web dinâmica

15 maio, 2006

Padrões Web

Não não estou a falar de web standards mas de web pattern. Este último sitio inclui uma lista de tipos de sítios (em termos de interacção, conteúdo e finalidade do sítio com definição do caso e como é resolvido). Material a ler por quem está a começar a criar sítios profissionalmente.

09 maio, 2006

Leituras

Um problema pessoal leva-me a estar muitas horas sem aceder ao meu PC. No entanto tenho tido tempo para por em dia algumas leituras. Eis algumas dessas: Eu que vinha de uma escola de pensamento que quase impede (ainda) a evolução das bases de dados (em DB2 e COBOL tal exige novas ligações entre código e novos esquemas de bases de dados) quase sofri um choque com a leitura do primeiro destes livros. Os livros sobre utilização de Subversion têm o defeito de salvo as ideias gerais e as de utilização mais frequente não poderem acompanhar a alteração rápida (evolução) do programa. O último relativo ao conhecimento de Ruby para um bom desenvolvimento com Rails parece-me essencial para quem queira fazer mais do que copiar e adoptar código de terceiros no desenvolvimento das respectivas aplicações. Bastante interessante.

08 maio, 2006

Uma razão para ler com atenção as listas de correio dos temas que nos interessam

Parece-me que não consigo arranjar um título mais comprido, mas de cada vez que abro o TB e vejo o meu correio e encontro nele referências a sítios como este acho que o tempo consumido a lêr é muito bem gasto.

:uniq

Acabei de ler um excelente artigo de Josh Susser sobre a utilização da opção em relações do tipo contem vários através de ....


26 abril, 2006

Scriptacolous

A Amy Hoy voltou a fazê-lo novamente. Agora podemos ter um resumo da utilização da biblioteca de javascript scriptacolous numa única página. Perfeito.

22 abril, 2006

CMS e Web Standards

No manifesto da Wasp diz-se algo como:

Todos os Sistemas de Gestão de Conteúdos (CMS ) devem produzir código semântico, acessível, válido e enxuto logo que se instale.
Infelizmente continuo a ver muitos sítios novos que acabam por usar CMS tecnologicamente ultrapassados. Os sítios em si têm bom aspecto mas as engrenagens por detrás dão-lhe um ar desmaselado como por exemplo no novo sítio da Igreja dos Pastorinhos.

Canada on Rails

Para quem queira ler umas notas sobre a conferênciaCanada on Rails pode lê-las no blog do Ryan Davis.

06 abril, 2006

Podcast sobre microformatos

Um podcast para quem queira ouvir falar de microformatos no blog de Alex Barnett. Neste mesmo blog poderá encontrar mais alguns podcast sobre temas como OMPL, agregadores e leitores de RSS.


24 março, 2006

Validação não pode ser a única forma de boas práticas

Roger Johansson aponta uma confusão nalgumas cabeças que acham que basta que o HTML de um sítio seja válido para terem um sítio que usa boas práticas. Deve acrescentar que até agora só encontrei um sítio de organismo público que validasse e mesmo esse coitado não praticava boas práticas. (Validar é só um passinho...)

Design Meltdown

Este é um daqueles sítios que quem quer aprender a desenvolver sítios web (e eu quero) deve consultar: Design Meltdown.
A sua tabela de conteúdos começa com a utilização de cores e depois passa para os elementos e técnicas de design, passa para os problemas e soluções e finaliza com tutoriais.

A boca fica a salivar!

20 março, 2006

Um blog sobre design, usabilidade e novidades

Um blog português sobre design, ergonomia e com um pouco de humor. A visitar em especial pelas recensões de livros fica em Design Ergonomia

Como Depurar Vistas - RoR

Ferramentas de depuração

A Rails trás um ajudante de depuração que pode usar nas vistas:

<%= debug @user %>

Isto irá produzir uma saída como esta:


--- !ruby/object:User
attributes: 
  name: Jane Loe 
  username: janeloe
  id: "1" 
  password: fc46324eea5eede31c00b9026e5037e162dccda8

Adicionar aos ajudantes

O artigo Rails Plugin para ajudar a depurar vistas descreve um plugin que torna mais fácil abrir uma janela popup similar às Smartys escarrapachando todas as atribuições, sessões, parâmetros e variáveis flash. O plugin deriva de código disponível nas Snippets. Isto é especialmente útil quando se trabalha em conjunto com designers que não têm a mínima ideia do género de informação exportada pelos controladores numa dada vista.

15 março, 2006

Edições Sempre em Pé

As edições Sempre em Pé têm um síte limpo. Salvo alguns pequenos lapsos pouco haverá a alterar para melhorar. Este é um site que não sendo à partida feito para pessoas com dificuldades de leitura, permite que se amplie os respectivos tipos sem perca da informação gráfica existente.

Em relação à conformidade com padrões poderá efectuar-se uma melhoria de forma a que o site cumpra com o que indica.

09 março, 2006

Testar Migrações (RoR)

Qual a forma correcta de testar migrações?

Usar:

rake migrate RAILS_ENV=test

e chega