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?
Posts recentes
- Como construir um...
- Plugins para...
- Já ouviu falar...
- Drag e drop em...
- Duas questões...
- Wiki-format -...
- Formas de...
- Eu não sei...
- Mesclar PHP e...
- Definições de...
- Receber dados de...
- Achando a cor oposta
- Mostrando os...
- Acessibilidade em...
- Atalhos de...
- Novo site, com...
- Classificando o...
- BadgerFish -...
- editInPlace() -...
- Uma singela...
Arquivo
Blog feeds
Bookmarks
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…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.
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…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.
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…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…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…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…
página inicial do site
alguma informação a meu respeito
Uma breve apostila com o básico do PHP (e um primeiro passo no MySQL)
Comentários dos usuários - diga o que você achou do site.









