Dynamics CRM 4.0 VPC: Fixing the broken Customer and Partner Portals

So you’ve spent a few hours downloading the latest re-released VPC of Microsoft Dynamics CRM 4.0 only to find that the Customer Portal and Partner Portal samples are broken.
For example, when you try to launch the Partner Portal (under xRM Portals in IE favorites bar) you get the following message:
I’m certain Microsoft will post a fix soon but in the mean time I’ve done some digging and found a solution. The portal files are already deployed and you just need to point the IIS applications to the correct folders on your disk.
On your VPC desktop you’ll find a shortcut named “Accelerators”, open it and you’ll find oyur portals.
Open IIS management console.
Right click “Partner Portal” and select Properties.
Under the Home Directory tab paste this path:
Click Apply.
Now do the same for the “Partner Portal” application, the path is: C:\Microsoft Dynamics CRM 4.0\Accelerators\CUSTOMER_PORTAL_RTW_R1\Installation\Website\Customer-Portal-R2\Website
Hope this helps.

So you’ve spent half a day downloading the latest re-released VPC of Microsoft Dynamics CRM 4.0 only to find that the Customer Portal and Partner Portal samples are broken.

For example, when you try to launch the Partner Portal (under xRM Portals in IE favorites bar) you get the following error message:

Server cannot access application directory

I’m certain Microsoft will post a fix soon but in the mean time I’ve done some digging and found a solution. The portal files are already deployed and you just need to point the IIS applications to the correct folders on your disk. On your VPC desktop you’ll find a shortcut named “Accelerators”, open it and you’ll find your portals.

Here are the steps to follow:

1. Open IIS management console.

2. Expand Web Sites, right click Customer Portal and select Properties.

3. Under the Home Directory tab paste this path into the Local path field:

C:\Microsoft Dynamics CRM 4.0\Accelerators\CUSTOMER_PORTAL_RTW_R1\Installation\Website\Customer-Portal-R2\Website

4. Click Apply.

5. Now repeat steps 2-4 for the Partner Portal site. The path is:

C:\Microsoft Dynamics CRM 4.0\Accelerators\PARTNER_PORTAL_RTW_R2.01\Installation\Website\Partner-Portal-R2\Website

Hope this helps.

The operation completed successfully, please tell Microsoft about this problem

I think by now I already installed Visual Studio 2010 Beta 2 at least 4 or 5 times but today was the first time I encountered this message:

Successful Error

In reality, VS2010 installed successfully though there was some failure installing the Silverlight SDK. I would expect this sort of result to be conveyed differently, hopefully this would change for the RTM version.

Still had a good laugh though.

Microsoft Dynamics CRM Developer Toolkit Stores Passwords in Plain Text

If you’re using Dynamics CRM Developer Toolkit it’s worth noting that when you specify a username and password in the Server Connection settings (CRM Explorer Options in Visual Studio) the password is stored in the registry in plain text.

Server Connection settings dialog

The password is stored in the following registry path:

HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\DialogPage\
UKDynamics.CrmExplorer.OptionsPageCustom

Password in plain text

This may not be a big issue for many developers, even when an administrator user is used, since most developers usually know the administrator password or are administrators themselves at least on dev\test environments, but still this is something you should be aware of.

If you’re concerned about this and cannot connect to your CRM server using default credentials, you can simply leave the password field blank and switch to default credentials every time you’re done working with the toolkit. This will clear the password registry key until the next time you wish to connect.

“Share on Friendfeed” Plugin for RSS Bandit

Personally I prefer using RSS readers which come in the form of client applications rather than online services. My favorite for many years was Omea Reader but unfortunately ever since JetBrains stopped working on it and made it open source, the product development is simply stuck. Combined with a few annoying bugs, I am gradually pushed towards looking for a replacement.

I haven’t settled on anything yet but lately I decided to give RSS Bandit another try. So, while working with it I thought it would be nice to add a “Share on Friendfeed” functionality. RSS Bandit supports the IBlogExtension plugin interface, and following Dare Obasanjo’s del.icio.us sample made it very easy to develop a Friendfeed plugin.

The IBlogExtension framework is supported by other RSS aggregators so this plugin may work with other applications but I only tested it with RSS Bandit. Let me know if you successfully use it with other apps.

Download and Installation

Share on Friendfeed Plugin (12Kb)

1. Download and unzip the plugin to RSS Bandit’s plugins directory. The default path is C:\Program Files\RssBandit\plugins .
2. Restart RSS Bandit.

Configuration

1. Right click any RSS feed item and then click “Share on Friendfeed – Configure”.

2. Enter your Friendfeed username and remote key (you can get it here).

3. Check the “Display confirmation” checkbox if you want to see a notification dialog after posting to Friendfeed.

Sharing Items on FriendFeed

1. Right click the feed item you want to share and then click “Share on Friendfeed”.

2. You can edit the URL and title (both are populated automatically from the feed item) and add your comment, before hitting the Post button.

3. If you checked the confirmation box in the configuration dialog, you’ll receive a confirmation message with a link to your newly posted entry.

Disclaimer

This is the very first version of the plugin. It is provided “as is” and under the “works on my machine” terms and conditions. I tested the plugin with RSS Bandit version 1.8.0.870 under Windows XP SP2.

Feel free to comment below or contact me with any feedback.

FriendFeed Images on Amazon S3 – Potential Exploits

It’s been a while, I know. Been busy, still alive, thanks for asking.

Here’s a little test I performed. About two months ago I deleted an entry which had an image attached to it. I noted the URL of the uploaded image (the location where FF stored it on Amazon S3 storage service).

I checked this URL a few hours later, the next day, next week and so on, assuming there’s some sort of garbage collection process that would delete this resource, but the image is still there at the time of writing. I have repeated this test more than once.

This raises a few concerns:

  1. Potential exploit #1 – someone who wants to save on their site’s bandwidth costs can store images on FF at no cost.
  2. Potential exploit #2 – storing files on Amazon S3 costs FF money (currently $0.15 a month per 1GB), so if someone wants to increase FF’s monthly bill they can just dump a lot of large photos there. Not to mention bandwidth costs (think Digg homepage kind of traffic).
  3. An entry you delete might not really be deleted – if FF doesn’t bother deleting these binary resources, one may assume the text is kept as well, which is a bit of a problem if you shared something by mistake and wouldn’t want it popping up in the future.

Of course this could all just be a bug and these images should have been deleted in the first place. I’m just speculating here.

FriendFeed Suggestion: Two Column View

FriendFeed has a very clean design but it doesn’t utilize wide screen real estate. On a 24″ display using 1920×1200 pixel resolution, you can show at least two columns of FF feeds and still have some room to spare.

FriendFeed as seen on a 1920x1200 display

I’m not sure how to balance width vs. scroll. Having two columns can be confusing, and I certainly don’t want to scroll down to read the left column only to scroll up again to read the right one. However I’m sure this screen real estate can be used in some way to enhance my productivity.

Maybe something along the lines of the Pagerization Greasemonkey script, only horizontal? Still thinking about it. In the meantime I’ll just keep scrolling down.

FriendFeed’s Top 250 Most Followed Users

I’m still fine tuning my crawler but below you’ll find the top 250 most followed users as calculated from data collected at the end of June. All previously mentioned limitations still apply. The percentage is calculated against the active public users discovered in this crawl, which is 52137 users (8143 users are private, and the current grand total is 60280).

Terminology

I changed my terminology from “active” to “most followed” as it better describes what this is all about. When I use the term “active” I mean “discoverable”, and it doesn’t matter if a person actually does anything on FF as long as his feed keeps flowing in. If she streams her twitter activity to FF but doesn’t set foot in FF, she will still be picked up by my crawler because her twitter activity contributes to her FF feed.

Margin of error or coverage limitations

Occasionally FF users mention how many followers they have. I tried comparing these numbers with my limited data and it seems to fit well within the estimated 15-20% margin.

For example, take a look at this entry and notice the numbers reported there by Susan Mernit and Jeremiah Owyang. Susan reports 1290 followers, I was able to discover 1055. Jeremiah reports 1979 followers, I was able to discover 1578.

Also, as far as the “big guys” go, I’m sure I’m missing a lot more than 15-20% which is natural given their popularity. There are probably a lot of dormant/inactive users who simply follow Scoble and Arrington without contributing anything to the feed (which makes them non-discoverable by my crawler).

The top 250

So, here is the top 250 list. As you can see, it goes “long tail” pretty fast.

User Followers % of Total
1 scobleizer 9889 18.97%
2 techcrunch 6626 12.71%
3 leolaporte 5240 10.05%
4 jasoncalacanis 5068 9.72%
5 davew 4347 8.34%
6 laughingsquid 3966 7.61%
7 loic 3884 7.45%
8 petecashmore 3277 6.29%
9 bret 3222 6.18%
10 steverubel 3199 6.14%
11 chrisbrogan 3131 6.01%
12 l0ckergn0me 3092 5.93%
13 fredwilson 3090 5.93%
14 paul 2690 5.16%
15 factoryjoe 2582 4.95%
16 thomashawk 2558 4.91%
17 veronicabelmont 2221 4.26%
18 jzawodn 2211 4.24%
19 louisgray 2095 4.02%
20 elatable 2025 3.88%
21 dbfarber 1932 3.71%
22 marshallk 1711 3.28%
23 dsifry 1628 3.12%
24 jeffjarvis 1608 3.08%
25 jowyang 1578 3.03%
26 jessica 1354 2.60%
27 rafe 1294 2.48%
28 brianoberkirch 1278 2.45%
29 kevinrose 1265 2.43%
30 shellen 1239 2.38%
31 kfury 1160 2.22%
32 ambermac 1144 2.19%
33 jeffpulver 1121 2.15%
34 smernit 1055 2.02%
35 waxpancake 1006 1.93%
36 chrisheuer 982 1.88%
37 andrewbaron 973 1.87%
38 bfeld 927 1.78%
39 chris 889 1.71%
40 johnfurrier 852 1.63%
41 davemorin 847 1.62%
42 niniane 837 1.61%
43 joi 835 1.60%
44 ricmac 825 1.58%
45 sanjeev 796 1.53%
46 duncanriley 793 1.52%
47 spin 766 1.47%
48 monstro 762 1.46%
49 erick 758 1.45%
50 chapman 756 1.45%
51 gaberivera 753 1.44%
52 kwerb 746 1.43%
53 keso 744 1.43%
54 daveman692 741 1.42%
55 barackobama 736 1.41%
56 davidhornik 690 1.32%
57 nicolesimon 688 1.32%
58 tomforemski 686 1.32%
59 problogger 669 1.28%
60 davemcclure 669 1.28%
61 sacca 667 1.28%
62 trishussey 660 1.27%
63 eddale 631 1.21%
64 orli 630 1.21%
65 costolo 626 1.20%
66 ana 620 1.19%
67 mparekh 606 1.16%
68 jim 593 1.14%
69 evhead 592 1.14%
70 quixotic 591 1.13%
71 jimturner 590 1.13%
72 kteare 581 1.11%
73 andybeard 579 1.11%
74 stevegarfield 573 1.10%
75 sethgoldstein 567 1.09%
76 mhmazidi 561 1.08%
77 tamar 552 1.06%
78 mathewingram 551 1.06%
79 donlbe 547 1.05%
80 tariqkrim 511 0.98%
81 rohit 511 0.98%
82 gapingvoid 510 0.98%
83 warrenwhitlock 509 0.98%
84 briansolis 509 0.98%
85 parislemon 505 0.97%
86 ijustine 498 0.96%
87 marismith 496 0.95%
88 kanter 490 0.94%
89 stoweboyd 487 0.93%
90 misteroo 484 0.93%
91 sarahintampa 483 0.93%
92 karen 482 0.92%
93 charleneli 482 0.92%
94 dweekly 480 0.92%
95 leahculver 479 0.92%
96 philipp 476 0.91%
97 corvida 473 0.91%
98 cathybrooks 470 0.90%
99 pacificit 466 0.89%
100 bwana 459 0.88%
101 marccanter 457 0.88%
102 patobryan 457 0.88%
103 kamangir 457 0.88%
104 missrogue 455 0.87%
105 tempo 451 0.87%
106 vanderwal 450 0.86%
107 rindawahmhoff 449 0.86%
108 saulklein 439 0.84%
109 cspenn 434 0.83%
110 drewolanoff 431 0.83%
111 msaleem 430 0.82%
112 schlomo 427 0.82%
113 mihai 425 0.82%
114 websuccessdiva 423 0.81%
115 rklau 421 0.81%
116 bgolub 419 0.80%
117 weblaunches 419 0.80%
118 giovanni 415 0.80%
119 domino 414 0.79%
120 emilychang 413 0.79%
121 veen 412 0.79%
122 zadi 410 0.79%
123 iankennedy 408 0.78%
124 staenman 406 0.78%
125 rumford 405 0.78%
126 technosailor 401 0.77%
127 biznickman 400 0.77%
128 labnol 399 0.77%
129 stevegillmor 398 0.76%
130 genuine 398 0.76%
131 doshdosh 391 0.75%
132 engtech 391 0.75%
133 theinfluencer 390 0.75%
134 susanbeebe 387 0.74%
135 katson 382 0.73%
136 dimitrihage 382 0.73%
137 carls 380 0.73%
138 dahowlett 379 0.73%
139 drsuccess 378 0.73%
140 robocallaghan 376 0.72%
141 maryam5063 375 0.72%
142 alireza1356 373 0.72%
143 jaffejuice 370 0.71%
144 vjmario 364 0.70%
145 doughaslam 364 0.70%
146 evernote 363 0.70%
147 andykaufman 362 0.69%
148 rebeccabriggs 361 0.69%
149 bamdadi 359 0.69%
150 bourne 359 0.69%
151 sbooth 354 0.68%
152 howardrheingold 353 0.68%
153 whitecrow 352 0.68%
154 mjesales 352 0.68%
155 rizzn 352 0.68%
156 garyvaynerchuk 352 0.68%
157 williamlong 350 0.67%
158 eldon 349 0.67%
159 hardaway 347 0.67%
160 alexiskold 346 0.66%
161 willpate 346 0.66%
162 justinkan 346 0.66%
163 jerrym 346 0.66%
164 dotben 342 0.66%
165 christinelu 341 0.65%
166 peter 341 0.65%
167 anjrued 341 0.65%
168 mager 340 0.65%
169 danraine 337 0.65%
170 alexdc 336 0.64%
171 dhinchcliffe 335 0.64%
172 jeffnolan 334 0.64%
173 nlbctim 332 0.64%
174 mattcutts 332 0.64%
175 shermanlive 332 0.64%
176 dannysullivan 331 0.63%
177 ryancarson 329 0.63%
178 gartenberg 329 0.63%
179 creativesage 328 0.63%
180 e3r 326 0.63%
181 stevenhodson 321 0.62%
182 artbushkin 320 0.61%
183 mazoox 319 0.61%
184 foadsa 318 0.61%
185 charlieanzman 317 0.61%
186 bhc3 316 0.61%
187 susanbratton 315 0.60%
188 1938media 315 0.60%
189 jjprojects 309 0.59%
190 andycarvin 307 0.59%
191 shey 307 0.59%
192 dsearls 307 0.59%
193 aydin 307 0.59%
194 pmarcablog 307 0.59%
195 shankman 305 0.58%
196 evanwolf 304 0.58%
197 chrisgarrett 303 0.58%
198 alexw 302 0.58%
199 georgesharik 301 0.58%
200 mbites 300 0.58%
201 zefrank 293 0.56%
202 1fathi 293 0.56%
203 vahid 293 0.56%
204 chrisabraham 292 0.56%
205 gregarious 292 0.56%
206 webleon 291 0.56%
207 hunterwalk 290 0.56%
208 geoffliving 290 0.56%
209 rycaut 289 0.55%
210 peiman 288 0.55%
211 sarahcuda 287 0.55%
212 jabancroft 286 0.55%
213 rexhammock 284 0.54%
214 shashib 284 0.54%
215 jasonw22 282 0.54%
216 derek 282 0.54%
217 kashani 282 0.54%
218 kosmar 282 0.54%
219 jasongoldberg 282 0.54%
220 digidave 280 0.54%
221 mommycast 280 0.54%
222 ckieff 280 0.54%
223 davidjhinson 279 0.54%
224 divedi 279 0.54%
225 adamostrow 279 0.54%
226 moniquebriand 278 0.53%
227 philrosenberg 275 0.53%
228 dkaye 275 0.53%
229 sthayden 275 0.53%
230 fenng 273 0.52%
231 vakster 273 0.52%
232 waynesutton 272 0.52%
233 ginger 271 0.52%
234 olegus 271 0.52%
235 kriskrug 270 0.52%
236 sanford 270 0.52%
237 baratunde 269 0.52%
238 kveton 269 0.52%
239 altaide 269 0.52%
240 rohitbhargava 269 0.52%
241 aglick35 268 0.51%
242 davidberkowitz 267 0.51%
243 benyoskovitz 267 0.51%
244 maryamsharif 267 0.51%
245 tomraftery 267 0.51%
246 mspeiser 265 0.51%
247 andybeal 265 0.51%
248 cherylwhite 264 0.51%
249 mikejones 264 0.51%
250 ontarioemperor 264 0.51%