arquivos Mensais: Outubro 2009

Em louvor da jQuery Enhanced-como-você-tipo de pesquisa (por Jan Tielens)

Estou trabalhando em uma demo BPOS (em breve estar disponível até no Microsoft do site) e eu queria adicionar mais energizado. Eu já sabia De Jan Tielen os esforços por um bom tempo e eu pensei que seria uma ótima técnica para adicionar para o demo, Então eu fiz. Você pode ler sobre isso aqui: http://weblogs.asp.net/jan/archive/2009/07/02/sharepoint-search-as-you-type-with-jquery.aspx. É tão simples de usar provavelmente devem ser um crime (e talvez esteja em algum lugar).

Acrescento apenas dois pontos para o que ele já criou / escreveu sobre:

  1. Isto faz, Na verdade, trabalhar em um BPOS (SharePoint online) meio ambiente.
  2. Para fazer o trabalho sem um prefixo de mensagem pop-up irritante a referência a biblioteca jquery com https em vez de http, como em:
<script type ="text/javascript" src ="https://Ajax.googleapis.com/AJAX/libs/jQuery/1.3.2/jQuery.min.js"></script>

Jan ressalta que você provavelmente deve mover a própria biblioteca para seu site. Sentindo um pouco preguiçoso hoje, I decided to blog about it instead 🙂

</fim>

Este é outro post em meu série em curso sobre como usar jQuery com o SharePoint.
Se você quer aprender mais sobre jQuery, Eu recomendo: jQuery em ação por Bibeault de urso e Yehuda Katz.

Subscreva ao meu blog.

Siga-me no Twitter em http://www.twitter.com/pagalvin

Technorati Tags:

SharePoint oficina palestra quinta-feira 10/29 às 12:30 PM EDT

O próximo Talk Shop do SharePoint tem lugar esta quinta-feira às 12:30PM EDT.

Podemos ter tirado duas semanas (devido ao SharePoint Conference na semana passada) e como resultado, Temos uma série de perguntas na fila, para não mencionar todos os tipos de coisas legais para falar sobre SharePoint 2010. Todos os membros do painel participaram SPC, Então traga seu SP 2010 perguntas para a chamada ou enviá-las para Questions@sharepointshoptalk.com < script cf-hash = "f9e31" type = "text/javascript" > / * * /.

Além de uma boa parte da chamada reservou para falar sobre alguns SP 2010 bondade, também discutiremos:

  • Por que o SharePoint mostra opções de navegação diferentes em configurações do site (Isso varia de acordo com características e configuração do site)
  • Modificando versions.aspx – problemas, dificuldades para fazê-lo (I”m not surprised 🙂 ).
  • Incorporação de RSS feeds em um site quando a fonte é autenticada.
  • Usando o stsadm para gerenciar log.

Cadastre-se aqui: https://www.livemeeting.com/lrs/8000043750/Registration.aspx?pageName=p663256djrrflfdw

Como de costume, envie quaisquer perguntas ou tópicos de discussão para Questions@sharepointshoptalk.com < script cf-hash = "f9e31" type = "text/javascript" > / * * /, email-me diretamente ou twitter para @pagalvin.

Esperamos ver você lá!

</fim>

Subscreva ao meu blog.

Siga-me no Twitter em http://www.twitter.com/pagalvin

Technorati Tags:

Batida rápida: Lendo XML do InfoPath directamente de um SPListItem no SharePoint

Estou trabalhando em um projeto onde eu preciso extrair anexos de um formulário do InfoPath. Existem alguns bons recursos para análise de formulários do InfoPath (que são apenas arquivos XML, Portanto, é realmente muito fácil).

Enquanto eu estava construindo o projeto, Comecei a baixar um formulário do InfoPath e salvando-o meu disco rígido local. Meu código c# estava lendo diretamente de instância. No entanto, os formulários do InfoPath são realmente vivendo dentro de uma biblioteca de formulários do SharePoint. Eu fiz um pouco meio coração pesquisa para descobrir como se lê diretamente da biblioteca e quase desisti, Nesse caso eu teria salvo o formulário para um diretório temporário local e lê-lo de lá. No entanto, Não há nenhuma necessidade de atravessar arcos como você pode lê-lo diretamente da biblioteca. Este pequeno trecho de código mostra como:

/// Coisas de definição de classe aqui, incluindo:
privada SPFile t: Microsoft.SharePoint.SPFile mySharePointFile; /* Parte de um SPList */
// Mais código vai aqui e dentro de um método da classe temos:
XmlTextReader textReader;
textReader = Novo XmlTextReader(mySharePointFile.OpenBinaryStream());

textReader.WhitespaceHandling = WhitespaceHandling.Nenhum;

TextReader();

// Se o nó tiver valor

ao mesmo tempo (TextReader())
{

... e assim por diante e assim por diante...

Eles-chave bit acima é que podemos ler o InfoPath diretamente via o OpenBinaryStream() chamada de método sobre o SPFile como um parâmetro para o Construtor em XmlTextReader. Ele funciona muito bem.

</fim>

Subscreva ao meu blog.

Siga-me no Twitter em http://www.twitter.com/pagalvin

Technorati Tags:

Rápido e fácil: Envie Email usando o servidor de SMTP do Gmail em.NET C#

Isso não é exatamente um novo tópico, mas quando eu precisava fazê-lo, Eu encontrei um monte de "por que não este trabalho para mim" e não há muitas respostas diretas. Espero que alguém encontre isto útil.

O seguinte trecho de código irá enviar um e-mail usando minha conta do gmail para fazê-lo, incluindo anexos:

usando System.Net.Mail;
usando System.Net;

NetworkCredential loginInfo = Novo NetworkCredential("[Meu ID do Gmail]", "[Minha senha do Gmail]");
MailMessage MSG = Novo MailMessage();
MSG.From = Novo MailAddress("[M Gmail Id]@gmail.com");
MSG.To.Add(Novo MailAddress("e paul.galvin@arcovis.com"));
MSG. Assunto = "Infopath dev cobaia";
MSG. Corpo = "<HTML><corpo><forte>Uma mensagem forte.</forte></corpo></HTML>";
MSG. IsBodyHtml = verdadeiro;

foreach (Cadeia de caracteres aFile em NIPFD. GetAttachmentNamesAndLocations())
{
    MSG. Attachments.Add(Novo Anexo(aFile));
} // Adicionar anexos.

SmtpClient cliente = Novo SmtpClient("smtp.gmail.com");
cliente.EnableSsl = verdadeiro;
cliente.UseDefaultCredentials = falso;
cliente.Credenciais = loginInfo;
cliente.Port = 587;
cliente.EnableSsl = verdadeiro;
cliente.Enviar(MSG);

Alguns bits chaves que me atrasou e outras observações / notas:

  • A primeira linha que cria o objeto loginInfo precisa usar o gmail de que ID despojado "@gmail.com”. Assim, Se é o meu endereço de e-mail do gmail "e sharepoint@gmail.com"e minha senha é"xyzzy"Então a linha pareceria:

NetworkCredential loginInfo = Novo NetworkCredential("sharepoint", "xyzzy");

  • Minha conta do gmail está configurada para usar SSL, e não era um problema.
  • Há algumas informações conflitantes na qual porta usar. Eu usei a porta 587 e ele funcionou bem para mim.
  • No meu caso, Eu também precisava enviar anexos. Esse objeto NIPFD tem um método que sabe onde estão meus acessórios. Ele está retornando um caminho totalmente (EG. "c:\tempattachment1.jpg". No meu teste, Eu tinha dois acessórios e ambos funcionavam bem.

Eu usei o visual studio 2008 para escrever esse código.

</fim>

Subscreva ao meu blog.

Siga-me no Twitter em http://www.twitter.com/pagalvin

Technorati Tags: ,,,

SharePoint Conference 2009 – Obtenha seus dados brutos em Tempo Real do Twitter

Espero que quase todo mundo sabe isto de qualquer maneira, Mas pensei que jogaria fora uma rápida nota que há uma enorme quantidade de informação muito interessante disponível via twitter. A marca de hash #SPC09 parece ser o mais popular. Como sempre, Há um monte de bobagem e "em" piadas, Mas se você pode superar isso, Confira. Eu faço o meu melhor para responder a comentários ou perguntas dirigidas a mim e eu sei que muitos outros também, Portanto, não é apenas um fluxo unidirecional de informações.

Novas sessões começam em menos de duas horas e continuam até cerca de 3 pm EDT nesta quinta-feira. Ele vai começar a pegar então.

Confira o twitter feed aqui: http://twitter.com/#search?q=%23spc09

</fim>

Subscreva ao meu blog.

Siga-me no Twitter em http://www.twitter.com/pagalvin

Programaticamente extrair anexos de formulários do InfoPath (Incluindo seus nomes!)

Eu tenho uma solução de entrada de despesa para um cliente que utiliza o InfoPath e o fluxo de trabalho. Em um ponto durante o processo de aprovação, Eu preciso gerar um e-mail que tem tudo de que bons dados do InfoPath, como também os anexos próprios para que (suspiro) alguém pode tomar esses dados e recodificá-lo manualmente em um aplicativo de banco de dados Oracle.

Não é muito difícil de obter em ou analisar o formulário do InfoPath. Não sabia como lidar com os acessórios, no entanto. Após uma hora ou duas de bisbilhotando o Internets (uma eternidade!) Eu encontrei este artigo: http://support.microsoft.com/kb/892730

Ele fornecer algum código útil para extrair o acessório de um nó na forma. (Você ainda precisa encontrar o nó e todos os que, Mas isso é apenas análise de XML).

Eu sei que o anexo é codificado na base64 e originalmente desci o caminho de apenas extrair os dados base64, decodificá-lo e salvá-lo. No entanto, Rapidamente percebi que não sabia como conseguir o nome do arquivo em si, até que encontrei o referido artigo.

Na verdade achei que bem cedo, Mas eu fui posto por sua dupla personalidade. Por um lado, o artigo * diz * é bom para o InfoPath 2007. Ainda, o código e as instruções são todas sobre Visual Studio 2003 e as referências ao InfoPath 2003.

Linha inferior, Este artigo, desde que o código está funcionando bem para mim (até agora). Eu consigo meu formulário do InfoPath, Pode analisá-lo, Eu posso encontrar e decodificar o acessório e eu sei o seu nome. O que mais pode um perguntar da vida?

</fim>

Subscreva ao meu blog.

Siga-me no Twitter em http://www.twitter.com/pagalvin

Technorati Tags: ,,

Se você está preocupado que seu ambiente do SharePoint pode ser um pouco doentio., Deixe-me ajudar a consertar isso com um exame de saúde.

SharePoint Shop Talk Recap para 10-08-2009

SharePoint loja falar do hoje coberto sua habitual vasta gama de tópicos:

  • Discutimos as questões em torno da abertura de partes de um conjunto de sites do SharePoint para seus parceiros comerciais. Não é a coisa mais complicada no mundo, Mas quando começa a falar em voz alta, Você percebe que há um monte de pequenas coisas individuais que precisam ser feitas para fazer isso corretamente. Você tem que considerar o firewall, licenciamento (sua licença de SharePoint da intranet não pode ser, e provavelmente não será, suficiente), Configuração do SharePoint (AAM, estender aplicativos web para as zonas que provavelmente tem HTTPS ativado), etc. Se alguém tiver uma lista de o que fazer e a seqüência, Eu adoraria vê-lo nos comentários. Esta questão ganha a "mais discutida questão" ciente do ano (até agora).
  • Eu tenho uma pergunta sobre a funcionalidade da biblioteca de imagem que gera essas imagens de unha de polegar. Eu especularam que um receptor de eventos na biblioteca de imagem está gerando a unha do polegar. Provavelmente estou errado, Mas parece que há uma imagem inteiramente separada no servidor web para a própria unha do polegar. Victória, um SharePoint Talk Shop regular, chama a atenção para esta entrada de blog: http://pathtosharepoint.wordpress.com/2009/08/23/picture-libraries-take-advantage-of-web-friendly-formats/. Isso é um post muito interessante sobre imagens no SharePoint se você está interessado em que a.
  • Discutimos formas de edição personalizada (que você crie através do SPD) e o fato de que você perde a funcionalidade de fixação, quando você faz isso. Laura Rogers tem blogou sobre esse assunto aqui: http://sharepoint911.com/blogs/laura/archive/2009/09/10/fix-for-the-custom-form-attachments-issue.aspx

Nesta semana, Introduzimos um novo recurso onde passamos sobre 10 minutos, demonstrando um dica/truque interessante em um ambiente do SharePoint. Nesta semana, Mostramos como adicionado um editor de conteúdo web part (e na verdade qualquer web part) para uma página de newItem. aspx. Neste caso, o objetivo foi mostrar a extensa ajuda on-line para essa página newitem. aspx. Este é também um dos pontos de partida usuais para integrar o jQuery em seu ambiente. Na próxima semana, pretendemos mostrar um dica/truque do jQuery. Esperamos ver você lá.

</fim>

Subscreva ao meu blog.

Siga-me no Twitter em http://www.twitter.com/pagalvin

Technorati Tags:

SharePoint Shop Talk 10/08/08 às 12:30 PM EDT

Vamos dar nossa próxima sessão semanal SharePoint loja falar amanhã no 12:30 PM EDT.

Este é um aberto Q&A e sessão geral passeando em todos os tópicos relacionado de SharePoint.

Você pode ler vários resumos das sessões anteriores aqui para ter uma noção do que fazemos sobre estas chamadas aqui: http://paulgalvin.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&_c=BlogPart&partqs=cat%3dPublic%2520Speaking

Inscrição é para cima e pronto aqui: https://www.livemeeting.com/lrs/8000043750/Registration.aspx?pageName=0z40kg9nb0t0842f

Twitter suas perguntas para mim, @pagalvin.

Enviá-las para Questions@sharepointshoptalk.com < script cf-hash = "f9e31" type = "text/javascript" > / * * / ou aparecer na linha e perguntar-lhes em voz alta.

Esperamos vê-lo em seguida!

</fim>

Subscreva ao meu blog.

Siga-me no Twitter em http://www.twitter.com/pagalvin

Technorati Tags:

Para o Blog ou não Blog – essa é a pergunta (blog sobre)

Observação: Isto foi Postado Originalmente para www.endusersharepoint.com.

Há algumas semanas atrás eu tive a oportunidade de falar no SharePoint sábado em Nova York. Mais uma vez, um evento enorme. Desta vez, Eu falei sobre "aprendizagem SharePoint" – um tema muito amplo. Durante a apresentação (que você pode obter aqui), Eu falei sobre uma variedade de técnicas de "aprendizagem" do SharePoint, inclusive coisas como aprendizagem do livro, treinamento de sala de aula, criando sua própria VM e o mais importante (Para mim), participação da Comunidade. Uma maneira de participar da Comunidade do SharePoint é através de blogging. Alguém me perguntou sobre blogging em particular e pediu minha opinião sobre algumas preocupações que ele tinha que já ouvi outros mencionar antes. Isso tem sido coçando minha nuca por algumas semanas então, em minha maneira habitual, Eu vou coçar a comichão por blogar sobre isso.

Algumas pessoas parecem pensar que existem tantos blogueiros de qualidade lá fora no local hoje e que tantas entradas de blog de qualidade tenham sido escritas que em um sentido, Não há nada de novo para escrever sobre. Ou, o "novo" é tão estritamente focado que não vai ser interessante para alguém. Eu não concordo com esses sentimentos ou o pressuposto subjacente sobre eles.

Para começar, Se você está blogando porque é parte de sua tentativa pessoal de aprendizagem SharePoint bem, é realmente irrelevante se alguém escreveu sobre seu tema ou não. Um dos motoristas atrás de participação da Comunidade, Se é para o pessoal de aprendizagem ou não, é que você precisa acertar. Ninguém quer colocar uma entrada de blog fraco e ridículo na frente do mundo. No decurso de acertar, Você vai achar o assunto por mais cuidadosamente, etc. Assim, Você está pensando, estudando e considerando este tópico de todos os tipos de ângulos, esquerda para a direita, cima para baixo, dentro e por fora (ou pelo menos deveria ser). Isso é um exercício muito valioso. Na verdade, Isso é quase ao lado do ponto de apertar o botão de "post" pelo tempo que você termina de escrevê-lo desde que você já tenha derivado muito do benefício agora. É claro, Você quer apertar o botão de post, enfim, para uma variedade de razões, Mas eu divago. A linha inferior é que blogar é um exercício de aprendizagem valiosa por si só, período.

Eu também rejeito o argumento "isso já foi feito". Então e se foi...? A terrível conseqüência é que as pessoas que estão melhorando seu tópico através do bing agora encontrará dois ou cinco ou uma dúzia de artigos. Quem se importa? Eu sempre prefiro encontrar vários artigos sobre o mesmo tema, quando eu ir procurar os tubos para as coisas. Diferentes pontos de vista, estilos de escrita diferentes, abordagens diferentes para o mesmo problema – todos eles me ajudam a entender o que eu preciso. Na minha opinião, a Comunidade é nenhum onde perto de chegar a um ponto de saturação em boa qualidade blog artigos sobre qualquer assunto do mundo do SharePoint.

Assim, blog fora! Você não vai me ouvir reclamando sobre isso. I guarantee it 🙂

</fim>

Subscreva ao meu blog.

Siga-me no Twitter em http://www.twitter.com/pagalvin

Technorati Tags: ,

Não seja um touro na loja de porcelana

Uma breve história do SharePoint (Da perspectiva de um parente recém-chegado)

Observação: Este artigo foi publicado originalmente para www.endusersharepoint.com. Esqueci de postar no meu próprio blog 🙂

SharePoint evoluiu muito desde seus primeiros dias como espécie de uma tecnologia de incubação da Microsoft –é evoluiu quase como um filme de terror, onde a criação do cientista louco assume uma vida própria, libertar-se das regras e expectativas do seu criador. A evolução tecnológica é óbvia – o WSS 3.0 modelo de objeto é mais rico e mais complexo do WSS 2.0, que em si foi uma melhoria sobre versões anteriores. A próxima versão sem dúvida irá mostrar uma enorme melhoria sobre 3.0. Da perspectiva do usuário final, no entanto, Evolução do SharePoint é ainda mais significativa.

Nos primeiros dias, SharePoint não oferece muito mais para os usuários finais. Eles teriam seus requisitos de funcionalidade habitual, trabalhar com ele para defini-los bem e implementar uma solução. Ele poderia usar o SharePoint para resolver o problema. O produto não era muito acessível para os usuários finais. Eu pensei que jogou algumas analogias, Mas eu decidi ficar diagramas de Venn para mostrar o que quero dizer. Quando Microsoft lançado do SharePoint para o mundo como uma oferta comercial, Ele seguiu um padrão relativamente tradicional do usuário final <-> Relação IT. Muitos usuários finais, comunicar e trabalhar com um número muito pequeno de pessoas para entregar soluções que resolvem problemas de negócios:

image

O domínio do problema global para que o SharePoint é uma plataforma de entrega adequado é pequeno (especialmente se comparado ao SharePoint de hoje. Os usuários finais e trabalhou em um arranjo mais clássico com isso: definir os requisitos para isso, Espere para fazer seu trabalho por trás da cortina e receber a entrega do produto final.

Como SharePoint evoluiu para o 2.0 mundo (WSS 2.0 e o SharePoint Portal Server), aconteceram várias coisas. Primeira, o domínio do"problema" tamanho aumentado. Pelo domínio do problema, Quero dizer os tipos de problemas de negócios para os quais o SharePoint pode ser uma solução viável. Por exemplo, Você não acha muito difícil sobre como implementar uma solução de pesquisa séria em um ambiente SharePoint até SPS (e, mesmo assim, Não foi tão bom quanto o que precisava ser). Ao mesmo tempo, Os usuários finais têm uma capacidade sem precedentes para definir não só, Mas também implementar suas próprias soluções com pouco ou nenhum suporte de ti.

O 3.0 plataforma (WSS e o MOSS) mantido e aumentado o impulso. O domínio do problema é enorme comparado ao 2.0 plataforma. Praticamente todos os departamentos em uma empresa, variando de departamentos de saúde e segurança para a comercialização de fabricação, de vendas para controle de qualidade – eles podem encontrar um bom uso para SharePoint (e não é um caso de triturar um peg redondo num buraco quadrado). Ao mesmo tempo, a plataforma capacita ainda mais os usuários finais para implementar suas próprias soluções de negócios. Eu tento capturar isso com este diagrama:

image

Isto tem provado para ser uma mistura os dois potente e frustrante. O 3.0 plataforma transforma papéis anteriormente estáveis em suas cabeças. De repente, Os usuários finais são efetivamente juiz, júri e carrasco Analista de negócios, arquiteto de aplicação e desenvolvedor para suas próprias soluções de negócios. Isso fica para o cerne do problema que estou escrevendo sobre. Mas antes eu mergulhar naquele, Vamos considerar o elefante na sala.

Perscrutando a bola de cristal

Como vai o SharePoint 2010 afetam este padrão? Será incremental ou revolucionário? Será mais, menos ou aproximadamente o mesmo número de usuários finais encontra-se autorizado a construir soluções em SharePoint 2010? Domínio do problema Will SharePoint 2010 expandir ainda mais, ou será apenas aperfeiçoar e simplificar o que já oferece no WSS 3.0 / MUSGO?

Não há informações suficientes "lá fora", para afirmar que a resposta geral é:

  • O domínio do problema vai expandir dramaticamente.
  • Os usuários finais irão encontrar-se ainda mais poderosa do que antes.

O diagrama de Venn seria maior do que esta página e causar alguns profissionais de ti e CxO alcançar sua Pepto.

Eu acredito que vai ser uma tremenda oportunidade para as empresas a fazer coisas verdadeiramente transformacionais.

Não há touros em minha loja de porcelana!

Isto parece ótimo, Mas do meu ponto de vista como consultor SharePoint e colocando-me na pele de um gerente de ti, Vejo esta visão. Tenho uma loja de China com belas placas, cristal, etc (meu ambiente de SharePoint). Eu aluguei um espaço, Eu comprei o meu inventário e colocou tudo do jeito que eu gosto. Eu ainda não estou pronta para abrir, Mas em antecipação, Olho para a porta para ver se meus clientes estão se alinhando e notei um touro real lá fora. Olhei mais de perto e realmente ver dois touros e até mesmo um lobo. Então reparei que existem algumas ovelhas. Ovelhas são Portanto, ruim, Mas são eles talvez disfarçaram de lobos? Não quero touros na minha loja de porcelana!

Fica pior! Quando aluguei o espaço, Eu não podia acreditar como foi bom. Amplo e aberto, incrível amenidades, preço muito razoável.. No entanto, Agora percebi que os espaços abertos e a enorme porta é perfeitamente dimensionados para um touro vir vagando resíduos em e leigos a minha china.

Estou empurrando essa analogia muito longe, É claro. Os usuários finais não são touros (maioria deles, de qualquer forma) e os departamentos de ti não (ou certamente não deve) Ver os de sua comunidade de usuários com esse tipo de suspeita. No entanto, existe esse tipo de colisão perfeita ocorrendo já na o 3.0 plataforma que espero só vai piorar em SP 2010. SharePoint já capacita e incentiva os usuários finais para definir e implementar suas próprias soluções.

Isso é ótimo e todos os, Mas o fato é que ainda é um produto muito técnico e ainda chama para o tipo de análise de requisitos de negócios vigorosa, Design e planejamento geral e gestão que necessitam de projetos técnicos para ser bem sucedido. Estes não são o tipo de habilidades que um monte de usuários finais tem no seu saco de truques, especialmente quando o foco está na técnica de uma produto como o SharePoint.

Eu dei isso um monte de pensamento ao longo do último ano ou assim e não vejo nenhuma resposta fácil. Realmente se resume à educação e formação. Acho que SP 2010 vai mudar o jogo um pouco e vai jogar fora de forma diferente e em câmara lenta como empresas estenda sua SP 2010 soluções mais 2010 e mais além. Para ter sucesso, Os usuários finais terá de transformar-se e entendi um pouco religião. Eles precisarão de aprender um pouco mais sobre os requisitos adequados
análise. Eles vão precisar de alguma documentação de projeto que identifique claramente o fluxo de trabalho de processo de negócios, por exemplo. Eles precisam entender conceitos fundamentais como CRUD (criar, Update e delete), ambientes de desenvolvimento/teste/qa/prod e como usar essa infra-estrutura para corretamente implantar soluções que vivem um bom tempo e curva (Não quebra) em resposta a mudanças em uma organização.

Nas próximas semanas, Eu pretendo experimentar e fornecer algumas das minhas próprias idéias novas, bem como o link para o excelente trabalho feito por muitos outros autores (na www.endusersharepoint.com e em outra parte) para que os usuários finais interessados possam aprender que velho tempo religião. Mantenha-se atento.

</fim>

Subscreva ao meu blog.

Siga-me no Twitter em http://www.twitter.com/pagalvin

Technorati Tags: ,