Sítio do Piropo

B. Piropo

< Coluna em Fórum PCs >
Volte
24/10/2005

< As pastas virtuais de Windows Vista >


Recentemente instalei o Windows Vista para me familiarizar com as novidades do sistema. Encontrei diversas. Todas já fartamente discutidas e analisadas nas centenas de artigos escritos sobre o assunto. Mas há uma, em especial, que ou simplesmente não tem sido mencionada ou, quando tem, não tem merecido a atenção devida. Uma que, no meu entender, além de representar uma inovação bastante significativa, será uma das mais úteis ferramentas de trabalho contidas na nova versão de Windows. Trata-se das “pastas virtuais”.

Pastas virtuais são arquivos XML que armazenam um critério de busca capaz de gerar em tempo real ponteiros para objetos que satisfaçam ao referido critério.

Achou bobagem? Não entendeu nada? Acha que jamais usará um negócio desses? Pois continue lendo que sou capaz de apostar que mudará de opinião. Só é preciso destrinchar um pouco esse parágrafo aí de cima.

O que é XML

Começando pela XML, ou eXtensible Markup Language (linguagem de marcação extensível).

A XML é um sistema gramatical para construção de linguagens de marcação personalizadas. Continua complicado? Que nada, provavelmente você já conhece pelo menos os rudimentos de uma linguagem de marcação (“markup language”): a HTML (HiperText Markup Language) usada para criar páginas da Internet. Examine o código fonte de qualquer página da Internet e verá que aspecto tem um documento fonte de uma linguagem de marcação.

Está difícil encontrar um? Bobagem. Abra o desta mesma página que você está lendo. Vamos lá: clique no menu “Exibir” aí de cima (isso mesmo, no seu navegador) e acione a opção “Código fonte”. Vai se abrir uma nova janela com o código fonte da página em HTML. Repare na primeira linha. Será algo parecido com:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
Imediatamente depois haverá uma linha apenas com:
<html>

E, no final do documento, a última linha será:

</html>

A primeira linha é uma DTD, ou declaração de tipo de documento (“Document Type Declaration”). Ela declara que as informações sobre as “marcações” (ou “tags”) contidas no código fonte do documento estão em um determinado local da Internet. Como é a primeira coisa que seu navegador toma conhecimento ao abrir o documento (por isso está sempre no início), ele já sabe onde encontrar tudo o que precisa para interpretar e exibir o documento, ou seja, sua estrutura, elementos e atributos.

A segunda linha, <html>, é a abertura de uma marcação. A cada abertura corresponde um fechamento. Que no caso do documento fonte que você está examinando, muito provavelmente será sua última linha: </html>. Este par de marcações indica que tudo que está entre elas é um elemento de um documento do tipo HTML. No caso, o conteúdo e formatação do documento.

Procure ao longo do código fonte e você encontrará diversas outras marcações de abertura e de fechamento, como <head> e </head>, <table> e </table>, <tr> e </tr>. Elas indicam que o que está entre elas é um elemento (no caso, respectivamente, o cabeçalho do documento, uma tabela e uma linha de uma tabela). Algumas parecem mais complicadas, como a combinação abaixo:

<table border=“2” cellpadding=“5” cellspacing=“10” >
...
...
</table>

Nesse caso, além de indicar o início de um elemento “tabela”, a marcação de início informa que a largura da margem da tabela é de duas unidades de comprimento (em geral pixels, mas não necessariamente), o enchimento entre o conteúdo e a margem da célula é de cinco e o espaçamento entre células é de dez unidades. Esses três últimos valores são alguns dos “atributos” que o elemento “tabela” pode possuir.

O aspecto de qualquer documento programado com uma linguagem de marcação é semelhante a esse: começa com uma definição de tipo de documento (DTD), que fornece ao programa que vai exibir o documento informações sobre como formatá-lo, e contém os elementos do documento (sempre demarcado por duas marcações, a de abertura e de fechamento), alguns dos quais possuem atributos (declarados na marcação de abertura). Dependendo dos elementos e de sua definição de tipo, eles podem ser exibidos no corpo do documento, como no caso da tabela, que é mostrada com os atributos declarados, ou não aparecerem para o usuário, como no caso do “head”, ou cabeçalho, que contém instruções para o programa que exibirá o documento e não dados correspondente a seu conteúdo e portanto permanece oculto.

A HTML é uma linguagem de marcação para criar páginas da Internet, portanto o programa que irá exibi-las será um navegador (“browser”), como o Internet Explorer, o Opera ou o Firefox (desculpe se esqueci de mencionar o seu, eu sei como essas coisas são e por isso vou logo admitindo que sem dúvida ele é o melhor de todos e minha omissão é imperdoável, não precisa escrever reclamando).

A linguagem XML contém todo o necessário para criar outras linguagens de marcação especializadas que, por sua vez, serão usadas para criar documentos que serão exibidos por qualquer programa e podem ser usados para qualquer fim específico. Já existem linguagens de marcação criadas para descrever informações sobre química (CML, ou Chemical Markup Language, < http://xml.coverpages.org/cml.html >), música (MML, entre diversas outras, < http://www.musicmarkup.info/scope/markuplanguages.html >) e até mesmo uma especializada em naves espaciais, a SML, de Spacecraft Markup Language (se duvida, visite < http://www.interfacecontrol.com/sml/sml/mainpage.htm >, o sítio do projeto SML). E mais um enorme número delas, todas criadas com a XML, que serve justamente para isso: criar linguagens de marcação. E se você se amarra, por exemplo, em jogar botões, pode criar uma linguagem específica para tal fim, com todas as informações necessárias para trabalhar com esse ramo específico da ciência. Basta escolher que elementos serão usados, definir suas marcações e atributos, criar uma DTD (definição do tipo de documento), colocá-la na Internet à disposição de seus confrades e tocar para a frente.

Pois bem: seja qual for a linguagem de marcação, ela descreverá elementos que por sua vez possuirão atributos. Esses atributos são classificados como “metadados”, ou seja, dados que na verdade não são dados, mas informações sobre outros dados.

Os documentos XML são em geral criados com editores de texto tipo “texto puro”, como o Bloco de Notas, ou em editores especializados que geram documentos do tipo “txt”. Isso porque a maioria dos programas que manejam tais documentos (como os navegadores) foram desenvolvidos para interpretar marcações (“tags”) em texto puro. Mas nada impede que se criem marcações usando um tipo qualquer de código. Embora codificadas, se o documento contiver marcações que definam sua estrutura, seus elementos e atributos (metadados) e se essas marcações forem definidas em um DTD, continuará sendo um documento XML.

Pois bem: a maioria dos documentos criados pelos programas modernos, em especial os do pacote Office da Microsoft, usa e abusa de marcações internas XML codificadas. Como quem vai exibir os documentos é o próprio programa, é desnecessário criar uma DTD pública, basta que o programa a conheça e saiba interpretar as marcações.

Se você achou tudo isso meio confuso, guarde duas informações que nos interessarão particularmente: a primeira é que todos (ou quase todos) os documentos gerados pelos modernos programas contêm metadados (ou formas de nele serem introduzidos metadados). E que dispositivos de busca que estejam cientes disso podem consultar esses documentos e deles extrair tais metadados. E por falar em dispositivo de busca...

O novo dispositivo de busca do Windows Vista

O Windows Vista vem com uma poderosíssima ferramenta para localizar arquivos no disco rígido do computador baseado em um sistema de indexação.
O sistema é similar ao empregado pelo popular Google Desktop Search. Após a instalação do sistema, ele gasta algum tempo varrendo o conteúdo dos discos rígidos, arquivo por arquivo. Em seguida indexa este conteúdo em um arquivo oculto que a partir de então será regularmente atualizado. Quando se procura por um arquivo que contenha o texto “metadados”, por exemplo, a busca é executada no arquivo indexado e o resultado surge quase imediatamente (quem usa o Google Desktop Search sabe bem disso).
O Windows Vista incorporou essa tecnologia em seu mecanismo de busca, que tornou-se extremamente rápido. E já não era sem tempo. Nesses dias em que discos rígidos atingem centenas de Gigabytes, encontrar um arquivo em um deles é uma busca de agulha em palheiro.
A entrada para acionar o dispositivo de busca continua no menu Iniciar (melhor dizendo, no novo menu Iniciar) do Windows Vista. Veja, na Figura 1, a localização da entrada “Pesquisar” (“Search”) no painel direito do novo menu, entre as entradas “Executar” (“Run”) e “Ajuda e Suporte” (“Help and Support”).

Figura 1: Entrada “Pesquisar” no menu Iniciar do Vista

Neste ponto, uma observação que me parece relevante. Repare na caixa de entrada de dados localizada na extremidade esquerda da linha da base do menu Iniciar do Vista. Ela representa mais uma novidade do sistema, algo que tem a ver com o novo dispositivo de busca: serve exclusivamente para encontrar programas. Você quer rodar um programa, não quer perder tempo localizando sua entrada no menu “Todos os Programas” (“All Programs”) e só lembra de uma letra, uma única letra inicial de qualquer palavra de seu nome? Pois digite esta solitária letra (ou, evidentemente, qualquer combinação de letras que iniciem algum nome do programa) naquela caixa de dados. O resultado aparece quase imediatamente no painel esquerdo do menu iniciar, diretamente acima da caixa de dados. Veja, na Figura 2, o que ocorreu quando eu entrei com a letra “m” naquela caixa. E repare que apareceram todos os programas instalados no meu computador em que a letra “m” é a inicial de uma das palavras de seus nomes. Interessante, não?

Figura 2: Busca de programas com a inicial “M”

As buscas com o novo dispositivo agora são feitas em uma nova janela. Veja, na Figura 3, o aspecto dessa janela. Ela é, basicamente, uma instância de uma janela do novo Windows Explorer do Vista e exibe os resultados de uma busca feita no disco rígido da máquina onde eu instalei o sistema procurando por arquivos com extensão “jpg”. Comparada com a janela de busca do Windows XP, esta é bem mais simples, como convém. Permite entrar com a expressão a ser pesquisada, selecionar o tipo de arquivos e o local onde a pesquisa será feita. É o suficiente. Os resultados são exibidos no painel central quase imediatamente.

Clique e amplie...
Figura 3: Resultados de uma busca

As Pastas Virtuais de Windows Vista

Mas o que tudo isso tem a ver com aquela xaropada lá de cima sobre XML? Tem muito. Porque é a combinação do novo dispositivo de busca com os recursos da XML que permitiu criar as pastas virtuais do Vista.

Clique e amplie...
Figura 4: Pasta “Virtual Folders”

Repare, no painel esquerdo (o da estrutura hierárquica de pastas) na janela do Windows Explorer mostrada na Figura 4. Veja a pasta “Virtual Folder”, que contém uma série de outras pastas (sim, os ícones que representam pastas no novo Windows Explorer são assim, diferentes). Repare também que os ícones destas pastas são mostrados em azul, enquanto os das pastas comuns, mais acima, são amarelos. As pastas mostradas em azul são pastas virtuais.

Como bem diz o nome, elas não são pastas reais. Pastas reais contêm objetos (arquivos, outras pastas e outros objetos do sistema). Estas pastas virtuais contêm apenas ponteiros para objetos. Na verdade, nem isso. O que realmente elas contêm são os critérios para criar ponteiros para objetos. Ficou complicado? Então simplifiquemos com um exemplo.

Repare, na Figura 4, que entre as pastas virtuais contidas em “Virtual Folders” há uma, a que está selecionada, denominada “Imagens JPEG”. Ela foi criada por mim e por isso está situada hierarquicamente abaixo (ou “é um ramo”) da pasta “B.Piropo” que contém os meus arquivos pessoais (sim, no Windows Vista acabou aquela frescura de “meu” isso, “meu” aquilo: o computador chama-se simplesmente computador, os documentos estão na pasta “documentos” e assim por diante).

Agora, examine o painel direito. Veja que ele contém apenas arquivos com extensão “jpg”, que Vista classifica como do tipo “Paint Shop Pro 5 Image”, relacionando-os com o programa que os criou. Repare agora na parte de cima do painel direito e compare-a com a parte superior da Figura 3. Notou que ambas exibem o mesmo critério de busca, no caso arquivos cuja extensão é “jpg”? Pois este é o verdadeiro conteúdo da pasta virtual: o critério de busca. Cada vez que for solicitada a exibir seu conteúdo, ela efetuará uma nova busca em meu disco rígido (ou em qualquer ramo ao qual eu eventualmente tenha restringido o critério de busca) e exibirá os resultados, todo o conjunto de arquivos JPEG (de extensão “jpg”) que encontrar.

Melhor que isto: se a pasta virtual estiver aberta e um novo arquivo que satisfaça a seu critério de busca (no caso, de extensão “jpg”) for criado (ou removido) em qualquer pasta do disco rígido, a pasta virtual será imediatamente atualizada e exibirá (ou omitirá) o novo arquivo. E o mais interessante é que a pasta, propriamente dita quase não ocupa espaço em disco,  já que não armazena arquivos, apenas “ponteiros” para os arquivos criados obedecendo ao critério de busca.

Nesta altura dos acontecimentos você deve estar imaginando como eu teria criado esta pasta virtual “Imagens JPEG”. Pois foi muito simples. Lembra da busca que originou a Figura 3? Pois volte a ela e repare, perto do canto superior esquerdo, na entrada “Organize”. Ela abre o menu de cortina mostrado na Figura 5.

Figura 5: Menu “Organize”

Pois bem: assim que a busca exibiu seus resultados (que, lembre-se, graças à nova tecnologia de indexação foi quase imediatamente) eu abri o menu “Organize” e selecionei a entrada “Save search” (“Gravar busca”). Vista não somente gravou o critério (e não o resultado) como criou a  pasta virtual correspondente que eu batizei de “Imagens JPEG”. A pasta foi criada automaticamente. O resultado é o exibido na Figura 4.

Como a pasta contém o critério, não os objetos, cada vez que um novo arquivo de extensão jpg é  criado ou removido o ponteiro para ele será adicionado ou subtraído da pasta e exibido em seu painel direito (basta comparar as figuras 3 e 4 para notar que novos arquivos surgiram no intervalo entre a captura de suas imagens). E se eu desejar abrir o arquivo no interior do aplicativo ao qual ele está associado, basta um clique duplo sobre seu ícone na pasta virtual. E para abrir a pasta que o contém, basta clicar com o botão direito sobre seu ícone na pasta virtual e escolher a opção “Open containing folder”. É simples assim.

A Microsoft dá tanta importância a essa novidade que criou um conjunto de pastas virtuais padrão e implementou um novo painel no Windows Explorer cuja função principal é exibi-las. Trata-se do “painel de navegação” (“Navigation pane”) que pode ser visto no centro da Figura 6, entre os dois painéis tradicionais.

Clique e amplie...
Figura 6: Windows Explorer mostrando o painel de navegação

Este painel pode ser ou não exibido, à critério do usuário, mas a configuração padrão é mostrá-lo.

Repare nas pastas virtuais nele contidas: além de “All Documents” (todos os documentos), aparecem as pastas “Authors” (autores), “Rating” (nota, grau, avaliação), “Keywords” (palavras chave), “Recent” (recentes), e “Types”. Não é difícil descobrir como Vista consegue preencher as pastas virtuais “All documents” e “Recent”. Mas como ele fará para preencher as demais?

Se você pensou em XML e nos metadados, acertou em cheio. Porque, ao criar cada documento, os programas desenvolvidos para o vista incluirão nele, de acordo com o padrão XML, um conjunto de metadados que conterá informações sobre seus autores, palavras chave, comentários, data de criação e diversas outras. E, se prestar atenção na Figura 6 verá que o “Preview pane” mostrado no pé do painel direito (sim, o Windows Explorer do Vista vem cheio de novidades; o “Preview pane”, ou “painel de visualização” é uma delas: um novo painel com o ícone ou miniatura do objeto e a lista de alguns de seus atributos) está com a caixa de dados “Keywords” aberta à espera de que eu digite as palavras chave correspondentes a este documento. E palavras chave fazem parte dos atributos (ou dos metadados) incorporados aos documentos.

Figura 7: Painel de visualização de um arquivo de imagem

Os metadados variam com o tipo de arquivo. Veja, na Figura 7, os correspondentes a um arquivo gráfico mostrados no painel de visualização deste tipo de arquivo. Note que há atributos correspondentes ao modelo e marca da câmara usada (no caso de fotos). Estas informações futuramente serão acrescentadas ao arquivo automaticamente. E o “Rating” pode ser atribuído pelo usuário de acordo com seus próprios critérios.

Quando o uso de metadados se disseminar e eles forem incorporados a arquivos criados por mais aplicativos, as pastas virtuais de Windows Vista mostrarão sua real utilidade. Por exemplo: no interior da pasta “Authors” você encontrará um novo conjunto de pastas virtuais que classificará os arquivos por autor. Na pasta “Ratings” você terá os objetos ordenados em ordem crescente ou decrescente de interesse ou importância. E poderá criar suas próprias pastas virtuais de acordo com qualquer tipo de critério que lhe dê na veneta classificadas por qualquer de seus atributos. Como elas pouco ocupam espaço em disco, você poderá usar e abusar deste recurso. E terá em mãos uma ferramenta poderosíssima  para ordenar, classificar e organizar os arquivos de seu disco rígido.

Como você já deve ter percebido, uma pasta virtual não é uma pasta no sentido corrente. Na verdade ela é um arquivo que obedece ao padrão XML que contém apenas um critério de busca. Ela seria então um “container” de ponteiros para objetos. Portanto não se pode   remover ou criar um arquivo diretamente em seu interior. Mas pode-se obter o mesmo resultado criando ou removendo de qualquer outra pasta um arquivo que satisfaça ao critério de busca. Uma sutileza que pode complicar um pouco as coisas para quem ainda não estiver habituado mas que logo será absorvida pelos usuários que resolverem dedicar algum tempo para aprender a usá-las.

Garanto que se você é usuário de Windows, há um mar de pastas virtuais no seu futuro...

Bom proveito.

B. Piropo