tag:blogger.com,1999:blog-23712046917943986042024-02-20T00:30:28.032-08:00Dev's Little HelpersSmart tips for everyday developers.Link Tanghttp://www.blogger.com/profile/17433202442196899988noreply@blogger.comBlogger33125tag:blogger.com,1999:blog-2371204691794398604.post-13419997767113587412012-09-13T20:03:00.001-07:002012-09-13T20:03:19.543-07:00Windows XP Rename ToolIn the stone ages, on Windows XP, if you try to rename something like BerlinXYZ.rdl to SydXYZ.rdl, using command prompt:<br />
rename Berlin* Syd*<br />
<br />
it will not work since it will rename the files to SydlinXYZ.rdl<br />
<br />
Where it has some junk characters after the Syd prefix.<br />
<br />
A very nice free renaming tool without install is called:<br />
Lupas Rename 2000<br />
<br />
*Comand prompt's rename will work properly if you're on Windows 7.Link Tanghttp://www.blogger.com/profile/17433202442196899988noreply@blogger.com0tag:blogger.com,1999:blog-2371204691794398604.post-51479785356095985112012-03-27T17:37:00.000-07:002012-03-27T17:37:01.089-07:00Salesforce Data ToolsHere's a list of tools when working with Salesforce data, ie importing/exporting data<br />
<a href="http://ezrakenigsberg.com/">http://ezrakenigsberg.com/</a><br />
<br />
Here's a few tools for dealing with 15 to 18 digits salesforce IDs<br />
<a href="https://docs.google.com/spreadsheet/ccc?pli=1&key=0Ar3Bg2QuV-_IdEtzSXBrWTZiNUZxRlRoV0tYM3RoZ2c&hl=en#gid=0">https://docs.google.com/spreadsheet/ccc?pli=1&key=0Ar3Bg2QuV-_IdEtzSXBrWTZiNUZxRlRoV0tYM3RoZ2c&hl=en#gid=0</a>Link Tanghttp://www.blogger.com/profile/17433202442196899988noreply@blogger.com0tag:blogger.com,1999:blog-2371204691794398604.post-76643574279307384102012-03-27T17:19:00.005-07:002012-03-27T17:33:51.235-07:00Choosing the Appropriate Raid Level for Your NeedHere's an article that will help you choose a Raid level that's suitable for your needs.<br />
<a href="http://www.techrepublic.com/blog/datacenter/choose-a-raid-level-that-works-for-you/3237">http://www.techrepublic.com/blog/datacenter/choose-a-raid-level-that-works-for-you/3237</a><br />
<br />
For large SATA drives, consider Raid 6 or 10 to avoid losing a lot of data. However, Raid 5 has better performance.<br />
<br />
Another solution is Raid 5 with synchronise mirroring<br />
<br />
Things to consider includes:<br />
Costs/Capacity Available<br />
Read/Write Performance<br />
Redundancy/Availability<br />
<br />
<br />
<br />
<h1 class="h s-1 space-2" style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #37414b; font-family: 'Helvetica Neue', Helvetica, sans-serif; font-size: 3.14em !important; font-weight: normal; line-height: 1.07em; margin-bottom: 20px !important; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">Choose a RAID level that works for you</h1><div class="content-1 entry space-1 clear" style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #37414b; font-family: 'Helvetica Neue', Helvetica, sans-serif; font-size: 14px; line-height: 19px; margin-bottom: 10px !important; margin-left: 0px; margin-right: 0px; margin-top: 0px; overflow-x: hidden; overflow-y: hidden; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><div class="byline space-1 s-11 c-4" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #778596; font-family: inherit; font-size: 0.93em !important; font-style: inherit; line-height: 1.43em; margin-bottom: 10px !important; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><div class="author" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">By <a href="http://www.techrepublic.com/search?q=scott+lowe" rel="author" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #003399; cursor: pointer; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;">Scott Lowe</a></div><div class="date" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">October 11, 2010, 6:20 AM PDT</div></div><div class="c-4 space-1 takeaway" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #778596; font-family: inherit; font-style: inherit; margin-bottom: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><span class="c-6 heavy" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #8cbd5b; font-family: inherit; font-style: inherit; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">Takeaway: </span>When choosing a RAID level for a new array, there are a number of important points that you need to take into consideration. Scott Lowe outlines these points.</div><article><div style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">In four recent TechRepublic blogs, we extolled the good and the bad about various RAID levels. From me, you learned about <a href="http://blogs.techrepublic.com.com/datacenter/?p=2822" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #003399; cursor: pointer; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;" target="_blank">why I really like RAID 50</a> in a number of circumstances, <a href="http://blogs.techrepublic.com.com/datacenter/?p=2892" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #003399; cursor: pointer; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;" target="_blank">why RAID 60 may or may not be overkill</a>, and <a href="http://blogs.techrepublic.com.com/datacenter/?p=2689" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #003399; cursor: pointer; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;" target="_blank">why RAID 10 might be a better choice than RAID 6</a> even though it’s more expensive. My fellow TechRepublic contributor Rick Vanover shared some <a href="http://blogs.techrepublic.com.com/datacenter/?p=2645" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #003399; cursor: pointer; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;" target="_blank">pointers on when to choose RAID 5 and when to choose RAID 6</a>.</div><h2 style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 1.43em; font-style: inherit; line-height: 1.23em; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">RAID level considerations</h2><div style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">When choosing a RAID level for a new array, there are a number of important points that you need to take into consideration, including:</div><ul class="unIndentedList" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 15px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 20px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><strong>Application performance needs.</strong> Not every application is created equal. Some applications are light on I/O needs, while others thrash the storage system all day long. Make sure you choose a RAID level that matches the workload.</li>
<li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><strong>Capacity needs.</strong> Different RAID levels all result in different amounts of net usable space remaining after accounting for RAID overhead. If capacity is your primary driver, that will affect your choice of RAID.</li>
<li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><strong>Cost.</strong> Performance costs money, and capacity costs money — achieving the necessary balance between cost and performance is your job. Choosing the right RAID level can play a big part in achieving this balance.</li>
<li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><strong>Availability needs.</strong> Every business is different. Perhaps your business is willing to pay a little more to ensure less downtime than another business. In these cases, you need to pick a RAID level that matches the system’s availability needs demanded by your organization.</li>
</ul><h2 style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 1.43em; font-style: inherit; line-height: 1.23em; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">The balance</h2><div style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">Let’s look at each of these considerations and consider how various RAID levels meet the objectives for each point raised. We’re going to stick with relatively common RAID levels.</div><div style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">You’ll notice that I placed an asterisk next to two entries in each category below; the asterisks denote the “winners” in each category. You’ll also notice that RAID 0 “wins” a lot; however, I would never recommend RAID 0 for production use.</div><div style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><strong>Application performance</strong></div><ul class="unIndentedList" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 15px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 20px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><strong>* RAID 0.</strong> From a performance perspective, RAID 0 beats the rest since there is no RAID overhead, and the disk system is able to aggregate all of the disks into a single, high performance storage pool.</li>
<li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><strong>* RAID 1/10.</strong> In most cases, RAID 10 provides excellent performance since data can be read from multiple disks at the same time, suffering a little only when the workload calls for a whole lot of small sequential writes. For general raw performance for pretty much any kind of workload, RAID 1 and 10 are excellent choices. RAID 1 by itself is a two disk system that doesn’t get a huge performance boost, but it wouldn’t likely be used in a large array, anyway.</li>
<li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><strong>RAID 5/50.</strong> For heavy read workloads, RAID 5/50 provide very good performance. However, on heavy write workloads, RAID 5/50’s need to write parity information begins to noticeably affect overall storage performance. In a rebuild situation, RAID 5/50 can suffer a heavy performance hit until the rebuild operation completes.</li>
<li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><strong>RAID 6/60.</strong> Like other RAID levels, read performance under RAID 6 is very good, but write performance takes an even bigger hit than it does with RAID 5 due to dual parity write needs. Rebuild operations can have a major performance impact.</li>
</ul><div style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><strong>Capacity</strong></div><ul class="unIndentedList" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 15px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 20px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><strong>* RAID 0.</strong> Since no parity information is stored and there is no mirroring, RAID 0 provides excellent capacity. You get full use of all of the disks in the array — 100% utilization.</li>
<li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><strong>RAID 1/10.</strong> With RAID 1/10, you take a full 50% capacity hit due to the need to retain a mirrored copy of the data. RAID 1/10 carry the largest capacity penalty, but this is often offset by its very good read/write performance.</li>
<li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><strong>* RAID 5/50.</strong> One reason RAID 5 remains so popular is because of its capacity overhead, which results in the loss of only one disk worth of capacity. Under RAID 5/50, you will lose up to 33% of total raw capacity (three disk RAID 5 configuration), depending on how you create your volumes.</li>
<li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><strong>RAID 6/60.</strong> RAID 6 is growing in popularity, but it carries greater capacity overhead than RAID 5. With RAID 6, two disks worth of space is required for parity, so you take a capacity hit of up to 50% (four disk RAID 6 configuration).</li>
</ul><div style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><strong>Cost</strong></div><ul class="unIndentedList" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 15px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 20px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><strong>* RAID 0.</strong> From a capacity and a performance standpoint, RAID 0 carries by far the lowest price tag. With no RAID overhead and maximized performance, the $/TB or $/IOPS metrics are fantastic under RAID 0.</li>
<li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><strong>RAID 1/10.</strong> From a capacity perspective, RAID 1/10 carries a hefty cost, but from a performance perspective, it’s only a little worse than RAID 0. Although you lose 50% of your usable space under RAID 1/10, you retain high performance levels, making this RAID level very popular for a variety of uses.</li>
<li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><strong>* RAID 5/50.</strong> RAID 5/50 has become an almost de facto standard when one needs to add RAID and doesn’t really care about the characteristics. All RAID controllers support RAID 5, and the RAID 5 capacity overhead isn’t too bad, especially as more disks are added to the array. From a performance perspective, you do lose a lot of IOPS on write workloads, making RAID 5 a bit more expensive than RAID 0, 1, and 10 when it comes to supporting write workloads.</li>
<li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><strong>RAID 6/60.</strong> Expensive in every way, RAID 6 can result in capacity overhead matching RAID 1/10 (50%), and it also carries a hefty write penalty — it’s even worse than RAID 6.</li>
</ul><div style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><strong>Availability</strong></div><ul class="unIndentedList" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 15px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 20px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><strong>RAID 0.</strong> On the availability front, RAID “zero” lives up to its name. It shouldn’t even be called RAID; it’s really just a bunch of disks (JBOD). If <em style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">any </em>disk in the array fails, you can kiss your data goodbye. Although RAID 0 provides great performance and maximum capacity, it includes zero data protection capability.</li>
<li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><strong>* RAID 1/10.</strong> RAID 1/10 - mirroring - is a highly available configuration. All data are written to two disks in the array, so you can lose multiple disks — as long as you lose the “right” ones — and remain functional on a single copy of the data.</li>
<li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><strong>RAID 5/50.</strong> RAID 5 provides reasonable availability and is often enough for many organizations. With RAID 5, your array can lose a single disk and remain functional, although in a degraded state. If you lose a second disk, your data is gone. RAID 50 provides a little more protection. Each individual RAID 5 subarray in the RAID 50 can lose a single disk and remain functional. In theory, you could lose a single disk in each and every subarray and remain functional.</li>
<li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><strong>* RAID 6/60.</strong> RAID 6/60 provide very high levels of availability since you can lose two disks in each RAID 6 array and remain functional.</li>
</ul><h2 style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 1.43em; font-style: inherit; line-height: 1.23em; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">My take</h2><div style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">If you really don’t know what RAID level to choose, go with RAID 50 if capacity is more important than performance (unless you’re talking mostly sequential reads, in which case RAID 50 is awesome) or RAID 10 if both random and sequential read/write performance trumps capacity. If data protection is your primary concern, RAID 6/60 should be at the top of your list.</div></article></div>Link Tanghttp://www.blogger.com/profile/17433202442196899988noreply@blogger.com0tag:blogger.com,1999:blog-2371204691794398604.post-74742694204965662292012-03-11T23:21:00.000-07:002012-03-11T23:21:52.430-07:00Getting Salesforce Data from External AppSalesforce encourages developers to authenticate using OAuth.<br />
<br />
However, if you are creating a windows service to get data from SF, you'll need to choose the username/password flow.<br />
<a href="https://ap1.salesforce.com/help/doc/en/remoteaccess_oauth_username_password_flow.htm">https://ap1.salesforce.com/help/doc/en/remoteaccess_oauth_username_password_flow.htm</a> <br />
<br />
The Steps include:<br />
1) Add new application via Setup -> Develop -> Remote Access<br />
Under this method, the callback URL will not be used.<br />
<br />
2) Perform a POST request<br />
To get the authentication token:<br />
<br />
<br />
https://login.salesforce.com/services/oauth2/token?grant_type=password&client_id=3MVG9lKcPoNINVBIPJjdw1J9LLM82Hn<br />
FVVX19KY1uA5mu0QqEWhqKpoW3svG3XHrXDiCQjK1mdgAvhCscA9GE&client_secret=1955279925675241571&username=username@salesforceInstance.com&password=SFpassword<br />
<br />
3) Parse return JSON and get access_token<br />
<br />
{"id":"https://login.salesforce.com/id/00Dx0000000BV7z/005x00000012Q9P",<br />
"issued_at":"1278448832702","instance_url":"https://na1.salesforce.com",<br />
"signature":"0CmxinZir53Yex7nE0TD+zMpvIWYGb/bdJh6XfOH6EQ=","access_token":<br />
"00Dx0000000BV7z!AR8AQAxo9UfVkh8AlV0Gomt9Czx9LjHnSSpwBMmbRcgKFmxOtvxjTrKW1<br />
9ye6PE3Ds1eQz3z8jr3W7_VbWmEu4Q8TVGSTHxs"}<br />
<br />
4) Perform a GET request<br />
<br />
https://ap1.salesforce.com/services/data/v20.0/sobjects/Account/0019000000B8JxR?fields=AccountNumber,BillingPostalCode<br />
<br />
User-Agent: Fiddler<br />
Authorization: OAuth access_token<br />
Host: ap1.salesforce.comLink Tanghttp://www.blogger.com/profile/17433202442196899988noreply@blogger.com1tag:blogger.com,1999:blog-2371204691794398604.post-90488474980618838592012-02-27T21:37:00.002-08:002012-02-27T21:37:46.568-08:00Salesforce Converting 15digits ID to 18 digits ID via Formula<span style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;">Sometimes you'll need to convert the 15 digits ID to 18 digits for external programs to compare IDs.</span><br />
<span style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;"><br />
</span><br />
<span style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;">ExistingFifteenDigitsId </span><br style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;">& MID("ABCDEFGHIJKLMNOPQRSTUVWXYZ012345",( </span><br style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;">IF(FIND(MID(audit_survey__r.audit__r.Id,1,1), "ABCDEFGHIJKLMNOPQRSTUVWXYZ")>0,1,0) </span><br style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;">+IF(FIND(MID(audit_survey__r.audit__r.Id,2,1), "ABCDEFGHIJKLMNOPQRSTUVWXYZ")>0,2,0) </span><br style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;">+IF(FIND(MID(audit_survey__r.audit__r.Id,3,1), "ABCDEFGHIJKLMNOPQRSTUVWXYZ")>0,4,0) </span><br style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;">+IF(FIND(MID(audit_survey__r.audit__r.Id,4,1), "ABCDEFGHIJKLMNOPQRSTUVWXYZ")>0,8,0) </span><br style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;">+IF(FIND(MID(audit_survey__r.audit__r.Id,5,1), "ABCDEFGHIJKLMNOPQRSTUVWXYZ")>0,16,0) </span><br style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;">)+1,1) </span><br style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;">& MID("ABCDEFGHIJKLMNOPQRSTUVWXYZ012345",( </span><br style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;">IF(FIND(MID(audit_survey__r.audit__r.Id,6,1), "ABCDEFGHIJKLMNOPQRSTUVWXYZ")>0,1,0) </span><br style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;">+IF(FIND(MID(audit_survey__r.audit__r.Id,7,1), "ABCDEFGHIJKLMNOPQRSTUVWXYZ")>0,2,0) </span><br style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;">+IF(FIND(MID(audit_survey__r.audit__r.Id,8,1), "ABCDEFGHIJKLMNOPQRSTUVWXYZ")>0,4,0) </span><br style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;">+IF(FIND(MID(audit_survey__r.audit__r.Id,9,1), "ABCDEFGHIJKLMNOPQRSTUVWXYZ")>0,8,0) </span><br style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;">+IF(FIND(MID(audit_survey__r.audit__r.Id,10,1), "ABCDEFGHIJKLMNOPQRSTUVWXYZ")>0,16,0) </span><br style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;">)+1,1) </span><br style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;">& MID("ABCDEFGHIJKLMNOPQRSTUVWXYZ012345",( </span><br style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;">IF(FIND(MID(audit_survey__r.audit__r.Id,11,1), "ABCDEFGHIJKLMNOPQRSTUVWXYZ")>0,1,0) </span><br style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;">+IF(FIND(MID(audit_survey__r.audit__r.Id,12,1), "ABCDEFGHIJKLMNOPQRSTUVWXYZ")>0,2,0) </span><br style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;">+IF(FIND(MID(audit_survey__r.audit__r.Id,13,1), "ABCDEFGHIJKLMNOPQRSTUVWXYZ")>0,4,0) </span><br style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;">+IF(FIND(MID(audit_survey__r.audit__r.Id,14,1), "ABCDEFGHIJKLMNOPQRSTUVWXYZ")>0,8,0) </span><br style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;">+IF(FIND(MID(audit_survey__r.audit__r.Id,15,1), "ABCDEFGHIJKLMNOPQRSTUVWXYZ")>0,16,0) </span><br style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;">)+1,1)</span>Link Tanghttp://www.blogger.com/profile/17433202442196899988noreply@blogger.com0tag:blogger.com,1999:blog-2371204691794398604.post-70019184452055209912012-02-21T19:48:00.002-08:002012-02-21T19:48:44.690-08:00Creating your Own Dropbox ServerSince hard drive space is relatively cheap these days, and if you have a server running 24/7, you can consider the following file sync software to create one/two/n-way sync.<br />
<br />
Syncrify - uses "rsync" to copy data. Useful if file versioning is not required(only in paid version and is fairly expensive).<br />
Delta copy - ditto<br />
Allway Sync - free but only support folders available in the file system (no native http/ftp support)<br />
Good Sync - Not free for >100 files, but support file versioning and have native http/ftp support.Link Tanghttp://www.blogger.com/profile/17433202442196899988noreply@blogger.com0tag:blogger.com,1999:blog-2371204691794398604.post-60259828729525192122012-02-14T12:37:00.000-08:002012-02-14T12:37:54.073-08:00Assembla SVNIf you are familiar with SVN, you can have 1GB of repository space on Assembla with unlimited users for FREE. This is perfect for most homebrew projects.Link Tanghttp://www.blogger.com/profile/17433202442196899988noreply@blogger.com0tag:blogger.com,1999:blog-2371204691794398604.post-87153156829833220682012-01-03T21:15:00.000-08:002012-01-03T21:16:58.059-08:00Remote Desktop to Your Home Computer Behind a Corporate FirewallMost corporate firewalls will ban websites such as logmein. However, they usually won't ban your home URL or your static internet IP address provided by your ISP.<br />
<br />
Scenario 1 - Basic Firewall with Non-Restricted Access over HTTPS<br />
For smaller enterprises, they might allow unrestricted outbound access over port 443. If this is the case, setup your home router to accept port 443(HTTPS) and redirect that to your local PC on port 3389(RDP).<br />
<br />
Scenario 2 - Via Citrix XenDesktop<br />
Citrix's XenDesktop Express is free and allow up to four concurrent users to connect to four remote desktop. It will require seperate servers though, ie<br />
-Desktop Delivery Controller (DDC)<br />
-Provisioning Server for Desktop<br />
<br />
Scenario 3 - Terminal Services Gateway<br />
Microsoft 2008 Server can act as a TS gateway and allow external clients to connect to the TS gateway and talk to computers behind the gateway.Link Tanghttp://www.blogger.com/profile/17433202442196899988noreply@blogger.com0tag:blogger.com,1999:blog-2371204691794398604.post-39128939059786942822011-11-23T20:49:00.000-08:002011-11-23T20:49:44.799-08:00Runas Different Credentials In Command PromptSometimes you need to run an executable as a different user via command prompt:<br />
- in scripts<br />
- in Windows 2008 (not 2008 R2), you cannot use shift right click to "run as different user"<br />
<br />
Windows come with a command line tool called "runas", which allow users to execute anything as a different user, in the following syntax<br />
runas /user domain\username "full path to exe"<br />
<br />
ie.<br />
runas /user domain\username "c:\temp\temp.exe /a /l /r"Link Tanghttp://www.blogger.com/profile/17433202442196899988noreply@blogger.com0tag:blogger.com,1999:blog-2371204691794398604.post-70165077579787982402011-11-15T20:01:00.000-08:002011-11-15T20:01:36.522-08:00Active Directory MMCs and Command Line Tools<b>Administration Tools on your Windows XP/7:</b><br />
If you need to manage/export data from AD outside of your windows server, install:<br />
- the "Windows Server 2003 Administration Tools Pack" (for windows 2003 AD servers)<br />
<a href="http://www.microsoft.com/download/en/details.aspx?id=16770">http://www.microsoft.com/download/en/details.aspx?id=16770</a><br />
<br />
OR<br />
<br />
- the "Remote Server Administration Tools for Windows 7" (for windows 2008 AD servers)<br />
<a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=7887">http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=7887</a><br />
<br />
They provide Active Directory related MMCs and Directory Services command line tools.<br />
<br />
<b>Quickly Exporting AD Information</b><br />
Dsquery.exe allows you to find any users/groups/OUs/computers etc based on their name/attributes<br />
<a href="http://technet.microsoft.com/en-us/library/cc732952(WS.10).aspx">http://technet.microsoft.com/en-us/library/cc732952(WS.10).aspx</a><br />
<br />
<b>Examples:</b><br />
To retrieve all AD Groups with the prefix "foo"<br />
dsquery group -name foo*<br />
<br />
To retrieve all the users in the container "Users", domain "microsoft.com"<br />
dsquery user cn=users,dc=microsoft,dc=com<br />
<br />
<b>Other AD Command Line Tools</b><br />
Microsoft has also allowed you to perform most basic AD operations such as adding users/groups, resetting passwords, deleting accounts/groups via the command-line tools<br />
<a href="http://support.microsoft.com/kb/322684">http://support.microsoft.com/kb/322684</a>Link Tanghttp://www.blogger.com/profile/17433202442196899988noreply@blogger.com1tag:blogger.com,1999:blog-2371204691794398604.post-45503119090581837612011-10-27T18:02:00.000-07:002011-10-27T18:02:06.755-07:00Execute Large SQL filessqlcmd -d [DatabaseName] -S [ServerName] -i [sql script file] -o [output file]Link Tanghttp://www.blogger.com/profile/17433202442196899988noreply@blogger.com0tag:blogger.com,1999:blog-2371204691794398604.post-30006281954443683912011-09-03T23:11:00.000-07:002011-09-03T23:20:25.346-07:00Mobile Development Resources<div class="MsoNormal"><b><span style="color: black;">Flex Resources</span></b></div><div class="MsoNormal">The following Flex ebooks are not too hard to find on the www:<br />
<ul><li>Flex in a week 4.5</li>
<li>Adobe Flex 4.5 Fundamentals: Training from the Source</li>
<li>Flash Builder 4 and Flex 4 Bible</li>
<li>Enterprise Development with Flex (Adobe Dev Lib) 2010</li>
</ul></div><div class="MsoNormal"><span style="color: black;"><br />
</span></div><div class="MsoNormal"><span style="color: black;"></span></div><div class="MsoNormal"><span style="color: black;"><b>Why MonoTouch And Mono For Android</b></span></div><div class="MsoNormal"><u><span style="color: blue;"><a href="http://www.youtube.com/watch?v=qEXLnjhUDVo">http://www.youtube.com/watch?v=qEXLnjhUDVo</a></span></u></div><br />
Link Tanghttp://www.blogger.com/profile/17433202442196899988noreply@blogger.com0tag:blogger.com,1999:blog-2371204691794398604.post-40290271908484084912011-09-03T22:46:00.000-07:002011-09-03T22:46:03.605-07:00Visual Studio Themes - Dark BackgroundIf you are using a mild VS theme which has a grey background and light brown text:<br />
<div class="MsoNormal"><u><span style="color: blue;"><a href="http://studiostyl.es/schemes/selenitic">http://studiostyl.es/schemes/selenitic</a></span></u><span style="color: black;"><o:p></o:p></span></div><div class="MsoNormal"></div><div class="MsoNormal"><br />
you may have problems with some html tags having the same color as its text. You need to change the "default" color 0x020000000 to your desired color.</div><div class="MsoNormal"><u><span style="color: blue;"><a href="http://www.hanselman.com/blog/ChangingYourColorsInVisualStudioNETBlackVersusWhite.aspx">http://www.hanselman.com/blog/ChangingYourColorsInVisualStudioNETBlackVersusWhite.aspx</a></span></u><span style="color: black;"><o:p></o:p></span><br />
<br />
The standard options to look out for are options-fonts-><br />
<br />
<ul><li>Razor</li>
<li>Plain Text</li>
<li>Line Numbers</li>
<li>Comments</li>
<li>Identifier</li>
<li>Keyword</li>
<li>Operator</li>
<li>String</li>
<li>UserTypes</li>
</ul></div>Link Tanghttp://www.blogger.com/profile/17433202442196899988noreply@blogger.com0tag:blogger.com,1999:blog-2371204691794398604.post-67857290479638584632011-09-03T22:15:00.000-07:002011-09-03T22:15:32.756-07:00Removing Empty Folders In Command PromptFor a quick way to batch remove all empty folders, "cd" into that folder and perform the following:<br />
<br />
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">for /f "usebackq delims=" %d in (`"dir /ad/b/s | sort /R"`) do rd "%d"</span><br />
<br />
Please backup the source folder before doing so, just in case. Afterwards, you can use beyond compare and order by folder size to compare the results.Link Tanghttp://www.blogger.com/profile/17433202442196899988noreply@blogger.com0tag:blogger.com,1999:blog-2371204691794398604.post-27452675980036613632011-08-30T22:27:00.000-07:002011-12-04T05:04:51.655-08:00Salesforce Long Text Area and FormulasIf you try to create a formula on a "Long Text Area" field, salesforce does not support this.<br />
<br />
One workaround is to create a new field and another workflow to perform a "field update" on this:<br />
Step 1) Create a new field with data type of "Text Area (Long)"<br />
<br />
Step 2) Create a workflow with the following settings:<br />
<br />
Evaluation Criteria -> select "Every time a record is created or edited"<br />
Rule Criteria -> select "Formula evaluates to true" and type "true"<br />
<br />
<br />
Step 3) Select "Add Workflow Action" -> "New Field Update"<br />
<br />
Step 4) Select the newly created field as the "Field To Update" and select "Use a formula to set the new value" under "Specify New Field Value"<br />
<br />
Step 5) You can now enter in a formula that reference other "Long Text Area" fields. The results will be posted to the new field of type "Long Text Area".<br />
<br />
Reasons Behind This Solution<br />
Basically this allows complex logics, ie perform formula calculations on a long text field, to be offloaded to a workflow which runs on the background. As a normal formula needs to be calculated very often and can slow down the page on each load/save, shifting the calculations to workflow helps salesforce lower the CPU usage.Link Tanghttp://www.blogger.com/profile/17433202442196899988noreply@blogger.com21tag:blogger.com,1999:blog-2371204691794398604.post-87362861922105219552011-08-30T22:02:00.000-07:002011-09-21T00:47:26.226-07:00Quickly Selecting Data from Salesforce Using System LogIf you just want to quickly see some data in your salesforce instance, you can execute soql queries by opening the Setup-> "System Log" and type in the following<br />
<br />
System.debug ( [select Dealer_group_display__c from Account where Id = '001M0000005OFab']);<br />
System.debug( UserInfo.getSessionId() );<br />
<br />
This saves you from opening the Apex dataloader.Link Tanghttp://www.blogger.com/profile/17433202442196899988noreply@blogger.com0tag:blogger.com,1999:blog-2371204691794398604.post-60749068020856469372011-08-30T21:58:00.000-07:002011-08-30T21:58:41.709-07:00Developing Native Mobile Applications For Multiple DevicesIf you are like me who needs to develop mobile applications, but doesn't want to stick with just one platform, you can try the following products:<br />
<b>PhoneGap</b> <a href="http://www.phonegap.com/">http://www.phonegap.com/</a><br />
Developers create a mobile version of their application using HTML 5 / Javascripts / CSS. PhoneGap compile this as a native device application which can be hosted in the respective app stores. The advantage is you are programming in HTML 5 which can than also be hosted as a mobile version of your website. PhoneGap is free but does take a bit of configuration.<br />
<br />
<b>Adobe Flash Builder 4.5</b> <a href="http://www.adobe.com/devnet/flex/articles/mobile-development-flex-flashbuilder.html">http://www.adobe.com/devnet/flex/articles/mobile-development-flex-flashbuilder.html</a><br />
For small applications, Adobe's latest Flash Builder 4.5.1 update allow developers to create a mobile Flex project. It is fairly easy to learn for basic functionalities and is powerful enough to call external webservices and meet other real-life requirements.<br />
<br />
Both products allow you to deploy to iPhones/iPads/Androids/Blackberry Tablets as native applications.<br />
<br />
The advantage of developing uses these instead of just having a mobile version of your website is that you can minimise network traffic and provide a better user experience after the application is downloaded/installed.Link Tanghttp://www.blogger.com/profile/17433202442196899988noreply@blogger.com0tag:blogger.com,1999:blog-2371204691794398604.post-30458635131389217142011-05-18T00:43:00.000-07:002011-05-18T00:43:06.736-07:00DreamFactory migration stepsThe following is just one way to migration an installation (ie OpenWealth).<br />
<br />
1) Install package onto the new site<br />
2) Use Monarch to migrate data across<br />
3) Migrate page layoutLink Tanghttp://www.blogger.com/profile/17433202442196899988noreply@blogger.com0tag:blogger.com,1999:blog-2371204691794398604.post-88828876506306752572011-05-18T00:09:00.000-07:002011-05-18T00:09:00.733-07:00Salesforce Migration Order/Best PracticesA snippet from Dream Factory's Snapshot documentation:<br />
<br />
In order to achieve maximum results with your deployment, it is recommended that you follow the documented order of operations that is detailed below for Asset SnapShot Push. This order will minimize the errors generated by contingent dependencies and relationships in your Org. Carefully read any error messages and make adjustments as necessary. If you need to be able to push individual object fields then use the Object SnapShot Push.<br />
<br />
1. Objects: All *<br />
2. Apex Classes<br />
3. Apex Components<br />
4. Apex Pages<br />
5. Apex Triggers<br />
6. S-Controls <br />
7. Page Layouts<br />
8. Static Resources<br />
9. Letterheads<br />
10. Workflows **<br />
11. Report Types<br />
12. Home Page Web Links<br />
13. Home Page Components<br />
14. Home Page Layouts<br />
15. Custom Tabs<br />
16. Custom Labels<br />
17. Custom Applications<br />
18. Custom Object Translation<br />
19. Custom Sites<br />
20. Profiles: All ***<br />
<br />
<br />
* This will push all Object fields plus their related Record Types, Web Links, Validation Rules, Search Layouts and List Views. These settings can also be pushed individually if needed.<br />
<br />
** Users tied to workflows must be created in the Destination Org prior to pushing<br />
<br />
*** This will push all Profile metadata plus the related settings including: Application Visibility, Field Level Security, Layout Assignments, Object Permissions, Record Type Visibility and Tab Visibility. These settings can also be pushed individually if needed.Link Tanghttp://www.blogger.com/profile/17433202442196899988noreply@blogger.com0tag:blogger.com,1999:blog-2371204691794398604.post-54881563879836020562011-05-05T00:07:00.000-07:002011-05-05T00:07:30.991-07:00VMware vConverter Cannot Find Your Hard DriveAfter you have installed vConverter, it may not be able to find any partition on your machine that needs to be converter. This is caused by Windows UAC!<br />
<br />
If you run the vConverter "As Administrator", vConverter will then see your hard drive.<br />
<br />
http://communities.vmware.com/thread/285316Link Tanghttp://www.blogger.com/profile/17433202442196899988noreply@blogger.com0tag:blogger.com,1999:blog-2371204691794398604.post-2232570916737845412011-05-02T23:40:00.000-07:002012-07-01T21:20:30.694-07:00Quick ToolsIf you had problems with how MsPaint scews up an image's transparent background, you can try Paint.Net<br />
<a href="http://getpaint.net/">getpaint.net</a><br />
<br />
If you need to do presentations and need to record it to a video, use Cyberlink YouCam.<br />
<a href="http://www.cyberlink.com/products/youcam/overview_en_US.html">http://www.cyberlink.com/products/youcam/overview_en_US.html</a><br />
supported format AVI/WMV<br />
<br />
Free Video Recording<br />
<a href="http://camstudio.org/">http://camstudio.org/</a>Link Tanghttp://www.blogger.com/profile/17433202442196899988noreply@blogger.com0tag:blogger.com,1999:blog-2371204691794398604.post-14847434304315398742011-04-11T23:57:00.000-07:002011-04-11T23:57:51.231-07:00SalesForce Tools<!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:TrackMoves/> <w:TrackFormatting/> <w:PunctuationKerning/> <w:ValidateAgainstSchemas/> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:DoNotPromoteQF/> <w:LidThemeOther>EN-AU</w:LidThemeOther> <w:LidThemeAsian>X-NONE</w:LidThemeAsian> <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript> <w:Compatibility> <w:BreakWrappedTables/> <w:SnapToGridInCell/> <w:WrapTextWithPunct/> <w:UseAsianBreakRules/> <w:DontGrowAutofit/> <w:SplitPgBreakAndParaMark/> <w:DontVertAlignCellWithSp/> <w:DontBreakConstrainedForcedTables/> <w:DontVertAlignInTxbx/> <w:Word11KerningPairs/> <w:CachedColBalance/> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> <m:mathPr> <m:mathFont m:val="Cambria Math"/> <m:brkBin m:val="before"/> <m:brkBinSub m:val="--"/> <m:smallFrac m:val="off"/> <m:dispDef/> <m:lMargin m:val="0"/> <m:rMargin m:val="0"/> <m:defJc m:val="centerGroup"/> <m:wrapIndent m:val="1440"/> <m:intLim m:val="subSup"/> <m:naryLim m:val="undOvr"/> </m:mathPr></w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267"> <w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/> <w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/> <w:LsdException Locked="false" Priority="39" Name="toc 1"/> <w:LsdException Locked="false" Priority="39" Name="toc 2"/> <w:LsdException Locked="false" Priority="39" Name="toc 3"/> <w:LsdException Locked="false" Priority="39" Name="toc 4"/> <w:LsdException Locked="false" Priority="39" Name="toc 5"/> <w:LsdException Locked="false" Priority="39" Name="toc 6"/> <w:LsdException Locked="false" Priority="39" Name="toc 7"/> <w:LsdException Locked="false" Priority="39" Name="toc 8"/> <w:LsdException Locked="false" Priority="39" Name="toc 9"/> <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/> <w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/> <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/> <w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/> <w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/> <w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/> <w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/> <w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/> <w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/> <w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/> <w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/> <w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/> <w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/> <w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/> <w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/> <w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/> <w:LsdException Locked="false" Priority="37" Name="Bibliography"/> <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/> </w:LatentStyles> </xml><![endif]--><!--[if gte mso 10]> <style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
</style> <![endif]--> <br />
<div class="MsoNormal">SF tools: </div><div class="MsoNormal"><a href="http://wiki.developerforce.com/index.php/Tools">http://wiki.developerforce.com/index.php/Tools</a> </div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Force.com explorer (see all sf objects like how SQL management studio works for MS-SQL)</div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Adobe flash builder - To develop flex/flash and access SF data via queryResult</div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Force.com dataloader - upload from csv</div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Force.com IDE - should just download eclipse and use the sf plug-in instead</div><div class="MsoNormal"><br />
</div><div class="MsoNormal">For sample data, use random name generator to excel to generate dummy excel files for uploading to SF</div><div class="MsoNormal"><br />
</div><div class="MsoNormal">To create word templates, Docx is actually a zip file. You can extract it and update the <span style="font-family: Arial; font-size: x-small;">document.xml</span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">To toggle between the field codes and word documents, use alt f9 in MS-Word </div><div class="MsoNormal"><br />
</div>Link Tanghttp://www.blogger.com/profile/17433202442196899988noreply@blogger.com0tag:blogger.com,1999:blog-2371204691794398604.post-66517254955559215212011-04-10T01:03:00.001-07:002011-04-10T01:03:57.525-07:00Google calenderIf you like the google calender, you must check out the following jquery calender control. <br />
<br />
<a href="http://arshaw.com/fullcalendar/">http://arshaw.com/fullcalendar/</a>Link Tanghttp://www.blogger.com/profile/17433202442196899988noreply@blogger.com0tag:blogger.com,1999:blog-2371204691794398604.post-8775576724521443422011-04-10T01:01:00.000-07:002011-04-11T23:59:10.677-07:00SalesForce Admin ADM 201Test Concepts in Admin ADM 201<br />
<br />
-Different types of relationships for custom objects<br />
-If you want to disable viewing all objects in an application, where do you set this?<br />
-If the system wide default is read/write, how can you restrict what records the user can view?<br />
-what will happen to the existing exchange rates will you turn on advance currency management<br />
-mass transfer of user's records (one of the following will not be mass transferred: open case, close case, open activity, closed activity)<br />
<br />
<!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:TrackMoves/> <w:TrackFormatting/> <w:PunctuationKerning/> <w:ValidateAgainstSchemas/> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:DoNotPromoteQF/> <w:LidThemeOther>EN-AU</w:LidThemeOther> <w:LidThemeAsian>X-NONE</w:LidThemeAsian> <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript> <w:Compatibility> <w:BreakWrappedTables/> <w:SnapToGridInCell/> <w:WrapTextWithPunct/> <w:UseAsianBreakRules/> <w:DontGrowAutofit/> <w:SplitPgBreakAndParaMark/> <w:DontVertAlignCellWithSp/> <w:DontBreakConstrainedForcedTables/> <w:DontVertAlignInTxbx/> <w:Word11KerningPairs/> <w:CachedColBalance/> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> <m:mathPr> <m:mathFont m:val="Cambria Math"/> <m:brkBin m:val="before"/> <m:brkBinSub m:val="--"/> <m:smallFrac m:val="off"/> <m:dispDef/> <m:lMargin m:val="0"/> <m:rMargin m:val="0"/> <m:defJc m:val="centerGroup"/> <m:wrapIndent m:val="1440"/> <m:intLim m:val="subSup"/> <m:naryLim m:val="undOvr"/> </m:mathPr></w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267"> <w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/> <w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/> <w:LsdException Locked="false" Priority="39" Name="toc 1"/> <w:LsdException Locked="false" Priority="39" Name="toc 2"/> <w:LsdException Locked="false" Priority="39" Name="toc 3"/> <w:LsdException Locked="false" Priority="39" Name="toc 4"/> <w:LsdException Locked="false" Priority="39" Name="toc 5"/> <w:LsdException Locked="false" Priority="39" Name="toc 6"/> <w:LsdException Locked="false" Priority="39" Name="toc 7"/> <w:LsdException Locked="false" Priority="39" Name="toc 8"/> <w:LsdException Locked="false" Priority="39" Name="toc 9"/> <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/> <w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/> <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/> <w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/> <w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/> <w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/> <w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/> <w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/> <w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/> <w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/> <w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/> <w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/> <w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/> <w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/> <w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/> <w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/> <w:LsdException Locked="false" Priority="37" Name="Bibliography"/> <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/> </w:LatentStyles> </xml><![endif]--><!--[if gte mso 10]> <style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
</style> <![endif]--> <br />
<div class="MsoNormal"><a href="http://salesforcetechstuff.blogspot.com/2010/09/salesforce-administrator-training-adm.html">http://salesforcetechstuff.blogspot.com/2010/09/salesforce-administrator-training-adm.html</a></div><div class="MsoNormal"><a href="http://shailwonderland.blogspot.com/">http://shailwonderland.blogspot.com/</a></div><div class="MsoNormal"><a href="http://www.proprofs.com/quiz-school/story.php?title=dev-401-certification">http://www.proprofs.com/quiz-school/story.php?title=dev-401-certification</a></div>Link Tanghttp://www.blogger.com/profile/17433202442196899988noreply@blogger.com11tag:blogger.com,1999:blog-2371204691794398604.post-44649346556530313952011-03-02T14:50:00.000-08:002011-03-02T14:50:06.887-08:00Retring WCF calls, using FuncSometimes because the internet connection is not great, you might want to implement code to retry WCF calls. However, instead of writing for loops on each clientproxy.MethodCall, you can write an extension method that retries it for you. Since WCF calls has a single parameter - TWcfRequest and a single response - TWcfResponse, we can use the delegate Func<TWcfRequest, TWcfResponse> and pass the desired WCF method down this extension method.<br />
<br />
<br />
<span style="font-family: "Courier New", Courier, monospace;">public static class WcfClientBaseExtension<br />
{<br />
/// <summary><br />
/// Retry WCF call multiple times<br />
/// </summary><br />
/// <typeparam name="TChannel"></typeparam><br />
/// <typeparam name="TWcfRequest"></typeparam><br />
/// <typeparam name="TWcfResponse"></typeparam><br />
/// <param name="client"></param><br />
/// <param name="tryExecute"></param><br />
/// <param name="wcfRequest"></param><br />
/// <returns></returns><br />
public static TWcfResponse ExecuteRepeatedly<TChannel, TWcfRequest, TWcfResponse>(this ClientBase<TChannel> client, <br />
Func<TWcfRequest, TWcfResponse> tryExecute, TWcfRequest wcfRequest)<br />
where TChannel : class<br />
where TWcfRequest : class <br />
where TWcfResponse : class<br />
{<br />
int maxRetryCount = FrameworkConfigHelper.MaxWcfRetryCount;</span><br />
<span style="font-family: "Courier New", Courier, monospace;"> for (int currentRetryCount = 0; currentRetryCount < maxRetryCount; currentRetryCount++)<br />
{<br />
try<br />
{<br />
return tryExecute(wcfRequest);<br />
}<br />
//SOAP Faults - business requirement <br />
catch (FaultException)<br />
{<br />
//need to allow business exceptions to go to top level<br />
throw;<br />
}<br />
//Connection timeout<br />
catch (EndpointNotFoundException)<br />
{<br />
//endpoint don't respond in timely manner<br />
//swallow technical exceptions unless it's the last retry<br />
if (currentRetryCount == maxRetryCount - 1)<br />
throw;<br />
}<br />
catch (Exception)<br />
{<br />
//rethrow all other errors for now<br />
throw;<br />
}<br />
}<br />
return null;<br />
}</span><br />
<span style="font-family: "Courier New", Courier, monospace;"> <br />
}</span><br />
<br />
For usage:<br />
<span style="font-family: "Courier New", Courier, monospace;">var searchResponse = client.ExecuteRepeatedly<ICollateralRegistrationSearch, SearchByRegistrationNumberRequestType, SearchByRegistrationNumberResponseType><br />
(client.SearchByRegistrationNumber, searchByRegistrationNumberRequestType);</span>Link Tanghttp://www.blogger.com/profile/17433202442196899988noreply@blogger.com0