Rápido & Fácil: Crear una carpeta y asignar a un tipo de contenido (O, Tienen los KPI y comen demasiado)

Con el fin de solucionar un problema KPI Escribí acerca de aquí, Hice algunas pruebas y descubrió el trabajo de ésa KPI contra carpetas con meta datos de la misma manera que trabajan contra los documentos o elementos de la lista. Probado creando un nuevo tipo de contenido basado en el tipo de contenido de carpeta y luego añade unos cuantos campos. He creado algunos indicadores y demostrado a mí mismo que KPI funciona como se esperaba. Esto fue noticia. No es perfecto, porque obtener el desglose de los KPI contra las carpetas no es exactamente lo que usted quiere. Esto no es demasiado inconveniente en mi caso porque 1) No sabía lo que los usuarios finales y 2) el desglose va a una carpeta. Haga clic en el nombre de carpeta y en el artículo. Es un par de clics en lugar de una, que no es el fin del mundo.

Esto fluyó muy bien con el trabajo que estaba haciendo. Estoy creando una carpeta para cada documento que llega cargado. Esto se hace vía un receptor de eventos. Como un resultado, es un pedazo de pastel para mantener el carpeta primaria meta datos en sincronía con los basada en KPI meta datos del archivo sí mismo desde la plomería ya está en marcha. This allows me to have my KPI’s and eat them too 🙂

He modificado el receptor de eventos para agregar la carpeta y luego establece el tipo de contenido de esta carpeta nueva para mi tipo de contenido personalizado Este KPI. Este pedacito de código hizo el truco:

 SPFolderCollection srcFolders = targetWeb.GetFolder("Documentos").Subcarpetas;
  SPFolder addedFolder = srcFolders.Add(propiedades.ListItem.ID.ToString());
  SPContentTypeId kpiCT = Nuevo SPContentTypeId("0x0120002A666CAA9176DC4AA8CBAA9DC6B4039F");
  addedFolder.Item["ID de tipo de contenido"] = kpiCT;
  addedFolder.Item.Update();

Para localizar el ID de tipo de contenido actual, I acceder a ese tipo de contenido mediante la configuración del sitio y copiar/pegar desde la URL como se muestra:

imagen

</final>

Suscribirse a mi blog!

Etiquetas de Technorati: ,

Fácil y rápida: Obtener la SPFolder de un SPListItem en un receptor de eventos

Detesto admitirlo, Pero luché con este otro día. Mi receptor de evento necesita actualizar un campo de su carpeta principal. Poco muestra cómo hacerlo:

privada void UpdateParentFolder(SPItemEventProperties propiedades)
{

SPFolder thisItemFolder = properties.ListItem.File.ParentFolder;
thisItemFolder.Item["Estado de aprobación de ZZ"] = "Buenas noticias, todo el mundo!";
thisItemFolder.Item.Update();


} // UpdateParentFolder

En este caso, Estoy trabajando con una biblioteca de documentos y las propiedades están viniendo de un evento ItemAdded.

El truco es que no se puede obtener la SPFolder del tema directamente desde el propio elemento (i.e. Propiedades.ListItem.Folder es null). En su lugar, ir a archivo asociado del elemento de la lista y conseguir la carpeta del archivo.

</final>

Suscribirse a mi blog!

Etiquetas de Technorati:

Sin embargo otro receptor de eventos depurar truco

Estoy seguro de que no soy la primera persona para llegar a esto. Sin embargo, No he notado que alguien publique un truco como esta desde que empecé prestando mucha atención a la comunidad en julio pasado. Por lo tanto, Pensé que sería publicarlo esta sugerencia de depuración rápida y fácil.

Estoy trabajando en un receptor de eventos que comenzaron a generar este error en la 12 colmena:

Error al cargar y ejecutar receptor de eventos Conchango.xyzzyEventReceiver en xyzzy, Versión = 1.0.0.0, Cultura = neutral, PublicKeyToken = blahbalhbalh. Información adicional está por debajo de. : Referencia a objeto no establecida como instancia de un objeto.

No sabía donde había introducido este fallo porque había hecho muchas cosas en uno de mis ciclos código/desplegar/test.

He intentado Esta solución para obtener mi pdb allí con la esperanza de SharePoint 12 colmena mostraría el seguimiento de pila, Pero no hubo suerte. No sé si es posible y si alguien no, por favor, hágamelo saber 🙂

Sé que es posible escribir sus propios mensajes de registro a la 12 colmena. Francamente, Quería algo un poco menos miedo y más rápido implementar.

Se me ocurrió que al menos pude obtener información básica traza por captura y re-throwing genéricos excepciones como esta:

  Intente {
    UpdateEditionDate(propiedades);
  }
  capturas (Excepción e)
  {
    tiro Nuevo Excepción("Dispatcher, UpdateEditionDate(): Excepción: [" + e.ToString() + "].");
  }

Esto se presentó en el 12 colmena thusly:

Error al cargar y ejecutar receptor de eventos Conchango.xyzzyEventReceiver en xyzzy, Versión = 1.0.0.0, Cultura = neutral, PublicKeyToken = blahblahblah. Información adicional está por debajo de. : Dispatcher, UpdateEditionDate(): Excepción: [System.NullReferenceException: Referencia a objeto no establecida como instancia de un objeto. en Conchango.xyzzyManagementEventReceiver.UpdateEditionDate(Propiedades de SPItemEventProperties) en Conchango.xyzzyManagementEventReceiver.Dispatcher(Propiedades de SPItemEventProperties, Cadena eventDescription)].

Que me dio todo el detalle que necesitaba para rastrear ese problema y espero utilizarlo mucho en adelante.

</final>

Suscribirse a mi blog!

Domingo divertido: “NO PARA LA EXPORTACIÓN”

Atrás alrededor 1998, la empresa que trabajé en el tiempo recibido algunos fondos para crear un nuevo producto de e-commerce. Tuvimos el gama completa de requerimientos del negocio para cumplir con. Tenía que ser rápido, fácil para los usuarios finales, llamativos, Multi-idioma, etc.. Triste de decir, Probablemente no tuve como un ambicioso conjunto de trabajo para llevar a cabo desde aquellos días embriagadores.

Este esfuerzo fecha previamente Microsoft.NET. Plain vanilla ASP todavía era algo nuevo (o menos muy desconocido para mi empresa). "Ladrillo y mortero" las empresas fueron condenadas. Condenado! Es decir que fue un trabajo pionero. No trabajo pionero del colisionador de Hadrones, Pero para nosotros, en nuestro pequeño mundo, fue un trabajo pionero.

Estábamos locos ocupados. Estábamos haciendo mini de POC casi cada día, ingeniárselas mantener el estado en un medio inherentemente apátrido, averiguar cuestiones multi-idioma, seguridad de nivel de fila. Incluso habíamos creamos un vocabulario para definir términos básicos (Preferí estado persistentes pero por alguna razón, el incómodo "statefull" ganó el día).

Mientras nosotros estábamos locamente inventar este producto, la gente de marketing y venta estaba allí tratando de venderlo. De alguna manera, lograron vender a nuestra pesadilla. A pesar de estábamos diseñando e implementando una solución empresarial, realmente no esperaba el primer cliente en utilizar hasta la última función que construimos en el día cero del producto. Este cliente necesitaba varios idiomas, una interfaz de usuario radicalmente diferente de la norma"" sistema, pero con la misma lógica de negocio. Multi-language fue especialmente difícil en este caso, Porque siempre nos hemos centrado en español o en francés, Pero en este caso, era chino (que es un carácter de doble byte establece y requieren un manejo especial dado la tecnología que utilizamos).

Adelantar unos meses y estoy en un vuelo de Northwest airlines a Beijing. He estado tan ocupado preparando este viaje que casi no tengo idea lo que es para ir allí. Había leído un libro de una vez acerca de cómo un americano había estado en China durante varios años y había aprendido el idioma. Un día él estaba caminando la ciudad y algunas personas pidieron direcciones. La conversación fue algo esto:

  • Americana: "Podría decirme cómo llegar a [XX] calle?"
  • Chino: "Lo siento, nosotros no hablamos a Inglés".
  • Americana: "¡ Oh!, bueno hablar a mandarín." y les preguntó otra vez en chino, Pero más claramente (lo mejor que pudiera).
  • Chino: Muy amablemente, "Lo siento, nosotros no hablamos a Inglés".

La conversación fue que por poco y el americano dio para arriba en la frustración. Cuando les salía escuchó a un hombre habla a otro, "Podría haber jurado que estaba pidiendo indicaciones a [XX] calle."

Recogí unos pedazos y piezas de otras relacionadas con China cuasi-información y "consejos útiles":

  • Un coreano trabajado conjuntamente me dijo que la tenía que tener cuidado de los chinos porque "tratarían de emborracharme y tomar ventaja de" en el sentido de presionarme a las decisiones mal negocio.
  • No nos permitían conducir automóviles (Hubo alguna confusión respecto a si esto era una costumbre, un requisito legal o simplemente regla del cliente).
  • Reglas especiales para ir por la aduana.
  • No nos permitían usar dinero estadounidense para nada.
  • No se supone que para dejar consejos. Es insultante si.

Y por último, Tengo recuerdos relativamente frescos el Masacre de Tiananmen. Cuando estaba en el Colegio, Recuerdo haber visto anuncios de Usenet en tiempo real como el mundo mirado con horror.

En pocas palabras, Yo estaba muy nervioso. No era solo nervioso normal en el sentido de que estaba entregando una solución que es órdenes de magnitud más complicadas que cualquier cosa que nunca había hecho antes. También me preocupaba accidentalmente rompe una regla que podría meterme en problemas.

Estoy en esto 14 horas de vuelo y aunque era clase business, 14 horas es un tiempo muy largo. Hay solamente tantas maneras de entretenerte leyendo, ver películas o jugar con los cubiertos magnetizados. Incluso un muy buen libro es difícil de leer por varias horas seguidas.

Con el tiempo, Empecé a leer el material de embalaje en una pieza de mano-llevaba conmigo al cliente de software, Servidor web de Netscape. Estoy leyendo los requisitos de hardware y software, los marketing's blurbs, mirando la foto bonita y de repente, Concentraré en el gigante "no para la exportación" ADVERTENCIA, algo sobre 128 cifrado del pedacito. Relleno de la caja en mi bolsa, ADVERTENCIA boca abajo (como si eso hubiera ayudado) y trató de mantener visiones de Expreso de medianoche fuera de mi cabeza.

Mirando hacia atrás en él ahora, Debería haber estado preocupado, Si a todo, Cuando salí de los Estados Unidos, 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.

</final>

Suscribirse a mi blog!

Etiquetas de Technorati: ,

Solución: SPQuery no buscar carpetas

Esta última semana estaba implementando una "evolución" solución para un cliente que utiliza el BDC y SPQuery y tuvo alguna dificultad usando SPQuery contra una biblioteca de documentos que contiene carpetas. Línea inferior: asignar "recursiva" para el atributo de vista de la consulta.

Mi escenario:

  • El lunes, I subir un documento y suministrar algunos metadatos.
  • La semana siguiente, Subir un nuevo documento. Mucho de este nuevo documento metadatos se basa en el documento que subí el lunes (que llamamos el "documento maestro").
  • Hemos creado una fachada de servicio web que proporciona una interfaz de BDC respetuoso a la lista para que los usuarios pueden localizar fácilmente ese documento lunes mediante una búsqueda de título.
  • Una columna de datos BDC proporciona una interfaz de usuario amigable. (Esto es parte de mi intento de usar BDC para una columna de búsqueda más amigable).

El servicio final de fachada BDC usa una consulta como ésta para hacer la búsqueda:

 // Utiliza U2U herramienta para asistir en la generación de esta consulta CAML.
      oQuery.Query =
        "<Donde>";

      Si (titleFilter.Length > 0)
        oQuery.Query  =
          "  <Y>";

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

      Si (titleFilter.Length > 0)
        oQuery.Query  =
          "    <Contiene>" +
          "      <FieldRef nombre =  "Title" />" +
          "      <Tipo de valor =  "Text">" + titleFilter + "</Valor>" +
          "    </Contiene>" +
          "  </Y>";
      oQuery.Query  =
        "</Donde>";

Durante la etapa inicial de desarrollo, Esto funcionó muy bien. Sin embargo, Hemos introducido las carpetas en el directorio para resolver algunos problemas y de repente, mi selector de BDC no devolver ningún resultado. Un seguimiento hasta el hecho de que el SPQuery nunca devuelve ningún resultado. Utilizamos carpetas principalmente para permitir que varios archivos con el mismo nombre para subir pero con datos diferentes de la meta. Cuando el archivo es cargado, creamos una carpeta basada en ID del elemento de la lista y luego mover el archivo allí (Escribí acerca de eso aquí; Hemos tenido resultados mixtos con este enfoque, pero sobre todo el, está trabajando bien). El usuario no le importa acerca de carpetas y de hecho, realmente no entiendo que hay las carpetas. Hemos configurado todas las vistas de la biblioteca para mostrar los elementos sin carpetas.

Llegué a este problema dos veces como la aplicación técnica evolucionó y solucionado diferente cada vez. La primera vez, Que no estaba usando el operador CONTAINS en la consulta. Sin un operador contiene, Era capaz de resolver el problema especificando la vista en contructor de SPQuery. En lugar de utilizar el constructor predeterminado:

SPList Doc_olist = web.Listas["Documentos"];

SPQuery oQuery = Nuevo SPQuery();

En lugar de ello usé un constructor que especifica una vista:

SPList Doc_olist = web.Listas["Documentos"];

SPQuery oQuery = Nuevo SPQuery(oList.Views["Todos los documentos"]);

Eso resolvió el problema y empezamos a tener mis resultados.

Luego añadí el operador contiene en la mezcla y se rompió otra vez. Resulta que el operador CONTAINS, la medida en que te puedo decir, No funciona con la opinión de la misma manera que la una simple GEQ / Operadores LEQ. Hice algunas búsquedas y aprendió que ViewAttributes de la consulta debe establecerse en "Recursivo", como en:

oQuery.ViewAttributes = "Alcance = "Recursive"";

Resolvió el problema de contiene. En realidad, Esto también solucionar mi problema de búsqueda original y si había especificado la recursiva atribuyen la primera vez, No hubiera huido en el tema nuevo.

El hecho de que un SPQuery basado en vista funciona para algunos operadores (GEQ/LEQ) y no a otros (CONTIENE), junto con el hecho de que no parecen KPI ' s trabajar en todo documento que contiene la carpeta bibliotecas pistas para creer que SPQuery tiene algunos problemas de ortogonalidad.

Agradecimiento especial:

  • La buena gente de U2U y su herramienta de consulta.
  • Michael Hoffer es genial "aprender haciendo" entrada de blog, Comentarios y respuestas.

</final>

Suscribirse a mi blog!

Fallo de MOSS KPI? Indicador de lista ligada a la biblioteca de documentos con carpetas

ACTUALIZACIÓN 02/29/08: He resuelto este problema creando una carpeta y luego asignar a un tipo de contenido a la carpeta que tiene los meta datos para los KPI ' s. Describí un poco más detalladamente aquí.

Hemos implementado una solución técnica, donde los usuarios cargar documentos en una biblioteca de documentos. Un receptor de eventos crea un directorio y mueve el archivo a ese directorio (utilizando una técnica similar a lo que escribí sobre aquí). Que hemos atravesado con éxito alrededor de los posibles problemas causados por los receptores de eventos que renombrar archivos subidos (principalmente porque los usuarios nunca inician su documento haciendo clic en "nuevo" pero en su lugar crear a los documentos localmente y luego cargarlos).

Los metadatos de estos documentos incluyen un sí/No columna de sitio llamado "urgentes" y otra columna de sitio llamado "Status". Tenemos que cumplir con un requisito de negocio que muestra el porcentaje de "urgente" documentos cuyo estado es "Pendiente".

Esto es normalmente sencillo hacer y describió algo muy parecido a esto en el SharePoint Beagle con un montón de capturas de pantalla si te interesa.

En pocas palabras, Hice lo siguiente:

  • Crear una vista en la biblioteca de COD llamada "Pendiente".
  • Configurar la vista para ignorar la estructura de carpetas.
  • Crear una lista KPI.
  • Crear un indicador en la lista que apunta a la lib doc y "pendiente" vista.

Esto simplemente no funciona. El KPI muestra mi destino (por ejemplo:. cinco documentos urgentes) pero siempre muestra el número actual de documentos urgentes como cero. Paradójicamente, Si profundizar en los detalles, muestra los cinco documentos urgentes de la lista. He creado un escenario muy simple con dos documentos, uno en una carpeta y no. Aquí está la captura de pantalla:

imagen

La captura de pantalla anterior muestra claramente hay dos documentos en la vista, pero el valor"" es una. "CamlSchema" con documento en blanco Id está en la carpeta raíz y la otra está en una carpeta denominada "84".

Me parece a pesar de que usted especifique una vista, el KPI no honra la "Mostrar todos los elementos sin carpetas" configuración y en su lugar, se limita a la carpeta raíz.

Si estoy equivocado, por favor enviarme una línea o dejar un comentario.

</final>

Suscribirse a mi blog!

Etiquetas de Technorati:

Flujo de trabajo SPD “Recopilar datos de un usuario”: Modificar el formulario de tareas generado

Estoy trabajando en un proyecto que utiliza cinco diferentes flujos de trabajo de SharePoint Designer para manejar algunas aprobaciones de documentos. SPD proporciona los "recogemos datos de un usuario" acción por lo que nos podemos preguntar al usuario para diferentes bits de información, como si apruebe, algunos comentarios y quizá preguntar lo que tenían para cenar la otra noche.

Las formas son perfectamente funcionales. Ellos están vinculados a una lista de tareas como un tipo de contenido. Son 100% generados por el sistema. Esta es su fuerza y debilidad. Si podemos vivir con el formulario predeterminado, luego somos buenos ir. Sin embargo, no tenemos demasiado control sobre cómo SPD crea la forma. Si no nos gusta ese comportamiento predeterminado, necesitamos recurrir a varios trucos para obtener alrededor de ella (por ejemplo, configurar la prioridad de una tarea).

Necesitaba proporcionar un vínculo de estas formas de tarea que abren las propiedades de la vista (DispForm.asxp) el tema relacionado"" en una nueva ventana. Esto proporciona acceso con un clic a los metadatos del elemento relacionado. Esto es lo que quiero decir:

imagen

Afortunadamente, podemos hacer eso y no es muy difícil. En términos generales, fuego de SPD, Desplácese hasta el directorio que contiene los archivos de flujo de trabajo y abrir el archivo ASPX que desea modificar. Estos son sólo clásicas instrucciones de transformación XSL y si he mucked con itemstyle.xsl, búsqueda o otros escenarios XSL, Esto será fácil para usted. En realidad, Pareció ser generalmente más fácil ya que el formulario generado es algo más fácil seguir frente a un elemento de búsqueda principales resultados web (o la pesadilla CWQP).

Claro, hay un escollo importante. Editor de trabajo de SPD espera el control total sobre el archivo. Si lo modificas, SPD felizmente sobrescribirá su elasticidad cambios el derecho conjunto de circunstancias. Hice dos pruebas rápidas para ver lo mal que esta podría conseguir. Ambos presuponen que has elaborado un flujo de trabajo SPD válida que utiliza los "recogemos datos de un usuario" paso.

Prueba 1:

  • Modificar manualmente el archivo ASPX.
  • Prueba (Compruebe que los cambios se han guardado correctamente y no rompen nada).
  • Abrir el flujo de trabajo y agregar una acción relacionada (como "registro de historia").
  • Guardar el flujo de trabajo.

Resultado: En este caso, SPD no volver a crear el formulario.

Prueba 2:

  • Lo mismo que #1 excepto directamente modificar el "recopilar datos de un usuario" acción.

Resultado: Esto vuelve a crear el formulario desde cero, sobrescribe los cambios.

Notas finales:

  • Al menos dos acciones de SPD creación formas como este: "Recoger datos de un usuario" y "a punto". Ambas de estas acciones’ las formas pueden modificarse manualmente.
  • Fui capaz de generar mi enlace a dispform.aspx porque, en este caso, relacionar siempre tiene su identificador incrustado en la URL del elemento relacionado. Era capaz de extraer y construir un <a href> basada en ofrecer la función de acceso de un solo clic meta datos. Es poco probable que su dirección URL sigue esta regla. Puede haber otras maneras de obtener el ID del elemento relacionado pero no he tenido que cruzar ese puente, así que no sé si obtiene al otro lado de la Sima.
  • No encargado de investigar, pero yo no estaría sorprendido si hay algún tipo de archivo de plantilla en el 12 sección que podría modificar la afectan a cómo SPD genera los formularios predeterminados (al igual que podemos modificar plantillas de alertas).

</final>

Suscribirse a mi blog!

Etiquetas de Technorati: ,

Son “Error desconocido” Mensajes realmente mejor que un seguimiento de la pila?

Yo estaba leyendo el post del blog de Madhur sobre cómo habilitar stack trace muestra y ahora me pregunto: ¿por qué no siempre mostramos stack trace?

Que vino para arriba con esa regla y por qué nos siga?

Los usuarios finales sabrá que algo está mal en ambos casos. Por lo menos con un seguimiento de la pila, puede presionar control-printscreen, copiar/pegar en un correo electrónico y enviarlo a él. Reduciría claramente el tiempo y el esfuerzo requerido para resolver el problema.

</final>

Etiquetas de Technorati:

Domingo (Embarazoso) Gracioso: “Mi nombre es Paul Galvin”

Un montón de años, mi jefe me pidió que algunos usuarios de un producto llamado resultados de tren. Resultados es un usuario herramienta de informes. Es áspero análogo a SQL Server Reporting Service o cristal. En el momento, fue diseñado para ejecutarse en los tubos verdes (por ejemplo:. Wyse 50 terminal) conectado a una máquina Unix mediante telnet.

Mi defecto contestar a cualquier pregunta que comience con "puedes … " "Sí" y ahí es donde comenzó todo el problema..

El cliente era una compañía química hacia fuera en el sur de California y había envuelto por una mayor implantación de ERP basado en De QAD MFG/PRO. El plan de aplicación ahora se llama capacitación los usuarios finales de energía en el producto de resultados.

Yo no era un gran usuario de esta herramienta y ciertamente nunca había entrenado a nadie antes de. Sin embargo, Había llevado a cabo un número de otras clases de entrenamiento y fue rápido en mis pies, por lo que no estaba demasiado preocupado. Dennis, el instructor de resultados reales a tiempo completo, me había dado su material de formación. Mirando hacia atrás en él ahora, es bastante absurdo. No conocen el producto, nunca habían sido entrenados formalmente en él y ciertamente nunca había enseñado. ¿Qué negocio tenía entrenamiento alguien en él?

Para complicar las cosas logísticamente, Me pidieron ir a conocer a alguien en Chicago como parte de una contratación de pre-venta en el camino. El plan consistía en volar fuera de New Jersey, ir a Chicago, reunirse por una hora con perspectiva y luego continuar en California.

Bien, Llegué a Chicago y el tipo de venta en mi equipo había cometido algún error y nunca confirmó la reunión. Por lo tanto, Demostró para arriba y la perspectiva no estaba allí. Impresionante. Empacar y dejo y continuar por la CA. En algún lugar durante este proceso, Descubro que el cliente está aprendiendo menos 24 horas antes de mi llegada que "Paul Galvin" es la clase de enseñanza, Dennis no. El cliente le encanta Dennis. Ellos quieren saber "quién es esta persona de Paul Galvin?" "¿Por qué debemos confiar en lo?" "¿Por qué deberíamos nosotros pagamos para él?" Dennis obviamente no suscribirse a mi "dar malas noticias pronto" filosofía. Impresionante.

Llego al aeropuerto y por alguna razón increíblemente estúpido, Yo había comprobado mi equipaje. Dejé a LAX pero mi equipaje no. Para mí, perder equipaje es mucho como va a través de la siete etapas de la pena. Eventualmente hacen al hotel, con ningún equipaje, cansado, hambre y usar mi (por ahora, muy arrugada) traje de negocios. Tarda mucho tiempo para viajar desde Newark — a o ' Hare — a un cliente — vuelta a o ' Hare — y por último a LAX.

Finalmente me encuentro sentado en la habitación del hotel, comiendo en una barra de chocolate, agotado y tratando de encontrar la energía para la exploración a través del material de entrenamiento otra vez para que no se verá como un culo completo frente a la clase. Esto fue un poco de un punto bajo para mí en el momento.

Me desperté al día siguiente, hice mi mejor esfuerzo para suavizar mi traje para que no se veía como Willy Loman en un mal día y en sobre dirigido al cliente. Como sucede tan a menudo, en persona era buena, educado y muy agradable. Esto estaba parado en contraste a sus correos electrónicos/mensajes muy enojado del día anterior. Ella me lleva sobre 3 millas a través del edificio tras edificio a una sección fuera de área en un almacén químico gigante donde realizaremos la clase para los próximos tres días. El 15 o 20 los estudiantes lentamente montar, la mayoría de ellos aún esperando Dennis.

Siempre empiezo mis clases de entrenamiento por presentarme, dando algunos antecedentes y escribir mi información de contacto en el tablero blanco. Como estoy diciendo, "Buenos días, mi nombre es Paul Galvin", Yo escribo mi nombre, correo electrónico y número de teléfono para arriba en el tablero blanco en letras grandes para que todos puedan ver claramente. Me dirijo al hecho de que sustituyo a Dennis y les aseguro que soy un reemplazo adecuado, etc.. Tengo todos me dicen brevemente su nombre y lo que quieren lograr en la clase para que puedo adaptar cosas a sus necesidades específicas como ir a lo largo de. Las cosas generalmente.

Nos envuelva y encienda el proyector. Voy a borrar mi información de contacto y … Lo había escrito en marcador permanente. Estaba tan avergonzado. En mi mente, esto parecía: Esto es "Paul Galvin" persona, reemplazo de última hora para nuestro querido Dennis. Lleva un arrugado traje y sin afeitar. Él acaba de escribir sus letras del gran nombre en nuestro tablero blanco marcador permanente. Qué vista!

Todo terminó felizmente, Sin embargo. Se trataba de una compañía química, Después de todo. A canoso veterano empleado tirado algo del estante y, Probablemente en violación de las regulaciones de EPA, despejó la Junta. Me las arreglé para alojarte 1/2 día por delante de la clase durante todo el curso y me dieron un buen repaso en el final. Esto consolidó mi "pinch hitter" reputación de mi empresa. Mi equipaje llegó el primer día, Así que estaba mucho más presentables días dos y tres.

Como estaba tomando el ojo rojo a casa, Yo estaba contemplando "lecciones aprendidas". Había mucho para contemplar. La comunicación es clave. Dile a clientes sobre cambios en el plan. No comprobar nunca su equipaje en el aeropuerto si usted posiblemente puede evitarlo. Trae repuesto "cosas" en caso de que compruebe su equipaje y no hacer. Creo que la lección más importante que aprendí, Sin embargo, Esto fue: Siempre pruebe un marcador en la esquina inferior izquierda de un tablero blanco antes de la escritura, en enormes Letras, "Paul Galvin".

</final>

Etiquetas de Technorati: ,

Perspectivas: SharePoint vs. el Gran Colisionador de hadrones

Debido a algún chiflado que vuelos de United Airlines que tomé a mediados de los 90, De alguna manera terminé con una oferta para transformar "sin usar millas" en suscripciones a revistas gratis sobre una docena. Es cómo terminé suscribirse a americano científico compartimiento.

Como software / Consultoría de personas, nos encontramos con muchos requisitos de negocios difíciles en nuestra carrera. Más el tiempo, queremos cumplir esos requisitos y, de hecho, es probablemente por qué creemos que esta carrera es la mejor del mundo. De vez en cuando a lo que en el mundo pregunto, habría hecho conmigo si yo hubiera nacido en cualquier otro momento en la historia. Lo terrible sería que se pierda en las clases de trabajo que puedo hacer ahora, en este momento y lugar en la historia del mundo? Creo: terrible.

En los años, algunos de los requisitos que he enfrentado han sido extremadamente difíciles para cumplir con. Cosa compleja de SharePoint, edificio web procesamiento marcos basados en tecnología web-favorable, complejas orquestaciones de BizTalk y similares. Todos podemos (con suerte) mirar atrás con orgullo en nuestra carrera y decir, "Sí, fue una difícil resolver, Pero al final me pwned ese hijo de puta!" Mejor aún, le esperan retos aún más interesantes y divertidos.

Personalmente, creo que mi curriculum vitae, en este sentido, es muy profundo y estoy muy orgulloso de ello (Aunque sé que mi esposa nunca comprenderá 1/20.). Pero esta semana, Estaba leyendo un artículo sobre el Gran Colisionador de Hadrones en mi Scientific American magazine y tenía uno de esos raros momentos humillante donde me di cuenta que a pesar de mi gigante"" estado en ciertos círculos o cómo creo mi pozo de experiencia, hay gigantes reales en mundos totalmente diferentes.

La gente del equipo del LHC tiene algunos temas realmente espinosos para administrar. Considerar la luna. Realmente no creo mucho sobre la luna (Aunque he estado muy desconfiado respecto puesto que he aprendido que se está ralentizando la rotación de la tierra, que no puede ser una buena cosa para nosotros los seres humanos a largo plazo). Pero, el equipo LHC tiene que preocuparse. Los aparatos de medición del LHC son tan sensibles que se ven afectados por la luna (Earth-rotation-slowing-and-eventually-Killing-all-Life) gravedad. Es un heck de un requisito para cumplir con — producir mediciones correctas a pesar de la interferencia de la luna.

Estuve reflexionando sobre este tema cuando leí esta frase: "El primer nivel será recibir y analizar los datos de sólo un subconjunto de componentes del detector, de acontecimientos prometedores basadas en factores aislados como si puede escoger un muon energético fue visto volando en un gran ángulo desde el eje del haz." Realmente … ? No juego en ese tipo de sandbox y nunca será.

La próxima vez que salgo con unos amigos, Voy a hacer un brindis a la buena gente trabajando en el LHC, Espero que con éxito no pesan la partícula de bosón de Higgs y maldición de la luna. Te sugiero que hagas lo mismo. It will be quite the toast 🙂

</final>

Etiquetas de Technorati: