<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Kramii</title>
	<atom:link href="http://kramii.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://kramii.com</link>
	<description>Just another WordPress site</description>
	<lastBuildDate>Sun, 17 Feb 2013 10:07:32 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Types of Questions</title>
		<link>http://kramii.com/blog/2011/07/25/types-of-questions/</link>
		<comments>http://kramii.com/blog/2011/07/25/types-of-questions/#comments</comments>
		<pubDate>Mon, 25 Jul 2011 20:59:05 +0000</pubDate>
		<dc:creator>Kramii</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://kramii.com/?p=1559</guid>
		<description><![CDATA[<p><img src="http://kramii.com/wp-content/uploads/2011/05/icon-bubble.png" width="64" height="64" alt="Uncategorized" title="Uncategorized" /><br/>Open Questions Open a subject. &#8220;How do you feel about&#8230;?&#8221; Closed Questions Gather and confirm specific facts. &#8220;Do you want me to&#8230;?&#8221; Focusing Questions Focus on a topic that has been raised. &#8220;You mentioned&#8230; earlier. What is the best way &#8230; <a href="http://kramii.com/blog/2011/07/25/types-of-questions/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://kramii.com/blog/2011/07/25/types-of-questions/">Types of Questions</a> appeared first on <a href="http://kramii.com">Kramii</a>.</p>]]></description>
				<content:encoded><![CDATA[<img src="http://kramii.com/wp-content/uploads/2011/05/icon-bubble.png" width="64" height="64" alt="Uncategorized" title="Uncategorized" /><br/><h3>Open Questions</h3>
<p>Open a subject.</p>
<p>&#8220;How do you feel about&#8230;?&#8221;</p>
<h3>Closed Questions</h3>
<p>Gather and confirm specific facts.</p>
<p>&#8220;Do you want me to&#8230;?&#8221;</p>
<h3>Focusing Questions</h3>
<p>Focus on a topic that has been raised.</p>
<p>&#8220;You mentioned&#8230; earlier. What is the best way to acheieve this?&#8221;</p>
<h3>Probing Questions</h3>
<p>Explore a subject in more depth.</p>
<p>&#8220;Can you give me an example of&#8230;?&#8221;</p>
<h3>Reflective Questions</h3>
<p>Reflect on what has been said to confirm shared understanding.</p>
<p>&#8220;It seems you are suggesting&#8230; Is that right?&#8221;</p>
<p>The post <a href="http://kramii.com/blog/2011/07/25/types-of-questions/">Types of Questions</a> appeared first on <a href="http://kramii.com">Kramii</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://kramii.com/blog/2011/07/25/types-of-questions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gogo&#8217;s Crazy Bones</title>
		<link>http://kramii.com/blog/2011/07/20/gogos-crazy-bones/</link>
		<comments>http://kramii.com/blog/2011/07/20/gogos-crazy-bones/#comments</comments>
		<pubDate>Wed, 20 Jul 2011 11:54:41 +0000</pubDate>
		<dc:creator>Kramii</dc:creator>
				<category><![CDATA[Family Life]]></category>

		<guid isPermaLink="false">http://kramii.com/?p=1552</guid>
		<description><![CDATA[<p><br/>My son was crazy about Gogos for a while, so we drew these silhouettes for printing on stickers etc. You&#8217;re free to use these illustrations in any way you wish.</p><p>The post <a href="http://kramii.com/blog/2011/07/20/gogos-crazy-bones/">Gogo&#8217;s Crazy Bones</a> appeared first on <a href="http://kramii.com">Kramii</a>.</p>]]></description>
				<content:encoded><![CDATA[<br/><p>My son was crazy about Gogos for a while, so we drew these silhouettes for printing on stickers etc.</p>
<p>You&#8217;re free to use these illustrations in any way you wish.<a href="http://kramii.com/wp-content/uploads/2011/07/gogo.jpg"><img class="size-medium wp-image-1553 aligncenter" title="gogo" src="http://kramii.com/wp-content/uploads/2011/07/gogo-205x300.jpg" alt="" width="205" height="300" /></a></p>
<p><a href="http://kramii.com/wp-content/uploads/2011/07/gogo.jpg"></a><a href="http://kramii.com/wp-content/uploads/2011/07/gogo2.jpg"><img class="size-medium wp-image-1554 aligncenter" title="gogo2" src="http://kramii.com/wp-content/uploads/2011/07/gogo2-227x300.jpg" alt="" width="227" height="300" /></a><a href="http://kramii.com/wp-content/uploads/2011/07/gogo3.jpg"><img class="size-full wp-image-1555 aligncenter" title="gogo3" src="http://kramii.com/wp-content/uploads/2011/07/gogo3.jpg" alt="" width="158" height="232" /></a></p>
<p>The post <a href="http://kramii.com/blog/2011/07/20/gogos-crazy-bones/">Gogo&#8217;s Crazy Bones</a> appeared first on <a href="http://kramii.com">Kramii</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://kramii.com/blog/2011/07/20/gogos-crazy-bones/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VBScript to Get Domain Groups for Current User</title>
		<link>http://kramii.com/blog/2011/07/06/vbscript-to-get-domain-groups-for-current-user/</link>
		<comments>http://kramii.com/blog/2011/07/06/vbscript-to-get-domain-groups-for-current-user/#comments</comments>
		<pubDate>Wed, 06 Jul 2011 09:14:50 +0000</pubDate>
		<dc:creator>Kramii</dc:creator>
				<category><![CDATA[VBScript]]></category>

		<guid isPermaLink="false">http://kramii.com/?p=1541</guid>
		<description><![CDATA[<p><br/>This take me back a bit&#8230; Option Explicit &#039; Get the current user&#039;s domain and username. Dim wsxNetwork Set wsxNetwork = CreateObject(&#34;WScript.Network&#34;) Dim sDomain, sUser sDomain = wsxNetwork.UserDomain sUser = wsxNetwork.UserName &#039; Get the user. Dim objUser Set objUser = &#8230; <a href="http://kramii.com/blog/2011/07/06/vbscript-to-get-domain-groups-for-current-user/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://kramii.com/blog/2011/07/06/vbscript-to-get-domain-groups-for-current-user/">VBScript to Get Domain Groups for Current User</a> appeared first on <a href="http://kramii.com">Kramii</a>.</p>]]></description>
				<content:encoded><![CDATA[<br/><p>This take me back a bit&#8230;</p>
<pre><code><pre class="brush: vb; ">

Option Explicit

&#039; Get the current user&#039;s domain and username.
Dim wsxNetwork
Set wsxNetwork = CreateObject(&quot;WScript.Network&quot;)

Dim sDomain, sUser
sDomain = wsxNetwork.UserDomain
sUser = wsxNetwork.UserName

&#039; Get the user.
Dim objUser
Set objUser = GetObject(&quot;WinNT://&quot; &amp; sDomain &amp; &quot;/&quot; &amp;amp; sUser)

&#039; We&#039;ll build a list of group names.
Dim sGroupNames

&#039; For each of the groups for the user...
Dim objGroup
For Each objGroup In objUser.Groups

    &#039; Add the group name to the string.
    sGroupNames = sGroupNames &amp; objGroup.Name &amp; vbCrLf

Next

&#039; Show the list of groups.
MsgBox sGroupNames

</pre>
<p></code></p>
<p>The post <a href="http://kramii.com/blog/2011/07/06/vbscript-to-get-domain-groups-for-current-user/">VBScript to Get Domain Groups for Current User</a> appeared first on <a href="http://kramii.com">Kramii</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://kramii.com/blog/2011/07/06/vbscript-to-get-domain-groups-for-current-user/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>When Improving Technology Makes Things Worse</title>
		<link>http://kramii.com/blog/2011/06/09/better-technology-makes-things-worse/</link>
		<comments>http://kramii.com/blog/2011/06/09/better-technology-makes-things-worse/#comments</comments>
		<pubDate>Thu, 09 Jun 2011 14:08:56 +0000</pubDate>
		<dc:creator>Kramii</dc:creator>
				<category><![CDATA[Best Practice]]></category>

		<guid isPermaLink="false">http://kramii.com/?p=1528</guid>
		<description><![CDATA[<p><br/>A Secret We all know that bad technology is bad for business. By &#8220;bad&#8221; I mean technology that doesn&#8217;t do what it is supposed to do, or which does it wrong, or which costs more to implement than the benefits &#8230; <a href="http://kramii.com/blog/2011/06/09/better-technology-makes-things-worse/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://kramii.com/blog/2011/06/09/better-technology-makes-things-worse/">When Improving Technology Makes Things Worse</a> appeared first on <a href="http://kramii.com">Kramii</a>.</p>]]></description>
				<content:encoded><![CDATA[<br/><h3>A Secret</h3>
<p>We all know that bad technology is bad for business. By &#8220;bad&#8221; I mean technology that doesn&#8217;t do what it is supposed to do, or which does it wrong, or which costs more to implement than the benefits it brings.</p>
<p>But I&#8217;ll let you in to a secret:</p>
<blockquote><p><em>Good </em>technology is sometimes <em>bad </em>for business.</p></blockquote>
<p>Now, I develop software for a living, so I shouldn&#8217;t really be telling you that. I should be saying that good technology is a good thing &#8211; especially software &#8211; and that it will increase your bottom line, make you more productive, make you happier and generally improve your life.</p>
<p>And each of these things is true&#8230; but only <em>some </em>of the time.</p>
<h3>The Problem</h3>
<p>The problem is this:</p>
<ul>
<li>Good technology makes processes more efficient.</li>
</ul>
<p>At first sight, this sounds like a good thing. To understand why it often isn&#8217;t so good, consider two effects that technology will have on an organisation:</p>
<h3>Efficiency and Effectiveness</h3>
<p>According to Jim Collins (in <em>Good to Grea</em><em>t</em><em>),</em> “great” organizations all employ technologies that enhance their competitiveness. Collins also confirms the role that technology can play if you  don’t keep up. However, he explains that technologies are accelerators that amplify the company&#8217;s strengths <em>and weaknesses</em>. This means that a company that aims to improve processes by adding technology will magnify both the good <em>and the bad</em> aspects of those processes. In any business area where practices are less than perfect, the imperfections will be amplified by technology. The problem is that making processes more efficient doesn&#8217;t necessarily make them more effective.</p>
<h3>Lock-In</h3>
<p>The other effect of introducing technology is that it can be a hindrance to change. A new software system, for example, can be a very costly acquisition (especially given that companies often underestimate the cost of software). Once the software is deployed, however, processes become locked-in to the way the software operates. Changes to processes often require changes to the software &#8211; which can be prohibitively expensive. The result is that the company looses agility, becoming bound to outdated practices that they <em>know </em>are broken, that they <em>want </em>to change, but which are impossible to shed because of technical constraints.</p>
<p>An example of this is the clocking system that was used at a company where I did some work. It was based on decimal hours rather than hours and minutes, so 7 hours and 30 minutes appeared on screen as 7.5. Everyone knew that this was a bad idea, because the entire staff of the company wasted time every month converting their clockings from hours and minutes into decimal hours. However, this method of working was locked in by the technology. When a companion time-sheet system was introduced, the specification indicated that it should also work in decimal hours so it would be compatible with the first system, further locking-in wasteful behaviour.</p>
<h3>Conclusions</h3>
<p>So, does all this make <em>all</em> technology a bad thing? Not at all. But it does suggest that we approach technology in a different way:</p>
<ul>
<li>Great companies value technology.</li>
<li>Technology should not bee seen as a panacea, but a method of amplifying existing practices.
<ul>
<li>Business needs should drive technology, not the other way around.</li>
<li>Business systems should be fixed before introducing technology to make them more efficient.</li>
</ul>
</li>
<li>Technology should be chosen on the basis of how easy it is to change as well as on how well it meets current needs. For example:
<ul>
<li>Choose an Agile approach to bespoke software development.</li>
<li>Reduce dependencies between technologies.</li>
</ul>
</li>
</ul>
<p>The post <a href="http://kramii.com/blog/2011/06/09/better-technology-makes-things-worse/">When Improving Technology Makes Things Worse</a> appeared first on <a href="http://kramii.com">Kramii</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://kramii.com/blog/2011/06/09/better-technology-makes-things-worse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>.Net Implicit Casts</title>
		<link>http://kramii.com/blog/2011/05/24/net-casts/</link>
		<comments>http://kramii.com/blog/2011/05/24/net-casts/#comments</comments>
		<pubDate>Tue, 24 May 2011 12:31:21 +0000</pubDate>
		<dc:creator>Kramii</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[VB.Net]]></category>

		<guid isPermaLink="false">http://kramii.com/?p=1441</guid>
		<description><![CDATA[<p><br/>Casts A cast is a conversion of data from one type to another, for example from an integer to a float. Implicit Casts An implicit cast is a conversion from one type to another that is automatically assumed by the &#8230; <a href="http://kramii.com/blog/2011/05/24/net-casts/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://kramii.com/blog/2011/05/24/net-casts/">.Net Implicit Casts</a> appeared first on <a href="http://kramii.com">Kramii</a>.</p>]]></description>
				<content:encoded><![CDATA[<br/><h3>Casts</h3>
<p>A cast is a conversion of data from one type to another, for example from an integer to a float.</p>
<h3>Implicit Casts</h3>
<p>An implicit cast is a conversion from one type to another that is automatically assumed by the compiler. Therefore, an implicit cast does not appear in the program code.</p>
<p>In general, implicit casts can only be made when the conversion does not result in loss of information. This means that an implicit cast cannot be performed where the value being converted must be rounded or truncated.</p>
<h3>C# Implicit Casts</h3>
<table>
<tbody>
<tr>
<th></th>
<th></th>
<th colspan="11">TO<sup>2</sup></th>
</tr>
<tr>
<th></th>
<th></th>
<th>sbyte</th>
<th>byte</th>
<th>short</th>
<th>ushort</th>
<th>int</th>
<th>uint</th>
<th>long</th>
<th>ulong</th>
<th>float</th>
<th>double</th>
<th>decimal</th>
</tr>
<tr>
<th>FROM</th>
<th>sbyte</th>
<td>-</td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
</tr>
<tr>
<th></th>
<th>byte</th>
<td><span style="color: #ff0000;">x</span></td>
<td>-</td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
</tr>
<tr>
<th></th>
<th>char</th>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
</tr>
<tr>
<th></th>
<th>short</th>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td>-</td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
</tr>
<tr>
<th></th>
<th>ushort</th>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td>-</td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
</tr>
<tr>
<th></th>
<th>int</th>
<td><span style="color: #ff0000;">x</span><sup>4</sup></td>
<td><span style="color: #ff0000;">x</span><sup>4</sup></td>
<td><span style="color: #ff0000;">x</span><sup>4</sup></td>
<td><span style="color: #ff0000;">x</span><sup>4</sup></td>
<td>-</td>
<td><span style="color: #ff0000;">x</span><sup>4</sup></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #ff0000;">x</span><sup>4</sup></td>
<td><span style="color: #008000;">✓</span><sup>1</sup></td>
<td><span style="color: #008000;">✓</span><sup>1</sup></td>
<td><span style="color: #008000;">✓</span></td>
</tr>
<tr>
<th></th>
<th>uint</th>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td>-</td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span><sup>1</sup></td>
<td><span style="color: #008000;">✓</span><sup>1</sup></td>
<td><span style="color: #008000;">✓</span></td>
</tr>
<tr>
<th></th>
<th>long</th>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td>-</td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #008000;">✓</span><sup>1</sup></td>
<td><span style="color: #008000;">✓</span><sup>1</sup></td>
<td><span style="color: #008000;">✓</span></td>
</tr>
<tr>
<th></th>
<th>ulong</th>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td>-</td>
<td><span style="color: #008000;">✓</span><sup>1</sup></td>
<td><span style="color: #008000;">✓</span><sup>1</sup></td>
<td><span style="color: #008000;">✓</span></td>
</tr>
<tr>
<th></th>
<th>float</th>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td>-</td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #ff0000;">x</span><sup>3</sup></td>
</tr>
<tr>
<th></th>
<th>double</th>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td>-</td>
<td><span style="color: #ff0000;">x</span><sup>3</sup></td>
</tr>
</tbody>
</table>
<h4>Notes on the Table</h4>
<ol>
<li>May cause loss of precision but not magnitude.</li>
<li>There are no implicit conversions to char.</li>
<li>There are no implicit conversions from floating-point types to decimal.</li>
<li>Constant expressions can be converted provided the constant expression is in range of the destination type.</li>
</ol>
<h3>VB.Net Widening Casts</h3>
<table>
<tbody>
<tr>
<th></th>
<th></th>
<th>TO</th>
</tr>
<tr>
<th></th>
<th></th>
<th>SByte</th>
<th>Byte</th>
<th>Short</th>
<th>UShort</th>
<th>Integer</th>
<th>UInteger</th>
<th>Long</th>
<th>ULong</th>
<th>Single</th>
<th>Double</th>
<th>Decimal</th>
</tr>
<tr>
<th>FROM</th>
<th>SByte</th>
<td>-</td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
</tr>
<tr>
<th></th>
<th>Byte</th>
<td><span style="color: #ff0000;">x</span></td>
<td>-</td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
</tr>
<tr>
<th></th>
<th>Short</th>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td>-</td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
</tr>
<tr>
<th></th>
<th>UShort</th>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td>-</td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
</tr>
<tr>
<th></th>
<th>Integer</th>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td>-</td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #008000;">✓</span><sup>1</sup></td>
<td><span style="color: #008000;">✓</span><sup>1</sup></td>
<td><span style="color: #008000;">✓</span></td>
</tr>
<tr>
<th></th>
<th>UInteger</th>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td>-</td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #008000;">✓</span><sup>1</sup></td>
<td><span style="color: #008000;">✓</span><sup>1</sup></td>
<td><span style="color: #008000;">✓</span></td>
</tr>
<tr>
<th></th>
<th>Long</th>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td>-</td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #008000;">✓</span><sup>1</sup></td>
<td><span style="color: #008000;">✓</span><sup>1</sup></td>
<td><span style="color: #008000;">✓</span></td>
</tr>
<tr>
<th></th>
<th>ULong</th>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td>-</td>
<td><span style="color: #008000;">✓</span><sup>1</sup></td>
<td><span style="color: #008000;">✓</span><sup>1</sup></td>
<td><span style="color: #008000;">✓</span></td>
</tr>
<tr>
<th></th>
<th>Decimal</th>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #008000;">✓</span><sup>1</sup></td>
<td><span style="color: #008000;">✓</span><sup>1</sup></td>
<td><span style="color: #ff0000;">x</span></td>
</tr>
<tr>
<th></th>
<th>Single</th>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td>-</td>
<td><span style="color: #008000;">✓</span></td>
<td><span style="color: #ff0000;">x</span></td>
</tr>
<tr>
<th></th>
<th>Double</th>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td>-</td>
<td><span style="color: #ff0000;">x</span></td>
</tr>
</tbody>
</table>
<table>
<tbody>
<tr>
<th></th>
<th></th>
<th>Char</th>
<th>Char array</th>
<th>String</th>
</tr>
<tr>
<th>FROM</th>
<th>Char</th>
<td>-</td>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #008000;">✓</span></td>
</tr>
<tr>
<th></th>
<th>Char array</th>
<td><span style="color: #ff0000;">x</span></td>
<td>-</td>
<td><span style="color: #008000;">✓</span></td>
</tr>
<tr>
<th></th>
<th>String</th>
<td><span style="color: #ff0000;">x</span></td>
<td><span style="color: #ff0000;">x</span></td>
<td>-</td>
</tr>
</tbody>
</table>
<h4>Notes on the Tables</h4>
<ol>
<li>May cause loss of precision but not magnitude.</li>
</ol>
<h3>Explicit Casts</h3>
<p>An explicit cast requires special syntax in the source code.</p>
<h3>Summary</h3>
<table>
<tbody>
<tr>
<th>C#</th>
<th>VB.Net</th>
<th>Data Types</th>
<th>Restrictions</th>
<th></th>
<th>Runtime Failure</th>
</tr>
<tr>
<td>-</td>
<td>CType</td>
<td>Value and Reference Types</td>
<td>Widening or narrowing conversion must be defined between the two data types</td>
<td></td>
<td>Throws InvalidCastException</td>
</tr>
<tr>
<td>Cast Operator</td>
<td>DirectCast</td>
<td>Value and Reference Types</td>
<td>One type must inherit from or implement the other</td>
<td></td>
<td>Throws InvalidCastException</td>
</tr>
<tr>
<td>as</td>
<td>TryCast<sup>1</sup></td>
<td>Reference types only</td>
<td>One type must inherit from or implement the other</td>
<td></td>
<td>Returns null (C#) or Nothing (VB.Net)</td>
</tr>
</tbody>
</table>
<h4>Notes on the Table</h4>
<ol>
<li>Later versions of VB.Net only.</li>
</ol>
<p>The post <a href="http://kramii.com/blog/2011/05/24/net-casts/">.Net Implicit Casts</a> appeared first on <a href="http://kramii.com">Kramii</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://kramii.com/blog/2011/05/24/net-casts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Server: Example Naming Convention</title>
		<link>http://kramii.com/blog/2011/05/24/sql-server-example-naming-convention/</link>
		<comments>http://kramii.com/blog/2011/05/24/sql-server-example-naming-convention/#comments</comments>
		<pubDate>Tue, 24 May 2011 10:36:51 +0000</pubDate>
		<dc:creator>Kramii</dc:creator>
				<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://kramii.com/?p=1434</guid>
		<description><![CDATA[<p><br/>An example of a SQL Server naming convention I have encountered: Tables tcTableName (e.g. tcAsset) for core tables, i.e. tables that contain regularly changing data and have insert/update/delete queries run against them. trTableName (e.g. trAssetType) for reference tables, i.e. tables &#8230; <a href="http://kramii.com/blog/2011/05/24/sql-server-example-naming-convention/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://kramii.com/blog/2011/05/24/sql-server-example-naming-convention/">SQL Server: Example Naming Convention</a> appeared first on <a href="http://kramii.com">Kramii</a>.</p>]]></description>
				<content:encoded><![CDATA[<br/><p>An example of a SQL Server naming convention I have encountered:</p>
<h3>Tables</h3>
<ul>
<li><strong>tcTableName </strong>(e.g. tcAsset) for core tables, i.e. tables that contain regularly changing data and have insert/update/delete queries run against them.</li>
<li><strong>trTableName </strong>(e.g. trAssetType) for reference tables, i.e. tables that contain static/unchanging data, usually used in reference to data in core tables.</li>
<li><strong>tjTableName </strong>(e.g. tjUserRole) for join tables, i.e. tables that provide a many-to-many join between two other tables.</li>
</ul>
<h3>Columns</h3>
<ul>
<li><strong>tableNameId </strong>(e.g. assetId) for primary keys.</li>
<li><strong>foreignTableNameId </strong>(e.g. assetTypeId) for foreign keys.</li>
<li>&#8220;<strong>name</strong>&#8221; for text fields in simple ID/Name tables, e.g. in trAssetType (assetTypeID int, name nvrachar(100)).</li>
<li><strong>lowerUpperUpper </strong>(e.g. propertyEntranceStorey) for all other columns, with no particular convention on the column names other than the lowerUpperUpper case.</li>
</ul>
<h3>Views</h3>
<ul>
<li><strong>vwTableNameSubset </strong>(e.g. vwAsset, vwWindowHistory, vwWindowHistoryLatest)</li>
</ul>
<h3>Other</h3>
<ul>
<li><strong>Stored Procedures</strong>: uspTableAction (e.g. uspAssetDelete) (usp = User Stored Procedure &#8211; don&#8217;t use &#8220;sp&#8221; as its reserved for system stored procedures and SQL Server always checks the Master database for the SP first before checking the current database, meaning its bad for performance).</li>
<li><strong>Functions</strong>: fnXXX</li>
<li><strong>User-defined Data Types</strong>: uddtXXX</li>
<li><strong>ID Columns</strong>: tableID / foreignTableID (e.g. assetID / assetTypeID)</li>
</ul>
<p>The post <a href="http://kramii.com/blog/2011/05/24/sql-server-example-naming-convention/">SQL Server: Example Naming Convention</a> appeared first on <a href="http://kramii.com">Kramii</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://kramii.com/blog/2011/05/24/sql-server-example-naming-convention/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What Makes Technology Popular?</title>
		<link>http://kramii.com/blog/2011/05/18/what-makes-technology-popular/</link>
		<comments>http://kramii.com/blog/2011/05/18/what-makes-technology-popular/#comments</comments>
		<pubDate>Wed, 18 May 2011 12:19:43 +0000</pubDate>
		<dc:creator>Kramii</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://kramii.com/?p=1386</guid>
		<description><![CDATA[<p><img src="http://kramii.com/wp-content/uploads/2011/05/icon-bubble.png" width="64" height="64" alt="Uncategorized" title="Uncategorized" /><br/>It is easy to assume that technology becomes popular simply because it is better than the competition. But as the saying goes, &#8220;that ain&#8217;t necessarily so&#8221;. In fact, the history of innovation is replete with examples of inferior technologies capturing &#8230; <a href="http://kramii.com/blog/2011/05/18/what-makes-technology-popular/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://kramii.com/blog/2011/05/18/what-makes-technology-popular/">What Makes Technology Popular?</a> appeared first on <a href="http://kramii.com">Kramii</a>.</p>]]></description>
				<content:encoded><![CDATA[<img src="http://kramii.com/wp-content/uploads/2011/05/icon-bubble.png" width="64" height="64" alt="Uncategorized" title="Uncategorized" /><br/><p>It is easy to assume that technology becomes popular simply because it is better than the competition. But as the saying goes, &#8220;that ain&#8217;t necessarily so&#8221;. In fact, the history of innovation is replete with examples of inferior technologies capturing a larger market share than their technically superior rivals.</p>
<p>Some of the best known (and hotly debated) examples of  include:</p>
<ol>
<li>Betamax / VHS</li>
<li>Ethernet / Token Ring</li>
<li>Mac / Windows</li>
<li>Firefox / Internet Explorer</li>
</ol>
<p>Moreover, there are also plenty of perfectly good technologies that die a death because they lag <em>far </em>behind their rivals in terms of sales, despite their being little difference  in their technical merit. Most <a href="http://en.wikipedia.org/wiki/Format_war">format wars</a> are a case in point.</p>
<p>So, why does this happen? How does a technology come to dominate the market, often at the expense of other, sometimes superior, alternatives?</p>
<div id="attachment_1421" class="wp-caption alignright" style="width: 146px"><a href="http://kramii.com/wp-content/uploads/2011/05/shrek-donkey.jpg"><img class="size-medium wp-image-1421" title="shrek-donkey" src="http://kramii.com/wp-content/uploads/2011/05/shrek-donkey-136x300.jpg" alt="" width="136" height="300" /></a><p class="wp-caption-text">Pick Me! Like Donkey, some technology has what it takes to get picked.</p></div>
<p>The answer lies in the way that individuals make decisions about the technology they use. The technology that gets picked for three reasons:</p>
<ol>
<li>It meets a need (or at least appears to)</li>
<li>It gets publicity &#8211; sometimes through deliberate advocacy, sometimes through word of mouth</li>
<li>There costs of adoption are outweighed by the benefits</li>
</ol>
<p>To illustrate, we&#8217;ll consider a well-known example: the Windows operating system.</p>
<p>Firstly, users who get what they need from Windows are unlikely to go looking for alternatives. They might do so, however, if they start to believe that their are problems with Windows that reduce their productivity. For the majority of Windows users, however, Windows meets their needs. Whether that is because it is a great product or because the users don&#8217;t know any different is irrelevant. The point is that for many users, it is simply good enough.</p>
<p>Secondly, even if they go looking, Windows users are unlikely to find out about many of the alternatives. This is because they just don&#8217;t receive very much attention from developers, other users nor the press. How many Windows users have heard of the <a href="http://haiku-os.org/">Haiku Operating System</a>, for example? On the other hand, it is more likely that they will have heard of the Mac or Linux.</p>
<p>Finally, even if Windows users find an alternative, they won&#8217;t switch unless the benefits of switching outweigh the costs of adopting the new platform. If critical applications are available on the new platform, users might switch. If not, they are unlikely to do so. Similarly, if the learning curve is steep, they may be reluctant, but if the user experience is similar, they may be more willing to do so. <a href="http://www.ubuntu.com/">Ubuntu</a> is a popular Linux distribution because of the focus on usability, whereas others are less so because they&#8217;re difficult to get used to.</p>
<p>So, there you have it: technology is not popular just because it is good (although that helps), but because of market forces &#8211; marketing in particular.</p>
<p><em>Thanks to the <a href="http://programmers.stackexchange.com/users/12629/jgauffin">jgauffin</a> for the <a href="http://programmers.stackexchange.com/questions/74799/why-is-mvc-more-popular-than-pac">inspiration</a> behind this post.</em></p>
<p>The post <a href="http://kramii.com/blog/2011/05/18/what-makes-technology-popular/">What Makes Technology Popular?</a> appeared first on <a href="http://kramii.com">Kramii</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://kramii.com/blog/2011/05/18/what-makes-technology-popular/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C#: How to Clone a Generic List</title>
		<link>http://kramii.com/blog/2011/05/18/c-how-to-clone-a-generic-list/</link>
		<comments>http://kramii.com/blog/2011/05/18/c-how-to-clone-a-generic-list/#comments</comments>
		<pubDate>Wed, 18 May 2011 10:29:59 +0000</pubDate>
		<dc:creator>Kramii</dc:creator>
				<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://kramii.com/?p=1407</guid>
		<description><![CDATA[<p><br/>Found on StackOverflow, this is a tidy example of an generic extension method that uses LINQ: static class Extensions { public static IList&#60;T&#62; Clone&#60;T&#62;( this IList&#60;T&#62; listToClone) where T: ICloneable     {     return listToClone.Select(item =&#62; (T)item.Clone()).ToList(); } &#8230; <a href="http://kramii.com/blog/2011/05/18/c-how-to-clone-a-generic-list/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://kramii.com/blog/2011/05/18/c-how-to-clone-a-generic-list/">C#: How to Clone a Generic List</a> appeared first on <a href="http://kramii.com">Kramii</a>.</p>]]></description>
				<content:encoded><![CDATA[<br/><p>Found on <a href="http://stackoverflow.com/questions/222598/how-do-i-clone-a-generic-list-in-c">StackOverflow</a>, this is a tidy example of an generic extension method that uses LINQ:</p>
<pre><code><pre class="brush: c#; ">

static class Extensions
{
    public static IList&lt;T&gt; Clone&lt;T&gt;(
        this IList&lt;T&gt; listToClone) where T: ICloneable
    {
        return listToClone.Select(item =&gt; (T)item.Clone()).ToList();
    }
}

</pre>
<p></code></p>
<p>The post <a href="http://kramii.com/blog/2011/05/18/c-how-to-clone-a-generic-list/">C#: How to Clone a Generic List</a> appeared first on <a href="http://kramii.com">Kramii</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://kramii.com/blog/2011/05/18/c-how-to-clone-a-generic-list/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Improve Service and Lower Costs</title>
		<link>http://kramii.com/blog/2011/05/16/how-to-improve-service-and-lower-costs/</link>
		<comments>http://kramii.com/blog/2011/05/16/how-to-improve-service-and-lower-costs/#comments</comments>
		<pubDate>Mon, 16 May 2011 08:35:54 +0000</pubDate>
		<dc:creator>Kramii</dc:creator>
				<category><![CDATA[Best Practice]]></category>
		<category><![CDATA[Leadership]]></category>

		<guid isPermaLink="false">http://kramii.com/?p=1396</guid>
		<description><![CDATA[<p><br/>Focus on the systems that provide value How you view a problem is the key to the way you solve it. If our focus is on anything but the systems that provide value we will be driving waste into our &#8230; <a href="http://kramii.com/blog/2011/05/16/how-to-improve-service-and-lower-costs/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://kramii.com/blog/2011/05/16/how-to-improve-service-and-lower-costs/">How to Improve Service and Lower Costs</a> appeared first on <a href="http://kramii.com">Kramii</a>.</p>]]></description>
				<content:encoded><![CDATA[<br/><h3>Focus on the systems that provide value</h3>
<p>How you view a problem is the key to the way you solve it. If our focus is on anything but the systems that provide value we will be driving waste into our business.</p>
<h3>Don&#8217;t focus on economies of scale</h3>
<p>Standardisation isn&#8217;t always improvement</p>
<h3>Don&#8217;t focus on tools, but on principles</h3>
<p>Every situation is different.</p>
<p>At a high level, the ways that a service organisation provides value are different from a manufacturing business or an R&amp;D department. This is why lean tools don&#8217;t translate to service organisations.</p>
<p>At a low level, each organisation has a different pattern of demand for its services. This leads to different problems which require different types of solutions.</p>
<h3>Don&#8217;t focus on individual processes</h3>
<p>Efficient processes don&#8217;t always lead to efficient systems.</p>
<p>Consider the value stream. Costs arise from end-to-end services, not individual transactions. Lowering individual transaction costs can increase overall transaction costs.</p>
<p>However, poor performance in one area has a knock-on effect in other areas.</p>
<h3>Focus on providing better end-to-end services</h3>
<ul>
<li>Better service lowers costs</li>
<li>Follow the value flow, eliminate waste</li>
<li>Fragmentation of flow introduces waste (e.g. separating back-end from front-end breaks up flow)</li>
<li>Improve systems  &#8211; systems control behaviour</li>
</ul>
<h3>Create better measures</h3>
<ul>
<li>High scores don&#8217;t add value</li>
<li>Measures should relate to the purpose of the system from a customer POV</li>
</ul>
<p>&nbsp;</p>
<p>The post <a href="http://kramii.com/blog/2011/05/16/how-to-improve-service-and-lower-costs/">How to Improve Service and Lower Costs</a> appeared first on <a href="http://kramii.com">Kramii</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://kramii.com/blog/2011/05/16/how-to-improve-service-and-lower-costs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Improving the Information Service</title>
		<link>http://kramii.com/blog/2011/05/13/improving-information-services/</link>
		<comments>http://kramii.com/blog/2011/05/13/improving-information-services/#comments</comments>
		<pubDate>Fri, 13 May 2011 15:49:50 +0000</pubDate>
		<dc:creator>Kramii</dc:creator>
				<category><![CDATA[Leadership]]></category>

		<guid isPermaLink="false">http://kramii.com/?p=1392</guid>
		<description><![CDATA[<p><br/>A grab bag of ideas: Focus on business value Nothing else matters. Provide a great interface At these levels: Technically Personally It should be: Easy to access Responsive Reliable Make people feel good Build a solid, agile infrastructure You&#8217;re going &#8230; <a href="http://kramii.com/blog/2011/05/13/improving-information-services/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://kramii.com/blog/2011/05/13/improving-information-services/">Improving the Information Service</a> appeared first on <a href="http://kramii.com">Kramii</a>.</p>]]></description>
				<content:encoded><![CDATA[<br/><p>A grab bag of ideas:</p>
<h3>Focus on business value</h3>
<p>Nothing else matters.</p>
<h3>Provide a great interface</h3>
<p>At these levels:</p>
<ul>
<li>Technically</li>
<li>Personally</li>
</ul>
<p>It should be:</p>
<ul>
<li>Easy to access</li>
<li>Responsive</li>
<li>Reliable</li>
<li>Make people feel good</li>
</ul>
<h3>Build a solid, agile infrastructure</h3>
<p>You&#8217;re going to pay interest on technical debt. So keep your implementation clean.</p>
<p>Where appropriate:</p>
<ul>
<li>Simplify</li>
<li>Consolidate</li>
<li>Standardise</li>
</ul>
<p>Your:</p>
<ul>
<li>Hardware</li>
<li>Software</li>
<li>Configuration</li>
<li>Names</li>
</ul>
<p>And remember:</p>
<ul>
<li>If you&#8217;ve got one, you&#8217;ll need two.</li>
</ul>
<h3>Don&#8217;t think savings, think investment</h3>
<p>Invest in:</p>
<ul>
<li>Staff</li>
<li>Tools</li>
<li>Infrastructure</li>
</ul>
<h3>Know your assets</h3>
<p>For each key asset:</p>
<ul>
<li>Know its value to the business
<ul>
<li>What would you do if it wasn&#8217;t there?</li>
</ul>
</li>
<li>Know what it costs
<ul>
<li>To buy</li>
<li>To replace</li>
<li>To maintain</li>
<li>To use</li>
<li>Of alternatives</li>
</ul>
</li>
<li>Know who is responsible for it
<ul>
<li>Within IT</li>
<li>Within the business</li>
<li>Outside (contracts, supplier)</li>
</ul>
</li>
<li>Know its limitations
<ul>
<li>Technical</li>
<li>Legal (licensing etc.)</li>
</ul>
</li>
<li>What it depends on
<ul>
<li>Hardware</li>
<li>Software</li>
<li>People</li>
</ul>
</li>
</ul>
<h3>Emphasize quality over quantity</h3>
<ul>
<li>Get it right first time</li>
<li> Do less and do it better</li>
<li>If you can do it once, you can do it twice</li>
</ul>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>The post <a href="http://kramii.com/blog/2011/05/13/improving-information-services/">Improving the Information Service</a> appeared first on <a href="http://kramii.com">Kramii</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://kramii.com/blog/2011/05/13/improving-information-services/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
