Procurar

Categorias

Posts recentes

Arquivo

Blog feeds

Bookmarks


BadgerFish - traduzindo XML para JSON
terça, 28 de novembro de 2006

Há uns seis meses descobri o ‘BadgerFish’, uma convenção para traduzir arquivos XML para objetos Javascript em forma de strings JSON (para compreender o BadgerFish, aprenda primeiro o JSON: 1, 2, 3, 4). Trata-se de um conjunto de regras extremamente simples, descrito em uma página de pouco texto e é isso aí, não achei quase nada mais. Depois achei essa aqui, que é apenas uma referência à outra, mas que tinha alguns comentários.
Na época criei uma comunidade no Orkut (), que nunca teve discussões (?!). Achei então que ainda não haveria discussões em português por enquanto em lugar nenhum e deixei pra lá, mas como o tema é mais atual que nunca, voltei a ele.
Hoje fiz uma busca no Google e até que agora há bastante coisa em inglês e japonês (…), mas numa busca por resultados em português, apenas dois resultados sem relevância. Uma outra busca no del.icio.us me devolveu apenas 7 páginas, Bloglines: nada, mas no Technorati a coisa já muda de figura… mas tudo em gringo. As novidades sempre surgem na blogsfera, já notou?

(…) continuar lendo…

editInPlace() - editando qualquer elemento HTML
domingo, 26 de novembro de 2006

Hoje, mexendo em um trabalho que fiz há algum tempo, redescobri essa função que considero muito útil. Com ela é possível abrir determinados elementos para edição. Deixar o usuário editar o conteúdo de um DIV ou TD por exemplo (ou qualquer um que tenha a propriedade innerHTML). Eu criei a função para um sistema em que o usuário editava dados em um XML: montava a página a partir do XML e deixava o usuário editar os textos, então remontava o XML a partir do innerHTML da página.

A idéia surgiu  com uma função que encontrei nos meus garimpos, para determinar a posição exata de um elemento na página, a absPos(). Essa é uma função que está toda dentro de um for que não tem bloco de comandos, numa sintaxe legal, pouco comum. Não sei quem é o autor (displicência minha… desculpe-me por isso o autor dessa função tão legal), veja:

(…) continuar lendo…

Uma singela introdução à lógica de programação
terça, 21 de novembro de 2006

Análise do problema e algoritmo de solução

Todo aplicativo se destina a automatizar um processo que poderia ser executado manualmente, ou a resolver algum problema que se poderia resolver com raciocínio lógico - mesmo que isso fosse levar muito tempo. Acreditamos que isso é verdadeiro em qualquer âmbito.
Entendemos por ‘processo’ ou ‘problema’ qualquer situação que se apresente para o programador ‘automatizar’. Programar é resolver o problema proposto etapa por etapa e codificar cada passo, até a solução. Ou seja, um programa é uma referência a um problema previamente resolvido. O que chamamos de algoritmo é simplesmente a sequência lógica de ações que levam ao resultado esperado (a solução do problema). Naturalmente, é necessária uma análise detalhada do problema, sem a qual não há a menor possibilidade de se desenvolver um algoritmo funcional.

(…) continuar lendo…

Mapa do site
segunda, 20 de novembro de 2006

Um dos recursos mais importantes para que o visitante possa encontrar as informações que deseja é o famoso link "mapa do site". O mapa do seu site pode ser organizado de várias formas e, naturalmente, é mais legal quando podemos fazer isso com calma, facilitando ao máximo o trabalho de achar o conteúdo procurado. Aliás, o dito "mapa do site" é uma importante ferramenta de acessibilidade e deveria estar sempre presente. É ele que garante o" aprendizado do layout do site" pelo usuário menos experiente ou em layouts incomuns, com sistemas de navegação fora do padrão, etc. Mas em situações em que há muitas páginas para catalogar ou onde páginas são criadas/excluídas dinamicamente, podemos usar um script para ler a estrutura do site e mostrar as páginas automaticamente.

Vou mostrar aqui um script em PHP que faz esse trabalho de catalogação e exibição automaticamente.

(…) continuar lendo…

Data em Javascript como na função date() do PHP
quarta, 15 de novembro de 2006

Sempre tive a idéia de que trabalhar com datas no Javascript era algo chato, que exigia muitas linhas de código para se conseguir algo simples. Bem, isso hoje certamente não é mais verdade, com a quantidade de scripts e frameworks e todo tipo de interfaces para facilitar a vida do programador, mas resolvi fazer um script que me permitisse manipular strings de data tão facilmente como no PHP. Naturalmente, nem todas as opções de date() estão disponíveis aqui, mas acredito que facilitou muito o trabalho de colher e formatar informações separadas para formar um frase simples como ‘Segunda, 3 de maio de 2006′.

Criei então alguns novos métodos adicionados ao objeto Date.prototype. O principal deles é o Date.toFormattedString(), que devolve a string enviada, com alguns caracteres especiais convertidos para valores de data e hora (veja a tabela de substituição), como na função date() do PHP.
O resultado pode ser em inglês ou português, mas pode-se também definir outros idiomas dinamicamente. Além do Date.toFormattedString(), há algumas outras funcionalidades. Segue o script e algumas explicações.

(…) continuar lendo…

Ajax e bookmark - adicionando conteúdos dinâmicos aos favoritos
quarta, 15 de novembro de 2006

Quando uma página tem seu conteúdo carregado de forma assíncrona (via ajax), ocorre um conhecido problema ao tentar salvá-la nos favoritos. A não ser que o usuário adicione a página logo que ela carregar - quando nenhuma ação foi executada, nenhum clique foi dado - quando ele clicar no link salvo em favoritos, o conteúdo apresentado será sempre o inicial e não aquele que ele estava vendo no momento em que salvou a página.

A raiz desse problema é a mesma que impede o usuário de usar os botões do histórico em conteúdos carregados com ajax: a única página que existe para o navegador é a inicial, os conteúdos carregados com ajax não são vistos como novas páginas. Como resolver isso? Me ocorreu a idéia de enviar um comando em forma de string (como no script ajaxHistory) usando o hash. Na verdade, o hash foi usado (no lugar da query string) por que eu queria poder também usar o refresh… isso funcionou, mas só no IE. Quando a solução para o refresh for cross-browser (estamos trabalhando para isso…), vou divulgá-la aqui. Mas para usar os favoritos funcionou beleza.

(…) continuar lendo…

Padrão Web 2.0 - será ficção?
quarta, 15 de novembro de 2006

O novo conceito criado há pouco tempo tem dividido opiniões e gerado muita polêmica. Nunca houve uma ‘Web 1.0’, então que estória é essa? Bem, vamos tentar explicar…

O assunto é delicado, pois uma parcela considerável dos profissionais da área considera que o termo não passa de uma ‘buzzword’ (um termo belo, mas vazio de significado real), que é apenas uma onda criada para explorar a necessidade de constante atualização exigida aos profissionais da área, etc., e que os criadores dessa ‘palavra mágica’ (que sacudiu toda a área de TI) ganham muito dinheiro divulgando e ensinando algo que eles próprios inventaram - uma espécie de golpe de marketing. Bem, este é um ponto de vista embasado e tem suas razões de ser, mas somente após conhecer as tecnologias, idéias e conceitos por trás da legenda ‘Web 2.0’ é que poderemos julgar. Portanto, mãos à obra.

(…) continuar lendo…

Histórico do browser para navegação via Ajax
quarta, 15 de novembro de 2006

Pesquisei e quebrei a cabeça para achar essa solução… tanto que questionei entre dar apenas o ‘mapa’ ou o script pronto. Mas sou um cara open-source por natureza, por isso vou fazer as duas coisas.

Bem, todos já sabemos que comandos em javascript não ativam os botões de histórico do navegador, mesmo que mudem 100% do conteúdo exibido. Isso não é legal, pois sabemos que o usuário busca usar os recursos que conhece e o botão ‘Voltar’ é uma instituição, existe desde que o mundo é mundo. Eu me sentia meio que ‘na obrigação’ de possibilitar isso ao usuário.

(…) continuar lendo…

The web way of life - uma divagação sobre networking e privacidade
sexta, 10 de novembro de 2006

A evolução das tecnologias e linguagens usadas na rede em combinação com a conexão de banda larga e custo estreito, já utilizada em grande escala, e a violência das grandes cidades, que torna proibitivo sair às ruas, tem direcionado muita gente a praticamente ‘viver’ na web. Pela rede pode-se fazer quase tudo… Conhecer pessoas e lugares, obras de arte, fazer compras, ir ao banco, divulgar suas idéias. Até namorar via web… é um pouco demais, não?

As comunidades da rede são uma febre, juntamente com os blogs. Pode-se encontrar todo tipo de informação, de qualquer assunto, inclusive dados pessoais dos internautas.
(…) continuar lendo…

lamp! Mapa do site
The web way of life - uma divagação sobre networking e privacidade