כוידעשלעך אַרטשיוועס: מאַרץ 2008

באַשטימען שנעל קרסערווער פּאָרט

אין סדר צו יבערגעבן מיט שנעל זוכן דורך זייַן אַפּי, מיר דאַרפֿן צו וויסן די פּאָרט אויף וואָס די קרסערווער איז פליסנדיק.

איך נאכגעגאנגען די טריט צו געפינען עס:

  1. קלאָץ אין די פעסט אַדמין פּלאַץ (http://server:port/admin).
  2. נאַוויגירן צו סיסטעם איבערבליק.
  3. Locate "Search Dispatcher" און גיט די ספּייגלאַס בילדל:

    בילד

  4. איך הצלחה געניצט די ווערט, 15100 for "Info Name" = "http":

    בילד

הערות:

1. פּאָרט 15100 appears to be the default out-of-the-box port number for the QRServer.

2. ניצן דעם קאָד ענלעך צו די ווייַטערדיק צו ינסטאַנשיייט אַ קשר צו שנעל:

     יסעאַרטשפאַקטאָרי סעאַרטשפאַקטאָרי;
    
        נאַמעוואַלועקאָללעקטיאָן נאַמעוואַלועקאָללעקטיאָן = נייַ נאַמעוואַלועקאָללעקטיאָן();
    
        נאַמעוואַלועקאָללעקטיאָנ.אַדד("fastsearchengine", "Com.FastSearch.Esp.Search.Http.HttpSearchFactory");
        נאַמעוואַלועקאָללעקטיאָנ.אַדד("Com.FastSearch.Esp.Search.Http.QRServers", "fastdemoback:15102");
        נאַמעוואַלועקאָללעקטיאָנ.אַדד("Com.FastSearch.Esp.Search.Http.RequestMethod", "GET");
    
        סעאַרטשפאַקטאָרי = סעאַרטשפאַקטאָרי.נעווינסטאַנסע(נאַמעוואַלועקאָללעקטיאָן);

3. אויב איר קלייַבן אַ וויילדלי פאַלש פּאָרט, איר באַקומען אַ נוציק טעות אָנזאָג:

בילד

4. אָבער, אויב איר קלייַבן די פּאָרט נומער ליסטעד אויף די איבערבליק (15102) you don’t get that helpful error message. אַנשטאָט, שפּעטער ווען איר פּרובירן צו צוטריט קיין דאַטן דורך אַ זוכן אָדער דערמאָנען אַ פעסט מיינונג, you get an error. Debugging shows that the searchFactory’s view count is zero. You’ll be given the message "Failed to fetch Search View List".

</עק>

טעטשנאָראַטי טאַגס:

אַבאָנירן צו מיין בלאָג.

צו שאַרעפּאָינט טעכנישע פּלאַן פּאַטטערנס: שאַרעפּאָינט דיזיינער וואָרקפלאָוו + געשעעניש ריסיווער = הויך פּאָטענסי קאָקטייל

איינער פון די ימערדזשינג פּאַטערנז איך געפינען אין קראַפטינג שאַרעפּאָינט סאַלושאַנז לעוועראַגעס שאַרעפּאָינט דיזיינער וואָרקפלאָוו און אַ געשעעניש ופנעמער.

דאָ איז אַ געשעפט סצענאַר צו לייגן עס אין קאָנטעקסט:

  • איך צופֿעליקער אַ דאָקומענט צו אַ שולדבאַנק ליב.
  • איך בריק אַוועק מאַלטי-שריט וואָרקפלאָוו באשאפן ניצן שאַרעפּאָינט דיזיינער.
  • אין עטלעכע פונט בעשאַס אַז פּראָצעס, וואָרקפלאָוו אַסיינז אַ אַרבעט צו עמעצער (דורך זאַמלען דאַטן פון באַניצער אָדער באַשטימען אַ אַרבעט).
  • We want to use a KPI to track how long that task is awaiting completion. The KPI shows green for tasks that are completed or due more than 3 days from now. It shows yellow if the task is due tomorrow or today. It shows red if the task is past due.
  • דאָ ס דער קיקער: איך ווילן די דאַטע אַז דרייווז אַז קפּי צו זייַן יום טוּב-אַווער.

I can’t calculate a holiday-aware due date in SharePoint Designer workflow very easily. I would have to create a custom action or use a 3rd party tool. אָבער, it’s easy enough to calculate such a date in an event receiver. Merge those two together and we get a pattern like this:

  • Define a hidden yes/no site column on the document library labeled "DoCalcualteDueDate".
  • יניטיאַליזע עס צו פאַלש.
  • אין די צונעמען צייַט אין די וואָרקפלאָוו (e.g. just before the "collect data" קאַמף), באַשטימען וואָס ווערט צו אמת.
  • אַ יטעמופּדאַטע() event receiver looks to see if "DoCalculateDueDate" is true. Since the event receiver runs on every update, "DoCalculateDueDate" איז נאָרמאַלי פאַלש.
  • ווען וואָרקפלאָוו אַסיינז דאָקאַלקולאַטעדועדאַטע צו אמת, די געשעעניש ופנעמער קאַלקיאַלייץ דער יום טוּב-אַווער רעכט דאַטע.
  • ווען דער געשעעניש ופנעמער טוט דעם חשבון, עס שטעלט די דאָקאַלקולאַטעדועדאַטע פאָן צו פאַלש.

אין די סוף, SPD workflow is communicated with an event receiver via the DoCalculateDueDate semaphore and we have holiday-aware due dates that are assigned at the exactly correct moment in the workflow’s life. SharePoint Designer controls when the due date is assigned but the event receiver performs the actual calculation and assignment.

</עק>

אַבאָנירן צו מיין בלאָג.

באמערקט בעהאַוויאָר: מאָווינג ספּד וואָרקפלאָווס ין אַ מאַפּע קאַלעקשאַן

דערהייַנטיקן: I’ve been researching how to embed a SPD workflow into a site definition. דאס מסדן פאָרום קייט האט עטלעכע טשיקאַווע אינפֿאָרמאַציע. It’s not conclusive, אָבער ווייזט צו דרך דורך די דזשאַנגגאַל.

I’m giving this post a slightly oddball "Observed Behavior" lead since I’m a little leery of drawing conclusions from it. SPD workflows are … טעמפּראַמענטאַל.

מענטשן זענען אָפֿט אַסקינג / וואַנדערינג / fretting over moving SPD workflows from one place to another. הייַנט, איך נאכגעגאנגען די טריט און געמאכט די אַבזערוויישאַנז:

  • איך באשאפן אַ וואָרקפלאָוו ניצן שאַרעפּאָינט דיזיינער אין אַ פּלאַץ אַטאַטשט צו אַ דאָקומענט ביבליאָטעק.
  • די פארבונדן דאָקומענט ביבליאָטעק שוין כאַוזד עטלעכע דאָקומענטן.
  • איך געהאלפן די פּלאַץ ווי אַ מוסטער.
  • ווען איך געהאלפן די פּלאַץ ווי אַ מוסטער, איך געהאלפן די צופרידן ווי געזונט.
  • איך באשאפן אַ נייע פּלאַץ אין די זעלבע פּלאַץ זאַמלונג ניצן אַז מוסטער.

אין דעם פונט, I tried to run the workflow. It promptly terminated itself with the log message, "Failed on start".

I expected this. I have low expectations when it comes to moving SPD workflows around.

איך געצויגן:

  • געעפנט די פּלאַץ אין שאַרעפּאָינט דיזיינער.
  • Had a peek at the workflow. It seemed fine.
  • I clicked "Finish".
  • איך געלאפן די וואָרקפלאָוו.

דאס מאָל, עס געארבעט פייַן.

I’ll add that this workflow used the "collect data from user" קאַמף וואָס איז אַ לעפיערעך קאָמפּלעקס קאַמף אונטער די קאַפּטער.

I tentatively conclude that the process of "finishing" the workflow caused SPD to properly associate the SPD workflow with the new document library. I also conclude the XOML and other XML artifacts are reasonably "loose". They are not super tightly coupled to the document library.

וואָס טוט דאָס מיינען? Assuming it’s a reliable and reproducible process, there’s at least one rough method we can use to move them around. I don’t know if this would work if we crossed site collection boundaries or even more drastically, גאַנץ נייַ פאַרמס (e.g. דעוו צו בינע צו שטעכן).

אויב איר ניטאָ לייענען דעם און גענייגט, ביטע פּאָסטן אַ באַמערקונג אָדער Email מיר your SharePoint Designer migration story. I’ll gladly update this posting with any insights thus offered.

</עק>

אַבאָנירן צו מיין בלאָג.

טעטשנאָראַטי טאַגס:

שנעל און סימפּלע: וואָרקפלאָוו-נאָר אַפּדייט פיעלד

It’s often useful to store status information in a custom list such as an approval code which should never be directly manipulated by end users. This is a common business scenario. I have been working on a project this year that generates various status and reminder dates via SharePoint Designer workflows that then drive KPIs and generally support time-critical business processes.

ניצן אַ פּלאַץ צופרידן טיפּ / זייַל צו דערגרייכן דעם ווירקונג.

שאַפֿן אַ פּלאַץ צופרידן טיפּ מיט די סטאַטוס זייַל ווי געוויזן:

בילד

Note the "Status (פֿאַר דעמאָ)" פעלד בייַ די דנאָ.

ווייַטער, click on the column name to access the column’s properties. Select "Hidden (וועט ניט דערשייַנען אין פארמען)" אין די קאַלאַם סעטטינגס אָפּטיילונג ווי געוויזן:

בילד

This removes the field from the standard edit/update forms. אָבער, עס איז נאָך פאַראַנען אין קוקן, קפּיס, די כייפעץ מאָדעל און ערגעץ אַנדערש איר ווילן צו נוצן עס, including SPD workflow.

</עק>

אַבאָנירן צו מיין בלאָג.

זונטיק מאָדנע: “איך געדאַנק דעם איז געמיינט צו זייט אַ ריטש טאַון”

א ביסל איבער דרייַ יאר צוריק, מיין פרוי און איך געחתמעט מיין זון אַרויף פֿאַר אַ זומער טעטיקייט, The Midland Park Players. This is a drama group that spends about three or four weeks preparing for a play and then showing it to the parents, friends and relatives. It’s always been done very well.

איך טאָן ניט וויסן אויב אַלעמען 'ס קינד איז ווי דעם, but my son is extremely reluctant to try new things. Knowing this, we signed him up for the program. We’ve found that it’s best to alert him to these kinds of things early and often. אַזוי, אין סדר צו באַקומען זייַן נאַטירלעך ומכיישעק, מיר דערציילט אים פרי און האט אונדזער בעסטער צו מאַכן עס געזונט ווי שפּאַס, אאז"ו ו. Even with a multi-month advertising campaign, he still wasn’t convinced. We forced him to do, כאָטש, און ווי איז אָפֿט דער פאַל, he had a great time.

דורך די צייַט די צווייט יאָר ראָולד אַרום, he had once again convinced himself that he didn’t want to participate. אָבער, מיר האט געחתמעט אים אַרויף און אויף נול-טאָג, I dropped him off one morning at the high school where they practice. When I went to pick him up after lunch, ער איז געווען זייער יקסייטאַד, אַלע סמיילז און מודיע, "The play is the וועלוועטעען ראַבאַט and I want to be the Rabbit". He had spent literally months carrying on (מאל כיסטעריקלי) וועגן ווי ער האט נישט וועלן צו האָבן עפּעס צו טאָן מיט פּאַרק פּלייַערס און נאָך דער ערשטער טאָג, he wants to be the lead role in the play. We’ve seen this pattern before.

(פיל צו אונדזער יבערראַשן, ער האט באַקומען די ראַבאַט ראָלע און ער איז געווען אַמייזינג.)

Fast forward a few years. He’s been in Park Players three times now, so he’s something of a veteran. This summer (2008), Players starts up again. אין דער מיינען צייַט, ער ס לעסאָף קאַנווינסט אונדז ער טאַקע doesn’t want to play soccer and he never liked basketball. That left him with no extra-curricular activities for late Winter / early Spring. A client with whom I was working mentioned that his daughter was in a program called Stage Right. Stage right is a slightly more expensive version of Park Players and it’s not in my town, but adjacent to it. Perfect.

The thing to know about that town is that it’s practically another country in terms of wealth. It has a high-frequency train right to Wall Street and NYC in general. It’s just a wealthy place. One of the on-going family discussion themes is whether we should have moved to that town instead of where we live now. It’s a bigger town, זייַן שולן פאָרשלאָגן מער מגילה פֿאַר די קידס, אאז"ו ו. My wife grew up in that town and her parents live there, so we are "hooked in" despite not living there. I personally grew up in different circumstances in Massachusetts, so I don’t have a lot to say about this during family dinner conversation. This isn’t to say that we aren’t very happy where we live. We just know that that town is a level above our town economically.

Stage Right’s next program started too soon for us to launch our normal advertising campaign to overcome my son’s reluctance. This is when he came up with one my personal favorite arguments against doing something: "Friday nights are הויפּט נעכט פֿאַר שלאָפן אָווערס!" Stage Right was going to interfere with his weekend socials.

דער טאָג קומט, מיר ברענגען אים דאָרט און פאַלן אים אַוועק און ווי מיט אַלץ אַנדערש, זייַן נאַטירלעך ליבע פון ​​נאָר זייַענדיק לעבעדיק גענומען איבער און ער ס 'געווען בעת ​​אַ גוט צייַט מיט אים.

דאס פאַרגאַנגענהייַט אָפּרוטעג מיין פרוי האט גערעדט צו אים און פֿאַר די ערשטער מאָל, I think he’s tailoring his discussions very precisely for his audience. She had asked him how Stage Right compares to Midland Park Players. He tells her that "In Park Players, we have teenagers that help us out. There aren’t any in in Stage Right. In Park Players, teenagers make all props. In Stage Right, we have to bring our own props. We have to do everything. And then he twists the knife: "I thought this was supposed to be a rich town."

כל די יאָרן, I never really thought that he was hearing or understanding anything as it related to the "rich town". אָבער, עס טורנס אויס ער איז געווען.

</עק>

אַבאָנירן צו מיין בלאָג.

טעטשנאָראַטי טאַגס:

שאַרעפּאָינט טוט נישט צושטעלן קאַלענדאַר ראָלל-אַפּס; פּאָטענציעל סאַלושאַנז

דערהייַנטיקן: An anonymous person in the comments posts this link: http://www.atidan.com/atidan-collaboration-kit.php

פורום ניצערס אָפֿט פרעגן אַ קשיא ווי דעם:

"I would like to have a calendar at the site level that is populated by events from subsite calendars. Ideally, ניצערס אין סובסיטעס וועט שאַפֿן לוח געשעענישן, and will have the option of marking them as ‘public.’ Events marked as public will dynamically appear in the shared site calendar. Thus the shared site calendar is a roll-up of all public events from all subsite calendars."

איז ווסס 3.0 אָדער מאָך 2007, it is not possible to directly configure a "roll-up" calendar. Calendars exist on their own, פרייַ פון קיין אנדערע לוח.

צו שאַפֿן אַ זעמל-אַרויף לוח, נאָכגיין איינער פון די פּאַטס:

  1. Use a Content Query Web Part. This is the easiest solution for MOSS users (ווסס טוט נישט צושטעלן קקוופּ). קקוופּ, צומ באַדויערן, does not provide a calendar view of data out of the box. It does provide enormous rendering flexibility (זען דאָ פֿאַר איין בייַשפּיל) אָבער דורך פעליקייַט, shows its results in simple list format. In many cases, קקוופּ מיסטאָמע אַ גוט ברירה.
  2. A more programming-oriented solution would be to use event receivers. Implement event receivers on the subsite calendars that keep their public events in sync with the master calendar. As a given subsite calendar is modified, reach out to the master calendar and update it as needed. This option is available in both WSS 3.0 און מאָך.

There are probably other clever solutions to this problem. If you have one or know of one, ביטע לאָזן אַ באַמערקונג אָדער Email מיר און איך וועל דערהייַנטיקן דעם פּאָסטן.

</עק>

טעטשנאָראַטי טאַגס: ,

אַבאָנירן צו מיין בלאָג.

שאַפֿן זייטלעך (ספּוועב) דורך שאַרעפּאָינט דיזיינער וואָרקפלאָוו

This blog entry is more of an "in the realm of the possible" פּאָזיציע ווס. באַטאָנען אינפֿאָרמאַציע.

We have a technical design that calls for us to create a site in a site collection via a manually launched workflow process. בייסיקלי, users enter data into a "new customer" מנהג רשימה און דעמאָלט ווען זיי האָבן פאַרטיק און וואַלאַדייטאַד די דאַטן פּאָזיציע פּראָצעס, מיר דאַרפֿן צו שאַפֿן אַ פּלאַץ פֿאַר אַז קונה.

איך בין ביידע אַ גרויס פאָכער פון דעקלאַראַטיווע וואָרקפלאָוו ווי געזונט ווי אַ שוואַך וויסואַל סטודיאָ וואָרקפלאָוו פּראָגראַמיסט, אַזוי איך געוואלט צו טרעפן די פאָדערונג ניצן שאַרעפּאָינט דיזיינער.

איך פּלאַן צו שרייַבן וועגן דעם אין גרעסער דעטאַל (און אַלעווייַ פאָרשטעלן צו אַ באַניצער גרופּע אָדער צוויי אין די קומענדיק יאָר), אָבער דאָ ס דער קוילעלדיק לייזונג:

  • שאַפֿן אַ מנהג קאַמף אַז ינטאַגרייץ מיט ספּד.
  • The custom action allows SPD to invoke a web service and pass it a string of XML.
  • Web service locates the row in the custom list and creates a new site as per the data for that new client using a custom site definition.
  • Web service then updates the custom list with some information such as a link to the new site.

We considered other approaches, such as event handlers and visual studio based workflow. The SPD approach gives our end users a little more control over the process. Granted, there’s a lot of C# code in this solution, but it’s wrapped inside a declarative workflow, so we get some of the benefits of declarative workflow while hooking into the site-creation service.

All we need now is an easy tool to automatically migrate SPD workflows around as easily as we can for visual studio workflows and we’ll really be cooking with gas 🙂 I understand that some folk are out there working on this problem and I hope they have some good success with it soon.

</עק>

אַבאָנירן צו מיין בלאָג.

טעטשנאָראַטי טאַגס: ,

שנעל און סימפּלע: טנייַ אַ וועבסזייַטל וסינג שאַרעפּאָינט אָבדזשעקט מאָדעל אין C #

I tried searching for a little snippet code that would show how I can create a new SPWeb in a site collection. I didn’t find it as quickly or easily as I expected so I thought I’d slap together a little entry on the subject.

דעם קאָד קריייץ אַ נייַ וויקי פּלאַץ:

 ספּסיטע סיטעקאָללעקטיאָן;

    סיטעקאָללעקטיאָן = נייַ ספּסיטע("http://קאָנטשאַנג-אָ9ל8קי");

    ספּוועב וו = סיטעקאָללעקטיאָנ.אָפּענוועב();

    וו.וועבס.אַדד("xyzzy", "xyzzy Title",
        "xyzzy description", 1033, ספּוועבטעמפּלאַטע.וועבטעמפּלאַטעוויקי, פאַלש, פאַלש);

My initial searches failed because I was looking for phrases like "provision a web site using sharepoint object model" and the like.

אויב איר זוכן for "Webs.Add()", איר וועט געפינען אַ נומער פון זייער נוציק בלאָג איינסן, MSDN articles and SDK documentation that go into depth on this subject. I definitely recommend דעם פּלאַץ.

</עק>

אַבאָנירן צו מיין בלאָג.

טעטשנאָראַטי טאַגס:

ויסשטימען שאַרעפּאָינט דיזיינער וואָרקפלאָווס מיט וועב סערוויסעס

איך ווע שוין פּלייינג אַרום מיט מנהג אַקשאַנז פֿאַר שאַרעפּאָינט דיזיינער פֿאַר עטלעכע מאָל (זען דאָ פֿאַר עטלעכע דיטיילד שטאָפּן, אויב אַז אינטערעסן איר).

אין מיין קראַנט פּרויעקט, we need to do some fairly heavy lifting and we want to use declarative SPD workflow to manage the associated business process.

לאנג געשיכטע קורץ, this is entirely possible. I extended my Codeplex project to invoke a "helper service" and now we can invoke a web service directly from an SPD workflow.

דאָ ס דער כסימע:

 עפנטלעך שטריקל דיספּאַטטשער(
        גויד WebID, // דורכגעגאנגען דורך דעם רונטימע סוויווע
        גויד סיטעיד, // דורכגעגאנגען דורך דעם רונטימע סוויווע
        שטריקל ליסטיד, // דורכגעגאנגען דורך דעם Rte (טאָן ניט וויסן וואָס דאָס איז אַ שטריקל, נישט אַ גויד)
        ינט ליסטיטעמיד, // דורכגעגאנגען דורך דעם Rte.
        שטריקל קסמלמעססאַגע) // דורכגעגאנגען דורך די באַניצער ווי דערקלערט אין ספּד.

דאס לעוועראַגעס די פאַקט אַז מיר קענען באַקומען בייַ וויכטיק וואָרקפלאָוו אינפֿאָרמאַציע, ווי די פּלאַץ, רשימה שייַן, אאז"ו ו. This is well documented in several places for those of you interested in creating your own custom actions. The idea is to extract the XML string as provided by the user to dispatch an appropriate procedure. Fun stuff!

סאַדלי, דאָס איז דאָך אַ איין-וועג בילעט אַראָפּ צו "Loosey Goosey" אַנטי-מוסטער לאַנד, but it’s better than hitting a brick wall 🙂

איז עס אַ אַנטי-מוסטער אויב איר טאָן עס אַפֿילו כאָטש איר וויסן עס ס אַן אַנטי-מוסטער?

I hope to wrap this inside Codeplex in the near future. If you’re interested in me doing so, געבן מיר שטורכען (Email אָדער לאָזן אַ באַמערקונג) and I’ll be that more enthusiastic about doing it 🙂

</עק>

אַבאָנירן צו מיין בלאָג.

טעטשנאָראַטי טאַגס: ,

זונטיק מאָדנע: “איך ווונדער אויב דיין Password איז …”

איך לעצטנס געקויפט לאָנטש פֿאַר מיין ברודער (ווי געוויינטלעך) and we ended up talking about funny things that we did at our respective colleges. At my alma mater, לאַפיעט קאָלעדזש, the academic support IT department had a very inclusive way about it. We were given a LOT of rope and I took advantage of that at times.

צוויי מיין באַליבט מעמעריז פאַרבינדן צו מיין גוט פרייַנד, Gabe. He had made the terrible mistake of telling people his freshman year that "I’m a freshman, אָבער איך האָבן סאָפאָמאָרע שטייענדיק" רעכט צו די פארשידענע אַוואַנסירטע פּלייסמאַנט קלאסן ער האט גענומען, אאז"ו ו. Many of us were similarly situated but we didn’t talk about it so much. His senior year, ווען מיר באַקענענ אים צו מענטשן, we’d say "This is Gabe. He’s a Senior, but he has Sophomore standing".

The college had some Sun workstation/servers running X-Window. They had gigantic monitors and the engineers used them for CAD and other boring engineer stuff. We CS people used them to learn programming and, אַוואַדע, צו שפּילן גאַמעס.

מיר האבן ניט ווי די קאָמפּיוטער-אָפענטיק ענדזשאַנירז צו פיל אַזוי איינער פון אונדזער באַליבט דאס צו טאָן וואָלט זייַן צו טעלנעט צו די קאַסטן זיי זענען אויף און לויפן X-אויג on them. This would pop up a pair of eyes that followed the mouse around on the screen. You could pop up even more and have literally a dozen or more of the X-eye applications running. Try not to laugh out loud when a hapless engineer is trying to close X-eye after X-eye and muttering under his breath about it 🙂

We also played X-trek on those boxes. צו טאָן וואָס, איר האט צו אָפּלאָדירן די מקור, get various dependencies wherever you could find them and build it. I wasn’t a sophisticated C programmer, but I could read header files. I was looking through these and found directives like "#DEFINE MAX_TORPEDO_DISTANCE 10". I played around with that increase range and power for phases and torpedoes, שייַעך-געבויט עס און דעמאָלט חרובֿ גאַבע דער ווייַטער צייַט מיר געשפילט.

גאַבע איז געווען אויך אַ ריזיק פאָכער פון אַ טעלעוויזיע ווייַזן גערופן בלייק ס 7. I had never seen it, אָבער וואָס האט נישט פאַרמייַדן מיר פון ינסיסטינג אַז דר. Who is the superior show. The arguments would get heated at times 🙂

יינ מאָל, it occurred to me that I could probably guess his UNIX password. I sat down next to him one day and announced in a loud tone, "I’m going to guess your password right now, Gabe." "Yeah, רעכט" was his answer. I then logged in, אריין זייַן באַניצער שייַן, פארקערט צו פּנים אים, טייפּט און האט אויס הויך, "I wonder if it’s B-L-A-K-E-7" ? Touch typing has never paid off as handsomely as it did that day.

ווייַטער וואָך (אָדער באַלד): More computer room antics from college.

צי איר האָבן קיין צו טיילן? Leave a comment or email me and I’ll publish them here.

</עק>

אַבאָנירן צו מיין בלאָג.

טעטשנאָראַטי טאַגס: