Tiago Braga – Tecnologias para desenvolvimento e-learning | EAD | web 2.0

Discussões sobre tecnologias para e-Learning.

Archive for Novembro, 2007

Selecionar uma linha randômica no SQL

Estava eu todo satisfeito trabalhando quando o cliente que está analisando o site me questiona se tem como os dados de determinada tabela virem randômicos… putz, pensei, será que vou ter que embaralhar os dados na marra? Não é possível né, vou pesquisar na internet. E foi aí que achei o resumido, mas eficiente artigo do Pete Freitag. Ele esclarece como randomizar as linhas no SQL em alguns bancos de dados. Veja aí o que te atende e use o random a vontade. Fique a vontade para postar no comentário outras maneiras de fazer a mesma coisa.

Selecionar uma linha randômica no MySQL:

SELECT column FROM table
ORDER BY RAND()
LIMIT 1

Selecionar uma linha randômica no PostgreSQL:

SELECT column FROM table
ORDER BY RANDOM()
LIMIT 1

Selecionar uma linha randômica no Microsoft SQL Server:

SELECT TOP 1 column FROM table
ORDER BY NEWID()

Selecionar uma linha randômica no IBM DB2

SELECT column, RAND() as IDX
FROM table
ORDER BY IDX FETCH FIRST 1 ROWS ONLY

Selecionar uma linha randômica no Oracle:

SELECT column FROM
( SELECT column FROM table
ORDER BY dbms_random.value )
WHERE rownum = 1

Conteúdo baseado em XML para EAD

O desenvolvimento de aplicações está cada vez mais baseado em XML. Estamos desenvolvendo para a webAula um sistema de criação de cursos baseado em Templates. Basicamente este sistema deve ler informações contidas em um XML e montar uma apresentação dinâmica para os alunos a distância do site.

A idéia inicial era algo utilizando o seguinte fluxo:
Fluxo Inicial
Ou seja, o desenvolvedor de cursos cria um xml, que é lido por um arquivo flash central e esse arquivo flash carrega um template específico que por sua vez possui alguns componentes pré-determinados. Ao final desse processo temos o curso.

O modelo até funciona, mas tem um problema. Os desenvolvedores ficam presos ao padrão de template existente, sendo assim, se for necessário qualquer customização que não seja possível via XML, por exemplo alterando a ordem de entrada dos elementos, seria preciso criar um outro arquivo de Template que fizesse isso, gerando replicação de códigos e maiores tempos para desenvolver um conteúdo.

Ao ser contratado para desenvolver o sistema, mudei o escopo da aplicação. O que fiz foi basicamente eliminar a existência do arquivo específico para cada template e dividir a existência que tinha ali entre o XML, que passa a fornecer mais informações e os Componentes, que passam a cuidar de mais customizações. O modelo mais enxuto ficou assim:

fluxo_2_template.gif

As vantagens desse modelo são:

  • Pode-se criar novos templates apenas mudando a estrutura do XML
  • Não haverá duplicação de códigos desnecessários
  • O sistema fica mais simples e mais fácil de dar manutenção
  • Os pedagogos poderão construir conteúdos mais ricos e interativos
  • O sistema poderá ser expandido mais facilmente, bastando para isso criar novos templates

Claro que nem tudo é vantagem, o excesso de responsabilidades no XML pode provocar alguns problemas, mas nada que atrapalhe muito, pois poderá ser testado facilmente. De qualquer maneira, será preciso um treinamento mais aprimorado para os desenvolvedores de conteúdo e também pessoas mais atentas.

Outro ponto que pode gerar algum trabalho extra, é que o FrameWord (arquivo Flash central) precisará ser muito bem programado e estável, pois dele dependerá o sucesso da aplicação. Qualquer erro, poderá gerar um sistema instável para criação de cursos.

Pois é, agora mãos à obra, pois o trabalho é muito grande e o tempo curto, teremos que entregar tudo pronto até o dia 03/12/2007.

O sistema está sendo feito em parceria com o Leonardo Braga e sua empresa, a Braga & Braga Consultoria.