<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>novolocus.com &#187; 2006 &#187; October</title>
	<atom:link href="http://www.novolocus.com/2006/10/feed" rel="self" type="application/rss+xml" />
	<link>http://www.novolocus.com</link>
	<description>Whatever Andy Burns is working on...</description>
	<pubDate>Tue, 18 Nov 2008 12:00:31 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Disposing of SharePoint objects</title>
		<link>http://www.novolocus.com/2006/10/27/disposing-of-sharepoint-objects/</link>
		<comments>http://www.novolocus.com/2006/10/27/disposing-of-sharepoint-objects/#comments</comments>
		<pubDate>Fri, 27 Oct 2006 07:10:29 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[.NET]]></category>

		<category><![CDATA[SharePoint]]></category>

		<category><![CDATA[SharePoint Development]]></category>

		<category><![CDATA[SPSite]]></category>

		<category><![CDATA[SPWeb]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=130</guid>
		<description><![CDATA[You should dispose of SharePoint objects like SPWeb and SPSite. Gotta admit, I hadn&#8217;t realised they were disposable.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://msdn2.microsoft.com/en-us/library/ms778813.aspx">You should dispose of SharePoint objects like SPWeb and SPSite</a>. Gotta admit, I hadn&#8217;t realised they were disposable.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2006/10/27/disposing-of-sharepoint-objects/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Ways of getting items in a List</title>
		<link>http://www.novolocus.com/2006/10/24/ways-of-getting-items-in-a-list/</link>
		<comments>http://www.novolocus.com/2006/10/24/ways-of-getting-items-in-a-list/#comments</comments>
		<pubDate>Tue, 24 Oct 2006 07:10:02 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[.NET]]></category>

		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=131</guid>
		<description><![CDATA[An interesting look at how to get items from your SharePoint list. I didn&#8217;t know about the datatable view. Guess it can&#8217;t do a bulk update though.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://blogs.catalystss.com/blogs/christopher_v_domino/archive/2006/10/21/32.aspx">An interesting look at how to get items from your SharePoint list</a>. I didn&#8217;t know about the datatable view. Guess it can&#8217;t do a bulk update though.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2006/10/24/ways-of-getting-items-in-a-list/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Dude, whats my column type?</title>
		<link>http://www.novolocus.com/2006/10/20/dude-whats-my-column-type/</link>
		<comments>http://www.novolocus.com/2006/10/20/dude-whats-my-column-type/#comments</comments>
		<pubDate>Fri, 20 Oct 2006 15:10:51 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[SharePoint Development]]></category>

		<category><![CDATA[SPList]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=132</guid>
		<description><![CDATA[Some weird behaviour with SharePoint column types, and the data you get by looking at the SPListItem.properties hash.
So, I&#8217;ve got a document library, and I&#8217;ve added 3 extra columns to it. For simplicity, I shall call them &#8216;Text&#8217;, &#8216;Number&#8217; and &#8216;CheckBox&#8217;. I filled in some data for them - a number in the Text field, [...]]]></description>
			<content:encoded><![CDATA[<p>Some weird behaviour with SharePoint column types, and the data you get by looking at the SPListItem.properties hash.</p>
<p>So, I&#8217;ve got a document library, and I&#8217;ve added 3 extra columns to it. For simplicity, I shall call them &#8216;Text&#8217;, &#8216;Number&#8217; and &#8216;CheckBox&#8217;. I filled in some data for them - a number in the Text field, the same number in the number field, and I check the checkbox for all of the items. I end up with a list looking like below&#8230;</p>
<p><img src="http://www.novolocus.com/wp-content/oldImages/56.png" border="1" alt="" align="middle" /></p>
<p>So, for now, let&#8217;s ignore the fact that the value for some of the longer numbers has been rounded in one of the fields - and not ask why MOSS didn&#8217;t just complain that the numbers were too big. Instead, let&#8217;s ask what the column types being used are&#8230; <span id="more-132"></span></p>
<p>Consider the following code:<br />
<code>StreamWriter sw = new StreamWriter("output.txt",false);</code></p>
<p><code>foreach (SPListItem i in myCollection)<br />
{<br />
sw.Write(i.Name);<br />
foreach (DictionaryEntry h in i.Properties)<br />
{<br />
if (h.Key.ToString().StartsWith("Title") ||<br />
h.Key.ToString().StartsWith("Tex") ||<br />
h.Key.ToString().StartsWith("Yes") ||<br />
h.Key.ToString().StartsWith("Num"))<br />
{<br />
sw.Write(" {0} = {1} ({2})",<br />
h.Key.ToString(),<br />
h.Value.ToString(),<br />
h.Value.GetType().ToString());<br />
}<br />
}<br />
sw.WriteLine();<br />
}<br />
sw.Close();</code><br />
So, what did this produce? Well, I&#8217;ve changed the output to align into columns&#8230;</p>
<pre>b2b2b2 01.xls Text = 65534              (System.Int32)  YesNo = 1       (System.Int32)  Number = 65534.0000000000  (System.String)
b2b2b2 03.xls Text = 65540              (System.Int32)  YesNo = 1       (System.Int32)  Number = 65540.0000000000  (System.String)
b2b2b2 05.doc Text = 131070             (System.Int32)  YesNo = 1       (System.Int32)  Number = 131070.000000000  (System.String)
b2b2b2 06.xls Text = 131080             (System.Int32)  YesNo = 1       (System.Int32)  Number = 131080.000000000  (System.String)
b2b2b2 07.xls Text = 9999999999999998   (System.String) YesNo = 1       (System.Int32)  Number = 9999999999999990  (System.String)
b2b2b2 09.doc Text = 9999999999999999   (System.String) YesNo = 1       (System.Int32)  Number = 9999999999999990  (System.String)
b2b2b2 12.TIF Text = 10000000000000000  (System.String) YesNo = true    (System.String) Number = 10000000000000000 (System.String)
b2b2b2 17.doc Text = 2342345245         (System.String) YesNo = 1       (System.Int32)  Number = 2342345245.00000  (System.String)
b2b2b2 20.doc Text = 4353455656563      (System.String) YesNo = 1       (System.Int32)  Number = 4353455656563.00  (System.String)
c3c3c3 03.jpg Text = 2147483646         (System.String) YesNo = true    (System.String) Number = 2147483646.00000  (System.String)
c3c3c3 10.pdf Text = 2147483650         (System.String) YesNo = true    (System.String) Number = 2147483650.00000  (System.String)
c3c3c3 17.txt Text = 4294967294         (System.String) YesNo = true    (System.String) Number = 4294967294.00000  (System.String)
c3c3c3 18.txt Text = 4294967298         (System.String) YesNo = true    (System.String) Number = 4294967298.00000  (System.String)</pre>
<p>Hello? The checkbox is sometimes &#8216;true&#8217;, and 1? String or Int32? WTF? Or that the Text column stores 65534 as an Int32, and the Number field as a String? Okay, I can see why the last one might make sense, but why is the TEXT column a number? And what if I now want to assign a String to it? I tried&#8230;</p>
<p><code>i.properties['Text'] = &#8220;Hello World&#8221;;</code></p>
<p>Guess what - exception (<strong>SPInvalidPropertyException</strong>, to be precise). But maybe, just maybe, I knew I&#8217;d be putting text in there later and <strong>that was why I made it an effing text column</strong>. And why is the Boolean column an Int or a string? I mean, either is a fine choice, but not BOTH.</p>
<p>Don&#8217;t get this. Pissed off. Am going home.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2006/10/20/dude-whats-my-column-type/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Power Supplies</title>
		<link>http://www.novolocus.com/2006/10/20/power-supplies/</link>
		<comments>http://www.novolocus.com/2006/10/20/power-supplies/#comments</comments>
		<pubDate>Fri, 20 Oct 2006 07:10:27 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[General Tech]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=133</guid>
		<description><![CDATA[So, I&#8217;ve had two power supplies blow on me in the last 6 months, for different things. My wireless router died, and my home laptop&#8217;s power died a couple of days ago.
This strikes me as very wrong. It&#8217;s not like they had to do anything complicated - they&#8217;re just transformers. The technology has been understood [...]]]></description>
			<content:encoded><![CDATA[<p>So, I&#8217;ve had two power supplies blow on me in the last 6 months, for different things. My wireless router died, and my home laptop&#8217;s power died a couple of days ago.</p>
<p>This strikes me as very wrong. It&#8217;s not like they had to do anything complicated - they&#8217;re just transformers. The technology has been understood for a <em>long</em> time. I mean, batteries are one thing, but transformers?</p>
<p>The complication then comes that there are dozens of <em>almost</em> identical connectors, and finding out what connector you had is hard work.</p>
<p>So, couldn&#8217;t electronics companies build better power supplies? With fewer &#8217;standard&#8217; connectors (and none of this proprietry bollocks like some laptop manufacturers use - there&#8217;s no need)? And perhaps some system of colour coding, or at least documentation of what the connector is? Would that be too much to ask?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2006/10/20/power-supplies/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Note about a Windows Service writing to the event log</title>
		<link>http://www.novolocus.com/2006/10/09/note-about-a-windows-service-writing-to-the-event-log/</link>
		<comments>http://www.novolocus.com/2006/10/09/note-about-a-windows-service-writing-to-the-event-log/#comments</comments>
		<pubDate>Mon, 09 Oct 2006 11:10:28 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[.NET]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=134</guid>
		<description><![CDATA[I was using the System.Diagnostics.EventLog.WriteEntry function, and I kept getting a  System.security.securityException about &#8220;requested Registry access&#8221; not being available. Well, a note for myself - use localsystem not localservice as the account to run under - then it is fine!
]]></description>
			<content:encoded><![CDATA[<p>I was using the System.Diagnostics.EventLog.WriteEntry function, and I kept getting a  System.security.securityException about &#8220;requested Registry access&#8221; not being available. Well, a note for myself - use <strong>localsystem</strong> not <strong>localservice</strong> as the account to run under - then it is fine!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2006/10/09/note-about-a-windows-service-writing-to-the-event-log/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Why I wrote simplyxiangqi.com</title>
		<link>http://www.novolocus.com/2006/10/03/why-i-wrote-simplyxiangqicom/</link>
		<comments>http://www.novolocus.com/2006/10/03/why-i-wrote-simplyxiangqicom/#comments</comments>
		<pubDate>Tue, 03 Oct 2006 16:10:53 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Xiangqi]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=135</guid>
		<description><![CDATA[A long time ago, my Dad got me the game &#8216;Battlechess 2&#8242;. Much time my surprise, it was some strange variant called &#8216;Chinese Chess&#8217;, and I enjoyed it (even though I&#8217;m not much good). It doesn&#8217;t have the whole &#8216;pawn-shuffling&#8217; start or drawn out end games, so it appealed.
A lot of time passed, and I [...]]]></description>
			<content:encoded><![CDATA[<p>A long time ago, my Dad got me the game &#8216;Battlechess 2&#8242;. Much time my surprise, it was some strange variant called &#8216;Chinese Chess&#8217;, and I enjoyed it (even though I&#8217;m not much good). It doesn&#8217;t have the whole &#8216;pawn-shuffling&#8217; start or drawn out end games, so it appealed.</p>
<p>A lot of time passed, and I became a developer. One day I was looking at an online chess site and I just thought &#8216;I could build this&#8217;. I had recently started learning about JSP and Servlets to work towards Java Web Developer certification. So, I sat down, worked out the logic, learnt about &#8216;bit boards&#8217;, and build the engine for working out valid moves, given a position. And I wrote it all in Java.</p>
<p>After that, all I had to do was build the website to support that engine, and at this point I stalled. Building websites out of Java was excessively hard - security filters for login, carefully planned data structures, lots of JDBC to connect to the database. To be honest, the hard problem cracked, I lost interest.</p>
<p>Time passed. I started to read about this new thing &#8216;Ruby on Rails&#8217;, and so I thought I should take a look. I went through a couple of tutorials and I was impressed. In minutes I could make a (very basic) site that dealt with security, database interaction, etc., pretty much for me. I just thought &#8220;Now this is a simple way of building that site&#8221;. So, I did.</p>
<p>I ported my code from Java into Ruby in about 4 hours - most of which was getting to grips with the Ruby language itself. I built a database schema, and based the site around that structure.</p>
<p>And that&#8217;s pretty much where <a href="http://www.simplyxiangqi.com/">simplyxiangqi</a> came from.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2006/10/03/why-i-wrote-simplyxiangqicom/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Reflections</title>
		<link>http://www.novolocus.com/2006/10/02/reflections/</link>
		<comments>http://www.novolocus.com/2006/10/02/reflections/#comments</comments>
		<pubDate>Mon, 02 Oct 2006 11:10:49 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=136</guid>
		<description><![CDATA[Add reflections to images using JavaScript. Neat.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://cow.neondragon.net/stuff/reflection/">Add reflections to images using JavaScript</a>. Neat.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2006/10/02/reflections/feed/</wfw:commentRss>
		</item>
		<item>
		<title>More on Delay Activities, Workflow, and Beta 2 Tech Refresh</title>
		<link>http://www.novolocus.com/2006/10/02/more-on-delay-activities-workflow-and-beta-2-tech-refresh/</link>
		<comments>http://www.novolocus.com/2006/10/02/more-on-delay-activities-workflow-and-beta-2-tech-refresh/#comments</comments>
		<pubDate>Mon, 02 Oct 2006 10:10:15 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[Workflow]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=137</guid>
		<description><![CDATA[I&#8217;m coming to the conclusion that Beta 2 TR has broken Delay Activities&#8230;
What I did was build a test workflow. I&#8217;d got delay activities that weren&#8217;t working, and I wanted to investigate the possible factors involved.
I know that they were working just fine in Beta 2. I thought the difference here from what I was [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m coming to the conclusion that Beta 2 TR has broken Delay Activities&#8230;</p>
<p>What I did was build a test workflow. I&#8217;d got delay activities that weren&#8217;t working, and I wanted to investigate the possible factors involved.</p>
<p>I <strong>know</strong> that they were working just fine in Beta 2. I thought the difference here from what I was doing in Beta 2 was that I was setting the <em>TimeoutDuration</em> at runtime, through the <em>InitializeTimeoutDuration</em> function.</p>
<p>So I built a test workflow with 2 different parallel branches. One had a &#8217;static&#8217; (design time) configured delay, and the other had a &#8216;dynamic&#8217; (runtime) set delay. Both had an <em>InitializeTimeoutDuration</em> function set, though for the &#8217;static&#8217; case all this did was log that it had been invoked.</p>
<p>I ran the workflow. My log file showed that the workflow ran both the <em>InitializeTimeoutDuration</em> functions, and nothing else.</p>
<p>Previously, I&#8217;d not run that function at all, so I tried configuring both Delays to not call <em>InitializeTimeoutDuration</em>. I ran the workflow, and again, nothing after the delays ever happened.</p>
<p>So I thought maybe it was because I had 2 delays. I disabled one sequence, and added a new second sequence that just contained a code step. I ran this - and again, anything after the Delay activity was never run.</p>
<p>In the end, I took one of the sequences outside the Parallel Activity. The workflow was now <em>OnWorkflowActivated - Code - Delay - Code</em>. And the second code step never runs.</p>
<p>I know this worked in Beta 2 - has the Tech Refresh broken this?</p>
<p class="oldCommentOuter">Comments from my old blog:</p>
<p class="oldCommentInner">
<p class="oldComment">I got the same impression <img src='http://www.novolocus.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> - Beta 2 TR has broken Delay Activities&#8230;</p>
<p class="oldCommentFooter">By Robert at 15:50:06 Tuesday 10th October 2006</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2006/10/02/more-on-delay-activities-workflow-and-beta-2-tech-refresh/feed/</wfw:commentRss>
		</item>
		<item>
		<title>MCTS Self Paced Training kit for Exam 70-536</title>
		<link>http://www.novolocus.com/2006/10/01/mcts-self-paced-training-kit-for-exam-70-536/</link>
		<comments>http://www.novolocus.com/2006/10/01/mcts-self-paced-training-kit-for-exam-70-536/#comments</comments>
		<pubDate>Sun, 01 Oct 2006 20:10:57 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Books]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=138</guid>
		<description><![CDATA[By Tony Northrup, Shawn Wildermuth, Bill Ryan
Full Title: Microsoft .NET Framework 2.0 Application Development Foundation Self-Paced Training Kit
The best thing that I can say about this book is that it gives you a feel for the things covered in the 70-536 exam. Other than that, it&#8217;s the worst technical book I&#8217;ve read.
It is poorly structured. [...]]]></description>
			<content:encoded><![CDATA[<p>By Tony Northrup, Shawn Wildermuth, Bill Ryan</p>
<p>Full Title: Microsoft .NET Framework 2.0 Application Development Foundation Self-Paced Training Kit</p>
<p>The best thing that I can say about this book is that it gives you a feel for the things covered in the 70-536 exam. Other than that, it&#8217;s the worst technical book I&#8217;ve read.</p>
<p>It is poorly structured. I mean answers to some of the &#8216;end of lesson&#8217; questions refer to things that haven&#8217;t been introduced yet. If it isn&#8217;t an aspect of .NET that you&#8217;ve encountered in your work, you can&#8217;t answer that! And what&#8217;s with all the tables listing the features of all these different stream readers and writers - just show me ONE, and then explain how the others are DIFFERENT.</p>
<p>That said, I&#8217;d still have given this 3 stars if it weren&#8217;t for the errors. The book is littered with them. Examples of gzip decompression that actually compress, answers to questions with typos, hell, even answers to a completely different question in one chapter. I literally have too many to list. This is appalling quality control. If I can spot them, the reviewers should have. It&#8217;s just not good enough.</p>
<p>If it weren&#8217;t that it&#8217;s the ONLY book on the subject out here, I&#8217;d recommend ANYTHING else.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2006/10/01/mcts-self-paced-training-kit-for-exam-70-536/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
