Rapido & Facile: Creare una cartella e assegnare un tipo di contenuto (O, Avere il tuo KPI e li mangiano troppo)

Al fine di risolvere un problema KPI Ho scritto qui, Ho fatto alcuni test e scoperto il lavoro di tale KPI contro cartelle con meta dati nello stesso modo che lavorano contro i documenti o voci di elenco. Ho provato creando un nuovo tipo di contenuto basato sul tipo di contenuto di cartella e quindi aggiunti alcuni campi. Ho creato alcuni indicatori e dimostrato a me stesso che gli indicatori KPI funzionano come previsto. Questo è stato il benvenuto notizie. Non è perfetto, perché il drill-down si ottiene da KPI contro le cartelle non è esattamente quello che vuoi. Questo non è troppo un inconveniente nel mio caso, perché 1) gli utenti finali non so meglio e 2) il drill-down va a una cartella. Fanno clic il nome della cartella e sono l'elemento. È due clic invece di uno, che non è la fine del mondo.

Ciò ha fluito piacevolmente con il lavoro che stavo facendo. Sto creando una cartella per ogni documento che viene caricato. Questo viene fatto tramite un ricevitore di eventi. Di conseguenza, è un pezzo di torta per mantenere il della cartella padre meta dati in sincronia con i dati KPI-driven meta del file stesso poiché l'impianto idraulico è già in atto. Questo mi permette di avere i miei KPI e di mangiarli anche io 🙂

Ho modificato il ricevente di eventi per aggiungere la cartella e quindi impostare il tipo di contenuto di questa cartella nuovo al mio tipo di contenuto personalizzato di KPI-friendly. Questo pezzo di codice ha fatto il trucco:

 SPFolderCollection srcFolders = targetWeb.GetFolder("Documenti").Sottocartelle;
  SPFolder addedFolder = srcFolders.Add(Proprietà.ListItem.ID.ToString());
  SPContentTypeId kpiCT = Nuovo SPContentTypeId("0x0120002A666CAA9176DC4AA8CBAA9DC6B4039F");
  addedFolder.Item["Content Type ID"] = kpiCT;
  addedFolder.Item.Update();

Per individuare l'ID effettivo del tipo di contenuto, I accedere a tale tipo di contenuto tramite Impostazioni sito e copia/incollato dall'URL come mostrato:

immagine

</fine>

Iscriviti al mio blog!

Technorati Tags: ,

Facile e veloce: Ottenere il SPFolder di un SPListItem in un ricevente di eventi

Odio ammetterlo, ma ho lottato con questo tutti i giorni. Il mio ricevitore di evento deve aggiornare un campo della relativa cartella padre. Questo po ' Mostra come farlo:

privato void UpdateParentFolder(SPItemEventProperties Proprietà)
{

SPFolder thisItemFolder = proprietà.ListItem.File.ParentFolder;
thisItemFolder.Item["Stato di approvazione ZZ"] = "Buone notizie, tutti!";
thisItemFolder.Item.Update();


} // UpdateParentFolder

In questo caso, Sto lavorando con una raccolta di documenti e la proprietà sono provenienti da un evento ItemAdded.

Il trucco è che si può ottenere il SPFolder dell'elemento direttamente dall'elemento stesso (vale a dire. Proprietà.ListItem.Folder è null). Invece, Vai a File associato dell'elemento dell'elenco e ottenere la cartella del File.

</fine>

Iscriviti al mio blog!

Technorati Tags:

Ancora un altro evento ricevitore Debug trucco

Sono sicuro che io non sono la prima persona a venire con questo. Tuttavia, Non ho notato nessuno pubblicare un trucco come questo da quando ho iniziato prestando particolare attenzione alla comunità lo scorso luglio. Così, Ho pensato che avrei posto questa punta di debug rapido e facile.

Sto lavorando su un ricevente di eventi che ha iniziato a generare questo errore nella 12 alveare:

Errore caricamento ed esecuzione di ricezione di eventi di Conchango.xyzzyEventReceiver in xyzzy, Version = 1.0.0.0, Cultura = neutral, PublicKeyToken = blahbalhbalh. Ulteriori informazioni sono sotto. : Riferimento all'oggetto non impostato su un'istanza di un oggetto.

Non sapevo dove mi avevo introdotto questo bug perché avevo fatto troppe cose in uno dei miei cicli di codice/distribuzione/test.

Ho provato Questa soluzione per ottenere il mio pdb in là con la speranza che SharePoint 12 alveare mostrerebbe la traccia dello stack, ma senza fortuna. Non so se è possibile e se qualcuno fa, per favore fatemi sapere 🙂

Lo so che è possibile Scrivi i tuo messaggi di log per il 12 alveare. Francamente, Volevo qualcosa di un po ' meno pauroso e più veloce da implementare.

Mi venne in mente che potevo ottenere almeno alcune informazioni di base traccia da catturare e ri-generare eccezioni generiche come questo:

  provare {
    UpdateEditionDate(Proprietà);
  }
  catture (Eccezione e)
  {
    Throw Nuovo Eccezione("Dispatcher, UpdateEditionDate(): Eccezione: [" + &() + "].");
  }

Questo ha mostrato nella 12 hive thusly:

Errore caricamento ed esecuzione di ricezione di eventi di Conchango.xyzzyEventReceiver in xyzzy, Version = 1.0.0.0, Cultura = neutral, PublicKeyToken = blahblahblah. Ulteriori informazioni sono sotto. : Oggetto Dispatcher, UpdateEditionDate(): Eccezione: [System. NullReferenceException: Riferimento all'oggetto non impostato su un'istanza di un oggetto. presso Conchango.xyzzyManagementEventReceiver.UpdateEditionDate(Proprietà SPItemEventProperties) presso Conchango.xyzzyManagementEventReceiver.Dispatcher(Proprietà SPItemEventProperties, String eventDescription)].

Che mi ha dato tutti i dettagli di cui che avevo bisogno per rintracciare quel particolare problema e prevedo di usarlo molto andando avanti.

</fine>

Iscriviti al mio blog!

Funny domenica: “NON PER L'ESPORTAZIONE”

Intorno 1998, la società che ho lavorato per al momento ha ricevuto alcuni finanziamenti per creare un nuovo prodotto di e-commerce. Abbiamo avuto l'intera gamma dei requisiti di business per soddisfare. Doveva essere veloce, facile per gli utenti finali, appariscente, multi-lingua, ecc. Triste a dirsi, Probabilmente non ho avuto come un ambizioso set di lavoro da realizzare da quei giorni inebrianti.

Questo sforzo pre-datato.NET. Plain vanilla ASP era ancora un po ' nuovo (o almeno molto sconosciuto alla mia azienda). "Brick and mortar" le aziende sono state condannate. Condannato! Questo è per dire che esso è stato pionieristico lavoro. Non lavoro pionieristico Hadron Collider, ma per noi nel nostro piccolo mondo, esso è stato pionieristico lavoro.

Che fossimo pazzi occupato. Stavamo facendo mini POC s quasi ogni giorno, capire come mantenere lo stato in un mezzo intrinsecamente apolide, capire problemi multi-lingue, protezione a livello di riga. Avevamo creiamo anche un vocabolario per definire i termini di base (Ho preferito stato persistente ma per qualche motivo, l'imbarazzante "stateful" ha vinto il giorno).

Come ci eravamo follemente inventare questo prodotto, le persone di marketing e vendite erano là fuori cercando di venderlo. In qualche modo, sono riusciti a vendere al nostro scenario da incubo. Anche se siamo stati progettazione e implementazione di una soluzione di enterprise, non ci aspettavamo davvero il primo cliente di utilizzare funzionalità fino all'ultimo che abbiamo costruito la giornata prodotto zero. Questo cliente aveva bisogno di multi-lingua, un'interfaccia utente radicalmente diversa da quella standard"" sistema, ma con la stessa logica di business. Multi-lingua è stata particolarmente difficile in questo caso, perché ci siamo sempre concentrati su spagnolo o francese, ma in questo caso, e ' stato cinese (che è un double-byte character set e necessaria una gestione speciale data la tecnologia che abbiamo usato).

Avanti veloce pochi mesi e io sono su un volo della Northwest airlines a Pechino. Sono stato così impegnato a prepararsi per questo viaggio che quasi non ho idea cosa vuol dire per andare lì. Avevo letto un libro una volta come un americano era stato in Cina per diversi anni e aveva imparato la lingua. Un giorno egli era a piedi la città e chiesto alcune persone per le direzioni. La conversazione è andato qualcosa questo:

  • American: "Potreste dirmi come arrivare a [XX] Street?"
  • Cinese: "Mi dispiace, non parliamo inglese".
  • American: "Oh, Beh io parlo mandarino." e ha chiesto loro di nuovo in cinese, ma più chiaramente (come meglio poteva).
  • Cinese: Molto educatamente, "Mi dispiace, non parliamo inglese".

La conversazione è andato come quello per bit e l'americano rinunciato nella frustrazione. Mentre lasciava li ha sentito un uomo parlare a altro, "Avrei giurato che egli era chiedere indicazioni per [XX] Street."

Avevo preso un paio di bit e pezzi di altri quasi-information correlati a Cina e "consigli utili":

  • Un coreano collaborato mi ha detto che l'avevo bisogno di attenzione dei cinesi, perché "sarebbe provano a me ubriacarsi e approfittare di voi" nel senso di me pressioni in decisioni aziendali bad.
  • Non ci era permesso di auto (c'era una certa confusione come se questo era un custom, un requisito legale o solo regola del client).
  • C'erano regole speciali per andare attraverso la dogana.
  • Non ci era permesso di utilizzare il denaro americano per nulla.
  • Non dovresti per lasciare mance. È un insulto se fate.

E, infine,, Avevo ricordi relativamente freschi il Massacro di Tiananmen. Quando ero al college, Ricordo di aver visto in tempo reale messaggi Usenet come il mondo guardato in horror.

In breve, Ero molto nervoso. Non ero solo nervoso normale nel senso che stavo consegnando una soluzione che è stata di ordini di grandezza più complicati rispetto a qualsiasi cosa che avessi mai fatto prima. Ero anche preoccupato di accidentalmente rompendo una regola che potrebbe mettermi nei guai.

Io sono su questo 14 ore di volo e se fosse un business class, 14 ore è un dannato tempo. Ci sono solo tanti modi per intrattenere voi stessi leggendo, guardare film o giocare con le posate magnetizzata. Anche un libro davvero buono è difficile da leggere per diverse ore di fila.

Alla fine, Ho iniziato a leggere il materiale di confezionamento su un pezzo di software che mano-portavo con me al client, Server web di Netscape. Sto leggendo i requisiti hardware/software, il marketing s blurbs, guardando l'immagine bella e improvvisamente, Zero sul gigante "non per l'esportazione" avviso, qualcosa circa 128 crittografia bit. Ho farcito la casella indietro nella mia borsa per il trasporto, avviso a faccia in giù (come se che avrebbe aiutato) e ha cercato di mantenere visioni di Midnight Express out of my head.

Guardando indietro su di esso ora, Dovrei essere preoccupato, Se a tutti, Quando ho lasciato gli Stati Uniti, non quando entravo Cina 🙂 Nulla di sconveniente è successo e che tuttora lo consideri che per essere il migliore e più memorabile viaggio di lavoro che ho avuto il piacere di fare.

</fine>

Iscriviti al mio blog!

Technorati Tags: ,

Soluzione: SPQuery non cerca le cartelle

La scorsa settimana stavo implementando applicazione una "evoluzione" soluzione per un client che utilizza BDC e SPQuery e ha incontrato qualche difficoltà utilizzando SPQuery contro una raccolta di documenti contenenti le cartelle. Linea di fondo: assegnare "ricorsivo" all'attributo vista della query.

Mio scenario:

  • Lunedi ', Sono di caricare un documento e fornire alcuni dati di meta.
  • La settimana seguente, Caricare un nuovo documento. Gran parte dei meta dati di questo nuovo documento è basato sul documento che ho caricato il lunedì (che noi chiamiamo il "documento master").
  • Abbiamo creato una facciata di servizio web che fornisce un'interfaccia di BDC-friendly alla lista in modo che gli utenti possono facilmente individuare tale documento lunedì tramite una ricerca del titolo.
  • Una colonna di dati BDC fornisce un'interfaccia utente amichevole. (Questo è parte del mio tentativo utilizzando BDC per una colonna di ricerca più amichevole).

Il servizio di facciata BDC finale utilizza una query come questa a fare la ricerca:

 // Usato U2U strumento per aiutare a generare questa query CAML.
      oQuery.Query =
        "<Dove>";

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

        = oQuery.Query
        "    <E>" +
        "      <Geq>" +
        "        <FieldRef Name =  "DocumentId" />" +
        "        <Tipo di valore =  "Text">" + minId + "</Valore>" +
        "      </Geq>" +
        "      <LEQ>" +
        "        <FieldRef Name =  "DocumentId" />" +
        "        <Tipo di valore =  "Text">" + maxId + "</Valore>" +
        "      </LEQ>" +
        "    </E>";

      Se (titleFilter.Length > 0)
          = oQuery.Query
          "    <Contiene>" +
          "      <FieldRef Name =  "Title" />" +
          "      <Tipo di valore =  "Text">" + titleFilter + "</Valore>" +
          "    </Contiene>" +
          "  </E>";
        = oQuery.Query
        "</Dove>";

Durante la fase iniziale di sviluppo, Questo ha funzionato grande. Tuttavia, abbiamo introdotto le cartelle nella directory per risolvere alcuni problemi e improvvisamente, la mia selezione BDC non restituisce alcun risultato. Ho rintracciato questo dovuto al fatto che il SPQuery non ritornerei mai alcun risultato. Abbiamo usato le cartelle principalmente per consentire più file con lo stesso nome per essere caricato, ma con diversi metadati. Quando il file viene caricato, si crea una cartella basata sull'ID della voce di elenco e quindi sposta il file ci (Che scrisse qui; abbiamo avuto risultati misti con questo approccio, ma su tutta la, si sta lavorando bene). L'utente non importa sulle cartelle e infatti, davvero non capisco che ci sono tutte le cartelle. Abbiamo configurato tutte le viste sulla libreria per mostrare gli elementi senza riguardo per le cartelle.

Mi ha colpito questo problema due volte come l'implementazione tecnica evoluta e risolto esso diversamente ogni volta. La prima volta, Non stavo usando l'operatore contiene nella query. Senza un operatore contiene, Sono stato in grado di risolvere il problema specificando la vista su contructor di SPQuery. Invece di utilizzare il costruttore predefinito:

SPList oList = web.Liste["Documenti"];

SPQuery oQuery = Nuovo SPQuery();

Invece utilizzato un costruttore che ha specificato una vista:

SPList oList = web.Liste["Documenti"];

SPQuery oQuery = Nuovo SPQuery(oList.Views["Tutti i documenti"]);

Che ha risolto il problema e ho cominciato ad avere i miei risultati.

Ho poi aggiunto l'operatore contiene nel mix e si è rotto nuovamente. Si scopre che l'operatore contiene, per quanto posso dire, non funziona con vista allo stesso modo l'una più semplice GEQ / Operatori LEQ. Ho fatto qualche ricerca e ho imparato che ViewAttributes della query deve essere impostata su "Ricorsiva", come in:

oQuery.ViewAttributes = "Scope = "Recursive"";

Che risolto il problema per CONTAINS. Infatti, questo anche risolto il mio problema di ricerca originale e se avevo specificato il ricorsiva attributo la prima volta, Non vorrei avere correre la questione ancora.

Il fatto che un SPQuery basati su Vista funziona per alcuni operatori (GEQ/LEQ) e non gli altri (CONTIENE), accoppiato con il fatto che gli indicatori KPI non sembrano funzionare a tutti con cartella contenente documento librerie porta me a credere che SPQuery ha alcuni problemi di ortogonalità.

Ringraziamento speciale:

  • La buona gente di U2U e il loro strumento di query.
  • Grande di Michael Hoffer "Learning by doing" post del blog, Commenti e risposte.

</fine>

Iscriviti al mio blog!

Insetto MOSS KPI? Lista indicatore legato alla raccolta di documenti con le cartelle

AGGIORNAMENTO 02/29/08: Ho risolto questo problema creando una cartella e quindi si assegna un tipo di contenuto nella cartella che ha i meta dati che ho bisogno per gli indicatori KPI. Che ho descritto un po' più in dettaglio qui.

Abbiamo implementato una soluzione tecnica in cui gli utenti caricare documenti in una raccolta documenti. Un ricevitore di eventi crea una directory e sposta il file in quella directory (usando una tecnica simile a quello che scritto circa qui). Abbiamo con successo abbiamo navigato intorno i potenziali problemi causati da ricevitori di eventi che rinominare i file caricati (soprattutto perché gli utenti non iniziano mai loro documento facendo clic su "New" ma invece di creare i documenti localmente e poi caricarle).

I meta-dati per questi documenti includono un Sì/No colonna del sito chiamato "urgente" e un'altra colonna del sito denominata "Status". Abbiamo bisogno di soddisfare un requisito di business che indica la percentuale di "urgente" documenti il cui status è "In sospeso".

Questo è di solito semplice da fare e ho descritto qualcosa di molto simile a SharePoint Beagle con un sacco di colpi di schermo, se siete interessati.

In poche parole, Ho fatto il seguente:

  • Creare una visualizzazione sulla libreria doc chiamata "In sospeso".
  • Configurare la visualizzazione per ignorare la struttura delle cartelle.
  • Creare un elenco KPI.
  • Creare un indicatore nella lista che punta al lib doc e che "in sospeso" vista.

Questo semplicemente non funziona. L'indicatore KPI mostra mio target (e. g. cinque documenti urgenti) ma Mostra sempre il numero effettivo di documenti urgenti come zero. Paradossalmente, Se praticare nei dettagli, Essa mostra i cinque documenti urgenti nell'elenco. Ho creato uno scenario molto semplice con due documenti, uno in una cartella e uno non. Ecco la schermata:

immagine

Il colpo di schermo sopra mostra chiaramente ci sono due documenti in vista, ma il valore"" è uno. Il CamlSchema"" con documento vuoto Id è nella cartella principale e l'altro è in una cartella denominata "84".

Mi pare che anche se si specifica una vista, i KPI non onorare la "mostra tutti gli articoli senza le cartelle" impostazione e invece, si limita alla cartella principale.

Se sbaglio, prego cadalo una linea o lasciare un commento.

</fine>

Iscriviti al mio blog!

Technorati Tags:

SPD Workflow “Raccogliere dati da un utente”: Modificare la forma di attività generato

Sto lavorando su un progetto che utilizza cinque diversi flussi di lavoro di SharePoint Designer per gestire alcune approvazioni dei documenti. SPD fornisce i "raccogliere dati da un utente" azione affinché noi possiamo richiedere all'utente diversi bit di informazione, come se essi approvarlo, alcuni commenti e forse chiedere ciò che avevano per la cena l'altra sera.

Le forme sono perfettamente funzionali. Essi sono legati ad un elenco di attività come un tipo di contenuto. Essi sono 100% generati dal sistema. Questa è la loro forza e debolezza. Se possiamo vivere con un modulo predefinito, Allora siamo bene posto. Tuttavia, non abbiamo troppo controllo sopra come SPD crea il modulo. Se non ci piace che il comportamento predefinito, abbiamo bisogno di ricorrere a vari trucchi per ottenere intorno ad esso (per esempio, l'impostazione di priorità su un compito).

Avevo bisogno di fornire un link su queste forme di attività che aprono le proprietà di visualizzazione (DispForm.ASXP) dell'articolo correlato"" in una nuova finestra. Questo fornisce accesso one-click per i meta dati del rispettivo articolo. Questo è quello che voglio dire:

immagine

Per fortuna, possiamo farlo e non è molto difficile. In linea generale, fuoco su SPD, spostarsi nella directory contenente i file di flusso di lavoro e aprire il file ASPX che si desidera modificare. Queste sono le istruzioni di trasformazione XSL appena classiche e se tu hai muck con itemstyle.xsl, ricerca o ad altri scenari XSL, Questo sarà facile per voi. Infatti, Ho trovato ad essere generalmente più facile dal momento che il form generato è un po ' più facile da seguire rispetto ad una web part risultati di ricerca (o il CWQP da incubo).

Naturalmente, C'è un trabocchetto principale. Editor di workflow di SPD si aspetta pieno controllo su quel file. Se lo si modifica, SPD felicemente sovrascriverà il vostro dare modifiche il giusto set di circostanze. Ho fatto due test rapido per vedere quanto male si potrebbe ottenere. Entrambe presuppongono che tu hai realizzato un flusso di lavoro SPD valido che utilizza i "raccogliere dati da un utente" passo.

Test 1:

  • Modificare manualmente il file ASPX.
  • Prova (verificare che le modifiche sono state salvate correttamente e non rompono nulla).
  • Aprire il flusso di lavoro e aggiungere un'azione correlata (come il "Registro di storia").
  • Salvare il flusso di lavoro.

Risultato: In questo caso, SPD ha fatto non ricreare la forma.

Test 2:

  • Fare lo stesso #1 tranne direttamente modificare la "raccolta di dati da un utente" azione.

Risultato: Questo ricrea la forma da zero, sovrascrivere le modifiche.

Note finali:

  • Almeno due azioni di SPD creare forme come questo: "Raccogliere dati da un utente" e "Assegnare a fare la voce". Entrambe queste azioni’ forme possono essere modificate manualmente.
  • Sono stato in grado di generare il mio link per DispForm perché, in questo caso, l'elemento di riferimento ha sempre un ID incorporato nell'URL dell'elemento correlate. Sono stato in grado di estrarre e poi costruire un <href> Basato su di esso per fornire la funzionalità di accesso di un solo clic meta dati. È improbabile che il tuo URL segue questa regola. Ci possono essere altri modi per ottenere l'ID del rispettivo articolo ma non ho dovuto attraversare quel ponte, quindi non so se ottiene da altra parte del baratro.
  • Non esaminare, ma non sarebbe sorpreso se c'è qualche tipo di file di modello nella 12 alveare che potrei modificare per interessare come SPD genera le forme predefinite (come possiamo modificare modelli alert).

</fine>

Iscriviti al mio blog!

Sono “Errore sconosciuto” Messaggi davvero meglio di una traccia dello Stack?

Stavo leggendo il post sul blog di Madhur su come abilitare Visualizza traccia dello stack e ora mi sto chiedendo: perché non sempre mostrano una traccia dello stack?

Chi è venuto con quella regola e perché lo seguiamo?

Gli utenti finali sapere che qualcosa è sbagliato in entrambi i casi. Almeno con un'analisi dello stack, si può premere control-printscreen, copia/incolla in un messaggio e-mail e inviarlo ad esso. Chiaramente che ridurrebbe il tempo e lo sforzo necessari per risolvere il problema.

</fine>

Technorati Tags:

Domenica (Imbarazzante) Divertente: “Il mio nome è Paul Galvin”

Un mucchio di anni fa, il mio capo mi ha chiesto di formare alcuni utenti su un prodotto chiamato risultati. Risultati è un utente finale, lo strumento di reporting. È approssimativamente analogo a SQL Server Reporting Service o cristallo. Al momento, esso è stato progettato per funzionare su tubi verde (e. g. Wyse 50 terminale) collegato a una casella di Unix tramite telnet.

Mio di default di rispondere a qualsiasi domanda che inizia con "si può … " è "sì" e che è dove tutti i problemi iniziato.

Il cliente era una società chimica fuori nel sud della California e quasi aveva avvolto un'importante implementazione ERP basata su Di QAD MFG/PRO. Il piano di attuazione è ora chiamato per gli utenti finali di potenza formazione sul prodotto risultati.

Non ero un grande utilizzatore di questo strumento e certamente mai aveva addestrato nessuno prima. Tuttavia, Aveva condotto una serie di altri corsi di formazione ed è stato veloce sui miei piedi, quindi non ero troppo preoccupato. Dennis, l'istruttore di risultati reali a tempo pieno, mi aveva dato il suo materiale di formazione. Guardando indietro su di esso ora, è davvero assurdo. Non conoscevo bene il prodotto, non era mai stato formalmente addestrato su di esso e certamente mai aveva insegnato. Che genere di affari ha avuto formazione chiunque su di esso?

A complicare le cose, logisticamente, Mi è stato chiesto di andare a incontrare qualcuno a Chicago come parte di un impegno di pre-vendito lungo la strada. Il piano era di volare fuori New Jersey, andare a Chicago, soddisfare per un'ora con il prospetto e poi proseguire per California.

Pozzo, Ho avuto modo di Chicago e le vendite ragazzo nella mia squadra aveva fatto qualche errore e mai confermata la riunione. Così, Mi presentai e la prospettiva non c'era. Impressionante. Le valigie e lasciare e proseguire per CA. Da qualche parte durante questo processo, Scopro che il client sta imparando meno di 24 ore prima del mio arrivo che "Paul Galvin" è la classe di insegnamento, non Dennis. Il cliente ama Dennis. Vogliono sapere "chi è questa persona di Paul Galvin?" "Perché dovremmo fidarci di lui?" "Perché dovremmo pagare per lui?" Dennis, ovviamente, non iscriverti al mio "dare cattive notizie presto" filosofia. Impressionante.

Arrivo all'aeroporto e per qualche motivo incredibilmente stupido, Avevo controllato mio bagaglio. Ce l'ho fatta a LAX, ma il mio bagaglio non. Per me, perdere i bagagli è molto simile a passare attraverso il sette tappe del dolore. Alla fine rendono l'hotel, con nessun bagaglio, stanco, affamati e indossando il mio (ormai, molto stropicciata) vestito di affari. Ci vuole molto tempo per viaggiare da Newark — to o ' Hare — a un client — back to o ' Hare — e infine a Los Angeles.

Mi trovo finalmente seduto nella sala dell'hotel, sgranocchiando un bar snickers, esausti e cercando di tamburo fino all'energia di scansione attraverso il materiale di formazione di nuovo quella che non vedo come un asino davanti alla classe. Questo è stato un po' un punto basso per me al momento.

Mi sono svegliato il giorno dopo, fatto il mio meglio per appianare il mio vestito, così che non guardo come Willy Loman in una brutta giornata e siamo andati su oltre al client. Come è così spesso il caso, in persona era bello, gentile e molto gradevole. Questo si trovava in netto contrasto al suo estremamente arrabbiato e-mail/messaggi vocali dal giorno precedente. Lei mi porta su 3 miglia attraverso edificio dopo edificio per un sezionato fuori zona in un magazzino chimico gigante dove conduciamo la classe per i prossimi tre giorni. Il 15 o 20 studenti assemblare lentamente, la maggior parte li aspetta ancora Dennis.

Sempre iniziare i miei corsi di formazione di presentarmi, dando alcuni retroscena e scrivendo le mie informazioni di contatto sulla scheda bianca. Come sto dicendo, "Buongiorno, il mio nome è Paul Galvin", Scrivere il mio nome, e-mail e numero di telefono fino sul bordo bianco a caratteri cubitali in modo che tutti possano vederla chiaramente. Mi rivolgo al fatto che sto sostituendo Dennis e li assicuro che io sono un sostituto adeguato, ecc. Tutti ho brevemente mi dica il loro nome e che cosa vogliono ottenere fuori della classe in modo che io posso adattare le cose ai loro requisiti specifici come vado avanti. Le solite cose.

Abbiamo che avvolgono e accendere il proiettore. Vado a cancellare i miei dati di contatto e … Io avevo scritto in pennarello indelebile. Ero così imbarazzato. Nella mia mente, questo sembrava: C'è questo "Paul Galvin" persona, sostituzione dell'ultimo minuto per il nostro amato Dennis. Indossa un sgualcito con la barba lunga e vestito di affari. Ha appena scritto sua nome lettere enorme sulla nostra scheda bianca in marcatore permanente. Che spettacolo!

E tutti si è conclusa felicemente, Tuttavia. Questa è stata un'azienda chimica, Dopotutto. A brizzolato veterano dipendente tirato qualcosa dallo scaffale e, probabilmente in violazione delle normative EPA, cancellato il Consiglio. Sono riuscito a rimanere 1/2 giorno davanti la classe durante tutto il corso e mi hanno dato una buona recensione alla fine. Questo cementato i miei "pinch hitter" reputazione presso la mia azienda. Il mio bagaglio è arrivato il primo giorno, così mi è stato molto più presentabili giorni due e tre.

Come stavo prendendo l'occhio rosso torna a casa, Stavo contemplando "lessons learned". C'era un sacco di contemplare. Comunicazione è la chiave. Informare i client modifiche nel piano. Non mai controllare i bagagli all'aeroporto se si può evitare possibilmente. Portare la roba di ricambio"" nel caso in cui si verifica il vostro bagaglio e non lo rende. Penso che la lezione più importante che ho imparato, Tuttavia, Questo è stato: sempre testare un indicatore in basso a sinistra di un bordo bianco prima di scrivere, in enormi lettere, "Paul Galvin".

</fine>

Technorati Tags: ,

Prospettive: SharePoint vs. Il Large Hadron Collider

A causa di alcuni stravaganti che voli United Airlines ho preso a metà degli anni 90, In qualche modo finito con un'offerta di trasformare "inutilizzato miglia" in circa una dozzina abbonamenti a riviste gratis. Ecco come ho finito per abbonarsi alla rivista Scientific American.

Come software / consulenza a persone, incontriamo molti requisiti aziendali difficili nella nostra carriera. Il maggior parte del tempo, amiamo detti requisiti e in realtà, probabilmente è perché pensiamo che questa carriera è il migliore del mondo. Chissà occasionalmente solo che nel mondo ci hanno fatto con me stesso, se fossi nato in qualsiasi altro momento nella storia. Quanto terribile sarebbe a perdere sui tipi di lavoro che riesco a fare ora, in questo momento e un posto nella storia del mondo? Credo: abbastanza terribile.

Nel corso degli anni, alcuni dei requisiti che ho affrontato sono stati estremamente impegnativi per soddisfare. Cose complesse di SharePoint, costruzione web framework basato su tecnologia web-friendly di elaborazione, complesse orchestrazioni di BizTalk e simili. Tutti noi possiamo (si spera) guardare indietro con orgoglio sulla nostra carriera e dire, "sì, che è stato un duro da risolvere, ma alla fine ho pwned quel sumbitch!" Meglio ancora, ancora più interessanti e divertenti sfide attendono.

Personalmente penso che il mio resume, a questo proposito, è piuttosto profondo e sono piuttosto fiero di esserlo (anche se so che mia moglie non potrà mai capire 1/20 di esso). Ma questa settimana, Stavo leggendo un articolo sul Grande Hadron Collider nel mio americano scientifico scomparto e aveva uno di quei rari momenti umiliante dove ho capito che nonostante il mio "gigante" stato in certi ambienti o come profondo credo che il mio pozzo di esperienza, non ci sono veri e propri colossi in mondi completamente diversi.

Le persone del team di LHC hanno alcuni problemi davvero spinosi per gestire. Considerare la luna. Io non credo molto circa la luna (Se sono stato molto sospettoso riguardo da quando ho imparato che sta rallentando la rotazione terrestre, a lungo termine, che non può essere una buona cosa per noi esseri umani). Ma, il team LHC devono preoccuparsi. Dispositivi di misurazione di LHC sono così sensibili che sono interessate da della luna (Earth-Rotation-slowing-and-eventually-Killing-all-Life) gravità. Questo è un diavolo di un requisito per soddisfare — produrre misure corrette nonostante interferenza della luna.

Io stavo riflettendo su quel problema, quando ho letto questa frase: "Il primo livello riceverà e analizzare i dati da solo un sottoinsieme delle componenti del rilevatore, da cui può prendere promettente eventi sulla base di fattori isolati ad esempio se un muone energico è stato avvistato a volare ad un angolo di grande dall'asse del fascio." Davvero … ? Io non gioco in quanto tipo di sandbox e mai sarà.

La prossima volta sto fuori con alcuni amici, Io vado a brindare alla buone persone che lavorano su LHC, Spero non correttamente pesano la particella del bosone di Higgs e maledire la luna. Ti suggerisco di che fare lo stesso. Sarà piuttosto il brindisi 🙂

</fine>

Technorati Tags: