Rápido & Fácil: Crie uma pasta e atribua um tipo de conteúdo (Ou, Ter seus KPIs e comê-los também)

A fim de contornar um problema KPI Eu escrevi sobre aqui, Eu fiz alguns testes e descobriu o trabalho do KPI é contra pastas com meta dados da mesma maneira que eles trabalham contra documentos ou listam itens. Provei-o para fora, criando um novo tipo de conteúdo com base no tipo de conteúdo de pasta e em seguida, adicionado alguns campos. Eu criei alguns indicadores e provar a mesmo que KPIs funcionam como esperado. Isso foi notícia bem-vinda. Não é perfeito, Porque o detalhamento que você começ de KPI contra as pastas não é exatamente o que você quer. Isto não é mais uma desvantagem, no meu caso, porque 1) os usuários finais não conhecem nada melhor e 2) o detalhamento vai para uma pasta. Clique o nome da pasta e eles estão no item. Dois cliques em vez de um, o que não é o fim do mundo.

Isso fluiu muito bem com o trabalho que estava fazendo. Estou criando uma pasta para cada documento que obtém carregado. Isto é feito através de um receptor de eventos. Como resultado, é um pedaço de bolo para manter o a pasta pai meta dados em sincronia com os dados de meta orientada por KPI do arquivo em si, desde que a canalização já está em vigor. This allows me to have my KPI’s and eat them too 🙂

Eu modifiquei o receptor de eventos para adicionar a pasta e em seguida, defina o tipo de conteúdo da pasta esta nova para meu tipo de conteúdo personalizado KPI-amigável. Este trecho de código fez o truque:

 SPFolderCollection srcFolders = targetWeb.GetFolder("Documentos").Subpastas;
  SPFolder addedFolder = srcFolders.Add(Propriedades.ListItem.ID.ToString());
  SPContentTypeId kpiCT = Novo SPContentTypeId("0x0120002A666CAA9176DC4AA8CBAA9DC6B4039F");
  addedFolder.Item[Identificação de tipo de conteúdo""] = kpiCT;
  addedFolder.Item.Update();

Para localizar o ID do tipo de conteúdo real, Eu acessada através de configurações do site, que tipo de conteúdo e copiar/colar é da URL como mostrado:

imagem

</fim>

Subscreva ao meu blog!

Rápido e fácil: Obter o SPFolder de um SPListItem em um receptor de eventos

Eu odeio admitir isso, Mas lutei com um presente todo dia. Meu receptor de eventos precisa atualizar um campo de sua pasta pai. Isso pouco mostra como fazê-lo:

privada privatevoid UpdateParentFolder(SPItemEventProperties Propriedades)
{

SPFolder thisItemFolder = Propriedades.ListItem.File.ParentFolder;
thisItemFolder.Item["ZZ Status de aprovação"] = "Good news, todos os!";
thisItemFolder.Item.Update();


} // UpdateParentFolder

Neste caso, Estou trabalhando com uma biblioteca de documentos e as propriedades são provenientes de um evento ItemAdded.

O truque é que você não pode obter o SPFolder do item diretamente do item propriamente dito (ou seja. Propriedades.ListItem.Folder é nulo). Em vez disso, ir para o arquivo associado do item lista e obter a pasta do arquivo.

</fim>

Subscreva ao meu blog!

Ainda um outro receptor de eventos depuração truque

Tenho certeza que não sou a primeira pessoa a chegar a este. No entanto, Eu não notei qualquer um publicar um truque como esse desde que comecei a prestando atenção à Comunidade em julho. Assim, Eu pensei que eu ia postar essa dica rápida e fácil de depurar.

Estou trabalhando em um receptor de eventos que começou a gerar o erro na 12 colméia:

Erro ao carregar e executar o receptor de evento Conchango.xyzzyEventReceiver em xyzzy, Versão = 1.0.0.0, Cultura = neutro, PublicKeyToken = blahbalhbalh. Informações adicionais estão abaixo. : Referência de objeto não definida para uma instância de um objeto.

Eu não sabia onde eu tinha introduzido este bug, porque eu tinha feito muitas coisas em um dos meus ciclos de código/implantar/teste.

Eu tentei Esta solução para obter o meu pdb lá com as esperanças do SharePoint que 12 colméia mostraria o rastreamento de pilha, Mas sem sorte. Não sei se é possível e se alguém faz, por favor me avise 🙂

Eu sei que é possível escrever suas próprias mensagens de log para o 12 colméia. Sinceramente, Eu queria algo um pouco menos assustador e mais rápido para implementar.

Ocorreu-me que pelo menos consigo algumas informações básicas de rastreamento por capturar e relançar exceções genéricas como esta:

  Tente {
    UpdateEditionDate(Propriedades);
  }
  pegar (Exceção e)
  {
    jogar Novo Exceção("Despachante, UpdateEditionDate(): Exceção: [" + e.ToString() + "].");
  }

Isto apareceu na 12 colmeia desta forma:

Erro ao carregar e executar o receptor de evento Conchango.xyzzyEventReceiver em xyzzy, Versão = 1.0.0.0, Cultura = neutro, PublicKeyToken = blahblahblah. Informações adicionais estão abaixo. : Despachante, UpdateEditionDate(): Exceção: [NullReferenceException.: Referência de objeto não definida para uma instância de um objeto. em Conchango.xyzzyManagementEventReceiver.UpdateEditionDate(SPItemEventProperties Propriedades) em Conchango.xyzzyManagementEventReceiver.Dispatcher(SPItemEventProperties Propriedades, String eventDescription)].

Isso me deu todos os detalhes que eu precisava para rastrear esse problema em particular e pretendo usá-lo muito daqui para frente.

</fim>

Subscreva ao meu blog!

Domingo engraçados: “NÃO PARA EXPORTAÇÃO”

De volta ao redor 1998, a empresa que eu trabalhava na época recebeu algum financiamento para criar um novo produto de comércio eletrônico. Tivemos toda a gama de requisitos de negócios para atender. Tinha que ser rápido, fácil para usuários finais, chamativo, Multi-idioma, etc. É triste dizer, Provavelmente não tive como um ambicioso conjunto de trabalho para realizar desde aqueles dias inebriantes.

Este esforço pré-datado Microsoft.NET. Baunilha simples ASP ainda era algo nova (ou pelo menos muito estranha a minha empresa). "Tijolo e argamassa" as empresas foram condenadas. Condenado! Isto é para dizer que isso foi um trabalho pioneiro. Não trabalho pioneiro do colisor de Hádrons, Mas para nós, no nosso pequeno mundo, Isso foi um trabalho pioneiro.

Estávamos loucos ocupado. Estávamos fazendo mini quase diariamente do POC, descobrir como manter o estado em meio inerentemente ao estado, descobrir questões multilíngues, segurança de nível de linha. Nós nem tinha criar um vocabulário para definir os termos básicos (Eu preferia um estado persistente, mas por algum motivo, o estranho "statefull" ganhou o dia).

Como nós estávamos loucamente inventar este produto, as pessoas de marketing e vendas estavam lá fora, tentando vendê-lo. De alguma forma, Eles conseguiram vendê-lo para o nosso cenário de pesadelo. Mesmo que nós estávamos projetando e implementando uma solução empresarial, realmente não esperávamos que o primeiro cliente a usar até o último recurso que construímos em dia o produto zero. Este cliente necessários multi-língua, uma interface de usuário radicalmente diferente do padrão"" sistema, mas com a mesma lógica de negócios. Multi-idioma foi especialmente duro neste caso, Porque estamos sempre focados em espanhol ou francês, Mas neste caso, era chinês (o que é um caractere de byte duplo definir e exigido um tratamento especial dado a tecnologia que usamos).

Avançar alguns meses e eu estou num voo Northwest airlines para Beijing. Estava tão ocupada preparando para esta viagem que eu quase não tenho idéia o que é como ir para lá. Eu tinha lido um livro uma vez sobre como um americano tinha sido na China há vários anos e aprendeu a língua. Um dia ele estava andando na cidade e convidou algumas pessoas para direções. A conversa foi algo isto:

  • Americana: "Poderia você me dizer como chegar [XX] rua?"
  • Chinês: "Sinto muito, Nós não falamos inglês".
  • Americana: "Oh, bem falar mandarim." e perguntou-lhes novamente em Chinês, Mas mais claramente (da melhor maneira possível).
  • Chinês: Muito educadamente, "Sinto muito, Nós não falamos inglês".

A conversa continuou assim por bit e o americano desistiu em frustração. Como ele foi deixá-los ele ouviu um homem falando com o outro, "Eu juraria que ele estava pedindo direções para [XX] rua."

Eu havia pego alguns pedaços e peças de outras informações quasi relacionadas à China e "conselhos úteis":

  • Um coreano co trabalhado disse-me que o eu precisava ter cuidado dos chineses, porque "eles vão tentar embebedar-me e tirar vantagem de você" no sentido de pressionar-me para as decisões de negócio ruim.
  • Nós não foram autorizados a dirigir carros (Houve alguma confusão sobre se este era um costume, uma exigência legal ou regra de apenas do cliente).
  • Havia regras especiais para passar pela alfândega.
  • Não podíamos usar dinheiro americano para nada.
  • Não é suposto para deixar dicas. É um insulto, se você fizer.

E, finalmente,, Tenho recordações relativamente frescas a Massacre de Tiananmen. Quando eu estava na faculdade, Lembro de ver Postagens de Usenet em tempo real como o mundo olhavam com horror.

Em suma, Eu estava muito nervoso. Eu não era normal-nervoso no sentido de que estava entregando uma solução que fosse ordens de magnitude mais complicadas do que qualquer coisa que já fiz antes. Eu também estava preocupado com acidentalmente quebrar uma regra que poderia me meter em problemas.

Eu estou nessa 14 horas de voo e apesar de ter sido classe executiva, 14 horas é muito tempo. Há apenas muitas maneiras de se divertir lendo, assiste a filmes ou brincando com os talheres magnetizado. Até mesmo um livro realmente bom é difícil de ler por várias horas seguidas.

Eventualmente, Eu comecei a ler o material de embalagem em um pedaço de software que mão-trazia comigo para o cliente, Servidor de web Netscape. Estou lendo os requisitos de hardware e software, os marketing blurbs, olhando para a foto bonita e de repente, Eu zero em sobre o gigante "não para exportação" aviso, algo sobre 128 bit de criptografia. Coloquei a caixa de volta para o meu saco de transporte, aviso de face para baixo (como se isso teria ajudado) e tentou manter as visões de Expresso da meia-noite da minha cabeça.

Olhando para trás agora, Deveria ter sido preocupado, se em tudo, Quando deixei de os E.U., not when I was entering China 🙂 Nothing untoward happened and I still consider that to be the best and most memorable business trip I’ve had the pleasure of making.

</fim>

Subscreva ao meu blog!

Technorati Tags: ,

Solução: SPQuery não pesquisa pastas

Esta semana eu estava implementando um "evoluindo" solução para um cliente que usa o BDC e SPQuery e encontrei alguma dificuldade usando SPQuery contra uma biblioteca de documentos que contêm pastas. Linha inferior: atribuir "recursiva" para o atributo de exibição da consulta.

Meu cenário:

  • Na segunda-feira, Eu carregar um documento e fornecer alguns dados meta.
  • Na semana seguinte, Eu carregar um novo documento. Grande parte meta dados do documento esta nova baseia-se no documento que fiz upload na segunda-feira (que chamamos o "documento principal").
  • Nós criamos uma fachada de serviço web que fornece uma interface de BDC amigável para a lista para que os usuários podem facilmente localizar esse documento segunda-feira através de uma pesquisa de título.
  • Uma coluna de dados BDC fornece uma interface de usuário amigável. (Isto é parte da minha tentativa de usar BDC para uma coluna de pesquisa mais amigável).

O serviço de fachada do BDC final usa uma consulta como esta para fazer a pesquisa:

 // Usado U2U ferramenta para auxiliar na geração esta consulta CAML.
      oQuery.Query =
        "<Onde>";

      se (titleFilter.Length > 0)
        oQuery.Query   =
          "  <E>";

      oQuery.Query   =
        "    <E>" +
        "      <GEQ>" +
        "        <Nome FieldRef =  "DocumentId" />" +
        "        <Tipo de valor =  "Text">" + minId + "</Valor>" +
        "      </GEQ>" +
        "      <Leq>" +
        "        <Nome FieldRef =  "DocumentId" />" +
        "        <Tipo de valor =  "Text">" + maxId + "</Valor>" +
        "      </Leq>" +
        "    </E>";

      se (titleFilter.Length > 0)
        oQuery.Query   =
          "    <Contém>" +
          "      <Nome FieldRef =  "Title" />" +
          "      <Tipo de valor =  "Text">" + titleFilter + "</Valor>" +
          "    </Contém>" +
          "  </E>";
      oQuery.Query   =
        "</Onde>";

Durante a fase inicial de desenvolvimento, Isso funcionou muito bem. No entanto, Introduzimos pastas no diretório para resolver alguns problemas e de repente, meu seletor de BDC não retorna nenhum resultado. Eu segui isso ao fato de que o SPQuery nunca iria retornar todos os resultados. Usamos pastas principalmente para permitir que vários arquivos com o mesmo nome a ser carregado, mas com diferentes dados meta. Quando o arquivo é carregado, Vamos criar uma pasta com base na identificação do item da lista e em seguida, mova o arquivo lá (Eu escrevi sobre isso here; Já tivemos resultados mistos com esta abordagem, mas em todo o, está funcionando bem). O usuário não se importam sobre pastas e na verdade, realmente não entendo que existem todas as pastas. Temos configurado todos os pontos de vista da biblioteca para mostrar itens sem considerar pastas.

Eu bati esse problema duas vezes como a execução técnica evoluiu e resolvido isso de forma diferente cada vez. A primeira vez, Eu não estava usando o operador CONTAINS na consulta. Sem um operador CONTAINS, Eu era capaz de resolver o problema, especificando o modo de exibição contructor do SPQuery. Em vez de usar o construtor padrão:

SPList t: Microsoft.SharePoint.SPList oList = web.Listas["Documentos"];

SPQuery oQuery = Novo SPQuery();

Em vez disso usei um construtor que especificou uma vista:

SPList t: Microsoft.SharePoint.SPList oList = web.Listas["Documentos"];

SPQuery oQuery = Novo SPQuery(oList.Views["Todos os documentos"]);

Isso resolveu o problema e comecei a receber meus resultados.

Em seguida, adicionei o operador CONTAINS na mistura e quebrou novamente. Verifica-se que o operador CONTAINS, tanto quanto eu posso dizer, Não funciona com a vista da mesma forma que a um simples GEQ / Operadores LEQ. Eu fiz alguma pesquisa e aprendi que ViewAttributes a consulta deve ser definido como "Recursiva", como em:

oQuery.ViewAttributes = "Escopo = "Recursive"";

Isso resolveu o problema para CONTAINS. Na verdade, Isto também resolveu o meu problema de pesquisa original e se eu tivesse especificado o recursivo atributo pela primeira vez, Eu não encontraria com a questão novamente.

O fato de que uma visão-baseada SPQuery funciona para alguns operadores (GEQ/LEQ) e outros não (CONTÉM), juntamente com o fato de que os KPIs não parecem trabalhar em conjunto com pasta contendo o documento bibliotecas conduz me acreditar que SPQuery tem alguns problemas de ortogonalidade.

Agradecimentos especiais:

  • O pessoal da R22 e sua ferramenta de consulta.
  • Grande de Michael Hoffer "aprender fazendo" post do blog, Comentários e respostas.

</fim>

Subscreva ao meu blog!

Bug de musgo KPI? Indicador? Lista Amarrado uma biblioteca de documentos com Pastas

ATUALIZAÇÃO 02/29/08: Eu resolvi esse problema criando uma pasta e, em seguida, atribuir um tipo de conteúdo para a pasta que tem os dados de meta que eu preciso para os KPIs. < um href="http://translate.googleusercontent.com/translate_c?hl=pt-BR & prev=/search?q=bug+report+kpi&hl=pt-BR&biw=1280&bih=683&prmd=imvnsa & rurl=translate.google.com.br & sl = pt & u=http://feeds.feedburner.com/~r/PaulGalvinsSharepointSpace/~3/237910104/cns!1CC1EDB3DAA9B8AA!748.entry & usg=ALkJrhiLDU94yo8BcLRwV55cRaLSB4EX3g"> UE descrevi em detalhes um pouco mais aqui.

Temos implementado uma solução técnica, onde os usuários fazer upload de documentos em uma biblioteca de documentos. Um receptor de eventos cria um diretório e move o arquivo para esse diretório (usando uma técnica semelhante para o que eu escrevi sobre here). Já navegamos em torno das questões potenciais causadas por receptores de evento que renomear arquivos enviados com sucesso ((principalmente porque os usuários não iniciar o seu documento clicando em "Novo"," mas em vez de criar os documentos localmente e depois enviá-los).).

The meta data for these documents includes a Yes/No site column called "Urgent" e outro coluna de site chamado "Status". Temos de atender a um requisito de negócio que mostra a porcentagem de "urgente" documents whose status is "Pending".

Isso é geralmente simple de fazer < um href="http://translate.googleusercontent.com/translate_c?hl=pt-BR & prev=/search?q=bug+report+kpi&hl=pt-BR&biw=1280&bih=683&prmd=imvnsa & rurl=translate.google.com.br & sl = pt & u=http://sharepointbeagle.com/channels/realworld/Pages/PermitManagementSolutionOnMOSS2007.aspx & usg=ALkJrhjbOIajrVtFDcPo1KgGEd-smxBhlg" target="_blank"> e eu descrito algo muito parecido com isso no SharePoint Beagle com muitos tiros de tela se você estiver interessado.

In a nutshell, I did the following:

  • Create a view on the doc library called "Pending".
  • Configure the view to ignore folder structure.
  • Create a KPI List.
  • Criar um indicador na lista que aponta para o lib de doc e que "pendente" Exibir.

Isso simplesmente não funciona. O KPI mostra meu destino (EG. cinco documentos urgentes) Mas sempre mostra o número real de documentos urgentes como zero. Paradoxalmente, detalhes,, Ele mostra os cinco documentos urgentes na lista. Eu criei um cenário muito simples com dois documentos, um em uma pasta e um não. Aqui está a foto de tela:

imagem

A tela acima mostra claramente existem dois documentos em exibição, mas o valor"" é um. O CamlSchema"" com Id documento em branco é na pasta raiz eo outro é em uma pasta chamada "84"..

It appears to me that even though you specify a view, the KPI doesn't honor the "show all items without folders" setting and instead, confines itself to the root folder.

If I'm wrong, please drop me a line or leave a comment.

</fim>

Subscreva ao meu blog!

Fluxo de trabalho do SPD “Coletar dados de um usuário”: Modificar o formulário de tarefas gerado

Eu estou trabalhando em um projeto que usa cinco diferentes fluxos de trabalho do SharePoint Designer para lidar com algumas aprovações de documento. SPD fornece os "coletar dados de um usuário" ação para que nós pode solicitar ao usuário para diferentes bits de informação, como se eles aprovarem isso, alguns comentários e talvez perguntar o que eles tinham para jantar naquela noite.

As formas são perfeitamente funcionais. Eles estão ligados a uma lista de tarefas como um tipo de conteúdo. Eles são 100% gerados pelo sistema. Esta é sua força e fraqueza. Se podemos viver com o formulário padrão, Então estamos prontos para ir. No entanto, Não temos mais controle sobre como o SPD cria o formulário. Se não gostamos que o comportamento padrão, Precisamos de recorrer a vários truques para contorná-la (por exemplo, definindo a prioridade em uma tarefa).

Eu precisava para fornecer um link sobre estes formulários de tarefa que abriu as propriedades de exibição (DispForm.asxp) do "item relacionado" em uma nova janela. Isso fornece acesso de um clique para os meta dados do item relacionado. Isto é o que quero dizer:

imagem

Graças a Deus, Podemos fazer isso e não é muito difícil. Em termos gerais, fogo até o SPD, Navegue até o diretório que abriga os arquivos de fluxo de trabalho e abra o arquivo ASPX que deseja modificar. Estas são instruções de transformação XSL só clássicas, e se você já com mucked ItemStyle, pesquisa ou outros cenários XSL, Isto vai ser fácil para você. Na verdade, Eu achei a ser geralmente mais fácil, uma vez que o formulário gerado é um pouco mais fácil de seguir em comparação com uma web part de pesquisa principais resultados (ou o um pesadelo CWQP).

É claro, Há uma grande armadilha. Editor de fluxo de trabalho do SPD espera total controle sobre esse arquivo. Se você modificá-lo, SPD alegremente substituirá suas dão alterações o direito conjunto de circunstâncias. Eu fiz dois testes rápidos para ver o quão ruim isso pode ficar. Ambos pressupõem que você tenha criado um fluxo de trabalho SPD válido que usa os "coletar dados de um usuário" etapa.

Teste 1:

  • Modificar o arquivo ASPX com a mão.
  • Testá-lo (Verifique se as alterações foram salvas corretamente e não quebrou nada).
  • Abrir o fluxo de trabalho e adicionar uma ação independente (como "log de histórico").
  • Salvar o fluxo de trabalho.

Resultado: Neste caso, SPD não re-criar o formulário.

Teste 2:

  • Faça o mesmo que #1 exceto diretamente modificar os "coletar dados de um usuário" ação.

Resultado: Este re-cria a forma do zero, excesso, escrevendo suas alterações.

Notas finais:

  • Pelo menos duas ações de SPD criar formulários como este: "Coletar dados de um usuário" e "Atribuir a ver Item". Ambas estas ações’ formulários podem ser modificados manualmente.
  • Eu era capaz de gerar o meu link para DispForm. aspx porque, Neste caso, o item de relacionar sempre tem seu ID incorporado no URL do item relacionado. Eu era capaz de extraí-lo e construir uma <a href> com base nele para fornecer o recurso de acesso de dados de meta de um clique. É improvável que seu URL segue essa regra. Pode haver outras maneiras de obter o ID do item relacionado, mas não tive que atravessar aquela ponte, Então eu não sei se fica para o outro lado do abismo.
  • Eu não investigo, Mas eu não ficaria surpreso se houver algum tipo de arquivo de modelo na 12 colméia que eu poderia modificar para afetar como SPD gera os formulários padrão (assim como podemos modificar modelos de alerta).

</fim>

Subscreva ao meu blog!

São “Erro desconhecido” Mensagens realmente melhor do que um rastreamento de pilha?

Eu estava lendo o post do blog do Manu sobre como Habilitar monitores de rastreamento de pilha e agora eu estou querendo saber: Por que não mostramos sempre um rastreamento de pilha?

Quem inventou essa regra e por isso seguimos?

Os usuários finais saberá que algo está errado em ambos os casos. Pelo menos com um rastreamento de pilha, Eles podem pressionar control-printscreen, copiar/colar em um e-mail e enviá-lo para. Que claramente iria reduzir o tempo e o esforço necessário para resolver o problema.

</fim>

Technorati Tags:

Domingo (Embaraçoso) Engraçado: “Meu nome é Paul Galvin”

Um monte de anos atrás, meu chefe me pediu para treinar alguns usuários sobre um produto chamado resultados. Resultados é um usuário final, ferramenta de relatórios. É mais ou menos análogo ao serviço de emissão de relatórios do SQL Server ou cristal. No momento, Ele foi projetado para rodar em tubos verdes (EG. Wyse 50 terminal) ligado a uma caixa Unix via telnet.

Meu padrão responder a qualquer pergunta que começa com "não é … " "Sim" e isso é onde tudo começou.

O cliente era uma empresa química para fora no sul da Califórnia e quase tinha embrulhado uma grande implementação de ERP baseada em Do QAD MFG/PRO. O plano de implementação agora chamado para os usuários finais de energia de treinamento sobre o produto de resultados.

Eu não era um grande usuário desta ferramenta e certamente nunca havia treinado ninguém antes. No entanto, Eu tinha realizado uma série de outras classes de formação e foi rápido em meus pés, Então eu não estava muito preocupado. Dennis, o instrutor de resultados reais em tempo integral, tinha me dado seu material de treinamento. Olhando para trás agora, é realmente muito absurdo. Eu não conhecia o produto, bem, Nunca tinha sido formalmente treinados nele e certamente nunca tivesse ensinado. Que tipo de negócio que tive formação alguém nele?

Para complicar as coisas logisticamente, Me pediram para ir e encontrar alguém em Chicago como parte de um contrato de pré-venda ao longo do caminho. O plano era voar para fora de Nova Jersey, ir para Chicago, encontrar uma hora com perspectiva e então continue em Califórnia.

Bem, Tenho de Chicago e a cara na minha equipe de vendas tinha cometido algum erro e nunca confirmou o encontro. Assim, Eu apareci e a perspectiva não estava lá. Impressionante. Eu fazer as malas e sair, continue até CA. Em algum lugar durante este processo., Descobrir que o cliente está aprendendo menos de 24 horas antes da minha chegada que "Paul Galvin" está ensinando a classe, Dennis não. O cliente adora Dennis. Eles querem saber "quem é essa pessoa de Paul Galvin?" "Por que deveria confiamos nele?" "Por que devo pagar para ele?" Dennis obviamente não assine o meu "dar más notícias no início" filosofia. Impressionante.

Chego no aeroporto e por algum motivo incrivelmente estúpido, Eu tinha verificado minha bagagem. Eu fiz isso para LAX, mas minha bagagem não. Para mim, perder a bagagem é muito parecido com a atravessar o sete fases do luto. Eventualmente eu chegar ao hotel, com nenhuma bagagem, cansado, com fome e vestindo meu (por agora, muito amassado) terno de negócio. Leva um tempo para viajar de Newark — para o ' Hare — para um cliente — volta para o ' Hare — e finalmente para LAX.

Finalmente encontro-me sentado no quarto do hotel, mastigando uma barra de snickers, exausto e tentando angariar a energia para fazer a varredura através do material de treinamento novamente para que eu não vou parecer um idiota na frente da classe. Isso foi um pouco de um ponto baixo para mim no momento.

Acordei no dia seguinte, Fiz meu melhor para suavizar a minha roupa para que eu não olhei como Willy Loman em um dia ruim e cabeça sobre sobre ao cliente. Como tantas vezes acontece, em pessoa, ela era legal, educado e muito agradável.. Isto levantou-se em contraste para ela extremamente e-mails/mensagens irritadas do dia anterior. Ela leva-me sobre 3 milhas através do edifício após a criação de um secionado fora de área em um armazém gigante de química onde conduziremos a classe para os próximos três dias. O 15 ou 20 os alunos lentamente montar, a maioria deles ainda à espera de Dennis.

Sempre começo minhas aulas de treinamento introduzindo-me, dando algum fundo e escrever minhas informações de contato na lousa. Como eu estou dizendo., "Bom dia, meu nome é Paul Galvin", Eu escrevo o meu nome, e-mail e número de telefone acima na lousa em letras grandes para que todos possam ver claramente. Dirijo-me o fato de que estou a substituir Dennis e asseguro-lhes que eu sou um substituto adequado, etc. Eu tenho todos brevemente me diga seu nome e o que eles querem alcançar fora da classe, para que eu pode adaptar coisas para suas exigências específicas, como ir ao longo. Coisas do costume.

Nós isso e fogo até o projetor. Vou para apagar a minha informação de contato e … Eu tinha escrito em tinta permanente. Eu fiquei tão envergonhada. Na minha mente, parecia assim: Isto é "Paul Galvin" pessoa, substituição de última hora para nosso amado Dennis. Ele está usando um amassado terno e barba por fazer. Ele acabou de escrever suas cartas de grande nome em nosso quadro branco em marcador permanente. Que visão!

Tudo terminou feliz, no entanto. Isto foi uma empresa química, Afinal de contas. A grisalho veterano funcionário puxou algo na prateleira e, provavelmente em violação dos regulamentos da EPA, limpa o tabuleiro. Eu consegui ficar 1/2 dia à frente da classe ao longo do curso e eles me deram uma boa crítica no final. Isso consolidou minha "pinch hitter" reputação na minha empresa. Minha bagagem chegou o primeiro dia, Então, eu estava muito mais apresentáveis dias 2 e 3.

Como eu estava tirando o olho vermelho em casa, Que contemplava "lições aprendidas". Havia muito para contemplar. Comunicação é a chave. Digo aos clientes sobre as mudanças no plano. Já não verificar a sua bagagem no aeroporto se você possivelmente pode evitá-lo. Trazer coisas de reposição"" no caso de você verificar a sua bagagem e não fica. Acho que a lição mais importante que eu aprendi, no entanto, Isto foi: sempre teste um marcador no canto inferior esquerdo de uma placa branca antes de escrever, em grandes letras, "Paul Galvin".

</fim>

Technorati Tags: ,

Perspectivas: SharePoint vs. o Grande Colisor de Hádrons

Devido a algumas aves raras que United Airlines vôos tomei em meados da década de 90, De alguma forma acabei com uma oferta para transformar "não utilizados km" em cerca de uma dúzia de assinaturas de revistas grátis. É assim que acabei assinando a revista Scientific American.

Como o software / consultoria pessoas, encontramos muitos requisitos de negócios difíceis na nossa carreira. O maior parte do tempo, Adoramos esses requisitos e de fato, Provavelmente é porque pensamos que essa carreira é o melhor do mundo. Ocasionalmente será apenas o que faria comigo se eu tivesse nascido em qualquer outro período da história. Quão terrível seria perder aos tipos de trabalho que eu posso fazer agora, nesta hora e lugar na história do mundo? Eu acho: muito terrível.

Ao longo dos anos, alguns dos requisitos que já enfrentei foram extremamente desafiadoras para atender. Coisas complexas de SharePoint, construção de frameworks baseados na tecnologia de não-web-amigável de processamento, complexas orquestrações do BizTalk e afins. Todos nós podemos (Espero que) olhar para trás com orgulho nossa carreira e dizer, "Sim, Essa foi difícil de resolver, Mas no final eu pwned esse filho da mãe!" Melhor ainda, esperam desafios ainda mais interessantes e divertidos.

Pessoalmente, acho que meu currículo, a este respeito, é muito profundo e tenho muito orgulho disso (Apesar de eu saber que minha esposa nunca vai entender a 1/20 do mesmo). Mas essa semana, Eu estava lendo um artigo sobre o Grande Colisor de Hádrons na minha revista Scientific American e tinha um daqueles raros momentos humilhantes onde percebi que, apesar do meu gigante"" status em certos círculos ou quão profundo acho meu poço de experiência, existem verdadeiros gigantes em mundos completamente diferentes..

As pessoas da equipe do LHC têm algumas questões realmente espinhosas para gerenciar. Considere a lua. Realmente não penso muito sobre a lua (Embora muito suspeito nisso desde que aprendi está diminuindo a rotação da terra, que não pode ser uma coisa boa para nós seres humanos a longo prazo). Mas, a equipe do LHC tem que se preocupar. Instrumentos de medição do LHC são tão sensíveis que são afetados da lua (Earth-Rotation-slowing-and-eventually-Killing-All-Life) gravidade. Isso é um heck de um requisito para atender — produzir uma medição correta apesar da interferência da lua.

Eu estava a ponderar essa questão quando li esta frase: "O primeiro nível irá receber e analisar dados de apenas um subconjunto dos componentes do detector, de que ele pode escolher promissoras eventos baseados em fatores isolados, como se um muon energético foi visto voando em um grande ângulo do eixo do feixe." Realmente … ? Eu não jogo em que tipo de caixa de areia e nunca será.

Da próxima vez eu saí com uns amigos, Eu vou levantar um brinde ao bom povo trabalhando no LHC, Espero que eles não pesam a partícula bóson de Higgs e amaldiçoar a lua com sucesso. Sugiro que você faça o mesmo. It will be quite the toast 🙂

</fim>

Technorati Tags: