<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.objectsharp.com/CS/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Justin Lee's Technology Blog</title><link>http://blogs.objectsharp.com/CS/blogs/jlee/default.aspx</link><description>&lt;br /&gt;Languages, Languages, Languages!</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.2)</generator><item><title>Quotable Quotes from Lang.NET Symposium</title><link>http://blogs.objectsharp.com/CS/blogs/jlee/archive/2009/04/16/quotable-quotes-from-lang-net-symposium.aspx</link><pubDate>Thu, 16 Apr 2009 19:33:33 GMT</pubDate><guid isPermaLink="false">4e5c2b59-774a-4189-b009-1bb73818b493:170590</guid><dc:creator>jlee</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.objectsharp.com/CS/blogs/jlee/comments/170590.aspx</comments><wfw:commentRss>http://blogs.objectsharp.com/CS/blogs/jlee/commentrss.aspx?PostID=170590</wfw:commentRss><wfw:comment>http://blogs.objectsharp.com/CS/blogs/jlee/rsscomments.aspx?PostID=170590</wfw:comment><description>&lt;p&gt;&lt;a href="http://langnetsymposium.com/"&gt;Lang.NET&lt;/a&gt; was just over an hour or so ago, and there are many funny and interesting quotes I compiled over the last few days. Here are all I can remember and find on twitter.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Mads Torgersen on C# dynamic: “We owe it to IronPython and Ruby to make them first class languages.”&lt;/p&gt;    &lt;p&gt;Mads Torgersen: “Static typers put the ‘anguish in languish’.”&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;Keith Robertson: “I’m here to sell you something. You can tell because I'm the one with the tie.”&lt;/p&gt;    &lt;p&gt;Erik Meijer: “C# dynamic ‘is like the needle exchange program’.”&lt;/p&gt;    &lt;p&gt;Tim Macfarlane: “We're planning on putting [Tycho] on the DLR pretty soon.”&lt;/p&gt;    &lt;p&gt;Karl Prosser: “When I see squiggly brackets, it feels like a real language to me.”&lt;/p&gt;    &lt;p&gt;Jeffrey Snover on Powershell: “No prayer based parsing.”&lt;/p&gt;    &lt;p&gt;Lars Bak: “It’s good to have a slow compiler because that gives you job security.”&lt;/p&gt;    &lt;p&gt;Joshua Goodman: “The way PMs fix things is by sending email.”&lt;/p&gt;    &lt;p&gt;Erik Meijer: “I love the math - you don't need brain to do math. It’s all symbol pushing.”&lt;/p&gt;    &lt;p&gt;Luke Hoban: “CodeDom is able to handle any language that is C#. Including VB.”&lt;/p&gt;    &lt;p&gt;Erik Meijer: &amp;quot;LINQ is the solution to everything.”&lt;/p&gt;    &lt;p&gt;Philip Wadler: “Monads aren't everything!”&lt;/p&gt;    &lt;p&gt;Philip Wadler: “Nothing is so practical as a good theory.”&lt;/p&gt;    &lt;p&gt;Erik Meijer: “Because of reflection, every language on the CLR is dynamic.”&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I’ve enjoyed myself at Lang.NET and found the people and content are brilliant. I’ll definitely be back again next year. Kudos to the guys who helped set these up.&lt;/p&gt;&lt;img src="http://blogs.objectsharp.com/CS/aggbug.aspx?PostID=170590" width="1" height="1"&gt;</description><category domain="http://blogs.objectsharp.com/CS/blogs/jlee/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.objectsharp.com/CS/blogs/jlee/archive/tags/User+Group/default.aspx">User Group</category><category domain="http://blogs.objectsharp.com/CS/blogs/jlee/archive/tags/Community/default.aspx">Community</category><category domain="http://blogs.objectsharp.com/CS/blogs/jlee/archive/tags/C_2B002B00_/default.aspx">C++</category><category domain="http://blogs.objectsharp.com/CS/blogs/jlee/archive/tags/Dynamic+Language+Runtime/default.aspx">Dynamic Language Runtime</category></item><item><title>Random Insert/Select with T-SQL</title><link>http://blogs.objectsharp.com/CS/blogs/jlee/archive/2009/02/23/random-insert-select-with-t-sql.aspx</link><pubDate>Mon, 23 Feb 2009 20:43:00 GMT</pubDate><guid isPermaLink="false">4e5c2b59-774a-4189-b009-1bb73818b493:165332</guid><dc:creator>jlee</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.objectsharp.com/CS/blogs/jlee/comments/165332.aspx</comments><wfw:commentRss>http://blogs.objectsharp.com/CS/blogs/jlee/commentrss.aspx?PostID=165332</wfw:commentRss><wfw:comment>http://blogs.objectsharp.com/CS/blogs/jlee/rsscomments.aspx?PostID=165332</wfw:comment><description>&lt;p&gt;Here’s something I found pretty useful. The situation is I need to insert entries into the database with one of the columns being some random data. If I did a Rand() directly in the statement:&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;Insert &lt;span class="kwrd"&gt;into&lt;/span&gt; NewStudy&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;select&lt;/span&gt; studyid,((29 + 1) - 27) * Rand() + 27,&lt;span class="kwrd"&gt;null&lt;/span&gt; &lt;span class="kwrd"&gt;from&lt;/span&gt; StudyTable&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;It will only generate Rand() once and fill in all rows with the same data, which is not what I want.&lt;/p&gt;

&lt;p&gt;In order to generate a random number for each row, I have to create a view of the RAND() function:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;CREATE&lt;/span&gt; &lt;span class="kwrd"&gt;VIEW&lt;/span&gt; vRandNumber&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;AS&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; RAND() &lt;span class="kwrd"&gt;as&lt;/span&gt; RandNumber&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;go&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;Insert &lt;span class="kwrd"&gt;into&lt;/span&gt; NewStudy&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;select&lt;/span&gt; studyid,((29 + 1) - 27) * (&lt;span class="kwrd"&gt;select&lt;/span&gt; RandNumber &lt;span class="kwrd"&gt;from&lt;/span&gt; vRandNumber) + 27,&lt;span class="kwrd"&gt;null&lt;/span&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;from&lt;/span&gt; StudyTable&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;This works very well. Of course, 29 and 27 are my min and max respectively. I can create a separate function to do the same thing:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;CREATE&lt;/span&gt; &lt;span class="kwrd"&gt;FUNCTION&lt;/span&gt; RandNumber(@&lt;span class="kwrd"&gt;Min&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt;, @&lt;span class="kwrd"&gt;Max&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt;)&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;RETURNS&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;AS&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt; &lt;span class="kwrd"&gt;BEGIN&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt; &lt;span class="kwrd"&gt;RETURN&lt;/span&gt; @&lt;span class="kwrd"&gt;Min&lt;/span&gt; + (&lt;span class="kwrd"&gt;select&lt;/span&gt; RandNumber &lt;span class="kwrd"&gt;from&lt;/span&gt; vRandNumber) * ((@&lt;span class="kwrd"&gt;Max&lt;/span&gt;+1)-@&lt;span class="kwrd"&gt;Min&lt;/span&gt;)&lt;/pre&gt;

  &lt;pre&gt; END&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;So instead, I can do RandNumber(27, 29) within the statement.&lt;/p&gt;

&lt;p&gt;The problem why I didn’t use this randomization is because of permissions. Elevating a standard user to allow creation of a view is disallowed in my situation.&lt;/p&gt;

&lt;p&gt;So this is what I did instead, to keep within the boundaries of the permissions, is to use row_number() instead. Take the mod of row_number by ((@Max + 1) - @Min) which is 3 for my case and add the @Min to it. It’s not random, but deterministic, but it works well enough for my case.&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;Insert &lt;span class="kwrd"&gt;into&lt;/span&gt; NewStudy&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;select&lt;/span&gt; studyid, (row_number() &lt;span class="kwrd"&gt;over&lt;/span&gt; (&lt;span class="kwrd"&gt;order&lt;/span&gt; &lt;span class="kwrd"&gt;by&lt;/span&gt; studyid)) % 3 + 27,&lt;span class="kwrd"&gt;null&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;from&lt;/span&gt; StudyTable&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;So that’s it. A deterministic pseudo “random” (not so random it seems) number based on row_number(). I wonder if there are other solutions to this.&lt;/p&gt;&lt;img src="http://blogs.objectsharp.com/CS/aggbug.aspx?PostID=165332" width="1" height="1"&gt;</description><category domain="http://blogs.objectsharp.com/CS/blogs/jlee/archive/tags/SQL/default.aspx">SQL</category></item><item><title>Print-Ready Cheat Sheets for Web Developer</title><link>http://blogs.objectsharp.com/CS/blogs/jlee/archive/2009/01/21/print-ready-cheat-sheets-for-web-developer.aspx</link><pubDate>Wed, 21 Jan 2009 16:32:11 GMT</pubDate><guid isPermaLink="false">4e5c2b59-774a-4189-b009-1bb73818b493:161341</guid><dc:creator>jlee</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.objectsharp.com/CS/blogs/jlee/comments/161341.aspx</comments><wfw:commentRss>http://blogs.objectsharp.com/CS/blogs/jlee/commentrss.aspx?PostID=161341</wfw:commentRss><wfw:comment>http://blogs.objectsharp.com/CS/blogs/jlee/rsscomments.aspx?PostID=161341</wfw:comment><description>&lt;p&gt;Here’s a great link I thought to share.&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.backtoessentials.com/tools/40-useful-print-ready-cheat-sheet-for-web-developers/" href="http://www.backtoessentials.com/tools/40-useful-print-ready-cheat-sheet-for-web-developers/"&gt;http://www.backtoessentials.com/tools/40-useful-print-ready-cheat-sheet-for-web-developers/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;It contains 40 great cheat sheets pdf links so you can download them and print it right off.&lt;/p&gt;&lt;img src="http://blogs.objectsharp.com/CS/aggbug.aspx?PostID=161341" width="1" height="1"&gt;</description><category domain="http://blogs.objectsharp.com/CS/blogs/jlee/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.objectsharp.com/CS/blogs/jlee/archive/tags/Web+Development/default.aspx">Web Development</category></item><item><title>MSIEXEC Failure on Windows 7</title><link>http://blogs.objectsharp.com/CS/blogs/jlee/archive/2009/01/19/msiexec-failure-on-windows-7.aspx</link><pubDate>Mon, 19 Jan 2009 05:40:37 GMT</pubDate><guid isPermaLink="false">4e5c2b59-774a-4189-b009-1bb73818b493:161131</guid><dc:creator>jlee</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.objectsharp.com/CS/blogs/jlee/comments/161131.aspx</comments><wfw:commentRss>http://blogs.objectsharp.com/CS/blogs/jlee/commentrss.aspx?PostID=161131</wfw:commentRss><wfw:comment>http://blogs.objectsharp.com/CS/blogs/jlee/rsscomments.aspx?PostID=161131</wfw:comment><description>&lt;p&gt;Some of you might be getting crashes from your installers. Here’s what the error looks like in your event logs:&lt;/p&gt;  &lt;p&gt;Faulting application name: msiexec.exe, version: 5.0.7000.0, time stamp: 0x49432105    &lt;br /&gt;Faulting module name: ntdll.dll, version: 6.1.7000.0, time stamp: 0x49434898     &lt;br /&gt;Exception code: 0xc0000005     &lt;br /&gt;Fault offset: 0x00000000000ebbaa     &lt;br /&gt;Faulting process id: 0x12dc     &lt;br /&gt;Faulting application start time: 0x01c979f516ed5e4e     &lt;br /&gt;Faulting application path: C:\Windows\System32\msiexec.exe     &lt;br /&gt;Faulting module path: C:\Windows\SYSTEM32\ntdll.dll&lt;/p&gt;  &lt;p&gt;This happens whenever you try to install anything that uses msiexec.exe on Windows 7. The workaround is to do a simple registry edit.&lt;/p&gt;  &lt;p&gt;HKLM\Software\Microsoft\SQMClient\Windows\DisabledSessions &lt;/p&gt;  &lt;p&gt;Remove all entries except default.&lt;/p&gt;  &lt;p&gt;Don’t ask me why that works, but it works. I’m back to installing things. It seems people are having this problem just recently. Hope this helps anyone having this problem.&lt;/p&gt;&lt;img src="http://blogs.objectsharp.com/CS/aggbug.aspx?PostID=161131" width="1" height="1"&gt;</description><category domain="http://blogs.objectsharp.com/CS/blogs/jlee/archive/tags/Windows+7/default.aspx">Windows 7</category></item><item><title>Slate Tablet PCs will be back</title><link>http://blogs.objectsharp.com/CS/blogs/jlee/archive/2009/01/07/slate-tablet-pcs-will-be-back.aspx</link><pubDate>Wed, 07 Jan 2009 07:03:49 GMT</pubDate><guid isPermaLink="false">4e5c2b59-774a-4189-b009-1bb73818b493:160695</guid><dc:creator>jlee</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.objectsharp.com/CS/blogs/jlee/comments/160695.aspx</comments><wfw:commentRss>http://blogs.objectsharp.com/CS/blogs/jlee/commentrss.aspx?PostID=160695</wfw:commentRss><wfw:comment>http://blogs.objectsharp.com/CS/blogs/jlee/rsscomments.aspx?PostID=160695</wfw:comment><description>&lt;p&gt;With the advent of multi-touch capabilities, and the iPhone popularizing this capability, together with Windows 7 having multi-touch capabilities in-built to the operating system itself, I will expect slate tablets (i.e. no keyboards, just screen) to be back, better than before. For those who have forgotten, slate tablets died out long ago in preference for the convertible tablets (i.e. keyboard and screen).&lt;/p&gt;  &lt;p&gt;To get into the market, it first has to be light enough, and a screen wide enough to be comfortable. Together with a “Slate Stand” for desktop usage, this will enhance multi-touch on the desktop itself. We now are seeing laptops so slim (1 inch thick) and so light (2 lbs) with screen sizes of 13.1” or larger, I predict that this will be the critical factors in bringing back the slate tablets.&lt;/p&gt;  &lt;p&gt;If somehow, someone is able to integrate a “Slate Stand” as part of the tablet design, that will be awesome.&lt;/p&gt;  &lt;p&gt;Imagine a “Slate Stand” being a supporting stand to tilt the tablet in a 20 to 40 degrees angle (adjustable of course) for easy touch screen experience. I’m thinking just a fold under the laptop which can increase and decrease the degree angle as the fold gets closer together. Imagine this: /\ :underneath your laptop, and flattening out: —— :when you don’t need it.&lt;/p&gt;  &lt;p&gt;Together with full size keyboard which will “slide in and out” virtually on the screen with a flick of a button (or gesture, or on some text input) and each key is big enough for our fingers, I think we’ve got something pretty good going on here.&lt;/p&gt;  &lt;p&gt;Re-engineering applications’ user interactions to make full use of multi-touch, and we have endless possibilities. Hey, that’s what WPF is for. *wink*&lt;/p&gt;  &lt;p&gt;Let’s hope to see it out there soon!&lt;/p&gt;&lt;img src="http://blogs.objectsharp.com/CS/aggbug.aspx?PostID=160695" width="1" height="1"&gt;</description><category domain="http://blogs.objectsharp.com/CS/blogs/jlee/archive/tags/Miscellaneous/default.aspx">Miscellaneous</category><category domain="http://blogs.objectsharp.com/CS/blogs/jlee/archive/tags/User+Experience/default.aspx">User Experience</category></item><item><title>Elevating Privileges in SharePoint</title><link>http://blogs.objectsharp.com/CS/blogs/jlee/archive/2009/01/06/elevating-privileges-in-sharepoint.aspx</link><pubDate>Tue, 06 Jan 2009 15:56:17 GMT</pubDate><guid isPermaLink="false">4e5c2b59-774a-4189-b009-1bb73818b493:160666</guid><dc:creator>jlee</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.objectsharp.com/CS/blogs/jlee/comments/160666.aspx</comments><wfw:commentRss>http://blogs.objectsharp.com/CS/blogs/jlee/commentrss.aspx?PostID=160666</wfw:commentRss><wfw:comment>http://blogs.objectsharp.com/CS/blogs/jlee/rsscomments.aspx?PostID=160666</wfw:comment><description>&lt;p&gt;Here’s a good tip for elevating privileges in SharePoint.&lt;/p&gt;  &lt;p&gt;&lt;a title="http://blogs.devhorizon.com/blogs/reza_on_blogging/archive/2007/07/12/484.aspx" href="http://blogs.devhorizon.com/blogs/reza_on_blogging/archive/2007/07/12/484.aspx"&gt;http://blogs.devhorizon.com/blogs/reza_on_blogging/archive/2007/07/12/484.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;For those who doesn’t want to click on that link (like myself when I searching for this post again), here’s the code.&lt;/p&gt;  &lt;p&gt;//Don't dispose the following two objects. Sharepoint will take care of their disposal when page is completely rendered.    &lt;br /&gt;SPWeb&amp;#160; webInUserContext = SPContext.Current.Web;     &lt;br /&gt;SPSite SiteInUserContext = SPContext.Current.Site;     &lt;br /&gt;Guid webGuid = webInUserContext.ID;     &lt;br /&gt;Guid siteGuid = SiteInUserContext.ID;&lt;/p&gt;  &lt;p&gt;SPSecurity.RunWithElevatedPrivileges(delegate()    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // get the site in impersonated context     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; using (SPSite site = new SPSite(siteGuid))     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // get the web in the impersonated context    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SPWeb web = site.OpenWeb(webGuid);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // Do your work here&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; web.Dispose();    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; });&lt;/p&gt;  &lt;p&gt;There we go. I used this piece of code to access the SPFile of a document within SharePoint. SPFile requires elevated privileges, and can’t be access with just your normal privileges.&lt;/p&gt;  &lt;p&gt;My code works now, and I’m happy. :)&lt;/p&gt;&lt;img src="http://blogs.objectsharp.com/CS/aggbug.aspx?PostID=160666" width="1" height="1"&gt;</description><category domain="http://blogs.objectsharp.com/CS/blogs/jlee/archive/tags/SharePoint/default.aspx">SharePoint</category></item><item><title>Where is my Check-In in SharePoint Designer?</title><link>http://blogs.objectsharp.com/CS/blogs/jlee/archive/2008/12/31/where-is-my-check-in-in-sharepoint-designer.aspx</link><pubDate>Wed, 31 Dec 2008 15:03:18 GMT</pubDate><guid isPermaLink="false">4e5c2b59-774a-4189-b009-1bb73818b493:160260</guid><dc:creator>jlee</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.objectsharp.com/CS/blogs/jlee/comments/160260.aspx</comments><wfw:commentRss>http://blogs.objectsharp.com/CS/blogs/jlee/commentrss.aspx?PostID=160260</wfw:commentRss><wfw:comment>http://blogs.objectsharp.com/CS/blogs/jlee/rsscomments.aspx?PostID=160260</wfw:comment><description>&lt;p&gt;&lt;a href="http://triplez.mine.nu/blogs/triplez/sharepointdesignercheckin_1023AB92.png"&gt;&lt;img title="sharepointdesigner-checkin" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="115" alt="sharepointdesigner-checkin" src="http://triplez.mine.nu/blogs/triplez/sharepointdesignercheckin_thumb_09902C02.png" width="518" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;If you notice, the master page file in SharePoint Designer is checked out (from the check symbol at the side). It’s supposed to show me “Check In” and “Undo Check Out” and all that. Where is it?&lt;/p&gt;  &lt;p&gt;It is under your “Edit” toolbar, “Check In”.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://triplez.mine.nu/blogs/triplez/image_6A1DD56E.png"&gt;&lt;img title="image" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="172" alt="image" src="http://triplez.mine.nu/blogs/triplez/image_thumb_4447AF0B.png" width="230" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;So when it doesn’t display, you know where to go.&lt;/p&gt;&lt;img src="http://blogs.objectsharp.com/CS/aggbug.aspx?PostID=160260" width="1" height="1"&gt;</description><category domain="http://blogs.objectsharp.com/CS/blogs/jlee/archive/tags/SharePoint/default.aspx">SharePoint</category></item><item><title>Hiding Sign In Link For Anonymous Access Users in SharePoint</title><link>http://blogs.objectsharp.com/CS/blogs/jlee/archive/2008/12/29/hiding-sign-in-link-for-anonymous-access-users-in-sharepoint.aspx</link><pubDate>Mon, 29 Dec 2008 22:15:45 GMT</pubDate><guid isPermaLink="false">4e5c2b59-774a-4189-b009-1bb73818b493:160003</guid><dc:creator>jlee</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.objectsharp.com/CS/blogs/jlee/comments/160003.aspx</comments><wfw:commentRss>http://blogs.objectsharp.com/CS/blogs/jlee/commentrss.aspx?PostID=160003</wfw:commentRss><wfw:comment>http://blogs.objectsharp.com/CS/blogs/jlee/rsscomments.aspx?PostID=160003</wfw:comment><description>&lt;p&gt;To customize SharePoint “Sign In” link, we need to modify or duplicate Welcome.ascx in your Control Templates directory.&lt;/p&gt;  &lt;p&gt;Here’s a good post specifying how to hide your sign in link.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/syedi/archive/2008/10/01/hide-the-sign-in-link-for-the-anonymous-access-user-in-anonymous-access-enabled-site-bend-the-welcome-ascx-sharepoint-moss.aspx" target="_blank"&gt;Hide the Sign In link for the anonymous access user in anonymous access enabled site - Bend the Welcome.ascx - SharePoint MOSS&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;You can play around with Welcome.ascx and come up with your custom style sign in.&lt;/p&gt;&lt;img src="http://blogs.objectsharp.com/CS/aggbug.aspx?PostID=160003" width="1" height="1"&gt;</description><category domain="http://blogs.objectsharp.com/CS/blogs/jlee/archive/tags/SharePoint/default.aspx">SharePoint</category></item><item><title>Free UX Tools and Extensions for Websites</title><link>http://blogs.objectsharp.com/CS/blogs/jlee/archive/2008/12/16/free-ux-tools-and-extensions-for-websites.aspx</link><pubDate>Tue, 16 Dec 2008 19:24:45 GMT</pubDate><guid isPermaLink="false">4e5c2b59-774a-4189-b009-1bb73818b493:158347</guid><dc:creator>jlee</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.objectsharp.com/CS/blogs/jlee/comments/158347.aspx</comments><wfw:commentRss>http://blogs.objectsharp.com/CS/blogs/jlee/commentrss.aspx?PostID=158347</wfw:commentRss><wfw:comment>http://blogs.objectsharp.com/CS/blogs/jlee/rsscomments.aspx?PostID=158347</wfw:comment><description>&lt;p&gt;Here’s a great blog post with the compilation of great tools if you’re a web developer.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.uxbooth.com/blog/top-29-free-ux-tools-and-extensions/" target="_blank"&gt;Top 29 Free UX Tools and Extensions&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I ran a few of the test on our website, and boy are there a few optimizations we could have done, especially for the JavaScript within the pages to improve performance. And also some quirks xhtml and css errors which will just make things nice and more standardised.&lt;/p&gt;&lt;img src="http://blogs.objectsharp.com/CS/aggbug.aspx?PostID=158347" width="1" height="1"&gt;</description><category domain="http://blogs.objectsharp.com/CS/blogs/jlee/archive/tags/Web+Development/default.aspx">Web Development</category></item><item><title>SharePoint: Bug or Feature? @Created not on Variation Site</title><link>http://blogs.objectsharp.com/CS/blogs/jlee/archive/2008/11/18/sharepoint-bug-or-feature-created-not-on-variation-site.aspx</link><pubDate>Tue, 18 Nov 2008 15:52:01 GMT</pubDate><guid isPermaLink="false">4e5c2b59-774a-4189-b009-1bb73818b493:157178</guid><dc:creator>jlee</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.objectsharp.com/CS/blogs/jlee/comments/157178.aspx</comments><wfw:commentRss>http://blogs.objectsharp.com/CS/blogs/jlee/commentrss.aspx?PostID=157178</wfw:commentRss><wfw:comment>http://blogs.objectsharp.com/CS/blogs/jlee/rsscomments.aspx?PostID=157178</wfw:comment><description>&lt;p&gt;As mentioned in the title, the @Created date field (or site column, depending on your terminology), the date of document creation, which is by default available to all pages and documents, is not replicated when you create a site variation. It is however *linked* to the original document from the original site itself. So if you ever decide to turn off site variation, you’ll lose the @Created date field on your site variation, and there’s absolutely no way to get it back, or at least I haven’t found a way to get it back without hacking it through code.&lt;/p&gt;  &lt;p&gt;So be careful when you decide to create a site variation. This “feature” caught us all by surprise, especially when variation was turned off and still wanted the persisted site. &lt;/p&gt;  &lt;p&gt;One suggestion to get around it is to create another field and set the computed value to today’s date. I’ll blog more on how we solve this problem when we actually do.&lt;/p&gt;&lt;img src="http://blogs.objectsharp.com/CS/aggbug.aspx?PostID=157178" width="1" height="1"&gt;</description><category domain="http://blogs.objectsharp.com/CS/blogs/jlee/archive/tags/SharePoint/default.aspx">SharePoint</category></item></channel></rss>