بایگانی ماهانه: ژانویه 2008

آمار وبلاگ

I thought some people might be interested in my blog’s statistics. You can use mine as a benchmark to compare your own.

I’m running my blog on windows live spaces. They collect stats for me and I don’t know any way to control that. It’s good as far as it goes, but it’s fairly limited in that I can’t do much actual analysis with it. I’d love, مثلا, to be able to generate a listing of my most frequently hit posts but I can’t do that without a prohibitive manual process. If someone knows better, لطفا به من بگویید.

وضعیت فضاهای زنده به من بگویید: کل بازدید روز, total hits for the week and total hits since day zero. It also tells me what people did to get to my blog (e.g. گوگل, MSDN لینک انجمن, غیره).

در برخی از راه, a "hit" آشکار است. اگر شما در حال خواندن این جمله در حال حاضر, تو تقریبا قطعا به عنوان یک ضربه واحد ثبت نام.

RSS is a little confusing. On one hand, I see individual RSS hits all day long. اما, I also see RSS "sweeps". A sweep is when I see 20 یا 30 RSS hits all within a one or two second window. I assume these are automated things like google checking in on my site, مرورگرهای مردم شاید دیگر … مطمئن نیست. They are definitely some kind of automated process. I cannot tell, اما, how many of my total hits are automated and how many have an actual human on the other side. I would guess at least 100 بازدید کننده در هر روز خودکار.

در به اعداد!

من وبلاگ من برای اولین بار در ژوئیه 27 نوشت, 2007.

من تقریبا نوشته شده است 60 نوشته های وبلاگ از آن زمان به بعد, بیش از 50 که از آن به طور مستقیم به شیرپوینت.

شروع کردم به پیگیری از بازدیدها از من در قالب یک صفحه گسترده (spreadsheet) به صورت روزانه در پایان ماه سپتامبر.

شروع ماهانه:

هفته اول: مجموع بازدید ها
اکتبر 1,234
نوامبر 2,162
دسامبر 3,071
ژانویه 2008 4,253

تعداد ماه

ماه مجموع بازدید ها
اکتبر 6,620
نوامبر 11,110
دسامبر 13,138

علائم آب بالا

نوع مجموع بازدید ها
بهترین روز 958
بهترین هفته 4,253
کل بازدیدها از روز صفر 42,438

من علاقه مند هستم در دیگران’ stats. If you care to share yours in the comments, لطفا!

</پایان>

برچسب ها:

یکشنبه صبح با مزه: “آره, آره, آره. اه, اه, اه.”

حدود شش سال پیش, my four-year-old son and I were upstairs watching a Discovery channel "shark attacks" ویژه (احتمالا این یکی). He was very young at the point and I was always worried what he might see on a show like this and how he might take it. I didn’t want him to develop, مثلا, any special fears of the water or blab something inappropriate to his friends and possibly cause his baby friend network to come crashing down.

Discovery handles these kinds of subjects very well. It’s not about creating a fear of something, but rather to show how unusual it is for sharks to attack humans.

پس, we’re watching it and there is this one particularly scary attack involving a small girl. As Discovery is building the drama of the attack, my son (who has always been extremely jumpy anyway), is getting very excited. I make some noises about how unusual it is for sharks to attack people, and how bad the poor girl must feel. I’m trying to explain that people recover from these events and become stronger for it. اما, I had misinterpreted his excitement. He was not worried about the girl at all. در عوض, while clapping his hands, he tells me, "The sharks love it! It’s terrific. It’s wonderful. Its a DREAM COME TRUE!"

I thought this was hilarious, but also very disturbing. On the one hand, I was glad — even a little proud — that he could have strong empathic feelings, cross-species though they may be. As humans, we need to develop our "empathic muscles" so speak or you’ll end up like this guy 🙂 On the other hand, he was feeling cross-species empathy toward a species who was exhibiting behavior inimical to his own. I was really struggling with this when the narrator used the word "paradigm". My son picked up on that and asked me what that meant.

That’s not such an easy word to describe to a four year old, but I gave it a try. When I think of the word "paradigm", Thomas Kuhn is never far from my thoughts. I read The Structure of Scientific Revolutions back at Lafayette and for better or for worse, the word "paradigm" is pregnant with extra meaning for me. (Sort of like the word "contact" after hearing a Movie Phone voice tell me where I could see that movie [I thought the book was better]; I always say to myself, "CONTACT!" whenever I see or hear someone say "contact").

به هر حال, I’m trying to explain to him a Kuhnian definition, that it’s "a historical movement of thought" and that it’s a "way of thinking with a number of built-in assumptions that are hard to escape for people living at that time." البته, you can’t talk like to a four-year old, so I’m trying to successively define it to smaller pieces and feeling rather proud of myself as I do so. (I just knew that someone outside of college would care that I had read Kuhn!).

I’m just warming to the task when he interrupts me. Waving his hand in my general direction and never taking his eyes off another brutal shark attack, he just says, "Yeah, آره, آره. اه, اه, blah.".

So much for that 🙂

At that point, I decided to run away, rhetorically speaking, sit back, and enjoy watching sharks attack humans with my son.

</پایان>

برچسب ها:

تغییر نمایش بر اساس شناسه کاربر در فرم InfoPath

ما یک فرم InfoPath ایجاد شده بود با نمایش های مختلف برای حمایت از یک استخدام جدید / on-boarding process. When the company hires a new person, بخش فناوری اطلاعات و گروه های دیگر نیاز به اقدام (تنظیم حقوق و دستمزد, دسترسی به برنامه های کاربردی مناسب را فعال کنید, قرار دادن یک میز, غیره). We use on form but a different view of the form for each of those functions.

At this company, most of the people involved in the business process are IT-savvy, so when they access the form, their default view is a "menu" view with buttons that direct them to their specific function. اما, we needed to simplify things for the new hire’s direct manager. This person should not see any of the IT related stuff. در واقع, she should see just one view of the form and not even have an option to see the other views.

In our case, that direct manager’s account is directly tied to the form courtesy of a contact selector (which I am always wanting to call a "people picker" for some reason).

The steps are as follows:

1. In design mode, go to Tools -> گزینه های فرم -> Open and Save.

2. Select "rules".

3. Create a new rule whose action is "switch to view" and whose condition leverages the userName() تابع.

userName() returns the "simple" user name without the domain. If I log into SharePoint with credentials "domain\pagalvin", userName() returns "pagalvin".

The contact selector provides three bits of information for a contact. The "AccountID" portion is most useful for this scenario. The only thing that makes this even a little bit of challenge is that the contact selector (in my environment anyway) returns the domain and user ID, as in "domain\pagalvin". This prevents us from doing a straight-forward equality condition since AccountID ("domain\pagalvin") will never equal userName() ("pagalvin").

We can get around this using the "contains" operator: AccountID contains userName().

We can take it further and pre-pend a hard-coded domain in front of the userName() function to get our equality check and eliminate the risk of a false positive on the contains operator.

We would have REALLY like to automatically switch view for other users based on their AD security group membership. مثلا, when a member of the "IT Analytics" group accesses the form, automatically switch to the IT Analytics view. We didn’t have time to implement it, but my first thought is to create a web service that would have a method like "IsMemberOfActiveDirectorySecurityGroup", pass it the userName() and return back true or false. Does anyone have any other, more clever idea? Is there any SharePoint function we can leverage from InfoPath to make that determination?

</پایان>

برچسب ها:

به طور تصادفی با اضافه کردن کد به فرم InfoPath; عمدا از بین بردن آن

در هنگام کار با دکمه های فرم, we often add rules. You access the rules editor from the properties of the button.

وقتی که با کلیک در اطراف سرعت, it’s easy to accidentally click on "Edit Form Code" instead of "Rules …".

اولین بار من این را, I canceled out of the code editor. اما, زمانی که من سعی کردم به انتشار فرم در حالی که کمی بعد, it required that I publish as an "Administrator-approved form template (پیشرفته)". I didn’t actually do any programming and I absolutely didn’t want to go through an unnecessary approval process. I was in a bit of panic at the time due to time constraints. To get past it, I simply restored a previous backup and continued. I had recently seen some blog posts about people going into the form’s XML to tweak things and I was afraid I would have to do something similar.

امروز, I did it again. این بار, من زمان کمی بیشتر در دست من بود و متوجه شد که شما به راحتی می توانید این کار را لغو.

رفتن به:

ابزار -> گزینه های فرم -> برنامه نویسی: "Remove Code"

این کار بسیار ساده تر از آن.

</پایان>

برچسب ها: ,

حداقل امنیت مورد نیاز برای فرم های InfoPath

I needed to meet a security requirement for an InfoPath form today. In this business situation, a relatively small number of individuals are allowed to create a new InfoPath form and a much wider audience are allowed to edit it. (این است جدید استخدام در شبانه روزی مورد استفاده توسط منابع انسانی است که راه اندازی یک گردش کار).

برای رسیدن به این هدف, ایجاد دو سطح اجازه جدید ("create and update" and "update only"), broke inheritance for the form library and assigned permissions to a "create, به روز رسانی" user and a separate "update only" کاربر. The mechanics all worked, but it turned out to be a little more involving than I expected. (اگر شما احساس می کنید کمی لرزان مجوز شیرپوینت, چک کردن این پست وبلاگ). The required security configuration for the permission level was not the obvious set of granular permissions. To create an update-only permission level for an InfoPath form, من زیر:

  1. ایجاد یک سطح اجازه جدید.
  2. پاک کردن دور همه گزینه ها.
  3. Selected only the following from "List permissions":
    • ویرایش آیتم ها
    • نمایش آیتم ها
    • مشاهده صفحات کاربرد

انتخاب این گزینه به کاربر اجازه می دهد برای به روز رسانی یک فرم, اما آن را ایجاد کنید.

The trick was to enable the "View Application Pages". There isn’t any verbage on the permission level that indicates that’s required for update-only InfoPath forms, اما معلوم آن است.

Create-and-Update was even stranger. I followed the same steps, 1 از طریق 3 بالاتر. I had to specifically add a "Site Permission" انتخاب: "Use client integration features". دوباره, شرح وجود دارد باعث نمی شود آن را به نظر می رسد مانند آن را باید به فرم InfoPath است لازم باشد, اما وجود دارد آن است.

</پایان>

که “میانجی” احساس; مشاهدات در شیرپوینت مشاور

متاسفانه, phase one of my last project has come to a close and the client has opted to move ahead by themselves on phase two. We did our job too well, as usual 🙂 I’m now between projects, یک زمان خاص برای مشاوران کارکنان مثل خودم (as opposed to independents who must normally live in perpetual fear of in-between time 🙂 ). We staff consultants fill this time in various ways: Working with sales folk to write proposals; filling in for someone or backing up a person on this or that odd job; studying; وبلاگ نویسی :). It’s hard to plan more than a few days in advance. At times like this, while I have a bit of time on my hands, I like to reflect.

I’m almost always sad to leave a client’s campus for the last time. We consultants form a peculiar kind of relationship with our clients, unlike your typical co-worker relationship. There’s the money angle — everyone knows the consultant’s rate is double/triple or even more than the client staff. You’re a known temporary person. As a consultant, you’re a permanent outsider with a more or less known departure date. هنوز, you eat lunch with the client, take them out to dinner and/or for drinks, buy cookies for the team, go on coffee runs, give/receive holiday cards — all the kinds of things that co-workers do. On one hand, you’re the adult in the room. You’re an expert in the technology which puts you in a superior position. از طرف دیگر, you’re a baby. On day zero, consultants don’t know the names, the places or the client’s lingo. Most times, consultants never learn it all.

When things go well, you become very well integrated with the client’s project team. They treat you like a co-worker in one sense, and confidant in another. Since we don’t have a manager-style reporting relationship with the client, the project team often feels a little free to air their dirty laundry. They let their barriers down and can put the consultant into an awkward position, never realizing they are doing it.

Consultants often don’t get to implement phase two and that never gets easy for me. I think this is especially hard with SharePoint. Phase one of of your typical SharePoint project covers setup/configuration, governance, taxonomy, basic content types, غیره. and in many respects, amounts to a lengthy, extremely detailed discovery. That’s how I view my last project. We did all the basic stuff as well as execute some nice mini-POC’s by extending CQWP, implementing BDC connections to PeopleSoft, introduced a fairly complex workflow with SharePoint Designer, touched on basic KPI’s and more. A proper phase two would extend all of that with extensive, almost pervasive BDC, really nice workflow, fine tuned and better search, records center, excel services and probably most important, reaching out to other business units. اما, it’s not to be for me, and that’s sad.

Based on this recent experience, I think it’s fair to say that a proper enterprise SharePoint implementation is a one year process. It could probably legitimately run two years before reaching a point of diminishing returns. Details matter, البته.

That’s the consultant’s life and all of these little complaints are even worse in a SharePoint engagement. As I’ve written before, SharePoint’s horizontal nature brings you into contact with a wide array of people and business units. When you’re working with so many people, you can see so many ways that SharePoint can help the company become more efficient, save time, do things better… but you don’t always get to do them.

I often look back to my first job out of college, before starting a consulting career 1995. We did get to do a phase two and even a phase three. Those were nice times. On the downside, اما, that means that that would mean a lot of routine stuff too. Managing site security. Tweaking content types. Creating views and changing views. Dealing with IE security settings. Restoring lost documents. Blech! 🙂

Despite my melancholy mood, I can’t imagine a place I’d rather be (except at a warm beach with a goodly supply of spirits).

I can’t wait to get started implemented the next enterprise SharePoint project.

(Apropos of nothing, I wrote most of this blog entry on an NJ Transit bus. I don’t think I made any friends, but one CAN blog on the bus 🙂 )

</پایان>

یکشنبه های خنده دار: “نه آنها که بد”

برگشت نزدیک 1999, من صرف بسیاری از هفته در سانتا باربارا, CA, کار برای یک مشتری, leaving my poor wife back here in New Jersey alone. I dearly love my wife. I love her just as much today as I did when she foolishly married me 1,000 years or so ago. جایی در امتداد خط, I coined a phrase, "special fear", as in "Samantha has special fears." She as a special fear of "bugs", which to her are not flies or ladybugs, but rather microbes. She’s afraid of this or that virus or unusual bacteria afflicting our son, or me, but never really herself. (She is also specially afraid of vampires, miniature evil dolls (especially clowns) and submarine accidents; she has out-grown her special fear of people dressed in Santa Claus outfits).

یک روز, my co-worker and I decided to drive up into the nearby mountains near Ohai. At one point, we got out of the car to take in the scene. When we got back into the car, I noticed that a tick was on my shoulder. I flicked out the window and that was it.

That night, I told her about our drive and mentioned the tick. The conversation went something like this:

S: "Oooo! Those are bad. They carry diseases."

P: "Well, I flicked it out the window."

S: "They are really bad though. They can get under your skin and suck blood and transfer bugs. You better check your hair and make sure there aren’t any in your head!"

P: In a loud voice: "My God! CAN THEY TAKE OVER YOUR MIND???"

S: Literally reassuring me: "No, they’re not THAT bad."

</پایان>

برچسب ها:

دسترسی سریع و آسان: فرم InfoPath به طور خودکار باز از شیرپوینت طراح ایمیل

تکمیلی: Madjur Ahuja از این لینک از یک بحث گروه خبری: http://msdn2.microsoft.com/en-us/library/ms772417.aspx. It’s pretty definitive.

=

We often want to embed hyperlinks to InfoPath forms in emails sent from SharePoint Designer workflows. When users receive these emails, آنها می توانند بر روی لینک ایمیل کلیک کنید و به طور مستقیم به فرم InfoPath.

این هیولا URL ساخت و ساز کار می کند برای من:

HTTP://server/sites/departments/Technical Services/InformationTechnology/HelpDesk/_layouts/FormServer.aspx?XmlLocation=/sites/departments/Technical Services/InformationTechnology/HelpDesk/REC REM RED Forms/REC2007-12-18T11_33_48.XML&Source=http://server.corp.domain.com/sites/departments/Technical%20Services/InformationTechnology/HelpDesk/REC%20REM%20RED%20Forms/Forms/AllItems.aspx&DefaultItemOpen = 1

به جای متن قرمز ضخیم با نام از فرم, همانطور که در تصویر زیر نشان داده شده است:

تصویر

توجه داشته باشید که بسیاری از مسیر hard-coded بودن در این آدرس وجود دارد, as well as a URL-encoded component. If this is too hard to translate to your specific situation, try turning on alerts for the form library. Post a form and when you get the email, مشاهده منبع از ارسال ایمیل و شما همه چیز شما نیاز دارید که شامل خواهید دید.

Astute readers may notice that the above email body also shows a link that directly accesses the task via a filtered view. I plan to explain that in greater detail in a future post.

</پایان>