Marco Gomes

Criador da boo-box. Empreendedor dedicado, nerd veterano, interneteiro profissional, cristão aprendiz, fotógrafo amador, marido apaixonado.

Textos marcados como ‘resposta’

Eu não me importo com o Internet Explorer

No more IE hacks

Alguns dias atrás fiquei sabendo de uma campanha muito interessante: No more IE hacks. A campanha aconselha que você não ajuste seus trabalhos para funcionar no IE, simplesmente faça o que os Padrões Web recomendam e coloque um aviso dizendo que no IE podem ocorrer problemas inesperados.

Eu já faço isso à um tempo aqui mesmo neste blog, se você nunca acessou pelo IE, saiba que aparece um aviso no canto superior esquerdo com uma propaganda de um outro navegador que está longe de ser perfeito, mas é muito melhor e interpreta corretamente os PNG transparentes que eu uso no layout.

A página da campanha tem uma resposta à quem vem com o super engenhoso argumento: nenhum navegador é 100% compatível com os Padrões Web

Some people would argue that no browser is 100% standards compliant, that may be the case but any developer who has done cross browser testing knows that the difference between standard compliance in browsers such as Firefox/Opera and IE is equivalent to night and day.

(tradução livre) Algumas pessoas podem argumentar que nenhum navegador é 100% compatível com os Padrões Web, pode até ser mas qualquer desenvolvedor que tenha feito testes cross-browser sabe que a diferença entre compatibilidade com Padrões em navegadores como Firefox/Opera e IE são equivalentes à noite e dia.

gotstress?, minha mais recente criação, não funciona no IE 6, no IE 7 funciona perfeitamente. Isso rendeu uma discussão infinita na lista Blogosfera, segundo um personagem muito respeitado pela comunidade blogueira brasileira, minha aplicação precisa funcionar no IE 6 mesmo que meu público-alvo não use esta versão.

A campanha é boa pra mostrar que tem gente que pensa como eu: quem usa IE 6 que troque de navegador ou, na pior das hipóteses, atualize pra versão 7 que é menos pior.

Lógico que não posso tomar essa atitude drástica no meu trabalho ou em eventuais projetos comerciais que esteja envolvido, mas ligar o f***-se nas minhas aplicações “pessoais” já é um grande passo.

YouTube bloqueado pela Brasil Telecom

Ê lerê, a Brasil Telecom bloqueou o acesso ao YouTube. Daniela Cicarelli fez o que fez, na praia, sem processar ninguém, e agora tira o meu direito de ver o Leandro comendo um Whopper Sextuplo! Como assim!?!?

Em minha humilde opinião, a Brasil Telecom aproveitou a decisão judicial da briga Cicarelli vs YouTube pra desafogar seu link internacional, sem sequer esperar a resposta do YouTube.

Como não há sistema completamente seguro, pra acessar o YouTube usando proxy, veja a solução do Bartus.

[update 2007-01-09] Para acessar o YouTube sem precisar usar proxy algum, basta acessar http://www2.youtube.com. Dica do blog Boicote a Cicarelli. Aproveite para boicotá-la você também. [/update]

[update 2007-01-10] Já foi tudo desfeito, agora é só paz e alegria. A melhor dica para driblar o bloqueio veio do Mr. Manson. [/update]

Os blogs nacionais deviam se mobilizar contra esse abuso à minha (e sua) liberdade.

Busica – Sistema de busca para música brasileira

Busica é meu novo projeto de uma noite. A idéia é simples: Um sistema de busca que procura albuns e artistas apenas em sites especializados em música brasileira. Tipicamente blogs de boa música como o Cápsula da Cultura.

Feito em tempo recorde, menos de 4 horas. Usei o Havia usado o Rollyo, ferramenta já disponível na web. Agora está rodando sobre Google Co-op por ter uma tela de resposta mais amigável ao usuário leigo. Pretendo migrá-lo para um sistema próprio em breve, mas precisava lançá-lo logo. O maior problema de não usar um sistema próprio é que a interface de resultados da busca é totalmente diferente de onde a busca é feita, o que pode gerar problemas sérios de usabilidade. Mas acalmem-se, o sistema próprio deve vir em breve, eu espero =)

Dessa vez o foco não foi aprender a usar ou testar nada, simplesmente tive uma boa idéia e quando apresentei-a aos amigos recebi apoio. Precisava implementá-la o quanto antes pra que eles próprios não o fizessem XD

O objetivo não é, de forma alguma, incentivar a pirataria. Apesar de eu acreditar que a pirataria salva, não quero problemas com a lei. Tudo que o Busica faz é buscar conteúdo em sites que já estão disponíveis pra qualquer um acessar, é apenas uma automatização para o usuário não precisar procurar manualmente em cada um dos blogs.

Não espero uma repercussão tão forte quanto a do Wallpapr, mas acredito que será mais útil para um certo segmento de pessoas, bem long-tail.

Atualizações

  1. [2006-12-04] Depois de um empurrão do Paulo Rodrigo Teixeira, fiz uma logo decente para que o serviço seja inserido na Lista 2.0 BR. Dê uma ajudinha votando também no Wallpapr =)
  2. [2006-12-04] Link para contribuição corrigido.
  3. [2006-12-04] Agora é possível que qualquer um insira novos sites na lista de busca, mais Web 2.0 que isso impossível! Agradecimentos ao Cristiano Dias (do Vilago) pela dica.

Acesse-o! Procure por Noriel Vilela, João Nogueira, João Bosco e tudo mais que é bom mas não vende.

Web Semântica – Arquitetura de ambiente de autoria baseado em ontologias

Terça-feira passada houve um seminário sobre a Web Semântica no Departamento de Ciência da Informação e Documentação da Universidade de Brasília.

Áudio da apresentação:

Versão integral da apresentação, caso você se interesse, vai precisar de concentração e paciência.

Dados da apresentação:

Seminários de Arquitetura da Informação

Título:
Arquitetura de ambiente de autoria baseado em ontologias
Palestrante:
Edgard Costa – Doutorando em Ciência da Informação CID/UnB
Data:
01/08/2006
Horário:
16h30m
Local:
Auditório do CID (Departamento de Ciência da Informação e Documentação)
Resumo do tema a ser abordado:

A Web Semântica representa um novo paradigma da Internet: ela está sendo criada para permitir conexões semânticas entre os conceitos de documentos da Web e assim interligar as coisas pelo o que elas significam (semântica), e não por como elas são escritas (sintaxe). As conexões semânticas entre os conceitos dão-se por meio de ontologias. Elas são representações formais e explícitas de uma unidade de conhecimento, um termo, um conceito, um símbolo, uma imagem, etc. As ontologias são criadas e editadas por sistemas que permitem aos computadores interpretar relações entre os termos e conceitos relacionados entre si, por quaisquer relações semânticas entre suas instâncias.

A Internet tem oferecido como ambiente mundial para a autoria de novas informações (e-mail, html, doc, pdf, etc.) e não apenas de pesquisa e acesso a informação existente (www, google, bases de dados, mídias, etc). Neste seminário, apresentamos o momento da autoria de documentos como situação potencial para a representação do conhecimento e a conseqüente publicação dos documentos. Sistemas baseados em ontologia para a representação da informação e autoria na Web Semântica estão surgindo e provendo soluções como anotação semântica, extração da informação, marcação ontológica etc. Ao analisarmos esses sistemas de autoria desenvolvidos para a Web Semântica, buscamos descobrir quais seriam os requisitos que os sistemas devem ter, a fim de que produzam e suportem documentos em conformidade com as recomendações da WebSemântica, e conseqüentemente usufruam de suas potencialidades.

Apresentaremos uma análise de sistemas baseados em ontologia, a partir de um critério de análise específico que desenvolvemos para identificar as características, requisitos e conformidade com as recomendações existentes, identificadas na revisão de litetatura. Oresultado da análise permitiu-nos revelar que nesse novo paradigma de produção, os autores deverão desempenhar tarefas de estruturação do conhecimento com os quais eles ainda não estão familiarizados. Identificamos uma necessidade de abordar essas questões no âmbito da Ciência da Informação, especialmente se desejarmos dar apoio a autores no desenvolvimento de conteúdos mais bem estruturados e representados, apartir do potencial que têm as atuais tecnologias baseadas em ontologias. Ao buscar tratar essa questão, propomos com esse trabalho um conjunto de requisitos e um modelo de arquitetura de ambiente de autoria baseada em ontologia para a Web Semântica, composto por módulos que sugerem novas funções e integram tecnologias correntes, fazendo uso de possibilidades existentes e propondo o desenvolvimento de novos requisitos.

Prof. Mamede Lima-Marques
Departamento de Ciência da Informação
Universidade de Brasília – UnB

Mais sobre a web semântica

Tornando reais suas aplicações para a Web

Introdução (talvez você não precise desta parte)

Todos já notamos que vender aplicações em caixas bonitas é coisa do passado. Mesmo que este tipo de distribuição de software se mantenha por um bom tempo, mesmo que sistemas operacionais precisem ser entregues em caixas bonitas daqui a 30 anos, ainda assim é passado.

O novo modelo de distribuição coloca os softwares para serem utilizados na Web, dentro do navegador(por enquanto), com conexões banda-larga e CPUs ultra poderosas fica fácil.

Este texto está sendo escrito em uma aplicação chamada Writely que roda na web e, para meu uso, tem muitas vantagens sobre um processador de texto que rode localmente, como Microsoft Word ou BrOffice.org Writer. Para citar três destas vantagens: eu posso acessar o texto de qualquer lugar, posso escrever o texto em conjunto com outras pessoas simultaneamente, não precisei instalar uma suite de aplicativos que custa quase R$:1000,00 e iria consumir processamento e memória RAM do meu computador pra sempre.

O objetivo deste texto é traçar algumas dicas para pessoas envolvidas no desenvolvimento de aplicações para esta Nova Web (perdão pelo jargão, mas não consigo achar nada mais adequado). Não é focado apenas em programadores, designers, gerentes de projeto ou qualquer outro perfil profissional, pode ser usado inclusive para projetos não-Web e não-programação.

Implemente o princípio KISS para desenvolver suas aplicações (talvez você não precise desta parte também =)

Para quem não sabe, KISS significa: Keep It Simple Stupid, ou Mantenha-o Simples Estúpido em bom português. É um princípio inicialmente criado para definir o desenvolvimento de softwares do mundo UNIX, onde vários programas simples e altamente especializados conversam entre si para realizar tarefas de qualquer tamanho, grandes ou pequenas, simples ou complexas. Posteriormente este princípio foi portado para outras áreas, como design, arquitetura da informação e web design.

KISS significa não perder recursos com itens inúteis, seja o recurso em questão espaço, tempo, processamento. Significa manter somente o necessário para o bom funcionamento da aplicação e experiência do usuário.

Aparentemente o princípio KISS foi esquecido em softwares como Microsoft Word, Microsoft Excel, Microsoft Power Point, Microsoft Outlook (este é o inferno dos usuários), BrOffice.org (derivado do OpenOffice.org), e-Mule, KaZaA, Microsoft Messenger (MSN, Live, Windows), e vários outros. A Microsoft não é a única a pecar em não utilizar o KISS, quase todos os softwares da "geração passada" são complicados demais.

Com o desenvolvimento de aplicações para a Web, KISS foi relembrado, aplicações especializadas, objetivas, que fazem "só isso" são comuns. O Google Calendar não manipula e-mails, o Ta-Da List nem sabe o que é uma imagem, o Bloglines não navega na Web (mesmo porque ele está dentro dela).

Mantenha a equipe pequena

Muitas pessoas em equipes paquidérmicas gera confusão, o trabalho sempre fica embolado no meio de campo. Mantenha a equipe pequena, as coisas serão feitas com maior agilidade caso não sejam necessários 4 e-mails de aprovação para cada ícone da aplicação.

Evite reuniões

A maior parte das reuniões pode ser evitada com e-mails e conversas por mensagem instantânea. As reuniões só fazem você perder um precioso tempo e ainda quebram o seu fluxo de trabalho diário. Além disso, elas se desviam do caminho proposto com a mesma facilidade que um brasiliense dirigindo nas ruas de São Paulo.

Não perca tempo prevendo o mundo real, enfrente-o

Não perca tempo com coisas que representam o mundo real, como gráficos, planilhas, especificações, testes; enfrente o mundo real desenhando a interface, programando o software e lançando-o.

Se você não perde tempo com tarefas inúteis pode trabalhar diretamente no que é real e lançar a aplicação mais rapidamente.

Comece por algo palpável (não se esqueça: enfrente o mundo real!)

Seus investidores e utilizadores preferem ver uma janela de terminal com toda a saída de um banco de dados orientado a objeto ou algumas telas da interface do programa com as funcionalidades básicas implementadas?

O Wufoo, um construtor de formulários para a Web, se manteve meses "em alta" na comunidade de desenvolvedores simplesmente com um "demo", não gerava uma linha de código, porém, deixava você criar e arrastar campos pela tela. Se a equipe do Wufoo tivesse começado com a infra-estrutura ao invés da interface você acha que eles teriam tanto sucesso?

Para notar isto, basta ver o fantisy rpg, não há nada na página do projeto, caso houvesse pelo menos as imagens dos personagens, as pessoas se interessariam com maior facilidade.

Lance logo e atualize sempre

Você não deve perder tempo tentando prever o que os usuários vão aprovar ou não em seu programa. Não gaste tempo tentando cobrir todas as falhas possíveis do software para só então publicá-lo.

Um software na Web não precisa aguardar um ano para ser atualizado, não precisa de nomes de versão ininteligíveis: Internet Explorer 6.0.2900.2180.xpsp_sp2_rtm.040803-2158? Mozilla Firefox 1.5.0.4? Isso é passado. [1]

Se você lança logo, pode receber respostas dos usuários e retirar os recursos indesejados no mesmo dia, assim como inserir recursos solicitados.

Os softwares têm potencial para ter atualizações rápidas e transparentes aos utilizadores, seu método de desenvolvimento deve conseguir atender a esta demanda.

<update datetime="2006-07-27">

Escalabilidade é sua amiga

Se o software será atualizado constantemente, você precisa poder incrementar novas funcionalidades e recursos com facilidade, se a cada atualização for necessário reescrever todo o código-fonte, suas atualizações não serão tão rápidas quanto poderiam.

Lembre-se do princípio KISS aplicado ao mundo UNIX, divida sua aplicação em componentes que conversem entre si. Com sua aplicação componentizada você poderá alterar o fluxo da comunicação, ou modificar os componentes individualmente, com bastante facilidade.

</update>

Não se preocupe com problemas do futuro

Não se preocupe se seu servidor não suporta 400.000 acessos simultâneos, deixe este problema ser resolvido quando você tiver este número de acessos, concentre-se em resolver os problemas do presente.

Não perca tempo com problemas que surgirão no futuro, você não precisa cobrir o universo, é por isso que seu software está na Web, você pode cobrir apenas a área necessária. Deixe as preocupações de compatibilidade futura de lado.

Faça menos que a concorrência

Costumava-se acreditar que para vencer um concorrente, você deveria fazer mais que ele. Se o software dele tem 10 funcionalidades, o seu deve deve ter 15 ou 20. Se ele tem 60% de qualquer coisa, você deve ter 80%. Não faça isso, esta é uma prática antiga que já não funciona mais.

Sua aplicação deve fazer menos que a dos concorrentes, deve atingir um ponto objetivamente, sem deixar dúvidas para o usuário sobre a função do seu software.

Menos significa:

  1. Menos janelas de opções e preferências.
  2. Menos elementos na interface.
  3. Menos formulários de cadastro com menos campos para preenchimento.
  4. Menos cliques.
  5. Menos instalações de plug-ins.
  6. Menos avisos.
  7. Menos telas.
  8. Menos burocracia.

O meebo ganhou o mundo por ser mais simples que seus concorrentes, basta entrar no site, digitar login e senha do serviço de mensagem instantânea desejado e pronto, você está conectado, sem cadastros, sem avisos, sem configurações, sem alteração de permissões aqui e ali, sem e-mails de confirmação.

Conclusão (gancho para atualizações =)

Este texto também segue a filosofia do publique logo e atualize sempre. Foi escrito rapidamente e será atualizado constantemente. Não coloquei sequer as tags de semântica XHTML necessárias, isso será feito nas atualizações.

Links:

Observações:

  • Boa parte deste texto foi escrito com base em algumas lições da 37signals.
  • É óbvio que estas dicas não são imutáveis e não devem ser seguidas à risca, cada projeto tem suas peculiaridades. Eu sei bem que sistemas de internet banking e gerenciadores de usinas nucleares não devem ser desenvolvidas na doida =)
  • [1] Sei que usei como exemplo programas que não poderiam rodar na Web, mas foi só para ilustrar como nomes de versão podem ser confusos.