<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1948217297685293363</id><updated>2012-02-16T23:08:53.582+11:00</updated><category term='sqlcmd'/><category term='VBScript'/><category term='Visual Studio'/><category term='Twitter'/><category term='business'/><category term='jQuery'/><category term='CRM'/><category term='Excel 2007'/><category term='Google Wave'/><category term='Free software'/><category term='Javascript'/><category term='Outlook'/><category term='IT'/><category term='SharePoint'/><category term='SPDiag'/><category term='SQL Server 2005'/><category term='Windows Server 2008'/><category term='View selection box'/><category term='Import'/><category term='CSV'/><category term='Hilton Giesenow'/><category term='PERL'/><category term='People picker'/><category term='Widgets'/><category term='WSS 3.0'/><category term='Quick launch menu'/><category term='C#'/><category term='PHP'/><category term='IBM DB2'/><category term='Permission'/><category term='Google Chrome'/><category term='WebPart'/><category term='Command line'/><category term='Lightbox2'/><category term='Remote Desktop Connection'/><category term='Windows Service'/><category term='Web development'/><category term='SSIS'/><category term='Data Connection'/><category term='Lists'/><category term='custom list form'/><title type='text'>Logic Flow Development Journal</title><subtitle type='html'>This is the tips, tricks, and how-tos that I have found useful throughout my IT consultancy career. Technology includes PERL, PHP, MS SharePoint, SQL Server, HTML, CSS, and Javascript, etc. Hope you will find this knowledge base of mine helpful.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://logicflowau.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://logicflowau.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Logic Flow</name><uri>http://www.blogger.com/profile/08874606426742825968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_xnXB-FaaWXs/SovXC3tqK_I/AAAAAAAAABM/FIErW2yeS4s/S220/white_bg_logo.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>35</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1948217297685293363.post-7869843728249338600</id><published>2011-06-27T15:22:00.012+10:00</published><updated>2011-07-19T11:54:56.794+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lists'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>SharePoint grouping by week</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;strong&gt;Overview&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;In SharePoint 2007, to achieve grouping list items by week, a week start or week end date is required. Calculated columns can be used to work out the start day of the week and end day of the week.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Week starting Monday&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;blockquote&gt;=[Created]-WEEKDAY([Created],2)+1&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Week starting Sunday&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;blockquote&gt;=[Created]-WEEKDAY([Created])+1&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;Week ending Saturday&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;=[Created]+7-WEEKDAY([Created])&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Week ending Sunday&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;blockquote&gt;=[Created]+7-WEEKDAY([Created],2)&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Week ending Monday&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;blockquote&gt;=[Created]-WEEKDAY([Created],2)+1+IF(WEEKDAY([Created],2)=1,0,7)&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Screen shot:&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-Mq0lEmpt-Q0/Tgg2MRs1huI/AAAAAAAAAGs/qDTHmzI4vik/s1600/SP_WeekEnding_02.png"&gt;&lt;img style="WIDTH: 320px; HEIGHT: 124px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5622803719309854434" border="0" alt="" src="http://1.bp.blogspot.com/-Mq0lEmpt-Q0/Tgg2MRs1huI/AAAAAAAAAGs/qDTHmzI4vik/s320/SP_WeekEnding_02.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;List view issue when grouping by date &lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;SharePoint 2007 has many glitches, grouping dates on the list view is one them. If you want to create a weekly list view using the week start or week end column that you created in the previoius section, you will likely see this error:&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-WiwPNW2eb8Y/Tgg2MdvRXOI/AAAAAAAAAG0/PDfQLhXzDCM/s1600/SP_WeekEnding_03.png"&gt;&lt;img style="WIDTH: 273px; HEIGHT: 84px; CURSOR: hand; text-align:center" id="BLOGGER_PHOTO_ID_5622803722541292770" border="0" alt="" src="http://1.bp.blogspot.com/-WiwPNW2eb8Y/Tgg2MdvRXOI/AAAAAAAAAG0/PDfQLhXzDCM/s320/SP_WeekEnding_03.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;&lt;strong&gt;To work around this there are two options:&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;Option 1 - Expanded by default:&lt;/strong&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Edit your list view, under the &lt;strong&gt;Group By&lt;/strong&gt; section, select &lt;strong&gt;Expanded&lt;/strong&gt; for &lt;strong&gt;"By default, show grouping:".&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;This is not ideal since, everything is expanded which pretty much defeated the purpose of grouping.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;To further work around this, you can add a jQuery to collapse the groups. The downside is losing the SharePoint's ability to remember the last expand and collapse groups.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Refer to a &lt;a href="http://spyralout.com/tag/collapse-all-groups-sharepoint-list/"&gt;post by Spyral Out&lt;/a&gt; for more information and suggests of other alternatives.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;strong&gt;The jQuery&lt;/strong&gt;&lt;br /&gt;&lt;pre&gt;&lt;code style='font-size:12px'&gt;&amp;lt;script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;function collapseGroups() {&lt;br /&gt;    $("img[src='/_layouts/images/minus.gif']:visible").parent().click();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;_spBodyOnLoadFunctionNames.push("collapseGroups");&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Option 2 - Group by Text field&lt;/strong&gt;&lt;br /&gt;The other option is to change the week starting or ending calculated columns to a text field. However, the downside is that the date needs to be formatted as "yyyy/MM/dd" in order for sorting to work. For example:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;=TEXT([Created]-WEEKDAY([Created],2)+1,"yyyy/MM/dd")&lt;/blockquote&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-ttf26wrW0q8/Tgg2Mhmkb6I/AAAAAAAAAG8/Edj47x4ishs/s1600/SP_WeekEnding_01.png"&gt;&lt;img style="WIDTH: 320px; HEIGHT: 191px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5622803723578535842" border="0" alt="" src="http://1.bp.blogspot.com/-ttf26wrW0q8/Tgg2Mhmkb6I/AAAAAAAAAG8/Edj47x4ishs/s320/SP_WeekEnding_01.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold;font-size:130%;" &gt;Conculsion&lt;/span&gt;&lt;br /&gt;Both options have their pros and cons, it will be depend on what works for your users.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1948217297685293363-7869843728249338600?l=logicflowau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://logicflowau.blogspot.com/feeds/7869843728249338600/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://logicflowau.blogspot.com/2011/06/sharepoint-start-of-week-and-end-of.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/7869843728249338600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/7869843728249338600'/><link rel='alternate' type='text/html' href='http://logicflowau.blogspot.com/2011/06/sharepoint-start-of-week-and-end-of.html' title='SharePoint grouping by week'/><author><name>Logic Flow</name><uri>http://www.blogger.com/profile/08874606426742825968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_xnXB-FaaWXs/SovXC3tqK_I/AAAAAAAAABM/FIErW2yeS4s/S220/white_bg_logo.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-Mq0lEmpt-Q0/Tgg2MRs1huI/AAAAAAAAAGs/qDTHmzI4vik/s72-c/SP_WeekEnding_02.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1948217297685293363.post-4347325210145499854</id><published>2011-06-21T12:11:00.000+10:00</published><updated>2011-06-21T12:33:46.483+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Initialise a class from string variable in C#</title><content type='html'>Ever wonder if it is possible initialise a class from a string in C#? Although it is not as simple as in PHP but it's possible:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;PHP &lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;?php&lt;br /&gt;    $classname = &lt;span style="color:#990000;"&gt;"test"&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;    $oTest = &lt;span style="color:#3333ff;"&gt;new&lt;/span&gt; $classname();&lt;br /&gt;&lt;br /&gt;    &lt;span style="color:#3333ff;"&gt;class&lt;/span&gt; test{ ... }&lt;br /&gt;?&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;C# &lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;The class&lt;/strong&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;span style="color:#3333ff;"&gt;namespace&lt;/span&gt; CSharpApp&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color:#3333ff;"&gt;public class&lt;/span&gt; Test&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color:#3333ff;"&gt;public void&lt;/span&gt; Run() { ... }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;&lt;strong&gt;The code&lt;/strong&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;span style="color:#3366ff;"&gt;string&lt;/span&gt; oName = "CSharpApp.Test";&lt;br /&gt;&lt;span style="color:#009900;"&gt;// To create an instance&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#339999;"&gt;Type&lt;/span&gt; typeObj = Type.GetType(oName);&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;object&lt;/span&gt; instanceObj = &lt;span style="color:#339999;"&gt;Activator&lt;/span&gt;.CreateInstance(typeObj);&lt;br /&gt;&lt;span style="color:#009900;"&gt;// To call a method from the class&lt;/span&gt;&lt;br /&gt;typeObj.InvokeMember(&lt;span style="color:#ff0000;"&gt;"Run"&lt;/span&gt;,&lt;br /&gt;    &lt;span style="color:#339999;"&gt;BindingFlags&lt;/span&gt;.InvokeMethod  &lt;span style="color:#339999;"&gt;BindingFlags&lt;/span&gt;.Instance  &lt;span style="color:#339999;"&gt;BindingFlags&lt;/span&gt;.Public,&lt;br /&gt;    &lt;span style="color:#3366ff;"&gt;null&lt;/span&gt;, instMerchant, &lt;span style="color:#3366ff;"&gt;null&lt;/span&gt;);&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;A very good explaination and examples, such as calling different types of methods in the class, can be found here:&lt;br /&gt;&lt;a href="http://www.csharp-examples.net/reflection-examples/"&gt;http://www.csharp-examples.net/reflection-examples/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1948217297685293363-4347325210145499854?l=logicflowau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://logicflowau.blogspot.com/feeds/4347325210145499854/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://logicflowau.blogspot.com/2011/06/initialise-class-from-string-variable.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/4347325210145499854'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/4347325210145499854'/><link rel='alternate' type='text/html' href='http://logicflowau.blogspot.com/2011/06/initialise-class-from-string-variable.html' title='Initialise a class from string variable in C#'/><author><name>Logic Flow</name><uri>http://www.blogger.com/profile/08874606426742825968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_xnXB-FaaWXs/SovXC3tqK_I/AAAAAAAAABM/FIErW2yeS4s/S220/white_bg_logo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1948217297685293363.post-1586265847787970701</id><published>2011-06-14T17:35:00.000+10:00</published><updated>2011-06-14T18:11:45.261+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSIS'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><title type='text'>SSIS: Handling failure in Send Mail Task within a FOREACH loop container</title><content type='html'>An issue had come up recently that the customer reports that sent three times a day was not delivered. After some investigation, I have realised one of the email address in the database was wrong hence causing the process failed half way through. Hence half of the clients missed out on the report.&lt;br /&gt;&lt;br /&gt;Surely, it was a user typo, however, the process should be smart enough to report the error and carry on with the rest of the clients having good email addresses. Therefore, two improvements are put forward to be implemented in the SSIS process:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Report the error by email&lt;/li&gt;&lt;li&gt;Continue sending emails to other unaffected clients&lt;/li&gt;&lt;/ol&gt;After some research on Google, I have found two links that were very useful to help me solve this problem.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;Report the error by email&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;This is in fact very simple:&lt;div&gt;&lt;ol&gt;&lt;li&gt;Select the &lt;b&gt;Send Mail Task&lt;/b&gt;, then click the &lt;b&gt;Event Handler&lt;/b&gt; tab;&lt;/li&gt;&lt;li&gt;Select the &lt;b&gt;OnError&lt;/b&gt; event, then click the link in the middle of the screen to create the event;&lt;/li&gt;&lt;li&gt;Add a &lt;b&gt;Send Mail Task&lt;/b&gt; to the &lt;b&gt;OnError&lt;/b&gt; event to send email notification when an error occur.&lt;/li&gt;&lt;li&gt;That's all, do the next step if you do not want the error to interrupt the looping.&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;Web reference:&lt;/b&gt; &lt;a href="http://stackoverflow.com/questions/5433132/handling-failure-of-the-send-mail-task-in-ssis"&gt;http://stackoverflow.com/questions/5433132/handling-failure-of-the-send-mail-task-in-ssis&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;Continue sending emails to other unaffected clients&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;While the first step was very simple, the second step is even simpler:&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;To Prevent the error from going further up the chain, open up the &lt;b&gt;System Variables &lt;/b&gt;(i.e. SSIS menu &amp;gt; Variables, then select Show System Variables) from within the &lt;b&gt;OnError&lt;/b&gt; event handler of the Send Mail Task;&lt;/li&gt;&lt;li&gt;Find and change the &lt;b&gt;Propogate&lt;/b&gt; property’s value to &lt;b&gt;False&lt;/b&gt;;&lt;/li&gt;&lt;li&gt;That's all you need to do, do the same steps to all the tasks within the FOREACH loop container to prevent an interruption to the loop.&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;Web reference:&lt;/b&gt; &lt;a href="http://sqlblog.com/blogs/rushabh_mehta/archive/2008/04/24/gracefully-handing-task-error-in-ssis-package.aspx"&gt;http://sqlblog.com/blogs/rushabh_mehta/archive/2008/04/24/gracefully-handing-task-error-in-ssis-package.aspx&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1948217297685293363-1586265847787970701?l=logicflowau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://logicflowau.blogspot.com/feeds/1586265847787970701/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://logicflowau.blogspot.com/2011/06/ssis-handling-failure-in-send-mail-task.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/1586265847787970701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/1586265847787970701'/><link rel='alternate' type='text/html' href='http://logicflowau.blogspot.com/2011/06/ssis-handling-failure-in-send-mail-task.html' title='SSIS: Handling failure in Send Mail Task within a FOREACH loop container'/><author><name>Logic Flow</name><uri>http://www.blogger.com/profile/08874606426742825968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_xnXB-FaaWXs/SovXC3tqK_I/AAAAAAAAABM/FIErW2yeS4s/S220/white_bg_logo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1948217297685293363.post-5947530835424168879</id><published>2011-06-09T15:44:00.000+10:00</published><updated>2011-06-09T16:37:53.384+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='PERL'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Call a function from string variable in PERL, PHP and C#</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;strong&gt;PERL&lt;/strong&gt; &lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;my $function_name = "hello";&lt;br /&gt;&amp;amp;$function_name(10);&lt;br /&gt;function hello() {&lt;br /&gt;  my $param = shift;&lt;br /&gt;  print "hello $param\n";&lt;br /&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;PHP&lt;/strong&gt; &lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;$function_name = "hello";&lt;br /&gt;$function_name();&lt;br /&gt;function hello($param) {&lt;br /&gt;  echo "hello $param\n";&lt;br /&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;C#&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;class Program&lt;br /&gt;{&lt;br /&gt;  static void Main(string[] args)&lt;br /&gt;  {&lt;br /&gt;    Type type = typeof(MyReflectionClass);&lt;br /&gt;    MethodInfo method = type.GetMethod("Hello");&lt;br /&gt;    MyReflectionClass c = new MyReflectionClass();&lt;br /&gt;    method.Invoke(c, null);&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public class MyReflectionClass&lt;br /&gt;{&lt;br /&gt;  public void Hello(int num)&lt;br /&gt;  {&lt;br /&gt;    Console.WriteLine("hello {0}", num.ToString());&lt;br /&gt;  }&lt;br /&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1948217297685293363-5947530835424168879?l=logicflowau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://logicflowau.blogspot.com/feeds/5947530835424168879/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://logicflowau.blogspot.com/2011/06/call-function-from-string-variable-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/5947530835424168879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/5947530835424168879'/><link rel='alternate' type='text/html' href='http://logicflowau.blogspot.com/2011/06/call-function-from-string-variable-in.html' title='Call a function from string variable in PERL, PHP and C#'/><author><name>Logic Flow</name><uri>http://www.blogger.com/profile/08874606426742825968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_xnXB-FaaWXs/SovXC3tqK_I/AAAAAAAAABM/FIErW2yeS4s/S220/white_bg_logo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1948217297685293363.post-2081280186695922351</id><published>2011-06-09T15:34:00.000+10:00</published><updated>2011-06-09T15:43:19.149+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Service'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><title type='text'>Develop a Windows Service in C#</title><content type='html'>Have you ever wanted to utilise the Windows service to run background tasks on your Windows server? Use the following starter guides to help you kick start your Windows Service projects.&lt;br /&gt;&lt;br /&gt;For Visual Studio 2005. A guide posted by The Reddest to creating a simple Windows Service in C# will help get you started.&lt;br /&gt;&lt;a href="http://www.switchonthecode.com/tutorials/creating-a-simple-windows-service-in-csharp"&gt;http://www.switchonthecode.com/tutorials/creating-a-simple-windows-service-in-csharp&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For Visual Studio 2008. The MSDN has a good walkthrough guide here:&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/zt39148a(v=vs.80).aspx"&gt;http://msdn.microsoft.com/en-us/library/zt39148a(v=vs.80).aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1948217297685293363-2081280186695922351?l=logicflowau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://logicflowau.blogspot.com/feeds/2081280186695922351/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://logicflowau.blogspot.com/2011/06/develop-windows-service-in-c.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/2081280186695922351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/2081280186695922351'/><link rel='alternate' type='text/html' href='http://logicflowau.blogspot.com/2011/06/develop-windows-service-in-c.html' title='Develop a Windows Service in C#'/><author><name>Logic Flow</name><uri>http://www.blogger.com/profile/08874606426742825968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_xnXB-FaaWXs/SovXC3tqK_I/AAAAAAAAABM/FIErW2yeS4s/S220/white_bg_logo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1948217297685293363.post-7599380198300219877</id><published>2010-10-13T10:12:00.000+11:00</published><updated>2010-10-13T10:28:56.056+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>SharePoint KPI list - Click on link returns error</title><content type='html'>&lt;strong&gt;&lt;span style="font-size:130%;"&gt;The Problem&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_xnXB-FaaWXs/TLTru4xGecI/AAAAAAAAAFw/f7NyC-_w-Xc/s1600/kpi_link_01.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5527301833435281858" style="WIDTH: 221px; CURSOR: hand; HEIGHT: 149px" alt="" src="http://4.bp.blogspot.com/_xnXB-FaaWXs/TLTru4xGecI/AAAAAAAAAFw/f7NyC-_w-Xc/s400/kpi_link_01.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;When click on a certain link from the KPI dashboard list (like above), an error "Incorrect function. (Exception from HRESULT: 0x80070001)" was returned.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_xnXB-FaaWXs/TLTrvHDVnEI/AAAAAAAAAF4/e6QWDCqvGvg/s1600/kpi_link_02.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5527301837269867586" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 79px" alt="" src="http://4.bp.blogspot.com/_xnXB-FaaWXs/TLTrvHDVnEI/AAAAAAAAAF4/e6QWDCqvGvg/s400/kpi_link_02.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;The Solution&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;After some research I have found a &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/sharepointbi/thread/431f2d09-0941-47e6-aa27-9d1a6ded77e2"&gt;helpful post &lt;/a&gt;which gives me an answer. Basically, to fix the issue, a Details Link is needed to be specified. Edit that KPI list item, a collapsed section "Details Link" can be located near the bottom of the edit screen. Specify details page to go to when the KPI list item link is being clicked.&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_xnXB-FaaWXs/TLTrvJTTjfI/AAAAAAAAAGA/BnQUXJJaOhk/s1600/kpi_link_03.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5527301837873712626" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 89px" alt="" src="http://2.bp.blogspot.com/_xnXB-FaaWXs/TLTrvJTTjfI/AAAAAAAAAGA/BnQUXJJaOhk/s400/kpi_link_03.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Observation&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;I have also noticed that this issue seem to be affecting the KPI list item that is linking to a SharePoint list. The details link does not need to be specified for KPI list item that is linked to an Excel spreadsheet or manually entered.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1948217297685293363-7599380198300219877?l=logicflowau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://logicflowau.blogspot.com/feeds/7599380198300219877/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://logicflowau.blogspot.com/2010/10/sharepoint-kpi-list-click-on-link.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/7599380198300219877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/7599380198300219877'/><link rel='alternate' type='text/html' href='http://logicflowau.blogspot.com/2010/10/sharepoint-kpi-list-click-on-link.html' title='SharePoint KPI list - Click on link returns error'/><author><name>Logic Flow</name><uri>http://www.blogger.com/profile/08874606426742825968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_xnXB-FaaWXs/SovXC3tqK_I/AAAAAAAAABM/FIErW2yeS4s/S220/white_bg_logo.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_xnXB-FaaWXs/TLTru4xGecI/AAAAAAAAAFw/f7NyC-_w-Xc/s72-c/kpi_link_01.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1948217297685293363.post-8880193179968121928</id><published>2010-08-11T14:20:00.000+10:00</published><updated>2010-08-11T14:23:37.882+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><title type='text'>How to find all the column name from a database?</title><content type='html'>This helpful query will give you the list of tables:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;SELECT t.name AS table_name,&lt;br /&gt;  SCHEMA_NAME(schema_id) AS schema_name,&lt;br /&gt;  c.name AS column_name&lt;br /&gt;FROM sys.tables AS t&lt;br /&gt;INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID&lt;br /&gt;ORDER BY schema_name, table_name;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Web Reference&lt;/span&gt;&lt;br /&gt;&lt;a href="http://ramanisandeep.wordpress.com/2009/04/07/query-to-find-column-name-from-all-tables/"&gt;Ramani Sandeep's Blog: Query to Find Column Name From All Tables&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1948217297685293363-8880193179968121928?l=logicflowau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://logicflowau.blogspot.com/feeds/8880193179968121928/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://logicflowau.blogspot.com/2010/08/how-to-find-all-column-name-from.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/8880193179968121928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/8880193179968121928'/><link rel='alternate' type='text/html' href='http://logicflowau.blogspot.com/2010/08/how-to-find-all-column-name-from.html' title='How to find all the column name from a database?'/><author><name>Logic Flow</name><uri>http://www.blogger.com/profile/08874606426742825968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_xnXB-FaaWXs/SovXC3tqK_I/AAAAAAAAABM/FIErW2yeS4s/S220/white_bg_logo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1948217297685293363.post-4387892945293856224</id><published>2010-08-11T14:07:00.000+10:00</published><updated>2010-08-11T14:20:31.384+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><title type='text'>How many tables in your database have column name like "OrderId"?</title><content type='html'>This helpful query will give you the list of tables:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;SELECT t.name AS table_name,&lt;br /&gt;  SCHEMA_NAME(schema_id) AS schema_name,&lt;br /&gt;  c.name AS column_name&lt;br /&gt;FROM sys.tables AS t&lt;br /&gt;INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID&lt;br /&gt;WHERE c.name LIKE '%OrderId%'&lt;br /&gt;ORDER BY schema_name, table_name;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Web Reference&lt;/span&gt;&lt;br /&gt;&lt;a href="http://ramanisandeep.wordpress.com/2009/04/07/query-to-find-column-name-from-all-tables/"&gt;Ramani Sandeep's Blog: Query to Find Column Name From All Tables&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1948217297685293363-4387892945293856224?l=logicflowau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://logicflowau.blogspot.com/feeds/4387892945293856224/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://logicflowau.blogspot.com/2010/08/how-many-tables-in-your-database-have.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/4387892945293856224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/4387892945293856224'/><link rel='alternate' type='text/html' href='http://logicflowau.blogspot.com/2010/08/how-many-tables-in-your-database-have.html' title='How many tables in your database have column name like &quot;OrderId&quot;?'/><author><name>Logic Flow</name><uri>http://www.blogger.com/profile/08874606426742825968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_xnXB-FaaWXs/SovXC3tqK_I/AAAAAAAAABM/FIErW2yeS4s/S220/white_bg_logo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1948217297685293363.post-1551714513597104222</id><published>2010-04-29T20:08:00.000+10:00</published><updated>2010-04-29T20:41:38.927+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Permission'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>How to hide Site Actions and View All Site Content</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Overview&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Many of you would probably be in the situation when you realise the "Site Actions" and "View All Site Contents" appears to any users. No matter how you move the users around, they can still see them. Further to my previous post, the below is the detailed steps to help you in modifying the master pages.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Assumptions&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;I assume you already know where to find the master page, and to open it using SharePoint designer. Otherwise, read &lt;a href="http://office.microsoft.com/en-au/sharepointdesigner/HA101009061033.aspx"&gt;this&lt;/a&gt; before going any further.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt; &lt;span style="font-weight: bold;"&gt;SPSecurityTrimmedControl&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;This SharePoint control controls when a component is being display. Wrap this tag around the components that are to be show or hide depending on user permission. Its property PermissionsString is where permission is being specified. A summary of the permission values:&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;List Permissions&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;ManageLists&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;CancelCheckout&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;AddListItems&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;EditListItems&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;DeleteListItems&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;ViewListItems&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;ApproveItems&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;OpenItems&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;ViewVersions&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;DeleteVersions&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;CreateAlerts&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;ViewFormPages&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;Site Permissions&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;ManagePermissions&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;ViewUsageData&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;ManageSubwebs&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;ManageWeb&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;AddAndCustomizePages&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;ApplyThemeAndBorder&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;ApplyStyleSheets&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;CreateGroups&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;BrowseDirectories&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;CreateSSCSite&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;ViewPages&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;EnumeratePermissions&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;BrowseUserInfo&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;ManageAlerts&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;UseRemoteAPIs&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;UseClientIntegration&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Open&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;EditMyUserInfo&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;Personal Permissions&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;ManagePersonalViews&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;AddDelPrivateWebParts&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;UpdatePersonalWebParts&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;For multiple permissions, separate the permissions with a comma (,). For example:&lt;blockquote&gt;&amp;lt;...PermissionsString="ManagedSubwebs,ManageLists"...&amp;gt;&lt;/blockquote&gt;For more details, go &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spbasepermissions.aspx"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Hiding Site Actions button&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_xnXB-FaaWXs/S9lh7wEFxJI/AAAAAAAAAFI/02B44pguJcU/s1600/site_actions.png"&gt;&lt;img style="cursor: pointer; width: 108px; height: 33px;" src="http://4.bp.blogspot.com/_xnXB-FaaWXs/S9lh7wEFxJI/AAAAAAAAAFI/02B44pguJcU/s400/site_actions.png" alt="" id="BLOGGER_PHOTO_ID_5465507301933040786" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;After opened the default master page, search for the tag SharePoint:SiteActions.&lt;/li&gt;&lt;li&gt;If not already exists, insert the line before the SharePoint:SiteActions tag:&lt;br /&gt;&lt;blockquote&gt;&amp;lt;Sharepoint:SPSecurityTrimmedControl runat="server" PermissionsString="ManageSubwebs"&amp;gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;Insert the closing tag SharePoint:SPSecurityTrimmedControl after the closing tag of SharePoint:SiteActions&lt;/li&gt;&lt;li&gt;Change the permission string using the available permissions listed  above.&lt;/li&gt;&lt;/ol&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_xnXB-FaaWXs/S9lh8b6AnKI/AAAAAAAAAFQ/DgS7z5qe1S4/s1600/site_actions_example.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 270px;" src="http://1.bp.blogspot.com/_xnXB-FaaWXs/S9lh8b6AnKI/AAAAAAAAAFQ/DgS7z5qe1S4/s400/site_actions_example.png" alt="" id="BLOGGER_PHOTO_ID_5465507313701919906" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Hide View All Site Content link&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_xnXB-FaaWXs/S9lh8ob67yI/AAAAAAAAAFY/DvZ5J2eEb1o/s1600/ViewAllSiteContents.png"&gt;&lt;img style="cursor: pointer; width: 135px; height: 25px;" src="http://4.bp.blogspot.com/_xnXB-FaaWXs/S9lh8ob67yI/AAAAAAAAAFY/DvZ5J2eEb1o/s400/ViewAllSiteContents.png" alt="" id="BLOGGER_PHOTO_ID_5465507317065379618" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;After opened the default master page, search for "~site/_layouts/viewlsts.aspx". Normally the SharePoint:SPSecurityTrimmedControl tag is already exists before the line.&lt;/li&gt;&lt;li&gt;If not already exists, insert the line before the DIV:&lt;br /&gt;&lt;blockquote&gt;&amp;lt;Sharepoint:SPSecurityTrimmedControl  runat="server" PermissionsString="ManageSubwebs"&amp;gt;&lt;br /&gt;&amp;lt;div class="ms-quicklaunchheader"&amp;gt;&amp;lt;SharePoint:SPLinkButton... NavigateUrl="~site/_layouts/viewlsts.aspx" ...&amp;gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Insert  the closing tag SharePoint:SPSecurityTrimmedControl after the corresponding closing DIV  tag.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Change the permission string using the available permissions listed above.&lt;/li&gt;&lt;/ol&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_xnXB-FaaWXs/S9lh9Jtl5mI/AAAAAAAAAFg/OJFBEy2e5XQ/s1600/ViewAllSiteContents_Example.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 161px;" src="http://1.bp.blogspot.com/_xnXB-FaaWXs/S9lh9Jtl5mI/AAAAAAAAAFg/OJFBEy2e5XQ/s400/ViewAllSiteContents_Example.png" alt="" id="BLOGGER_PHOTO_ID_5465507325997868642" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Acknowledgm&lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;en&lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;ts&lt;/span&gt;&lt;br /&gt;This article is being inspired by the following posts:&lt;br /&gt;&lt;ul&gt;&lt;li  style="font-weight: bold; color: rgb(51, 51, 255);font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;&lt;a href="http://www.trinkit.co.nz/blog/archive/2007/05/31/spsecuritytrimmedcontrol-possible-values-for-permissionsstring.aspx"&gt;http://www.trinkit.co.nz/blog/archive/2007/05/31/spsecuritytrimmedcontrol-possible-values-for-permissionsstring.aspx&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="color: rgb(51, 51, 255); font-weight: bold;"&gt;&lt;span style="font-size:85%;"&gt;&lt;a href="http://www.sharepointkings.com/2008/11/how-to-remove-site-actions-and-view-all.html"&gt;http://www.sharepointkings.com/2008/11/how-to-remove-site-actions-and-view-all.html&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="color: rgb(51, 51, 255); font-weight: bold;"&gt;&lt;span style="font-size:85%;"&gt;&lt;a href="http://www.codeproject.com/KB/sharepoint/SecurityTrim_SharePoint.aspx"&gt;http://www.codeproject.com/KB/sharepoint/SecurityTrim_SharePoint.aspx&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1948217297685293363-1551714513597104222?l=logicflowau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://logicflowau.blogspot.com/feeds/1551714513597104222/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://logicflowau.blogspot.com/2010/04/how-to-hide-site-actions-and-view-all.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/1551714513597104222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/1551714513597104222'/><link rel='alternate' type='text/html' href='http://logicflowau.blogspot.com/2010/04/how-to-hide-site-actions-and-view-all.html' title='How to hide Site Actions and View All Site Content'/><author><name>Logic Flow</name><uri>http://www.blogger.com/profile/08874606426742825968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_xnXB-FaaWXs/SovXC3tqK_I/AAAAAAAAABM/FIErW2yeS4s/S220/white_bg_logo.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_xnXB-FaaWXs/S9lh7wEFxJI/AAAAAAAAAFI/02B44pguJcU/s72-c/site_actions.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1948217297685293363.post-3621860279165237447</id><published>2010-03-19T11:58:00.000+11:00</published><updated>2010-03-19T12:03:26.360+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Remote Desktop Connection'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Server 2008'/><title type='text'>Enabling Network Level Authentication on Windows XP Service Pack 3 for access to Server 2008 via Remote Desktop</title><content type='html'>&lt;span class="mediumtext"&gt;When connecting to a Windows 2008 Server using  remote desktop from a Windows XP client running service pack 2 or  earlier, you get the following error message:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;The remote computer requires Network Level Authentication, which your  computer does not support.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;To enable NLA in XP machines; first install XP SP3, then edit the  registry settings on the XP client machine to allow NLA.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Configure Network Level Authentication&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="mediumtext"&gt;Click Start, click Run, type regedit, and then press ENTER.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="mediumtext"&gt;In the navigation pane, locate and then click the following registry  subkey: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="mediumtext"&gt;In the details pane, right-click Security Packages, and then click  Modify.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="mediumtext"&gt;In the Value data box, type tspkg. Leave any data that is specific to  other SSPs, and then click OK.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="mediumtext"&gt;In the navigation pane, locate and then click the following registry  subkey:  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="mediumtext"&gt; In the details pane, right-click SecurityProviders, and then click  Modify.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="mediumtext"&gt; In the Value data box, type credssp.dll. Leave any data that is  specific to other SSPs, and then click OK.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="mediumtext"&gt; Exit Registry Editor.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="mediumtext"&gt; Restart the computer.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;"&gt;Credits&lt;/span&gt;&lt;br /&gt;This solution is originated from Sound Enterprises &lt;a href="https://support.soundenterprises.net/index.php?_m=knowledgebase&amp;amp;_a=viewarticle&amp;amp;kbarticleid=221"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1948217297685293363-3621860279165237447?l=logicflowau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://logicflowau.blogspot.com/feeds/3621860279165237447/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://logicflowau.blogspot.com/2010/03/enabling-network-level-authentication.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/3621860279165237447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/3621860279165237447'/><link rel='alternate' type='text/html' href='http://logicflowau.blogspot.com/2010/03/enabling-network-level-authentication.html' title='Enabling Network Level Authentication on Windows XP Service Pack 3 for access to Server 2008 via Remote Desktop'/><author><name>Logic Flow</name><uri>http://www.blogger.com/profile/08874606426742825968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_xnXB-FaaWXs/SovXC3tqK_I/AAAAAAAAABM/FIErW2yeS4s/S220/white_bg_logo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1948217297685293363.post-415206794681856954</id><published>2010-01-22T12:15:00.000+11:00</published><updated>2010-01-22T14:21:02.875+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><title type='text'>SQL 2005: Truncating Log Files and Recovering Space</title><content type='html'>In the SharePoint environment, it does happen from time to time that you will receive an error page highlighted with the message "HRESULT: 0x80040E14". It is, in most cases, caused by the log file in one of the SharePoint databases being full. To resolve this problem, we need identify the error from the SharePoint log and truncate the log file of the affecting database. Here I compiled some quick steps to truncate log file in SQL 2005.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 153, 0);"&gt;1. Check SharePoint log&lt;/span&gt;&lt;br /&gt;The log is normally under the 12 hives path within the LOGS folder. You should find something like this in your log:&lt;br /&gt;&lt;blockquote&gt;Unexpected query execution failure, error code 9002. Additional error information from SQL Server is included below. "The transaction log for database '&lt;span style="font-style: italic;"&gt;WSS_Content&lt;/span&gt;' is full.&lt;/blockquote&gt;&lt;br /&gt;In this case the database that is casuing issue is "WSS_Content".&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 153, 0);"&gt;2. Check the database file size&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;USE [database name];&lt;br /&gt;EXEC sp_helpfile;&lt;br /&gt;&lt;/blockquote&gt;It will return a table with information of the database file (MDF) and the log file (LDF). In our example, [database name] is WSS_Content.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_xnXB-FaaWXs/S1kWVPMGuaI/AAAAAAAAAE0/aXb1EE7fFgY/s1600-h/sql2005.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 38px;" src="http://2.bp.blogspot.com/_xnXB-FaaWXs/S1kWVPMGuaI/AAAAAAAAAE0/aXb1EE7fFgY/s400/sql2005.png" alt="" id="BLOGGER_PHOTO_ID_5429395379882211746" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 153, 0);"&gt;3. Truncate the log&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;USE [database name];&lt;br /&gt;BACKUP LOG [database name] WITH TRUNCATE_ONLY;&lt;br /&gt;DBCC SHRINKFILE ([log file name], 1);&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;Note:&lt;/span&gt; [log file name] is from the sp_helpfile result under the "name" column of the log file row.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 153, 0);"&gt;4. Check file size again&lt;/span&gt;&lt;br /&gt;After this do step 1 again to see the differences. The log file size should be reduced to the minimum (e.g. 1024).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1948217297685293363-415206794681856954?l=logicflowau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://logicflowau.blogspot.com/feeds/415206794681856954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://logicflowau.blogspot.com/2010/01/sql-2005-truncating-log-files-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/415206794681856954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/415206794681856954'/><link rel='alternate' type='text/html' href='http://logicflowau.blogspot.com/2010/01/sql-2005-truncating-log-files-and.html' title='SQL 2005: Truncating Log Files and Recovering Space'/><author><name>Logic Flow</name><uri>http://www.blogger.com/profile/08874606426742825968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_xnXB-FaaWXs/SovXC3tqK_I/AAAAAAAAABM/FIErW2yeS4s/S220/white_bg_logo.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_xnXB-FaaWXs/S1kWVPMGuaI/AAAAAAAAAE0/aXb1EE7fFgY/s72-c/sql2005.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1948217297685293363.post-1782267188952224710</id><published>2009-11-20T16:48:00.000+11:00</published><updated>2009-11-20T16:54:38.312+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web development'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Chrome'/><title type='text'>The Google Chrome Developer Tools</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Getting started&lt;/span&gt;&lt;br /&gt;&lt;object width="560" height="340"&gt;&lt;param name="movie" value="http://www.youtube.com/v/7cqh7MGLgaM&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/7cqh7MGLgaM&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Debugging JavaScript&lt;/span&gt;&lt;br /&gt;&lt;object width="560" height="340"&gt;&lt;param name="movie" value="http://www.youtube.com/v/c_oiQYirKuY&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/c_oiQYirKuY&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Profiling and optimizing&lt;/span&gt;&lt;br /&gt;&lt;object width="560" height="340"&gt;&lt;param name="movie" value="http://www.youtube.com/v/OxW1dCjOstE&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/OxW1dCjOstE&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Inspecting elements and resources&lt;/span&gt;&lt;br /&gt;&lt;object width="560" height="340"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Mhb4n0yGYT4&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/Mhb4n0yGYT4&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;More about the tools: &lt;/span&gt;&lt;a style="font-style: italic;" href="http://www.chromium.org/devtools/"&gt;http://www.chromium.org/devtools/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1948217297685293363-1782267188952224710?l=logicflowau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://logicflowau.blogspot.com/feeds/1782267188952224710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://logicflowau.blogspot.com/2009/11/google-chrome-developer-tools.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/1782267188952224710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/1782267188952224710'/><link rel='alternate' type='text/html' href='http://logicflowau.blogspot.com/2009/11/google-chrome-developer-tools.html' title='The Google Chrome Developer Tools'/><author><name>Logic Flow</name><uri>http://www.blogger.com/profile/08874606426742825968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_xnXB-FaaWXs/SovXC3tqK_I/AAAAAAAAABM/FIErW2yeS4s/S220/white_bg_logo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1948217297685293363.post-222828454940294938</id><published>2009-11-13T16:10:00.000+11:00</published><updated>2009-12-02T16:37:37.914+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google Wave'/><title type='text'>Google Wave: invite wanted [Now I am giving out]</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_xnXB-FaaWXs/Svzu2bCH-AI/AAAAAAAAAEc/bsX-vRRJLgg/s1600-h/waveinvitewanted.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 300px; height: 375px;" src="http://3.bp.blogspot.com/_xnXB-FaaWXs/Svzu2bCH-AI/AAAAAAAAAEc/bsX-vRRJLgg/s400/waveinvitewanted.png" alt="" id="BLOGGER_PHOTO_ID_5403456271674767362" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-style: italic; color: rgb(255, 102, 102);font-family:georgia;" &gt;&lt;span style="font-weight: bold;"&gt;[Update]:&lt;/span&gt; I am in Google Wave now, and I have 5 invites. If you want an invite, please post here with a reason to use Google Wave.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1948217297685293363-222828454940294938?l=logicflowau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://logicflowau.blogspot.com/feeds/222828454940294938/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://logicflowau.blogspot.com/2009/11/google-wave-invite-wanted.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/222828454940294938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/222828454940294938'/><link rel='alternate' type='text/html' href='http://logicflowau.blogspot.com/2009/11/google-wave-invite-wanted.html' title='Google Wave: invite wanted [Now I am giving out]'/><author><name>Logic Flow</name><uri>http://www.blogger.com/profile/08874606426742825968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_xnXB-FaaWXs/SovXC3tqK_I/AAAAAAAAABM/FIErW2yeS4s/S220/white_bg_logo.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_xnXB-FaaWXs/Svzu2bCH-AI/AAAAAAAAAEc/bsX-vRRJLgg/s72-c/waveinvitewanted.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1948217297685293363.post-5470613111439328021</id><published>2009-11-09T15:53:00.001+11:00</published><updated>2009-11-09T16:07:24.009+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSIS'/><category scheme='http://www.blogger.com/atom/ns#' term='IBM DB2'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><title type='text'>Importing DB2 (AS400) data to SQL Server using SSIS</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Problem&lt;/span&gt;&lt;br /&gt;While setting up the SQL Server Integration Services (SSIS) to import data from a DB2(AS400) database to SQL server, I have received such error (Figure 1):&lt;br /&gt;&lt;blockquote&gt;Warning at {[GUID]} [OLE DB Source[[Source ID]]: Cannot retrieve the column code page info from the OLE DB provider. If the component supports the "DefaultCodePage" property, the code page from that property will be used. Change the value of the property if the current string code page values are incorrect. If the component does not support the property, the code page from the component's locale ID will be used.&lt;/blockquote&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_xnXB-FaaWXs/SvegtWykTHI/AAAAAAAAAEE/_v80Dy13vEU/s1600-h/OLEDB_Error01.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 156px;" src="http://3.bp.blogspot.com/_xnXB-FaaWXs/SvegtWykTHI/AAAAAAAAAEE/_v80Dy13vEU/s400/OLEDB_Error01.png" alt="" id="BLOGGER_PHOTO_ID_5401962979126430834" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;(Figure 1)&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Solution&lt;/span&gt;&lt;br /&gt;After some research, the common answer is to set the "AlwaysUseDefaultCodePage" option to true. However, I have no idea where it can be set until I found the following posts:&lt;br /&gt;&lt;a href="http://www.ureader.com/msg/1251386.aspx" target="_blank"&gt;http://www.ureader.com/msg/1251386.aspx&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa705760%28BTS.10%29.aspx" target="_blank"&gt;http://msdn.microsoft.com/en-us/library/aa705760(BTS.10).aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Steps&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;In the Data Flow Task Design surface, add a new OLE DB Source or OLE DB Destination for use with the Microsoft OLE DB Provider.&lt;/li&gt;&lt;li&gt;Right-click the OLE DB source or destination object, and then click &lt;span style="font-weight: bold;"&gt;Show Advanced Editor…&lt;/span&gt;(Figure 2).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;On the Advanced Editor screen, click the &lt;span style="font-weight: bold;"&gt;Component Properties&lt;/span&gt; page.&lt;/li&gt;&lt;li&gt;Set &lt;span style="font-weight: bold;"&gt;AlwaysUseDefaultCodePage&lt;/span&gt; to True (Figure 3).&lt;/li&gt;&lt;li&gt;Click &lt;span style="font-weight: bold;"&gt;OK&lt;/span&gt;.&lt;/li&gt;&lt;/ol&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_xnXB-FaaWXs/Svegt7f08eI/AAAAAAAAAEM/f2BUxSgeyiE/s1600-h/OLEDB_Error02.png"&gt;&lt;img style="cursor: pointer; width: 313px; height: 152px;" src="http://1.bp.blogspot.com/_xnXB-FaaWXs/Svegt7f08eI/AAAAAAAAAEM/f2BUxSgeyiE/s400/OLEDB_Error02.png" alt="" id="BLOGGER_PHOTO_ID_5401962988979941858" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:85%;"&gt;(Figure 2)&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_xnXB-FaaWXs/SveguOrtyGI/AAAAAAAAAEU/dViMrvX6kvU/s1600-h/OLEDB_Error03.png"&gt;&lt;img style="cursor: pointer; width: 392px; height: 400px;" src="http://3.bp.blogspot.com/_xnXB-FaaWXs/SveguOrtyGI/AAAAAAAAAEU/dViMrvX6kvU/s400/OLEDB_Error03.png" alt="" id="BLOGGER_PHOTO_ID_5401962994130077794" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:85%;"&gt;(Figure 3)&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1948217297685293363-5470613111439328021?l=logicflowau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://logicflowau.blogspot.com/feeds/5470613111439328021/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://logicflowau.blogspot.com/2009/11/importing-db2-as400-data-to-sql-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/5470613111439328021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/5470613111439328021'/><link rel='alternate' type='text/html' href='http://logicflowau.blogspot.com/2009/11/importing-db2-as400-data-to-sql-server.html' title='Importing DB2 (AS400) data to SQL Server using SSIS'/><author><name>Logic Flow</name><uri>http://www.blogger.com/profile/08874606426742825968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_xnXB-FaaWXs/SovXC3tqK_I/AAAAAAAAABM/FIErW2yeS4s/S220/white_bg_logo.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_xnXB-FaaWXs/SvegtWykTHI/AAAAAAAAAEE/_v80Dy13vEU/s72-c/OLEDB_Error01.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1948217297685293363.post-5049437511183147572</id><published>2009-11-06T15:13:00.000+11:00</published><updated>2009-11-06T16:52:02.671+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VBScript'/><category scheme='http://www.blogger.com/atom/ns#' term='Data Connection'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Excel 2007'/><title type='text'>Refreshing data connection in Excel using VBScript</title><content type='html'>I have to present some statistical information on SharePoint using Excel Web Access web part. After a whole week of data consolidation from several different external sources, I have realized that the data connections does not get refreshed when SharePoint loads the web part. All the refreshing options that can be set in Excel (Excel 2007 in my case) does not help but giving more errors.&lt;br /&gt;After hours of Google researching, many suggested to follow the steps set out in this article:&lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc262899.aspx"&gt;Plan external data connections for Excel Services&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Surely it's probably the proper way to do it, but I just don't have the time to go through the million steps. Since I am more of a developer than a site administrator, I have decided to write a script to refresh the data connections in the Excel workbook instead. The script will be run on a daily basis which works for me in this case.&lt;br /&gt;&lt;br /&gt;Here is the VBScript that I have created:&lt;br /&gt;&lt;pre&gt;&lt;code&gt;' VB Script Document&lt;br /&gt;option explicit&lt;br /&gt;&lt;br /&gt;refreshPivotTable("[file path]\[excel file name]")&lt;br /&gt;&lt;br /&gt;Sub refreshPivotTable(strExcel)&lt;br /&gt;' Load Excel object&lt;br /&gt;Dim objExcel&lt;br /&gt;Set objExcel = CreateObject("Excel.Application")&lt;br /&gt;objExcel.Visible = False&lt;br /&gt;objExcel.Application.DisplayAlerts = False&lt;br /&gt;objExcel.Workbooks.Open strExcel&lt;br /&gt;&lt;br /&gt;' Refresh PivotTables&lt;br /&gt;Dim pt&lt;br /&gt;Dim i&lt;br /&gt;Dim nShCount&lt;br /&gt;&lt;br /&gt;nShCount = objExcel.ActiveWorkbook.Sheets.Count&lt;br /&gt;For i = 1 To nShCount&lt;br /&gt; For Each pt In objExcel.ActiveWorkbook.Sheets(i).PivotTables&lt;br /&gt;   pt.RefreshTable()&lt;br /&gt; Next&lt;br /&gt;Next&lt;br /&gt;&lt;br /&gt;' Close Excel object&lt;br /&gt;objExcel.ActiveWorkbook.Save&lt;br /&gt;objExcel.Quit&lt;br /&gt;Set objExcel = Nothing&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Schedule It&lt;/span&gt;&lt;br /&gt;You can now schedule to run this using the Windows task scheduler. Run it as "cscript vbExcelScrip.vbs"&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Data Source File&lt;/span&gt;&lt;br /&gt;One thing to note that you might have to unlink the physical data source file with your Excel. A data source file is created by Excel (normally saved on your My Document &gt; My Data Sources) when you set up a data connection. However, the connection information is in fact saved in your Excel, the connection file is used as a backup and reusable by other workbooks.&lt;br /&gt;Depending on what user you are using to run the scheduled task, it might not have access to the data connection file on your My Document folder. To unlink the data connection file from your Excel workbook:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;go to Data &gt; Connections&lt;/li&gt;&lt;li&gt;Click the "Properties..." button&lt;/li&gt;&lt;li&gt;Under the "Definition" tab&lt;/li&gt;&lt;li&gt;Uncheck "Always use connection file"&lt;/li&gt;&lt;/ol&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_xnXB-FaaWXs/SvO3Viz0QUI/AAAAAAAAAD8/ZF5AUcwJZys/s1600-h/ExcelDataConnectionFile.png"&gt;&lt;img style="cursor: pointer; width: 332px; height: 400px;" src="http://4.bp.blogspot.com/_xnXB-FaaWXs/SvO3Viz0QUI/AAAAAAAAAD8/ZF5AUcwJZys/s400/ExcelDataConnectionFile.png" alt="" id="BLOGGER_PHOTO_ID_5400861958896632130" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Hopefully this issue is addressed in SharePoint 2010 and Office 2010. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1948217297685293363-5049437511183147572?l=logicflowau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://logicflowau.blogspot.com/feeds/5049437511183147572/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://logicflowau.blogspot.com/2009/11/refreshing-data-connection-in-excel.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/5049437511183147572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/5049437511183147572'/><link rel='alternate' type='text/html' href='http://logicflowau.blogspot.com/2009/11/refreshing-data-connection-in-excel.html' title='Refreshing data connection in Excel using VBScript'/><author><name>Logic Flow</name><uri>http://www.blogger.com/profile/08874606426742825968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_xnXB-FaaWXs/SovXC3tqK_I/AAAAAAAAABM/FIErW2yeS4s/S220/white_bg_logo.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_xnXB-FaaWXs/SvO3Viz0QUI/AAAAAAAAAD8/ZF5AUcwJZys/s72-c/ExcelDataConnectionFile.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1948217297685293363.post-5525697990554283182</id><published>2009-09-27T16:35:00.000+10:00</published><updated>2009-09-27T16:48:40.588+10:00</updated><title type='text'>Best Free Credit Card Icons For eCommerce Sites</title><content type='html'>&lt;a href="http://www.fineicons.com/en/free-icons/credit-cards/"&gt;1. FineIcons&lt;/a&gt;&lt;br /&gt;A set of originally designed credit card set.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_xnXB-FaaWXs/Sr8KN04Ko1I/AAAAAAAAADs/DEH0GFLvH-s/s1600-h/visa2.gif"&gt;&lt;img style="cursor: pointer; width: 50px; height: 30px;" src="http://3.bp.blogspot.com/_xnXB-FaaWXs/Sr8KN04Ko1I/AAAAAAAAADs/DEH0GFLvH-s/s400/visa2.gif" alt="" id="BLOGGER_PHOTO_ID_5386034912007201618" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_xnXB-FaaWXs/Sr8KOGhT1PI/AAAAAAAAAD0/Nl6MMpAS6Es/s1600-h/mastercard1.gif"&gt;&lt;img style="cursor: pointer; width: 50px; height: 30px;" src="http://1.bp.blogspot.com/_xnXB-FaaWXs/Sr8KOGhT1PI/AAAAAAAAAD0/Nl6MMpAS6Es/s400/mastercard1.gif" alt="" id="BLOGGER_PHOTO_ID_5386034916743173362" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.professional-icons.com/free/credit-card-icons.aspx"&gt;2. Professional Icons&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.professional-icons.com/_images/4x72/credit-cards-vol1.jpg"&gt;&lt;img style="cursor: pointer; width: 405px; height: 98px;" src="http://www.professional-icons.com/_images/4x72/credit-cards-vol1.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.smashingmagazine.com/2008/04/25/free-credit-card-icons-for-online-shops/"&gt;3. Free Credit Card Icons For Online-Shops&lt;/a&gt;&lt;br /&gt;A list of some credit card icon collections&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_xnXB-FaaWXs/Sr8IMwpgSGI/AAAAAAAAADc/_FesZf0KR4M/s1600-h/creditcard_3d.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 55px;" src="http://1.bp.blogspot.com/_xnXB-FaaWXs/Sr8IMwpgSGI/AAAAAAAAADc/_FesZf0KR4M/s400/creditcard_3d.png" alt="" id="BLOGGER_PHOTO_ID_5386032694668839010" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1948217297685293363-5525697990554283182?l=logicflowau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://logicflowau.blogspot.com/feeds/5525697990554283182/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://logicflowau.blogspot.com/2009/09/best-free-credit-card-icons-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/5525697990554283182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/5525697990554283182'/><link rel='alternate' type='text/html' href='http://logicflowau.blogspot.com/2009/09/best-free-credit-card-icons-for.html' title='Best Free Credit Card Icons For eCommerce Sites'/><author><name>Logic Flow</name><uri>http://www.blogger.com/profile/08874606426742825968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_xnXB-FaaWXs/SovXC3tqK_I/AAAAAAAAABM/FIErW2yeS4s/S220/white_bg_logo.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_xnXB-FaaWXs/Sr8KN04Ko1I/AAAAAAAAADs/DEH0GFLvH-s/s72-c/visa2.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1948217297685293363.post-628689497826973148</id><published>2009-09-02T16:07:00.001+10:00</published><updated>2009-09-02T16:44:53.395+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSS 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='custom list form'/><title type='text'>"An unexpected error has occurred." error in WSS3.0</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_xnXB-FaaWXs/Sp4Njmmld9I/AAAAAAAAACc/-fphsEMmcuM/s1600-h/unexpected_error.png" target="_blank"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 136px;" src="http://4.bp.blogspot.com/_xnXB-FaaWXs/Sp4Njmmld9I/AAAAAAAAACc/-fphsEMmcuM/s320/unexpected_error.png" alt="" id="BLOGGER_PHOTO_ID_5376749910435919826" border="0" /&gt;&lt;/a&gt;After a couple of weeks of development of a custom list form, I finally delivered it to my manager for review. Everything looks great and promising, until she hit the "OK" button to submit the form. An unexpected screen had appeared with the message "An unexpected error has occurred.". I feel that I have just committed the biggest sin as a developer, i.e. lack of testing before delivery.&lt;br /&gt;While cursing in my mind about how poor the error message was, I quickly jumped onto the code to try resolve the issue. All seems in perfectly good order. So plan B, is to Google it. Fortunately, I was able to find this &lt;a href="http://www.blogger.com/An%20unexpected%20error%20has%20occurred"&gt;post by Vincent Rothwell&lt;/a&gt; to help me get a better error message from SharePoint. (Thanks Vincent!)&lt;br /&gt;This time I have a stack of funny error message displayed on screen, which still doesn't help. After more googling, I have concluded that one or more internal field names were incorrect in the form. It is quite possible as I have deleted and re-created a couple of the fields towards the end of my development. It turned out the field names has a different case before and after its recreation:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Previously:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_xnXB-FaaWXs/Sp4R3f46hhI/AAAAAAAAADE/tCseBhH3KOk/s1600-h/unexpected_error01.png" target="_blank"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 30px;" src="http://4.bp.blogspot.com/_xnXB-FaaWXs/Sp4R3f46hhI/AAAAAAAAADE/tCseBhH3KOk/s400/unexpected_error01.png" alt="" id="BLOGGER_PHOTO_ID_5376754650277643794" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;After re-creating the "Given Name(s)" field:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_xnXB-FaaWXs/Sp4R3p2BQrI/AAAAAAAAADM/C5DsIq3PZT4/s1600-h/unexpected_error02.png" target="_blank"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 38px;" src="http://4.bp.blogspot.com/_xnXB-FaaWXs/Sp4R3p2BQrI/AAAAAAAAADM/C5DsIq3PZT4/s400/unexpected_error02.png" alt="" id="BLOGGER_PHOTO_ID_5376754652949856946" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Such a small error, it took me a couple of hours to research and fix. :(&lt;br /&gt;&lt;br /&gt;In case, anyone has come across the same issue, this might be a good starting point to your debugging exercise. Let's hope the error messages will improve in SharePoint 2010... (XX fingers crossed XX)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1948217297685293363-628689497826973148?l=logicflowau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://logicflowau.blogspot.com/feeds/628689497826973148/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://logicflowau.blogspot.com/2009/09/unexpected-error-has-occurred-error-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/628689497826973148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/628689497826973148'/><link rel='alternate' type='text/html' href='http://logicflowau.blogspot.com/2009/09/unexpected-error-has-occurred-error-in.html' title='&quot;An unexpected error has occurred.&quot; error in WSS3.0'/><author><name>Logic Flow</name><uri>http://www.blogger.com/profile/08874606426742825968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_xnXB-FaaWXs/SovXC3tqK_I/AAAAAAAAABM/FIErW2yeS4s/S220/white_bg_logo.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_xnXB-FaaWXs/Sp4Njmmld9I/AAAAAAAAACc/-fphsEMmcuM/s72-c/unexpected_error.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1948217297685293363.post-807939994165633938</id><published>2009-09-02T11:46:00.000+10:00</published><updated>2009-09-02T12:25:41.179+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lightbox2'/><category scheme='http://www.blogger.com/atom/ns#' term='jQuery'/><title type='text'>Confliction between Lightbox2 and jQuery</title><content type='html'>I have used the typical Lightbox 2 and jQuery form plugin on the product detail page for our shopping cart application.  Lightbox 2 was implemented first and it worked beautifully. However, it failed to work once the jQuery form was implemented. After some googling, it turned out jQuery conflicts with Lightbox2's prototype.js.&lt;br /&gt;&lt;br /&gt;The work around is to place jQuery.noConflict() before the $(document).ready function in your jQuery script. Then replace all "$" with "jQuery" where the "$" is used for a jQuery functions.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Before:&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;$(document).ready(function(){&lt;br /&gt; $(window).load(&lt;br /&gt;   function() {&lt;br /&gt;     var foo = $('#content-wrapper').height();&lt;br /&gt;...etc.&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;After:&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;    jQuery.noConflict();&lt;br /&gt;   jQuery(document).ready(function(){&lt;br /&gt;     jQuery(window).load(&lt;br /&gt;       function() {&lt;br /&gt;      var foo = jQuery('#content-wrapper').height();&lt;br /&gt;   ...etc.&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://forums.obdev.at/viewtopic.php?f=6&amp;amp;t=2951"&gt;Thanks to Phil's post in Objective Development Forum.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1948217297685293363-807939994165633938?l=logicflowau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://logicflowau.blogspot.com/feeds/807939994165633938/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://logicflowau.blogspot.com/2009/09/confliction-between-lightbox2-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/807939994165633938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/807939994165633938'/><link rel='alternate' type='text/html' href='http://logicflowau.blogspot.com/2009/09/confliction-between-lightbox2-and.html' title='Confliction between Lightbox2 and jQuery'/><author><name>Logic Flow</name><uri>http://www.blogger.com/profile/08874606426742825968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_xnXB-FaaWXs/SovXC3tqK_I/AAAAAAAAABM/FIErW2yeS4s/S220/white_bg_logo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1948217297685293363.post-3047312741104682968</id><published>2009-08-29T13:10:00.001+10:00</published><updated>2009-08-29T13:29:54.028+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Widgets'/><category scheme='http://www.blogger.com/atom/ns#' term='Twitter'/><title type='text'>Free twitter widgets for your web site</title><content type='html'>&lt;a href="http://twitstamp.com/generate?user=logicflow&amp;amp;type=latest"&gt;Twitter Stamp&lt;/a&gt;&lt;br /&gt;Highly customisable with different size and style. The most important is that it's free and worked.&lt;br /&gt;&lt;a href="http://twitstamp.com/"&gt;&lt;img src="http://twitstamp.com/logicflow/applicious.png" alt="twitstamp.com" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.widgetbox.com/widget/twidget"&gt;Widge Box&lt;/a&gt;&lt;br /&gt;Nice design and customisable background colour, auto-scrolling twittes. HTML code available in javascript, flash or MySpace specifically. Get the Pro version to remove the ad button.&lt;br /&gt;&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" type="application/x-shockwave-flash" id="InsertWidget_c509718c-4aff-4ebc-819d-ca1805907c6f" align="middle" height="213px" width="180px"&gt;&lt;param name="movie" value="http://widgetserver.com/syndication/flash/wrapper/InsertWidget.swf"&gt;&lt;param name="quality" value="high"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;param name="menu" value="false"&gt;&lt;param name="flashvars" value="r=2&amp;amp;appId=c509718c-4aff-4ebc-819d-ca1805907c6f"&gt;&lt;param name="allowScriptAccess" value="sameDomain"&gt; &lt;embed src="http://widgetserver.com/syndication/flash/wrapper/InsertWidget.swf" name="InsertWidget_c509718c-4aff-4ebc-819d-ca1805907c6f" quality="high" menu="false" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" allowscriptaccess="sameDomain" flashvars="r=2&amp;amp;appId=c509718c-4aff-4ebc-819d-ca1805907c6f" align="middle" height="213px" width="180px"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://deanjrobinson.com/projects/twitt-twoo/"&gt;Twitt-Twoo&lt;/a&gt;&lt;br /&gt;Great twitter widgets for your WordPress site. This is more programming involved to install, but highly customisable for your needs.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.deanjrobinson.com/wp-content/uploads/2007/03/twitt-1.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 229px; height: 98px;" src="http://www.deanjrobinson.com/wp-content/uploads/2007/03/twitt-1.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1948217297685293363-3047312741104682968?l=logicflowau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://logicflowau.blogspot.com/feeds/3047312741104682968/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://logicflowau.blogspot.com/2009/08/free-twitter-widgets-for-your-web-site.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/3047312741104682968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/3047312741104682968'/><link rel='alternate' type='text/html' href='http://logicflowau.blogspot.com/2009/08/free-twitter-widgets-for-your-web-site.html' title='Free twitter widgets for your web site'/><author><name>Logic Flow</name><uri>http://www.blogger.com/profile/08874606426742825968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_xnXB-FaaWXs/SovXC3tqK_I/AAAAAAAAABM/FIErW2yeS4s/S220/white_bg_logo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1948217297685293363.post-8224918395812515624</id><published>2009-08-20T11:22:00.001+10:00</published><updated>2010-03-16T15:17:05.489+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IT'/><category scheme='http://www.blogger.com/atom/ns#' term='Free software'/><category scheme='http://www.blogger.com/atom/ns#' term='business'/><title type='text'>Some useful free software tools</title><content type='html'>&lt;ol&gt;&lt;li&gt;&lt;a href="http://www.getpaint.net/"&gt;Paint .Net&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.getpaint.net/screenshots/pdn310_car_thumb.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 450px; height: 335px;" src="http://www.getpaint.net/screenshots/pdn310_car_thumb.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;A free alternative to PhotoShop. It has a lot of photo editing tools and features which makes it better alterative to the Windows' paint.&lt;/li&gt;&lt;li style="clear: both;"&gt;&lt;a style="font-weight: bold;" href="http://www.code4ward.net/main/"&gt;Royal TS&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_xnXB-FaaWXs/SoywvfEqyDI/AAAAAAAAABw/YrV3ptBYhhY/s1600-h/royalts.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 150px;" src="http://2.bp.blogspot.com/_xnXB-FaaWXs/SoywvfEqyDI/AAAAAAAAABw/YrV3ptBYhhY/s200/royalts.png" alt="" id="BLOGGER_PHOTO_ID_5371862785387579442" border="0" /&gt;&lt;/a&gt;&lt;a style="font-weight: bold;" href="http://www.code4ward.net/main/"&gt;&lt;br /&gt;&lt;/a&gt;This tools should not be unfamiliar to you if you are a system administrator or developer. This nice software here allows you to connect to other Windows machines using RDP* (Remote Desktop Protocol).&lt;/li&gt;&lt;li style="clear: both;"&gt;&lt;a href="http://www.pdftoword.com/"&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;Convert PDF to Word&lt;/span&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.pdftoword.com/images/i_index.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 250px; height: 200px;" src="http://www.pdftoword.com/images/i_index.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;You are new to the job, and being asked to update some policies for your department. All you can find is the PDF file, who knows where the original Word document was stored. Instead of buying a PDF editor to edit the PDF and eventually save it in Word. Try this online tool which can convert the PDF back to Word. You might lose some fonts and style formatting, but they are very easy to fix. However, you may consider the confidentiality of your document before using this tool since you have to upload it to their server.&lt;/li&gt;&lt;li style="clear: both;"&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=C26EFA36-98E0-4EE9-A7C5-98D0592D8C52&amp;amp;displaylang=en"&gt;SyncToy&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_xnXB-FaaWXs/S58FKvhxWHI/AAAAAAAAAE8/7ZtZSfOW_-M/s1600-h/microsoft.gif"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 168px; height: 97px;" src="http://1.bp.blogspot.com/_xnXB-FaaWXs/S58FKvhxWHI/AAAAAAAAAE8/7ZtZSfOW_-M/s400/microsoft.gif" alt="" id="BLOGGER_PHOTO_ID_5449079756256532594" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;SyncToy 2.1 is a free application that synchronizes files and folders  between locations.  Typical uses include sharing files, such as photos,  with other computers and creating backup copies of files and folders.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;A great list of tools by Scott Henselman can be found &lt;a href="http://www.hanselman.com/blog/ScottHanselmans2005UltimateDeveloperAndPowerUsersToolList.aspx"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1948217297685293363-8224918395812515624?l=logicflowau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://logicflowau.blogspot.com/feeds/8224918395812515624/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://logicflowau.blogspot.com/2009/08/some-useful-free-it-tools.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/8224918395812515624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/8224918395812515624'/><link rel='alternate' type='text/html' href='http://logicflowau.blogspot.com/2009/08/some-useful-free-it-tools.html' title='Some useful free software tools'/><author><name>Logic Flow</name><uri>http://www.blogger.com/profile/08874606426742825968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_xnXB-FaaWXs/SovXC3tqK_I/AAAAAAAAABM/FIErW2yeS4s/S220/white_bg_logo.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_xnXB-FaaWXs/SoywvfEqyDI/AAAAAAAAABw/YrV3ptBYhhY/s72-c/royalts.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1948217297685293363.post-3940352174595796940</id><published>2009-08-19T17:24:00.000+10:00</published><updated>2009-08-25T11:36:58.865+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Free software'/><title type='text'>Some free useful SharePoint and SPD add-on's</title><content type='html'>&lt;span style="font-weight: bold;font-size:130%;" &gt;SharePoint (WSS 3.0)&lt;/span&gt;&lt;br /&gt;1. Mullivan's scheduled reminder&amp;amp; alerts&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;a href="http://www.codeproject.com/KB/sharepoint/SPScheduedReminders.aspx"&gt;http://www.codeproject.com/KB/sharepoint/SPScheduedReminders.aspx&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2. Zip and download list items&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;a href="http://www.codeproject.com/KB/sharepoint/SharepointZippedListItem.aspx"&gt;http://www.codeproject.com/KB/sharepoint/SharepointZippedListItem.aspx&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3. Cross-Site Lookup Column Add-on&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;a href="http://tonybierman.blogspot.com/2008/07/free-custom-cross-site-lookup-column.html"&gt;http://tonybierman.blogspot.com/2008/07/free-custom-cross-site-lookup-column.html&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;4. Tip of the day&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;a href="http://www.amrein.com/apps/page.asp?Q=5739"&gt;http://www.amrein.com/apps/page.asp?Q=5739&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;5. Smart tools&lt;br /&gt;&lt;a href="http://www.codeplex.com/smarttools"&gt;http://www.codeplex.com/smarttools&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;br /&gt;SharePoint Designer&lt;/span&gt;&lt;br /&gt;1. Useful SharePoint Designer workflow activities&lt;br /&gt;&lt;a href="http://www.codeplex.com/SPDActivities"&gt;http://www.codeplex.com/SPDActivities&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1948217297685293363-3940352174595796940?l=logicflowau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://logicflowau.blogspot.com/feeds/3940352174595796940/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://logicflowau.blogspot.com/2009/08/some-free-useful-sharepoint-and-spd-add.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/3940352174595796940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/3940352174595796940'/><link rel='alternate' type='text/html' href='http://logicflowau.blogspot.com/2009/08/some-free-useful-sharepoint-and-spd-add.html' title='Some free useful SharePoint and SPD add-on&apos;s'/><author><name>Logic Flow</name><uri>http://www.blogger.com/profile/08874606426742825968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_xnXB-FaaWXs/SovXC3tqK_I/AAAAAAAAABM/FIErW2yeS4s/S220/white_bg_logo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1948217297685293363.post-951333499707447142</id><published>2009-08-19T17:14:00.001+10:00</published><updated>2009-08-19T21:49:25.869+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Permission'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>How to: Hide the Site Actions Menu in SharePoint</title><content type='html'>Customizing Site Action menu permission can be achieved by wrapping the &lt;span style="font-style: italic; color: rgb(204, 0, 0);"&gt;SharePoint:SPSecurityTrimmedControl WebControl&lt;/span&gt; around the &lt;span style="font-style: italic; color: rgb(204, 0, 0);"&gt;PublishingSiteAction:SiteActionMenu&lt;/span&gt; control in your master page.&lt;br /&gt;&lt;br /&gt;Detailed reference:&lt;br /&gt;&lt;a href="http://www.codeproject.com/KB/sharepoint/SecurityTrim_SharePoint.aspx"&gt;http://www.codeproject.com/KB/sharepoint/SecurityTrim_SharePoint.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1948217297685293363-951333499707447142?l=logicflowau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://logicflowau.blogspot.com/feeds/951333499707447142/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://logicflowau.blogspot.com/2009/08/how-to-hide-site-actions-menu-in_19.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/951333499707447142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/951333499707447142'/><link rel='alternate' type='text/html' href='http://logicflowau.blogspot.com/2009/08/how-to-hide-site-actions-menu-in_19.html' title='How to: Hide the Site Actions Menu in SharePoint'/><author><name>Logic Flow</name><uri>http://www.blogger.com/profile/08874606426742825968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_xnXB-FaaWXs/SovXC3tqK_I/AAAAAAAAABM/FIErW2yeS4s/S220/white_bg_logo.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1948217297685293363.post-1656764593443851629</id><published>2009-08-12T11:14:00.002+10:00</published><updated>2009-08-19T21:49:25.891+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='custom list form'/><title type='text'>SharePoint XSLT data view : issues rendering special characters (e.g. &amp;, &gt;, ") and line breaks</title><content type='html'>&lt;p&gt;I have had problem with my custom display form, where displaying the content of a multiple line text box field does not render the special characters (such as &amp;amp;, &gt;, ") and line breaks properly. After Googling for a couple of hours, there were no solution to my problem. Many suggested using "disable-output-escaping" to fix the special character issue, and some suggested using select="ddwrt:AutoNewLine(string(@Description))" to fix the line breaks issue. They cannot co-exist in the "xsl:value-of" tag because the AutoNewLine function will overwrite the special characters with their HTML encoding (&lt;a href="http://msdn.microsoft.com/en-us/library/dd583143%28office.11%29.aspx#officesharepointddwrt_autonewline"&gt;see here&lt;/a&gt;).&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Finally, I have worked out a solution to resolve both issues. Adding the following template (function) to your display form ASPX and calling it when display a multiple line text field. It replaces the new line character (\n or &amp;amp;#xa;) with a &amp;lt;br&amp;gt;.&lt;br /&gt;&lt;/p&gt;Add this function to your DispForm.aspx file:&lt;br /&gt;&lt;blockquote&gt; &amp;lt;xsl:template name="formatMultiLineText"&amp;gt;&lt;br /&gt;&amp;lt;xsl:param name="text" select="."/&amp;gt;&lt;br /&gt;&amp;lt;xsl:choose&amp;gt;&lt;br /&gt;&amp;lt;xsl:when test="contains($text, '&amp;amp;#xa;')"&amp;gt;&lt;br /&gt; &amp;lt;xsl:value-of select="substring-before($text, '&amp;amp;#xa;')" disable-output-escaping="yes"/&amp;gt;&lt;br /&gt; &amp;lt;br/&amp;gt;&lt;br /&gt; &amp;lt;xsl:call-template name="formatMultiLineText"&amp;gt;&lt;br /&gt;  &amp;lt;xsl:with-param name="text" select="substring-after($text,'&amp;amp;#xa;')"/&amp;gt;&lt;br /&gt; &amp;lt;/xsl:call-template&amp;gt;&lt;br /&gt;&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;&amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt; &amp;lt;xsl:value-of select="$text" disable-output-escaping="yes"/&amp;gt;&lt;br /&gt;&amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;&amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Where your multiple line text is displaying, replace this:&lt;br /&gt;&lt;blockquote&gt;&amp;lt;xsl:value-of select="@Description"&amp;gt;&lt;/blockquote&gt;&lt;br /&gt;with this:&lt;br /&gt;&lt;blockquote&gt;&amp;lt;xsl:call-template name="formatMultiLineText"&amp;gt;&lt;br /&gt;&amp;lt;xsl:with-param name="text" select="@Description"&amp;gt;&lt;br /&gt;&amp;lt;/xsl:call-template&amp;gt;&lt;/blockquote&gt;Although it might be a bit of work to replace all the multi-line text fields with the template call, it will finally give you some peace of mind. I'd be happy to know if you have any better ideas to overcome all these hassles. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1948217297685293363-1656764593443851629?l=logicflowau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://logicflowau.blogspot.com/feeds/1656764593443851629/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://logicflowau.blogspot.com/2009/08/sharepoint-xslt-data-view-issues_1789.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/1656764593443851629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/1656764593443851629'/><link rel='alternate' type='text/html' href='http://logicflowau.blogspot.com/2009/08/sharepoint-xslt-data-view-issues_1789.html' title='SharePoint XSLT data view : issues rendering special characters (e.g. &amp;amp;, &amp;gt;, &amp;quot;) and line breaks'/><author><name>Logic Flow</name><uri>http://www.blogger.com/profile/08874606426742825968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_xnXB-FaaWXs/SovXC3tqK_I/AAAAAAAAABM/FIErW2yeS4s/S220/white_bg_logo.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1948217297685293363.post-3798349591150290761</id><published>2009-08-11T16:25:00.002+10:00</published><updated>2009-08-19T21:49:25.835+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Import'/><category scheme='http://www.blogger.com/atom/ns#' term='CSV'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><title type='text'>SQL SERVER – Import CSV File Into SQL Server Using Bulk Insert – Load Comma Delimited File Into SQL Server</title><content type='html'>&lt;a href="http://blog.sqlauthority.com/2008/02/06/sql-server-import-csv-file-into-sql-server-using-bulk-insert-load-comma-delimited-file-into-sql-server/"&gt;Good information here.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1948217297685293363-3798349591150290761?l=logicflowau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://logicflowau.blogspot.com/feeds/3798349591150290761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://logicflowau.blogspot.com/2009/08/sql-server-import-csv-file-into-sql_7238.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/3798349591150290761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/3798349591150290761'/><link rel='alternate' type='text/html' href='http://logicflowau.blogspot.com/2009/08/sql-server-import-csv-file-into-sql_7238.html' title='SQL SERVER – Import CSV File Into SQL Server Using Bulk Insert – Load Comma Delimited File Into SQL Server'/><author><name>Logic Flow</name><uri>http://www.blogger.com/profile/08874606426742825968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_xnXB-FaaWXs/SovXC3tqK_I/AAAAAAAAABM/FIErW2yeS4s/S220/white_bg_logo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1948217297685293363.post-5053408821182339289</id><published>2009-08-05T17:34:00.002+10:00</published><updated>2009-08-19T21:49:25.916+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='People picker'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='custom list form'/><title type='text'>SP People Picker Error: "The control is not available because you do not have the correct permissions."</title><content type='html'>&lt;p&gt;When setting one of the "People or Group" field to choose from a SharePoint Group, the above message appeared instead of the expected people picker field. However, it works fine when logged in with an site collection admin account.&lt;/p&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_7BTIjxmUrmI/Snk4nGWhh8I/AAAAAAAAAcM/z-b5YqGT_YQ/s1600-h/peoplepickerpermission.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 20px;" src="http://1.bp.blogspot.com/_7BTIjxmUrmI/Snk4nGWhh8I/AAAAAAAAAcM/z-b5YqGT_YQ/s400/peoplepickerpermission.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5366382675359795138" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;After some research on the web, I found the issue was originated from the user group setting. Go to your user group, select Settings -&gt; Group Settings. Then under Group Settings -&gt; Who can view the membership of the group?, select Everyone &lt;span style="font-style:italic;"&gt;(see below)&lt;/span&gt;. Go back to your list form and you should see the people picker instead of the error message.&lt;/p&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="#" onClick="javascript:window.open('http://4.bp.blogspot.com/_7BTIjxmUrmI/Snk4nSBPaNI/AAAAAAAAAcU/Ze8HFCOLVvg/s1600-h/groupsetting.png','GroupSetting','width=1100,height=130,left=0,top=0,status=no,toolbar=no,menubar=no,location=no',true);" target="_blank"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 600px; height: 65px;" src="http://4.bp.blogspot.com/_7BTIjxmUrmI/Snk4nSBPaNI/AAAAAAAAAcU/Ze8HFCOLVvg/s400/groupsetting.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5366382678491752658" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1948217297685293363-5053408821182339289?l=logicflowau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://logicflowau.blogspot.com/feeds/5053408821182339289/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://logicflowau.blogspot.com/2009/08/sp-people-picker-error-control-is-not_7323.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/5053408821182339289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/5053408821182339289'/><link rel='alternate' type='text/html' href='http://logicflowau.blogspot.com/2009/08/sp-people-picker-error-control-is-not_7323.html' title='SP People Picker Error: &amp;quot;The control is not available because you do not have the correct permissions.&amp;quot;'/><author><name>Logic Flow</name><uri>http://www.blogger.com/profile/08874606426742825968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_xnXB-FaaWXs/SovXC3tqK_I/AAAAAAAAABM/FIErW2yeS4s/S220/white_bg_logo.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_7BTIjxmUrmI/Snk4nGWhh8I/AAAAAAAAAcM/z-b5YqGT_YQ/s72-c/peoplepickerpermission.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1948217297685293363.post-7779366003181413557</id><published>2009-07-31T16:47:00.002+10:00</published><updated>2009-08-19T21:49:25.991+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SPDiag'/><category scheme='http://www.blogger.com/atom/ns#' term='Hilton Giesenow'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>How Do I: Use the SPDiag Tool to Analyze my SharePoint Farm?</title><content type='html'>&lt;div style="float: left; width: 180px; text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://technet.microsoft.com/en-us/office/sharepointserver/ee221106.aspx"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 150px; height: 113px;" src="http://4.bp.blogspot.com/_7BTIjxmUrmI/SnKURVU-wII/AAAAAAAAAb0/LpQ5FKD37EA/s200/ee221106_HDI-IT_Pro-UsingSPDiagToAnalyseSharePointS.jpg" alt="" id="BLOGGER_PHOTO_ID_5364513131655512194" border="0" /&gt;&lt;br /&gt;&lt;div style="clear: both;"&gt;Click to watch video&lt;/div&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="font-style: italic;"&gt;22 minutes, 38 seconds&lt;/span&gt;&lt;br /&gt;The SharePoint Diagnostic (SPDiag) tool offers both static and trend analysis and reporting as well as real-time details to assist in analysis, planning, and problem avoidance and resolution. In this video Hilton Giesenow takes us through downloading, installing and configuring the tool, and shows how to use some of its features.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1948217297685293363-7779366003181413557?l=logicflowau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://logicflowau.blogspot.com/feeds/7779366003181413557/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://logicflowau.blogspot.com/2009/07/how-do-i-use-spdiag-tool-to-analyze-my_5376.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/7779366003181413557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/7779366003181413557'/><link rel='alternate' type='text/html' href='http://logicflowau.blogspot.com/2009/07/how-do-i-use-spdiag-tool-to-analyze-my_5376.html' title='How Do I: Use the SPDiag Tool to Analyze my SharePoint Farm?'/><author><name>Logic Flow</name><uri>http://www.blogger.com/profile/08874606426742825968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_xnXB-FaaWXs/SovXC3tqK_I/AAAAAAAAABM/FIErW2yeS4s/S220/white_bg_logo.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_7BTIjxmUrmI/SnKURVU-wII/AAAAAAAAAb0/LpQ5FKD37EA/s72-c/ee221106_HDI-IT_Pro-UsingSPDiagToAnalyseSharePointS.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1948217297685293363.post-6229070178336297088</id><published>2009-07-27T18:33:00.002+10:00</published><updated>2009-08-19T21:49:25.968+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Quick launch menu'/><title type='text'>Highlighting the left menu of the current SharePoint page</title><content type='html'>&lt;div style="text-align: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_7BTIjxmUrmI/Sm1prki4U_I/AAAAAAAAAbs/9ezFPGv_-Jg/s1600-h/highlightingLeftMenu.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; cursor: pointer; width: 127px; height: 200px;" src="http://2.bp.blogspot.com/_7BTIjxmUrmI/Sm1prki4U_I/AAAAAAAAAbs/9ezFPGv_-Jg/s200/highlightingLeftMenu.png" alt="" id="BLOGGER_PHOTO_ID_5363058928533394418" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;I have discovered that it is in fact quite simple and effective:&lt;br /&gt;&lt;pre&gt;&lt;code&gt;function highlightCurrentMenu() {&lt;br /&gt; var As = document.getElementsByTagName("A");&lt;br /&gt;&lt;br /&gt; for (var i=0; i&amp;lt;As.length; i++) {&lt;br /&gt;  if (As[i].className == "zz2_QuickLaunchMenu_1 ms-navitem zz2_QuickLaunchMenu_5") {&lt;br /&gt;   if (As[i].href == document.location) {&lt;br /&gt;    As[i].style.fontWeight = "bold";&lt;br /&gt;    As[i].parentNode.style.backgroundColor = "#dddddd";&lt;br /&gt;    break;&lt;br /&gt;   }&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1948217297685293363-6229070178336297088?l=logicflowau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://logicflowau.blogspot.com/feeds/6229070178336297088/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://logicflowau.blogspot.com/2009/07/highlighting-left-menu-of-current_3830.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/6229070178336297088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/6229070178336297088'/><link rel='alternate' type='text/html' href='http://logicflowau.blogspot.com/2009/07/highlighting-left-menu-of-current_3830.html' title='Highlighting the left menu of the current SharePoint page'/><author><name>Logic Flow</name><uri>http://www.blogger.com/profile/08874606426742825968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_xnXB-FaaWXs/SovXC3tqK_I/AAAAAAAAABM/FIErW2yeS4s/S220/white_bg_logo.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_7BTIjxmUrmI/Sm1prki4U_I/AAAAAAAAAbs/9ezFPGv_-Jg/s72-c/highlightingLeftMenu.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1948217297685293363.post-4970838099757485401</id><published>2009-07-27T17:52:00.007+10:00</published><updated>2011-07-27T17:24:17.730+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='View selection box'/><category scheme='http://www.blogger.com/atom/ns#' term='Lists'/><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>Hiding the view selection in a SharePoint list</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_7BTIjxmUrmI/Sm1e5mpEHnI/AAAAAAAAAbc/OZSqy64V8Gg/s1600-h/listviewselection.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 197px; height: 42px;" src="http://2.bp.blogspot.com/_7BTIjxmUrmI/Sm1e5mpEHnI/AAAAAAAAAbc/OZSqy64V8Gg/s200/listviewselection.png" alt="" id="BLOGGER_PHOTO_ID_5363047074986466930" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I have to hide the List View selection box on the top right hand corner in one of the SharePoint lists that I created. It is to avoid users changing any pre-defined settings and seeing other people's views.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;For example&lt;/span&gt;, in a leave form list, you should only see your own leaves but not your managers view which contains other people's leaves.&lt;br /&gt;&lt;br /&gt;To do that, apply the following Javascript onto your list view:&lt;br /&gt;&lt;pre&gt;&lt;code&gt;function hideViewMenu() {&lt;br /&gt; var TDs = document.getElementsByTagName("TD");&lt;br /&gt; for (var i=0; i&amp;lt;TDs.length; i++) {&lt;br /&gt;  if (TDs[i].className == "ms-listheaderlabel") {&lt;br /&gt;   var tableNode = TDs[i].parentNode;&lt;br /&gt;   tableNode.style.display = 'none';&lt;br /&gt;   break;&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Using jQuery&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;$(function() {&lt;br /&gt; $("td[class='ms-listheaderlabel']").parent().hide();&lt;br /&gt;});&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1948217297685293363-4970838099757485401?l=logicflowau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://logicflowau.blogspot.com/feeds/4970838099757485401/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://logicflowau.blogspot.com/2009/07/hiding-view-selection-in-sharepoint_7248.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/4970838099757485401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/4970838099757485401'/><link rel='alternate' type='text/html' href='http://logicflowau.blogspot.com/2009/07/hiding-view-selection-in-sharepoint_7248.html' title='Hiding the view selection in a SharePoint list'/><author><name>Logic Flow</name><uri>http://www.blogger.com/profile/08874606426742825968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_xnXB-FaaWXs/SovXC3tqK_I/AAAAAAAAABM/FIErW2yeS4s/S220/white_bg_logo.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_7BTIjxmUrmI/Sm1e5mpEHnI/AAAAAAAAAbc/OZSqy64V8Gg/s72-c/listviewselection.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1948217297685293363.post-3094116042748269585</id><published>2009-07-24T16:12:00.002+10:00</published><updated>2009-08-19T21:49:26.048+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WebPart'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>Cannot open page in SharePoint Designer. SOAP error.</title><content type='html'>Cannot open page in sharepoint designer. SOAP error. &lt;br /&gt;If you find this post, you are one of the many webpart victims. While playing with a executive dash board, my boss had managed to destroy a page that he had been working on for weeks. Resetting that page to Site Definition did not do the job. Restoring to previous version did not work either.&lt;br /&gt;&lt;br /&gt;When opening from SharePoint Designer, he got this error:&lt;br /&gt;&lt;blockquote&gt;soap:ServerServer was unable to process request. ---&gt; An unexpected error occurred while opening this page. For assistance, contact your site administrator.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;After search the web, I have found a post by Brute Force SharePoint:&lt;br /&gt;&lt;a href="http://bruteforcesharepoint.blogspot.com/2009/03/cannot-open-page-in-sharepoint-designer.html"&gt;http://bruteforcesharepoint.blogspot.com/2009/03/cannot-open-page-in-sharepoint-designer.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Fixing the problem&lt;br /&gt;To fix the problem you have to delete the webparts from the page one by one until you can open the page again. The rule of thumb is to delete in the order of the most recently added first.&lt;br /&gt;From your browser, go the problem page, append &lt;span style="font-style:italic;"&gt;"?contents=1"&lt;/span&gt; to the URL.&lt;br /&gt;For example:&lt;br /&gt;&lt;blockquote&gt;http://domain/site/ReportLibrary/problempage.aspx?contents=1&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;It will give you a list of all web part on the page, you may start deleting until your page can be opened again.&lt;br /&gt;&lt;br /&gt;Have fun again, but this time be careful! :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1948217297685293363-3094116042748269585?l=logicflowau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://logicflowau.blogspot.com/feeds/3094116042748269585/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://logicflowau.blogspot.com/2009/07/cannot-open-page-in-sharepoint-designer_3744.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/3094116042748269585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/3094116042748269585'/><link rel='alternate' type='text/html' href='http://logicflowau.blogspot.com/2009/07/cannot-open-page-in-sharepoint-designer_3744.html' title='Cannot open page in SharePoint Designer. SOAP error.'/><author><name>Logic Flow</name><uri>http://www.blogger.com/profile/08874606426742825968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_xnXB-FaaWXs/SovXC3tqK_I/AAAAAAAAABM/FIErW2yeS4s/S220/white_bg_logo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1948217297685293363.post-4231422379916724529</id><published>2009-07-21T18:28:00.002+10:00</published><updated>2009-08-19T21:49:26.114+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web development'/><title type='text'>Portable Web Development Tools</title><content type='html'>A very handy list of applications to be carry around for web development:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.freesoftwaremagazine.com/columns/the_portable_web_development_toolkit"&gt;http://www.freesoftwaremagazine.com/columns/the_portable_web_development_toolkit&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://ooyes.net/blog/32-useful-portable-apps-for-web-designers-and-developers"&gt;http://ooyes.net/blog/32-useful-portable-apps-for-web-designers-and-developers&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1948217297685293363-4231422379916724529?l=logicflowau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://logicflowau.blogspot.com/feeds/4231422379916724529/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://logicflowau.blogspot.com/2009/07/portable-web-development-tools_7871.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/4231422379916724529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/4231422379916724529'/><link rel='alternate' type='text/html' href='http://logicflowau.blogspot.com/2009/07/portable-web-development-tools_7871.html' title='Portable Web Development Tools'/><author><name>Logic Flow</name><uri>http://www.blogger.com/profile/08874606426742825968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_xnXB-FaaWXs/SovXC3tqK_I/AAAAAAAAABM/FIErW2yeS4s/S220/white_bg_logo.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1948217297685293363.post-8426656892783285516</id><published>2009-07-02T12:35:00.002+10:00</published><updated>2009-08-19T21:49:26.020+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Outlook'/><category scheme='http://www.blogger.com/atom/ns#' term='CRM'/><title type='text'>Problem with tracking contact using CRM Outlook client</title><content type='html'>&lt;span style="font-weight: bold;"&gt;The error&lt;/span&gt;&lt;br /&gt;After clicking the "Track in CRM" button to synchronize a contact to CRM from Outlook, the following error came up:&lt;br /&gt;&lt;blockquote&gt;...cannot link this item to Microsoft Dynamics CRM. Synchronization with this record or activity type has been turned off.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;How to fix it&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Select the "CRM" menu&lt;/li&gt;&lt;li&gt;Select "Options..."&lt;/li&gt;&lt;li&gt;Select the "Synchronization" tab&lt;/li&gt;&lt;li&gt;Make sure the "Contacts" check box is ticked&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1948217297685293363-8426656892783285516?l=logicflowau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://logicflowau.blogspot.com/feeds/8426656892783285516/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://logicflowau.blogspot.com/2009/07/problem-with-tracking-contact-using-crm_3335.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/8426656892783285516'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/8426656892783285516'/><link rel='alternate' type='text/html' href='http://logicflowau.blogspot.com/2009/07/problem-with-tracking-contact-using-crm_3335.html' title='Problem with tracking contact using CRM Outlook client'/><author><name>Logic Flow</name><uri>http://www.blogger.com/profile/08874606426742825968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_xnXB-FaaWXs/SovXC3tqK_I/AAAAAAAAABM/FIErW2yeS4s/S220/white_bg_logo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1948217297685293363.post-4198120888186956568</id><published>2009-07-02T12:00:00.002+10:00</published><updated>2009-08-19T21:49:26.132+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='custom list form'/><title type='text'>Set people picker default value</title><content type='html'>A few reference to set default people picker value on SharePoint forms:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://cs.vbcity.com/blogs/skullcrusher/archive/2008/11/04/set-sharepoint-peoplepicker-field-mark-2.aspx"&gt;Set People Picker Default Value using Javascript&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1948217297685293363-4198120888186956568?l=logicflowau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://logicflowau.blogspot.com/feeds/4198120888186956568/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://logicflowau.blogspot.com/2009/07/set-people-picker-default-value_9385.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/4198120888186956568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/4198120888186956568'/><link rel='alternate' type='text/html' href='http://logicflowau.blogspot.com/2009/07/set-people-picker-default-value_9385.html' title='Set people picker default value'/><author><name>Logic Flow</name><uri>http://www.blogger.com/profile/08874606426742825968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_xnXB-FaaWXs/SovXC3tqK_I/AAAAAAAAABM/FIErW2yeS4s/S220/white_bg_logo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1948217297685293363.post-7454036508996800519</id><published>2009-07-02T11:44:00.002+10:00</published><updated>2009-11-11T12:23:38.117+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='People picker'/><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='custom list form'/><title type='text'>Get people picker value using Javascript</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Usage:&lt;/span&gt; The following  javascript will return the current name value of a specific people picker on a SharePoint form page&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Parameter:&lt;/span&gt; People picker number, which is the order of the people picker on the page.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Returns:&lt;/span&gt; Name of the person or group, &lt;span style="font-weight: bold;"&gt;not&lt;/span&gt; the internal domain name.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;function getPickerInputElement(pickerNo) {&lt;br /&gt; var result = "";&lt;br /&gt; var j = 0;&lt;br /&gt; var divs = document.getElementsByTagName("DIV");&lt;br /&gt;&lt;br /&gt; for (var i=0; i &lt;&gt; 0) {&lt;br /&gt;   if (divs[i].id.indexOf("UserField_upLevelDiv") &gt; 0) {&lt;br /&gt;     j++;&lt;br /&gt;     if (j == pickerNo) {&lt;br /&gt;       result = divs[i];&lt;br /&gt;       break;&lt;br /&gt;     }&lt;br /&gt;   }&lt;br /&gt; }&lt;br /&gt; return result;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// Example: calling the function, where 1 indicates the first people picker on the page&lt;br /&gt;var objPeoplePicker = getPickerInputElement(1);&lt;br /&gt;&lt;br /&gt;// Example: getting people picker value&lt;br /&gt;var employeeName = objPeoplePicker.innerText;&lt;br /&gt;&lt;br /&gt;// Example: putting a new value to the people picker field&lt;br /&gt;objPeoplePicker.innerText = "Peter Parker";&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1948217297685293363-7454036508996800519?l=logicflowau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://logicflowau.blogspot.com/feeds/7454036508996800519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://logicflowau.blogspot.com/2009/07/get-people-picker-value-using_1753.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/7454036508996800519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/7454036508996800519'/><link rel='alternate' type='text/html' href='http://logicflowau.blogspot.com/2009/07/get-people-picker-value-using_1753.html' title='Get people picker value using Javascript'/><author><name>Logic Flow</name><uri>http://www.blogger.com/profile/08874606426742825968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_xnXB-FaaWXs/SovXC3tqK_I/AAAAAAAAABM/FIErW2yeS4s/S220/white_bg_logo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1948217297685293363.post-4611821588773738480</id><published>2009-07-02T09:41:00.002+10:00</published><updated>2009-08-19T21:49:26.150+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Command line'/><category scheme='http://www.blogger.com/atom/ns#' term='sqlcmd'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><title type='text'>Query SQL server from command line</title><content type='html'>Ever need to query SQL database from command line to export the result to a CSV file? I have used "sqlcmd" to do the job. The following is an example for that:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;sqlcmd -S [server name] -d [database name] -i [SQL file name] -o [CSV file name] -s"," -w 300&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The command explains&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;There are a lot of options in sqlcmd, enter &lt;span style="font-style: italic;"&gt;"sqlcmd -?"&lt;/span&gt; from the command line to see the full list of options;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt; [server name]&lt;/span&gt; is the name of the server where the database is located;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;[database name]&lt;/span&gt; is the database which you want to query;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;[SQL file name]&lt;/span&gt; is a plain text file containing the SQL queries, normally ended with the extension ".sql", e.g. create table... select * from table...;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;[CSV file name]&lt;/span&gt; is the output CSV file name, which normally has the extension ".csv";&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;-s","&lt;/span&gt;, is where you specify the delimiter, comma in this case, other characters can be used;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;-w 300&lt;/span&gt;, is the fixed width of output record, 300 characters in this case;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1948217297685293363-4611821588773738480?l=logicflowau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://logicflowau.blogspot.com/feeds/4611821588773738480/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://logicflowau.blogspot.com/2009/07/query-sql-server-from-command-line_151.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/4611821588773738480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/4611821588773738480'/><link rel='alternate' type='text/html' href='http://logicflowau.blogspot.com/2009/07/query-sql-server-from-command-line_151.html' title='Query SQL server from command line'/><author><name>Logic Flow</name><uri>http://www.blogger.com/profile/08874606426742825968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_xnXB-FaaWXs/SovXC3tqK_I/AAAAAAAAABM/FIErW2yeS4s/S220/white_bg_logo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1948217297685293363.post-5561422619371294086</id><published>2009-07-01T13:58:00.002+10:00</published><updated>2009-08-19T21:49:26.187+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='custom list form'/><title type='text'>SharePoint custom list form catchya's</title><content type='html'>Some catchya's I have encountered while developing custom list forms using SharePoint Designer:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Javascript does not work&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;SharePoint designer added {generate-id()} automatically. Remove them all.&lt;/li&gt;&lt;li&gt;Assigning value to hidden drop down list does not work, check the values that you are assigning is a valid value to the drop down. Otherwise, the assignment will become an empty string and eventually the default value.&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1948217297685293363-5561422619371294086?l=logicflowau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://logicflowau.blogspot.com/feeds/5561422619371294086/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://logicflowau.blogspot.com/2009/06/sharepoint-custom-list-form-catchya_7293.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/5561422619371294086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1948217297685293363/posts/default/5561422619371294086'/><link rel='alternate' type='text/html' href='http://logicflowau.blogspot.com/2009/06/sharepoint-custom-list-form-catchya_7293.html' title='SharePoint custom list form catchya&amp;#39;s'/><author><name>Logic Flow</name><uri>http://www.blogger.com/profile/08874606426742825968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_xnXB-FaaWXs/SovXC3tqK_I/AAAAAAAAABM/FIErW2yeS4s/S220/white_bg_logo.png'/></author><thr:total>0</thr:total></entry></feed>
