Chrome - Easter eggs e uma breve avaliação

Encontrei na internet alguns Easter eggs no Chrome, um browser novo criado pelo Google.

Veja abaixo a lista de alguns comandos, e o que ele faz.

about:internets - Você irá ver algo como aquela antiga proteção de tela do Windows, aqueles canos 3d
about:version - Dados da versão do Browser
about:plugins - Mostra os plugins instalados
about:histograms - Histórico de navegação
about:dns - Status do DNS
about:cache - Mostra as páginas cacheadas
view-cache:stats - Estatísticas do cache
about:stats - Página secreta
about:network - Ferramenta de rede

Se você não sabe o que é Easter eggs veja a definição do Wikipedia: Ovo de páscoa (em inglês: Easter egg) é uma denominação criada para designar as brincadeiras incluídas propositalmente durante a criação de uma música, jogo, livro, álbum e afins.

Uma breve avaliação do novo navegador

Não cheguei a usá-lo a fundo, me limitei a visitar alguns sites, e fuçar nas opções, mas veja abaixo algumas considerações:

  • Achei ele super leve, comparado com o Firefox e com o Internet Explorer.
  • Eu também gostei da ferramenta de debug dele.  Você tem acesso a todas os objetos da página carregada, o tempo que levou, o tipo do objeto, e tudo isso representado graficamente.
  • O console javascript é autocomplete, isto é, você começa a digitar uma função e ele completa pra você, show de bola isso.
  • Achei engraçado ter um botão chamado: “Estatísticas para nerds”.

Em breve mais informações.

Yahoo! Music API

Foi anunciando hoje no Yahoo! Music Blog o lançamento da útima versão da API Yahoo! Music API.

Com essa API os desenvolvedores podem acessar o catálogo musical do Yahoo!, que contém lista artistas, albuns, tracks, vídeos, ratings e muito mais. E com essa informação o desenvolvedor poderá criar gráficos, fazer buscas por similaridades, gêneros, artistas, usuários, e também fazer recomendações de músicas.

A API retorna dados no formato XML, JSON, e RSS, por enquanto a limitação da API é de apenas 5.000 consultas diárias.

Veja um exemplo de uma aplicação construída com a Yahoo! Music API no Facebook.

Mais informações sobre a Yahoo! Music API.

Mobile Web Best Practices 1.0

A W3C lançou um novo documento intitulado “Mobile Web Best Practices 1.0“, com o objetivo de orientar aos desenvolvedores e mantenedores de websites de como agir para melhorar a experiência de navegação dos usuários que acessam seu site através de platafomas móveis.

Como o documento é longo a W3C fez também Flipcards baseado no documento inteiro. Isso torna um pouco mais fácil e ágil a leitura do mesmo. O Flipcard se divide em 10 itens que vão te orientar no Design, na Otimização, entre outras questões importantes.

Veja aqui o link do documento completo e aqui o link do  Flipcards.

Artigo original aqui W3C out with Mobile Web Best Practices 1.0.

Tutorial de XSLT

O que você irá aprender com esse tutorial:

  • Como montar um xsl
  • Como criar uma variável dentro do xsl
  • Como verificar se um elemento do xml está vazio, ou então compará-lo com outra string

A grosso modo XSLT é o CSS do XML, é uma folha de estilo para XML.

Eu fiz um pequeno tutorial, onde você irá aprender como listar os elementos de um XML, usando o XSL, e também como verificar se determinado elemento está vazio ou não, se estiver vazio você mostra uma mensagem, caso contrário você mostra o valor do elemento. Para isso vamos criar uma variável dentro do XSL.

Imagine que você tem uma lista de contatos em XML. E quer fazer uma página para exibí-los. Qual a melhor forma de fazer isso? Usando o XSLT.

Primeiro passo - conhecer seu XML

Fica meio difícil você montar o XSL sem ao menos conhecer a sua estrutura XML. Por isso a primeira coisa que você precisa fazer é abrir seu XML e conhecer a sua estrutura.

No nosso exemplo, o XML de contatos tem a seguinte estrutura:

 <contato>
  <pessoa>
   <nome>Bob Dylan</nome>
   <telefoneresidencia>555-0001</telefoneresidencia>
   <telefonecelular>999-0001</telefonecelular>
  </pessoa>
  ...
 </contato>

Segundo passo - mostrar para o XML onde está o XSL

Agora você precisa dizer ao XML onde está o XSL dele.

Veja como fazer isso, na linha abaixo. Nosso XSL se chama contato.xsl.

<?xml-stylesheet type="text/xsl" href="contatos.xsl"?>

Terceiro passo - montar o XSL

O XSL tem o seguinte cabeçalho:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

O XSL completo fica assim:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:template match="/">
  <html>
   <head>
    <title>Meus contatos</title>
    </head>
    <body>
     <h2>Meus contatos</h2>
     <xsl:for-each select="contato/pessoa">
      <h3><xsl:value-of select="nome" /></h3>
      <div>Telefone residencial: <xsl:value-of select="telefoneresidencia" /></div>
      <div>Telefone celular: <xsl:value-of select="telefonecelular" /></div>
     </xsl:for-each>
   </body>
  </html>
  </xsl:template>
 </xsl:stylesheet>

Vou explicar algumas partes dele:

<xsl:template match="/">
<!-- indica que o template irá pegar os elementos apartir da raiz do XML -->

Abaixo damos a instrução para percorrer todos os elementos pessoa que está dentro de contato, do XML.

<xsl:for-each select="contato/pessoa">
...
</xsl:for-each>

E dentro do for-each mandamos exibir os elementos do XML>

<xsl:for-each select="contato/pessoa">
 <h3><xsl:value-of select="nome" /></h3>
 <div>Telefone residencial: <xsl:value-of select="telefoneresidencia" /></div>
 <div>Telefone celular: <xsl:value-of select="telefonecelular" /></div>
</xsl:for-each>

Quarto passo - Variáveis dentro do XSL

Bom, nem todo mundo tem celular hoje em dia, certo?

Então fica feio você exibir:
Telefone celular: vazio

Fica mais elegante se você nem exibir o “Telefone celular:” ou Mostrar uma mensagem do tipo ” Sem telefone celular“.

Para isso podemos criar uma variável dentro do XSL, atribuir o valor de um nó à ela, e comparar ela com alguma coisa, para ver se exibimos ou não tal elemento.

Para criar uma variável é bem simples

<xsl:variable name="nome_da_variavel">valor</xsl:variable>

E no nosso caso, queremos uma variável para ver se

<xsl:variable name="telefonecelular"><xsl:value-of select="telefonecelular"/></xsl:variable>

Agora já temos uma variável com o valor do nó contato/pessoa/telefonecelular. E precisamos comparar se o valor da variável é vazia ou não.

Veja como fazer isso nas linhas abaixo:

Lembrando que para acessar uma variável precisamos colocar o sifrão ($): $telefonecelular, apenas para acessá-la, para criar é sem o sifrão ($) mesmo.

<xsl:choose>
 <xsl:when test="$telefonecelular=''"><!-- comparamos se o valor está igual a '' (vazio) -->
  <i>Sem telefone celular</i><!-- no caso de vazio exibimos essa linha -->
 </xsl:when>
<xsl:otherwise><!-- caso contrário, exibimos a linha abaixo-->
 <div>Telefone celular: <xsl:value-of select="telefonecelular" /></div>
</xsl:otherwise>
</xsl:choose>

Quinto passo - está feito

Pronto, nosso XSL que exibe todos os nossos contatos, e verifica se o contato tem ou não o telefone celular.

Links / download

Nota:
É muito importante que você feche todas as tags que você abrir. Senão dá erro, tanto no XML quanto no XSL.

Hoje eu me decepcionei com o Ajaxian - UPDATE

Hoje de manhã tive uma decepção.

A história é a seguite, tem um site que se chama Ajaxian, que escreve várias matérias para sobre desenvolvimento web. Os posts variam entre CSS, Javascript, .NET, etc.

O conteúdo deles é interessante, já aprendi alguns truques lá.

Mas hoje de manhã me desapontei com o site. Percebi que no código fonte tem um div com esses atributos:

left: -2700px; position: absolute; top: -3600px

Isso quer dizer que o tal div fica acima da tela, por isso não é visível ao olho nú, a não ser no código fonte. E esse div vezes termos como buy buy sale viagra viagra, buy clomid, entre outros termos vendo remédios.

Eu só percebi isso por causa do Google Reader, que ignorou os parâmetros do div, para ficar cima da tela, e aí vi um post bonito, cheio de links farmacêuticos, como a imagem abaixo:

Talvez seja pura ingenuidade minha, mas fiquei um pouco decepcionado. Se o objetivo do site é vender remédios, então abra uma farmácia, ou mude o site para phamaian.com.

Sei que isso é para atrair paraquedistas, mas você há de concordar comigo que tal ação é frustante para ambas as partes: quem procura por viagra vai no meio de um post falando sobre asp.net, e aí?! Quem achava que o blog era uma coisa séria, vê que eles estão sendo malvados e oportunitas.

Não vou deixar de ler o blog, pois eu gosto de alguns assuntos, mas confesso que fiquei realmente desapontado.

UPDATE!

A Bárbara estava certa, o site havia sido invadido.

O Felipe entrou em contato com eles, e o problema já foi solucionado.

Peço mil desculpas ao pessoal do Ajaxian, voltei a ter fé na humanidade.

Segue a resposta que deram ao Felipe:

Hi Felipe,

Ajaxian got hacked, and this was put in by spammers. We have been rebuilding the machine to get rid of it. It is a shame that people like this are around!
Thanks for emailing me about it.
Cheers,
Agradecimentos ao Felipe e Bárbara. E mais uma vez, desculpa aí Ajaxian.

Tabelas temporárias no Sql Server 2005 e jProton - Um Framework JavaScript Brasileiro

Como criar tabelas temporárias no Sql Server 2005: Dicas de como criar tabelas temporárias no Sql Server 2005, em inglês.

jProton - Um Framework JavaScript Brasileiro: Um framework Javascript brazuca!

Next Page »