<?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>Keystroke Blog</title>
	<atom:link href="http://blog.keystroke.ch/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.keystroke.ch</link>
	<description>Technical Computer stuff and a lot of things which absorb my Time.</description>
	<lastBuildDate>Wed, 05 Oct 2011 19:11:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Dynamic and interactive filtering in Powershell</title>
		<link>http://blog.keystroke.ch/2010/05/21/dynamic-and-interactive-filters-in-powershell/</link>
		<comments>http://blog.keystroke.ch/2010/05/21/dynamic-and-interactive-filters-in-powershell/#comments</comments>
		<pubDate>Fri, 21 May 2010 14:20:44 +0000</pubDate>
		<dc:creator>ivolooser</dc:creator>
				<category><![CDATA[Powershell]]></category>
		<category><![CDATA[Scripting]]></category>

		<guid isPermaLink="false">http://blog.keystroke.ch/?p=138</guid>
		<description><![CDATA[Filtering in Powershell are one of the most expressions i’m use for drill down get-cmdlet results. There are so much situations we would like to have some simple and clear technique to see the results in different views.   As an Example I will use get-process with three views:   SlowMotion (More about here.)  Startet Services  Stopped [...]]]></description>
			<content:encoded><![CDATA[<p>Filtering in Powershell are one of the most expressions i’m use for drill down get-cmdlet results. There are so much situations we would like to have some simple and clear technique to see the results in different views.  </p>

<p>As an Example I will use get-process with three views:  </p>

<ol>
    <li>SlowMotion (More about here.) </li>
    <li>Startet Services </li>
    <li>Stopped Services who begins with &#8220;VW*&#8221;</li>
</ol>

<p>The most scripts are using one view per File.</p>

<blockquote>Get-ServicesByStopped.ps1
Get-ServicesInSlowMotion.ps1</blockquote>

<p>The scripts above are displaying two different views. This will give you very fast a big collection of files. </p>

<p>One other approach is display views over Parameters. Maybe you will use</p>

<blockquote>.\Get-MyProcesses.ps1 –ReportByVMWareStopped</blockquote>

<p><strong>Example 1:</strong></p>


<div class="wp_syntax"><div class="code"><pre class="powershell" style="font-family:monospace;"><span style="color: #0000FF;">Param</span><span style="color: #000000;">&#40;</span>
	<span style="color: #000000;">&#91;</span><span style="color: #0000FF;">switch</span><span style="color: #000000;">&#93;</span> <span style="color: #800080;">$ReportBySlowMotion</span><span style="color: pink;">,</span> 
	<span style="color: #000000;">&#91;</span><span style="color: #0000FF;">switch</span><span style="color: #000000;">&#93;</span> <span style="color: #800080;">$ReportByStartet</span><span style="color: pink;">,</span>
	<span style="color: #000000;">&#91;</span><span style="color: #0000FF;">switch</span><span style="color: #000000;">&#93;</span> <span style="color: #800080;">$ReportByVMWareStopped</span>
<span style="color: #000000;">&#41;</span>
&nbsp;
<span style="color: #0000FF;">If</span><span style="color: #000000;">&#40;</span><span style="color: #800080;">$ReportBySlowMotion</span><span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
	<span style="color: #0000FF;">foreach</span><span style="color: #000000;">&#40;</span><span style="color: #800080;">$process</span> <span style="color: #0000FF;">in</span> <span style="color: pink;">@</span><span style="color: #000000;">&#40;</span><span style="color: #008080; font-weight: bold;">Get-service</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
	<span style="color: #000000;">&#123;</span><span style="color: #800080;">$process</span>; <span style="color: #008080; font-weight: bold;">Start-Sleep</span> <span style="color: #008080; font-style: italic;">-milliseconds</span> <span style="color: #804000;">500</span><span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #0000FF;">if</span><span style="color: #000000;">&#40;</span><span style="color: #800080;">$ReportByStartet</span><span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span><span style="color: #008080; font-weight: bold;">Get-service</span> <span style="color: pink;">|</span> <span style="color: pink;">?</span><span style="color: #000000;">&#123;</span><span style="color: #000080;">$_</span>.Status <span style="color: #FF0000;">-eq</span> <span style="color: #800000;">&quot;Startet&quot;</span><span style="color: #000000;">&#125;</span><span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #0000FF;">if</span><span style="color: #000000;">&#40;</span><span style="color: #800080;">$ReportByVMWareStopped</span><span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span><span style="color: #008080; font-weight: bold;">Get-service</span> <span style="color: pink;">|</span> <span style="color: pink;">?</span><span style="color: #000000;">&#123;</span><span style="color: #000080;">$_</span>.Status <span style="color: #FF0000;">-eq</span> <span style="color: #800000;">&quot;Stopped&quot;</span> <span style="color: #FF0000;">-and</span> <span style="color: #000080;">$_</span>.Name <span style="color: #FF0000;">-ilike</span> <span style="color: #800000;">&quot;VM*&quot;</span><span style="color: #000000;">&#125;</span><span style="color: #000000;">&#125;</span></pre></div></div>


<p>Using filters dynamic is getting scripting simple to extend , and flexible to use.  </p>

<p>Basicly I create a few lines that do the following:  </p>

<ul>
    <li>First normaly create filters in the Syntax &#8220;filter Filter-xxx{…}&#8221;. This is the best Advantage because just define the filter und you will get the selection for the filter in your Script.</li>
    <li>Load the filters when its needed from the Function Provider</li>
    <li>Display the avaible filters so that the user can choose the right one.</li>
    <li>Load the definition and show the result as selected.</li>
  </ul>

<div><span style="font-size: small;"><a href="http://blog.keystroke.ch/wp-content/uploads/2010/05/DynamicFilterWindows.gif" rel="lightbox[138]" title="DynamicFilterWindows"><img class="alignnone size-medium wp-image-140" title="DynamicFilterWindows" src="http://blog.keystroke.ch/wp-content/uploads/2010/05/DynamicFilterWindows-300x193.gif" alt="" width="300" height="193" /></a> </span></div>

<p>Example: Dynamic Filters</p>


<div class="wp_syntax"><div class="code"><pre class="powershell" style="font-family:monospace;"><span style="color: #008000;">## Creating the Filters</span>
<span style="color: #0000FF;">filter</span> Filter<span style="color: pink;">-</span>VMWare<span style="color: pink;">-</span>Stopped<span style="color: #000000;">&#123;</span><span style="color: #0000FF;">if</span><span style="color: #000000;">&#40;</span><span style="color: #000080;">$_</span>.Status <span style="color: #FF0000;">-eq</span> <span style="color: #800000;">&quot;Stopped&quot;</span> <span style="color: #FF0000;">-and</span> <span style="color: #000080;">$_</span>.Name <span style="color: #FF0000;">-ilike</span> <span style="color: #800000;">&quot;VM*&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span><span style="color: #000080;">$_</span><span style="color: #000000;">&#125;</span><span style="color: #000000;">&#125;</span>
<span style="color: #0000FF;">filter</span> Filter<span style="color: pink;">-</span>Startet<span style="color: #000000;">&#123;</span><span style="color: #0000FF;">if</span><span style="color: #000000;">&#40;</span><span style="color: #000080;">$_</span>.Status <span style="color: #FF0000;">-eq</span> <span style="color: #800000;">&quot;Startet&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span><span style="color: #000080;">$_</span><span style="color: #000000;">&#125;</span><span style="color: #000000;">&#125;</span>
<span style="color: #0000FF;">filter</span> Filter<span style="color: pink;">-</span>SlowMotion<span style="color: #000000;">&#123;</span><span style="color: #000080;">$_</span>; <span style="color: #008080; font-weight: bold;">Start-Sleep</span> <span style="color: #008080; font-style: italic;">-milliseconds</span> <span style="color: #804000;">500</span><span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #008000;">## Get All Filters by Name (Scoped filters need some Cleanups)</span>
<span style="color: #800080;">$filterobjects</span> <span style="color: pink;">=</span> <span style="color: pink;">&amp;</span> <span style="color: #008080; font-weight: bold;">get-childitem</span> <span style="color: #0000FF;">function</span>: <span style="color: pink;">|</span> <span style="color: pink;">?</span><span style="color: #000000;">&#123;</span><span style="color: #000080;">$_</span>.CommandType <span style="color: #FF0000;">-eq</span> <span style="color: #800000;">'Filter'</span><span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #800080;">$filterobjects</span> <span style="color: pink;">|</span> <span style="color: #008080; font-weight: bold;">ft</span> name
&nbsp;
<span style="color: #800080;">$choosedFilter</span> <span style="color: pink;">=</span> <span style="color: #008080; font-weight: bold;">read-host</span> <span style="color: #800000;">&quot;<span style="color: #008080; font-weight: bold;">`n</span>Choose your Filter&quot;</span>
&nbsp;
<span style="color: #008000;">## Choose the filter Definition (For the Filter-Stopped it will contain if($_.Status -eq &quot;Stopped&quot;){$_})</span>
<span style="color: #800080;">$choosedFilterDefinition</span> <span style="color: pink;">=</span> <span style="color: #000000;">&#40;</span><span style="color: #008080; font-weight: bold;">get-item</span> <span style="color: #0000FF;">function</span>:<span style="color: #800080;">$choosedFilter</span><span style="color: #000000;">&#41;</span>.Definition
&nbsp;
<span style="color: #008000;">## The Where-Object need's a Scriptblock.</span>
<span style="color: #800080;">$currentFilter</span> <span style="color: pink;">=</span> <span style="color: #000000;">&#91;</span><span style="color: #008080;">scriptblock</span><span style="color: #000000;">&#93;</span>::Create<span style="color: #000000;">&#40;</span><span style="color: #800080;">$choosedFilterDefinition</span><span style="color: #000000;">&#41;</span>
&nbsp;
<span style="color: #008080; font-weight: bold;">get-service</span> <span style="color: pink;">|</span> <span style="color: #008080; font-weight: bold;">where-object</span> <span style="color: #800080;">$currentFilter</span> <span style="color: pink;">|</span> <span style="color: #008080; font-weight: bold;">ft</span> <span style="color: #008080; font-style: italic;">-autosize</span> Name<span style="color: pink;">,</span> Status<span style="color: pink;">,</span> DisplayName</pre></div></div>


<p></span> </p>

<p></span></p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.keystroke.ch%2F2010%2F05%2F21%2Fdynamic-and-interactive-filters-in-powershell%2F&amp;title=Dynamic+and+interactive+filtering+in+Powershell" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fblog.keystroke.ch%2F2010%2F05%2F21%2Fdynamic-and-interactive-filters-in-powershell%2F&amp;title=Dynamic+and+interactive+filtering+in+Powershell" rel="nofollow" title="Add to&nbsp;DotNetKicks"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Add to&nbsp;DotNetKicks" alt="Add to&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fblog.keystroke.ch%2F2010%2F05%2F21%2Fdynamic-and-interactive-filters-in-powershell%2F" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http%3A%2F%2Fblog.keystroke.ch%2F2010%2F05%2F21%2Fdynamic-and-interactive-filters-in-powershell%2F&amp;T=Dynamic+and+interactive+filtering+in+Powershell" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fblog.keystroke.ch%2F2010%2F05%2F21%2Fdynamic-and-interactive-filters-in-powershell%2F&amp;t=Dynamic+and+interactive+filtering+in+Powershell" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://blog.keystroke.ch/2010/05/21/dynamic-and-interactive-filters-in-powershell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Find MSSQL Server Errorlog Location with Logparser</title>
		<link>http://blog.keystroke.ch/2009/04/28/find-mssql-server-errorlog-location-with-logparser/</link>
		<comments>http://blog.keystroke.ch/2009/04/28/find-mssql-server-errorlog-location-with-logparser/#comments</comments>
		<pubDate>Tue, 28 Apr 2009 09:48:55 +0000</pubDate>
		<dc:creator>ivolooser</dc:creator>
				<category><![CDATA[Tec]]></category>
		<category><![CDATA[Dos]]></category>
		<category><![CDATA[LogParser]]></category>
		<category><![CDATA[MSSQL]]></category>

		<guid isPermaLink="false">http://blog.keystroke.ch/?p=128</guid>
		<description><![CDATA[We are running much SQL Servers with different located ErrorLogs. Sometimes its usefull to find quick the Location from the Logs. I did a Command that gives me the Errorlog location to the Commandpromt, so i can copy them on my Client and open it in my lovely Editplus for furter troubleshooting. Find the Location [...]]]></description>
			<content:encoded><![CDATA[<p>We are running much SQL Servers with different located ErrorLogs. Sometimes its usefull to find quick the Location from the Logs. I did a Command that gives me the Errorlog location to the Commandpromt, so i can copy them on my Client and open it in my lovely Editplus for furter troubleshooting.</p>

<p><strong>Find the Location of the SQL Server Errorlog SQL Server 2005</strong></p>

<blockquote>logparser &#8220;select strcat(strcat(&#8216;\\\\&#8217;,strcat(computername, &#8216;\\&#8217;)),REPLACE_CHR(REPLACE_STR(value, &#8216;-e&#8217;, &#8221;), &#8216;:&#8217;, &#8216;$&#8217;)) from &#8216;\\MYServer\HKLM\SOFTWARE\Microsoft\Microsoft SQL Server&#8217; where value like &#8216;%errorlog%&#8217;&#8221; -i:REG -recurse:10</blockquote>

<p><strong>Find the Location of the SQL Server Errorlog SQL Server 2000</strong></p>

<blockquote>logparser &#8220;select strcat(strcat(&#8216;\\\\&#8217;,strcat(computername, &#8216;\\&#8217;)),REPLACE_CHR(REPLACE_STR(value, &#8216;-e&#8217;, &#8221;), &#8216;:&#8217;, &#8216;$&#8217;)) from &#8216;\\MYServer\HKLM\SOFTWARE\Microsoft\MSSQLServer&#8217; where value like &#8216;%errorlog%&#8217;&#8221; -i:REG -recurse:10</blockquote>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.keystroke.ch%2F2009%2F04%2F28%2Ffind-mssql-server-errorlog-location-with-logparser%2F&amp;title=Find+MSSQL+Server+Errorlog+Location+with+Logparser" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fblog.keystroke.ch%2F2009%2F04%2F28%2Ffind-mssql-server-errorlog-location-with-logparser%2F&amp;title=Find+MSSQL+Server+Errorlog+Location+with+Logparser" rel="nofollow" title="Add to&nbsp;DotNetKicks"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Add to&nbsp;DotNetKicks" alt="Add to&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fblog.keystroke.ch%2F2009%2F04%2F28%2Ffind-mssql-server-errorlog-location-with-logparser%2F" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http%3A%2F%2Fblog.keystroke.ch%2F2009%2F04%2F28%2Ffind-mssql-server-errorlog-location-with-logparser%2F&amp;T=Find+MSSQL+Server+Errorlog+Location+with+Logparser" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fblog.keystroke.ch%2F2009%2F04%2F28%2Ffind-mssql-server-errorlog-location-with-logparser%2F&amp;t=Find+MSSQL+Server+Errorlog+Location+with+Logparser" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://blog.keystroke.ch/2009/04/28/find-mssql-server-errorlog-location-with-logparser/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Build a free IPhone/ IPod Holder</title>
		<link>http://blog.keystroke.ch/2009/01/27/build-a-free-iphone-ipod-holder/</link>
		<comments>http://blog.keystroke.ch/2009/01/27/build-a-free-iphone-ipod-holder/#comments</comments>
		<pubDate>Tue, 27 Jan 2009 20:54:45 +0000</pubDate>
		<dc:creator>ivolooser</dc:creator>
				<category><![CDATA[IPhone]]></category>
		<category><![CDATA[IPod]]></category>

		<guid isPermaLink="false">http://blog.keystroke.ch/2009/01/27/build-a-free-iphone-ipod-holder/</guid>
		<description><![CDATA[Here i will show you how you can Build a quick nice free IPod / IPhone holder with a CD-Case. You need an old CD-Case and the Original IPhone/IPod Case Cut&#160; with a Knife a littel pice on bothe side from the top pice. After that your CD-Case should hold on a Table like this. [...]]]></description>
			<content:encoded><![CDATA[<p>Here i will show you how you can Build a quick nice free IPod / IPhone holder with a CD-Case. </p>

<ol>   <li>You need an old CD-Case and the Original IPhone/IPod Case     <br /><a href="http://blog.keystroke.ch/wp-content/uploads/2009/01/dsc01026.jpg" rel="lightbox" title="DSC01026"><img title="DSC01026" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="184" alt="DSC01026" src="http://blog.keystroke.ch/wp-content/uploads/2009/01/dsc01026-thumb.jpg" width="244" border="0" /></a> </li>    <li>Cut&#160; with a Knife a littel pice on bothe side from the top pice.      <br /><a href="http://blog.keystroke.ch/wp-content/uploads/2009/01/dsc01024.jpg" rel="lightbox" title="DSC01024"><img title="DSC01024" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="184" alt="DSC01024" src="http://blog.keystroke.ch/wp-content/uploads/2009/01/dsc01024-thumb.jpg" width="244" border="0" /></a></li>    <li>After that your CD-Case should hold on a Table like this.     <br /><a href="http://blog.keystroke.ch/wp-content/uploads/2009/01/dsc01025.jpg" rel="lightbox" title="DSC01025"><img title="DSC01025" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="184" alt="DSC01025" src="http://blog.keystroke.ch/wp-content/uploads/2009/01/dsc01025-thumb.jpg" width="244" border="0" /></a>&#160;</li>    <li>Now sticking you Original IPhone/IPod Case to the CD-Case     <br /><a href="http://blog.keystroke.ch/wp-content/uploads/2009/01/dsc01028.jpg" rel="lightbox" title="DSC01028"><img title="DSC01028" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="184" alt="DSC01028" src="http://blog.keystroke.ch/wp-content/uploads/2009/01/dsc01028-thumb.jpg" width="244" border="0" /></a>      <br /></li>    <li>Take some time to Decorate it.      <br /><a href="http://blog.keystroke.ch/wp-content/uploads/2009/01/dsc01030.jpg" rel="lightbox" title="DSC01030"><img title="DSC01030" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="184" alt="DSC01030" src="http://blog.keystroke.ch/wp-content/uploads/2009/01/dsc01030-thumb.jpg" width="244" border="0" /></a><a href="http://blog.keystroke.ch/wp-content/uploads/2009/01/dsc01036.jpg" rel="lightbox">       <br /></a></li>    <li>Mabe you whould use it as a Nightclock     <br /><img title="DSC01036" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="184" alt="DSC01036" src="http://blog.keystroke.ch/wp-content/uploads/2009/01/dsc01036-thumb.jpg" width="244" border="0" /> </li> </ol>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.keystroke.ch%2F2009%2F01%2F27%2Fbuild-a-free-iphone-ipod-holder%2F&amp;title=Build+a+free+IPhone%2F+IPod+Holder" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fblog.keystroke.ch%2F2009%2F01%2F27%2Fbuild-a-free-iphone-ipod-holder%2F&amp;title=Build+a+free+IPhone%2F+IPod+Holder" rel="nofollow" title="Add to&nbsp;DotNetKicks"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Add to&nbsp;DotNetKicks" alt="Add to&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fblog.keystroke.ch%2F2009%2F01%2F27%2Fbuild-a-free-iphone-ipod-holder%2F" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http%3A%2F%2Fblog.keystroke.ch%2F2009%2F01%2F27%2Fbuild-a-free-iphone-ipod-holder%2F&amp;T=Build+a+free+IPhone%2F+IPod+Holder" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fblog.keystroke.ch%2F2009%2F01%2F27%2Fbuild-a-free-iphone-ipod-holder%2F&amp;t=Build+a+free+IPhone%2F+IPod+Holder" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://blog.keystroke.ch/2009/01/27/build-a-free-iphone-ipod-holder/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Keep your Sharepoint Mail Enabled list Email Adress clean</title>
		<link>http://blog.keystroke.ch/2009/01/22/keep-your-sharepoint-mail-enabled-lists-clean/</link>
		<comments>http://blog.keystroke.ch/2009/01/22/keep-your-sharepoint-mail-enabled-lists-clean/#comments</comments>
		<pubDate>Thu, 22 Jan 2009 22:09:13 +0000</pubDate>
		<dc:creator>ivolooser</dc:creator>
				<category><![CDATA[Sharepoint 2007]]></category>

		<guid isPermaLink="false">http://blog.keystroke.ch/?p=96</guid>
		<description><![CDATA[Did you once give the possibility in Sharepoint for Enabled Lists or Libraries and thought, oops the Sharepoint Users can make a real big mess with the Email Adresses in our Active Directoy?  Maybe you give External partners access to Lists via Email. How does the external Customers think about your Company if an Sharepoint user [...]]]></description>
			<content:encoded><![CDATA[<p>Did you once give the possibility in Sharepoint for Enabled Lists or Libraries and thought, oops the Sharepoint Users can make a real big mess with the Email Adresses in our Active Directoy? </p>

<p>Maybe you give External partners access to Lists via Email. How does the external Customers think about your Company if an Sharepoint user gives mail like it come up in his Mind. For Example one uses <a href="mailto:mossdocs@contoso.com">mossdocs@contoso.com</a> and an other take <a href="mailto:moss-docs@contoso.com">moss-docs@contoso.com</a>.</p>

<p>We implemented a small script whitch gives the Sharepointusers a little clue, what name he can use to give good email adresses any Enabled List.</p>

<p>We made Adaptions in Files EmailSettings.aspx from %HIVE12%. Keep in mind that the files could be  damage after an Farmupdate.</p>

<p>In the File EmailSettings.aspx go above the begin Javascript part and drop the Following Serverside Script in:</p>


<div class="wp_syntax"><div class="code"><pre class="vbs" style="font-family:monospace;">&lt;%
&nbsp;
    SPWeb oWeb = SPControl.GetContextWeb(Context);
    Guid requestListGuid = new System.Guid(Request.QueryString[&quot;List&quot;]);
&nbsp;
    SPList selectedList = null;
    string listName = &quot;nodefined&quot;;
&nbsp;
    foreach (SPList list in oWeb.Lists)
    {
        //Response.Write(list.ID);
        //Response.Write(list.Title);
        if(list.ID == requestListGuid)
        {
            listName = list.Title;
        }
    }
&nbsp;
    string webTitle = oWeb.Name;
    webTitle = System.Text.RegularExpressions.Regex.Replace(webTitle, @&quot;[^0-9a-zA-Z.]&quot;, &quot;.&quot;);
&nbsp;
    // How the Email Generation Rules work.
    // 1. SiteTitle-ListTitle
    // 2. Only Characters 0-9a-zA-Z._- are allowed
    // 3. Alle duplicated points are replaced with singlepoints
&nbsp;
    String tmpEmailAlias = webTitle;
    tmpEmailAlias = tmpEmailAlias + &quot;-&quot; + listName;
&nbsp;
    tmpEmailAlias = System.Text.RegularExpressions.Regex.Replace(tmpEmailAlias, &quot;[.]+&quot;, &quot;.&quot;);
&nbsp;
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;À&quot;, &quot;A&quot;);
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;Á&quot;, &quot;A&quot;);
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;Â&quot;, &quot;A&quot;);
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;Ã&quot;, &quot;A&quot;);
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;Ä&quot;, &quot;A&quot;);
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;â&quot;, &quot;a&quot;);
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;ã&quot;, &quot;a&quot;);
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;ä&quot;, &quot;ae&quot;);
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;à&quot;, &quot;a&quot;);
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;á&quot;, &quot;a&quot;);
&nbsp;
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;È&quot;, &quot;E'&quot;);
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;É&quot;, &quot;E'&quot;);
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;Ê&quot;, &quot;E&quot;);
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;Ë&quot;, &quot;EA&quot;);
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;ê&quot;, &quot;e&quot;);
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;ë&quot;, &quot;ea&quot;);
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;è&quot;, &quot;e&quot;);
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;é&quot;, &quot;e&quot;);
&nbsp;
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;Ì&quot;, &quot;I&quot;);
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;Í&quot;, &quot;I&quot;);
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;Î&quot;, &quot;I&quot;);
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;Ï&quot;, &quot;I&quot;);
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;î&quot;, &quot;i&quot;);
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;ï&quot;, &quot;i&quot;);
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;ì&quot;, &quot;i&quot;);
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;í&quot;, &quot;i&quot;);
&nbsp;
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;Ò&quot;, &quot;O&quot;);
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;Ó&quot;, &quot;O&quot;);
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;Ô&quot;, &quot;O&quot;);
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;Õ&quot;, &quot;O&quot;);
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;Ö&quot;, &quot;OU&quot;);
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;ô&quot;, &quot;o&quot;);
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;õ&quot;, &quot;o&quot;);
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;ö&quot;, &quot;ou&quot;);
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;ò&quot;, &quot;o&quot;);
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;ó&quot;, &quot;o&quot;);
&nbsp;
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;Ù&quot;, &quot;U&quot;);
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;Ú&quot;, &quot;U&quot;);
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;Û&quot;, &quot;U&quot;);
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;Ü&quot;, &quot;U&quot;);
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;û&quot;, &quot;u&quot;);
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;ü&quot;, &quot;u&quot;);
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;ù&quot;, &quot;u'&quot;);
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;ú&quot;, &quot;u'&quot;);
&nbsp;
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;Ý&quot;, &quot;Y&quot;);
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;ý&quot;, &quot;y&quot;);
    tmpEmailAlias = tmpEmailAlias.Replace(&quot;ñ&quot;, &quot;n&quot;);
&nbsp;
    tmpEmailAlias = System.Text.RegularExpressions.Regex.Replace(tmpEmailAlias, &quot;[ ]&quot;, &quot;.&quot;);
    tmpEmailAlias = System.Text.RegularExpressions.Regex.Replace(tmpEmailAlias, @&quot;[^0-9a-zA-Z._-]&quot;, string.Empty);
&nbsp;
    tmpEmailAlias = tmpEmailAlias.ToLower();
&nbsp;
    string emailAlias = tmpEmailAlias;
&nbsp;
%&gt;</pre></div></div>


<p>Here we do the biggest part of the Script. Find the Liste Title and the Webname and clean it up with some Replacements.
As the First Line inside the Javascript Section place the following single Line. That Line make sure that we get the cleaned EmailAlias as an Javascript Value.</p>


<div class="wp_syntax"><div class="code"><pre class="asp" style="font-family:monospace;">var l_EmailAlias = '<span style="color: #000000; font-weight: bold;">&lt;%</span><span style="color: #006600; font-weight: bold;">=</span>emailAlias<span style="color: #000000; font-weight: bold;">%&gt;</span>';</pre></div></div>


<p>And for the Last in EmailSettings.aspx replace the Following Part:</p>


<div class="wp_syntax"><div class="code"><pre class="asp" style="font-family:monospace;">function SetControlsDisabled(state)
{
    document.getElementById(&quot;<span style="color: #000000; font-weight: bold;">&lt;%</span><span style="color: #006600; font-weight: bold;">=</span> TxtAlias.<span style="color: #9900cc;">ClientID</span> <span style="color: #000000; font-weight: bold;">%&gt;</span>&quot;).disabled = state;</pre></div></div>


<p>with the little next part:</p>


<div class="wp_syntax"><div class="code"><pre class="asp" style="font-family:monospace;">function SetControlsDisabled(state)
{
    if(!state)
    {
        document.getElementById(&quot;<span style="color: #000000; font-weight: bold;">&lt;%</span><span style="color: #006600; font-weight: bold;">=</span> TxtAlias.<span style="color: #9900cc;">ClientID</span> <span style="color: #000000; font-weight: bold;">%&gt;</span>&quot;).disabled = state;
        document.getElementById(&quot;<span style="color: #000000; font-weight: bold;">&lt;%</span><span style="color: #006600; font-weight: bold;">=</span> TxtAlias.<span style="color: #9900cc;">ClientID</span> <span style="color: #000000; font-weight: bold;">%&gt;</span>&quot;).value = l_EmailAlias;
    }
    else
    {
        document.getElementById(&quot;<span style="color: #000000; font-weight: bold;">&lt;%</span><span style="color: #006600; font-weight: bold;">=</span> TxtAlias.<span style="color: #9900cc;">ClientID</span> <span style="color: #000000; font-weight: bold;">%&gt;</span>&quot;).disabled = state;
        document.getElementById(&quot;<span style="color: #000000; font-weight: bold;">&lt;%</span><span style="color: #006600; font-weight: bold;">=</span> TxtAlias.<span style="color: #9900cc;">ClientID</span> <span style="color: #000000; font-weight: bold;">%&gt;</span>&quot;).value = &quot;&quot;;
    }</pre></div></div>


<p>Thats it and have fun.</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.keystroke.ch%2F2009%2F01%2F22%2Fkeep-your-sharepoint-mail-enabled-lists-clean%2F&amp;title=Keep+your+Sharepoint+Mail+Enabled+list+Email+Adress+clean" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fblog.keystroke.ch%2F2009%2F01%2F22%2Fkeep-your-sharepoint-mail-enabled-lists-clean%2F&amp;title=Keep+your+Sharepoint+Mail+Enabled+list+Email+Adress+clean" rel="nofollow" title="Add to&nbsp;DotNetKicks"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Add to&nbsp;DotNetKicks" alt="Add to&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fblog.keystroke.ch%2F2009%2F01%2F22%2Fkeep-your-sharepoint-mail-enabled-lists-clean%2F" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http%3A%2F%2Fblog.keystroke.ch%2F2009%2F01%2F22%2Fkeep-your-sharepoint-mail-enabled-lists-clean%2F&amp;T=Keep+your+Sharepoint+Mail+Enabled+list+Email+Adress+clean" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fblog.keystroke.ch%2F2009%2F01%2F22%2Fkeep-your-sharepoint-mail-enabled-lists-clean%2F&amp;t=Keep+your+Sharepoint+Mail+Enabled+list+Email+Adress+clean" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://blog.keystroke.ch/2009/01/22/keep-your-sharepoint-mail-enabled-lists-clean/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Crud for Turbogears with MyGeneration</title>
		<link>http://blog.keystroke.ch/2008/07/19/crud-for-turbogears-with-mygeneration/</link>
		<comments>http://blog.keystroke.ch/2008/07/19/crud-for-turbogears-with-mygeneration/#comments</comments>
		<pubDate>Sat, 19 Jul 2008 19:46:59 +0000</pubDate>
		<dc:creator>ivolooser</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Turbogears]]></category>
		<category><![CDATA[MyGeneration]]></category>

		<guid isPermaLink="false">http://blog.keystroke.ch/2008/07/19/crud-for-turbogears-with-mygeneration/</guid>
		<description><![CDATA[Why Some years ago i was doing Webdevelopment with ASP Classic from Microsoft. For creating my Crud&#8217;s i was choosing MyGeneration at this time. I got experience with MyGeneration and was very happy how fast i got up Editable Tables. But for now, im playing with Turbogears at it makes alot of fun. Some Months [...]]]></description>
			<content:encoded><![CDATA[<h4>Why</h4>

<p>Some years ago i was doing Webdevelopment with ASP Classic from Microsoft. For creating my Crud&#8217;s i was choosing <a href="http://www.mygenerationsoftware.com" target="_blank">MyGeneration</a> at this time. I got experience with MyGeneration and was very happy how fast i got up Editable Tables.</p>

<p>But for now, im playing with Turbogears at it makes alot of fun. Some Months ago i tried tgcrud and some weeks ago dbsprockets. Both developers did a very good job, sure, but for me both had some limitation.</p>

<ul>
    <li>tgcrud does not support insert Identity automatic from the Database Table. I now i&#8217;m a poor guy. Why i&#8217;m not just use the commandline Option? The second one was no selection for which fields are Diplayed in the grid and in the Edit mode. Much manual work and i had no idea how i can extend for my own use.</li>
    <li>dbsprockets i had to adapt the design first, just copy past,  to made the admin forms in my look. Ok, i got my personalized view for admin but nothing more. Extend the edit forms was to hard for me.</li>
</ul>

<p>So i decided to make public my personal MyGeneration Template.</p>

<h4>How it works</h4>

<p>Right click the Template <strong>Turbogears Crud</strong> in MyGeneration, select your Fields for Columns in Grid and Columns for Editing and click OK.</p>

<p><a rel="lightbox" href="http://test.keystroke.ch/wpksblog/wp-content/uploads/2008/07/image.png" title="image"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" title="image" src="http://test.keystroke.ch/wpksblog/wp-content/uploads/2008/07/image-thumb.png" border="0" alt="image" width="441" height="349" /></a></p>

<p>After drop the generated Folder <strong>UserController</strong> in your Project subfolder <strong>controllers</strong> and link to them in <strong>root.py.</strong> You find more  Information in the section Step by Step.</p>

<h4>What you get?</h4>

<ul>
    <li>Automatic creation of Basic Controllers for Create, Update and Delete.</li>
    <li>Name the controller different to the Tablename</li>
    <li>Name the Fields in the Listview different to the Names in the Database.</li>
</ul>

<h4>Limitations</h4>

<p>MyGeneration is a .Net Software. You should use a Windows Machine to Generate the Templates.</p>

<p>Have you a Mac? I&#8217;m generate my Contollers from a Virtual Windows XP Machine against a MySQL Database which is running on my Leopard. The same Template on my Laptop with Windows only against XAMP MySQL works also.</p>

<p>I never investigated it works with SqlLite. For my point of view it only works with MySql.</p>

<p>More Limitations:</p>

<ul>
    <li>No Support for PrimaryKeys over more then one Column</li>
    <li>Foreignkey handling needs to be done by hand.</li>
    <li>For Blob Column is no File field generated</li>
    <li>No Paginate Grid (Currently)</li>
</ul>

<h4>Step by Step</h4>

<h5>Setup MyGeneration</h5>

<ol>
    <li>Grab <a href="http://www.mygenerationsoftware.com/" target="_blank">MyGeneration</a></li>
    <li>Place the File <a href="http://blog.keystroke.ch/wp-content/uploads/2008/07/turbogearscrud.vbgen" target="_blank">Turbogears.Crud.vbgen</a><em></em> to <em>C:\Programme\MyGeneration13\Templates\Turbogears\Turbogears.Crud.vbgen</em></li>
    <li>Create Connection to MySql with Driver MySql2
<strong>Sample Connection: </strong><em>Database=project1;Data Source=localhost;User Id=root;Password=1234;</em></li>
</ol>

<h5>Prepare a Turbogears Project</h5>

<ol>
    <li>Open your Terminal</li>
    <li>easy_install turbogears</li>
    <li>easy_install sqlalchemy</li>
    <li>easy_install tw.forms</li>
    <li>create your Project with <strong>Identity</strong>
<em>tg-admin quickstart &#8211;sqlalchemy -t tggenshi</em></li>
    <li>as a sample give the name <strong>project1</strong></li>
    <li>Point Connection to Database with sqlalchemy in dev.cfg</li>
    <li>Create Tables in Database
<em>tg-admin sql create</em></li>
    <li>go to your <strong>app.cfg</strong> and set <strong>toscawidgets.on = True</strong></li>
</ol>

<h5>Create Controllers</h5>

<ol>
    <li>Open MyGeneration (Start -&gt; Programs -&gt; MyGeneration 1.3 -&gt; MyGeneration)</li>
    <li>Select your Template in MyMeta Browser and give the class Name from SQLAlchemy as Alias in UserMetaData and <strong>Save User Meta Data
</strong><a rel="lightbox" href="http://test.keystroke.ch/wpksblog/wp-content/uploads/2008/07/image1.png" title="image"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" title="image" src="http://test.keystroke.ch/wpksblog/wp-content/uploads/2008/07/image-thumb1.png" border="0" alt="image" width="244" height="205" /></a></li>
    <li>Right click Template <strong>Turbogears Crud</strong> and choose <strong>Execute</strong></li>
    <li>Define Settings
<a rel="lightbox" href="http://test.keystroke.ch/wpksblog/wp-content/uploads/2008/07/image.png" title="image"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" title="image" src="http://test.keystroke.ch/wpksblog/wp-content/uploads/2008/07/image-thumb.png" border="0" alt="image" width="441" height="349" /></a></li>
    <li>go to your <strong>Output file path </strong>and take a look if the name of your Controller is <strong>UserController</strong>
<a rel="lightbox" href="http://test.keystroke.ch/wpksblog/wp-content/uploads/2008/07/image2.png" title="image"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" title="image" src="http://test.keystroke.ch/wpksblog/wp-content/uploads/2008/07/image-thumb2.png" border="0" alt="image" width="244" height="143" /></a>
Maybe your <strong>Ouput file path</strong> is different from mine.</li>
    <li>copy the Folder U<strong>serController</strong> to <strong>.\project1\project1\</strong></li>
    <li>expose UserController in the File controllers.py with
<strong>from UserController import UserController
users = UserController()</strong></li>
    <li>See what you get
<a rel="lightbox" href="http://test.keystroke.ch/wpksblog/wp-content/uploads/2008/07/image3.png"><strong rel="lightbox[77]" title="image"><img style="border-width: 0px;" title="image" src="http://test.keystroke.ch/wpksblog/wp-content/uploads/2008/07/image-thumb3.png" border="0" alt="image" width="244" height="163" /></strong></a><strong>
</strong><a rel="lightbox" href="http://test.keystroke.ch/wpksblog/wp-content/uploads/2008/07/image4.png"><strong rel="lightbox[77]" title="image"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" title="image" src="http://test.keystroke.ch/wpksblog/wp-content/uploads/2008/07/image-thumb4.png" border="0" alt="image" width="244" height="163" /></strong></a><strong>
</strong><a rel="lightbox" href="http://test.keystroke.ch/wpksblog/wp-content/uploads/2008/07/image5.png"><strong rel="lightbox[77]" title="image"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" title="image" src="http://test.keystroke.ch/wpksblog/wp-content/uploads/2008/07/image-thumb5.png" border="0" alt="image" width="244" height="163" /></strong></a></li>
</ol>

<h5>Tipps</h5>

<ul>
    <li>If you want change the Column names for the List and the Labels for edit you can set the Column Alias in MyGeneration.</li>
    <li>Are the Templates not exactly for your needs, just change it.</li>
</ul>

<h5>Downloads</h5>

<p><a title="Direct link to file" href="http://blog.keystroke.ch/wp-content/uploads/2008/07/turbogearscrud.vbgen">turbogearscrud.vbgen</a></p>

<p><a title="Sample Project1" href="http://test.keystroke.ch/wpksblog/wp-content/uploads/2008/07/project1.zip" target="_blank">project1.zip</a></p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.keystroke.ch%2F2008%2F07%2F19%2Fcrud-for-turbogears-with-mygeneration%2F&amp;title=Crud+for+Turbogears+with+MyGeneration" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fblog.keystroke.ch%2F2008%2F07%2F19%2Fcrud-for-turbogears-with-mygeneration%2F&amp;title=Crud+for+Turbogears+with+MyGeneration" rel="nofollow" title="Add to&nbsp;DotNetKicks"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Add to&nbsp;DotNetKicks" alt="Add to&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fblog.keystroke.ch%2F2008%2F07%2F19%2Fcrud-for-turbogears-with-mygeneration%2F" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http%3A%2F%2Fblog.keystroke.ch%2F2008%2F07%2F19%2Fcrud-for-turbogears-with-mygeneration%2F&amp;T=Crud+for+Turbogears+with+MyGeneration" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fblog.keystroke.ch%2F2008%2F07%2F19%2Fcrud-for-turbogears-with-mygeneration%2F&amp;t=Crud+for+Turbogears+with+MyGeneration" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://blog.keystroke.ch/2008/07/19/crud-for-turbogears-with-mygeneration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SHA1 Hash from a String</title>
		<link>http://blog.keystroke.ch/2008/06/20/sha1-hash-from-a-string/</link>
		<comments>http://blog.keystroke.ch/2008/06/20/sha1-hash-from-a-string/#comments</comments>
		<pubDate>Fri, 20 Jun 2008 07:49:20 +0000</pubDate>
		<dc:creator>ivolooser</dc:creator>
				<category><![CDATA[Powershell]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Crypto]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[SHA1]]></category>

		<guid isPermaLink="false">http://blog.keystroke.ch/2008/06/20/sha1-hash-from-a-string/</guid>
		<description><![CDATA[There is not that much to say. Attached is a Script that generates a SHA1 Hash from a String. Why for me? We have several Servers they are storing files in a specified format on different folders. I should write a Powershell Script who grab the content of each file and save the replace string back. For [...]]]></description>
			<content:encoded><![CDATA[<p>There is not that much to say. Attached is a Script that generates a SHA1 Hash from a String.</p>

<p>Why for me?
We have several Servers they are storing files in a specified format on different folders. I should write a Powershell Script who grab the content of each file and save the replace string back.</p>

<p>For testing purpose i store the File first in two local folder. One is called ArchivOriginal and ArchivEdited. For the each filename i whould like to give them a traceable name like server_share_folder1_folder2.txt. But the folder are deep nested somes paths have more then 248  characters. <img src='http://blog.keystroke.ch/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> </p>

<p>I create a Reference List with Path:FileName. Here comes my SHA1 script handy form me.</p>

<p><code>.\Get-SHA1HashFromString.ps1 "//server/share/folder1/folder3.txt"</code></p>

<p>That its not enougth &#8211; because the SHA1 produces char who are not allowed for Windows. Here is my way to cleanup that.</p>

<p><code>((((((((.\Get-SHA1HashFromString.ps1 "//server/share/folder1/folder3.txt") -replace "/", "<em>slash</em>") -replace "&#92;", "<em>backslash</em>") -replace ":", "<em>doublepoint</em>") -replace "&#42;","<em>star</em>") -replace "\?", "<em>question</em>") -replace "\&lt;", "<em>lt</em>") -replace "\&gt;","<em>gt</em>") -replace "&#124;", "<em>strike</em>"
</code>
Does you need that then can grab the Script <a href="http://blog.keystroke.ch/wp-content/uploads/2008/06/get-sha1hashfromstring.ps1" title="Get-SHA1HashFromString" class="attachmentlink">here</a>.</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.keystroke.ch%2F2008%2F06%2F20%2Fsha1-hash-from-a-string%2F&amp;title=SHA1+Hash+from+a+String" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fblog.keystroke.ch%2F2008%2F06%2F20%2Fsha1-hash-from-a-string%2F&amp;title=SHA1+Hash+from+a+String" rel="nofollow" title="Add to&nbsp;DotNetKicks"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Add to&nbsp;DotNetKicks" alt="Add to&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fblog.keystroke.ch%2F2008%2F06%2F20%2Fsha1-hash-from-a-string%2F" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http%3A%2F%2Fblog.keystroke.ch%2F2008%2F06%2F20%2Fsha1-hash-from-a-string%2F&amp;T=SHA1+Hash+from+a+String" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fblog.keystroke.ch%2F2008%2F06%2F20%2Fsha1-hash-from-a-string%2F&amp;t=SHA1+Hash+from+a+String" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://blog.keystroke.ch/2008/06/20/sha1-hash-from-a-string/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft Windows 2008 Server VHD</title>
		<link>http://blog.keystroke.ch/2008/06/10/microsoft-windows-2008-server-vhd/</link>
		<comments>http://blog.keystroke.ch/2008/06/10/microsoft-windows-2008-server-vhd/#comments</comments>
		<pubDate>Tue, 10 Jun 2008 05:24:53 +0000</pubDate>
		<dc:creator>ivolooser</dc:creator>
				<category><![CDATA[Server]]></category>
		<category><![CDATA[VHD]]></category>
		<category><![CDATA[Windows 2008 Server]]></category>

		<guid isPermaLink="false">http://blog.keystroke.ch/2008/06/10/microsoft-windows-2008-server-vhd/</guid>
		<description><![CDATA[Microsoft has a Windows 2008 Server Evaluation Virtual Hard Drive Image for Download. Take a look here. Bookmark It]]></description>
			<content:encoded><![CDATA[<p>Microsoft has a Windows 2008 Server Evaluation Virtual Hard Drive Image for Download.</p>

<p>Take a look <a target="_blank" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=961db8ce-8473-47c2-92eb-b822ec5af0c9&amp;DisplayLang=en" title="Microsoft Windows 2008 Server VHD">here</a>.</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.keystroke.ch%2F2008%2F06%2F10%2Fmicrosoft-windows-2008-server-vhd%2F&amp;title=Microsoft+Windows+2008+Server+VHD" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fblog.keystroke.ch%2F2008%2F06%2F10%2Fmicrosoft-windows-2008-server-vhd%2F&amp;title=Microsoft+Windows+2008+Server+VHD" rel="nofollow" title="Add to&nbsp;DotNetKicks"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Add to&nbsp;DotNetKicks" alt="Add to&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fblog.keystroke.ch%2F2008%2F06%2F10%2Fmicrosoft-windows-2008-server-vhd%2F" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http%3A%2F%2Fblog.keystroke.ch%2F2008%2F06%2F10%2Fmicrosoft-windows-2008-server-vhd%2F&amp;T=Microsoft+Windows+2008+Server+VHD" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fblog.keystroke.ch%2F2008%2F06%2F10%2Fmicrosoft-windows-2008-server-vhd%2F&amp;t=Microsoft+Windows+2008+Server+VHD" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://blog.keystroke.ch/2008/06/10/microsoft-windows-2008-server-vhd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cumulative update package 6 for SQL Server 2005 Service Pack 2</title>
		<link>http://blog.keystroke.ch/2008/03/06/cumulative-update-package-6-for-sql-server-2005-service-pack-2/</link>
		<comments>http://blog.keystroke.ch/2008/03/06/cumulative-update-package-6-for-sql-server-2005-service-pack-2/#comments</comments>
		<pubDate>Thu, 06 Mar 2008 07:37:16 +0000</pubDate>
		<dc:creator>ivolooser</dc:creator>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[MSSQL]]></category>

		<guid isPermaLink="false">http://blog.keystroke.ch/2008/03/06/cumulative-update-package-6-for-sql-server-2005-service-pack-2/</guid>
		<description><![CDATA[Cumulative update package 6 for SQL Server 2005 Service Pack 2 is avaible here. Bookmark It]]></description>
			<content:encoded><![CDATA[<p>Cumulative update package 6 for SQL Server 2005 Service Pack 2 is avaible <a target="_blank" href="http://support.microsoft.com/kb/946608/en-us" title="Cumulative update package 6 for SQL Server 2005 Service Pack 2">here</a>.</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.keystroke.ch%2F2008%2F03%2F06%2Fcumulative-update-package-6-for-sql-server-2005-service-pack-2%2F&amp;title=Cumulative+update+package+6+for+SQL+Server+2005+Service+Pack+2" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fblog.keystroke.ch%2F2008%2F03%2F06%2Fcumulative-update-package-6-for-sql-server-2005-service-pack-2%2F&amp;title=Cumulative+update+package+6+for+SQL+Server+2005+Service+Pack+2" rel="nofollow" title="Add to&nbsp;DotNetKicks"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Add to&nbsp;DotNetKicks" alt="Add to&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fblog.keystroke.ch%2F2008%2F03%2F06%2Fcumulative-update-package-6-for-sql-server-2005-service-pack-2%2F" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http%3A%2F%2Fblog.keystroke.ch%2F2008%2F03%2F06%2Fcumulative-update-package-6-for-sql-server-2005-service-pack-2%2F&amp;T=Cumulative+update+package+6+for+SQL+Server+2005+Service+Pack+2" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fblog.keystroke.ch%2F2008%2F03%2F06%2Fcumulative-update-package-6-for-sql-server-2005-service-pack-2%2F&amp;t=Cumulative+update+package+6+for+SQL+Server+2005+Service+Pack+2" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://blog.keystroke.ch/2008/03/06/cumulative-update-package-6-for-sql-server-2005-service-pack-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQLH2 Query</title>
		<link>http://blog.keystroke.ch/2008/02/06/sqlh2-query/</link>
		<comments>http://blog.keystroke.ch/2008/02/06/sqlh2-query/#comments</comments>
		<pubDate>Wed, 06 Feb 2008 06:00:00 +0000</pubDate>
		<dc:creator>ivolooser</dc:creator>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[MSSQL]]></category>
		<category><![CDATA[SQLH2]]></category>

		<guid isPermaLink="false">http://blog.keystroke.ch/2008/02/06/sqlh2-query/</guid>
		<description><![CDATA[We&#8217;r using SQLH2 from Microsoft to bring sql server related&#160;information together on one datastore. Its not a perfect solution when 64-bit is in use, because sqlh2 cannot gather informations from SQL Server x64. In our case its ok to exclude 64-bit servers. Mostly the Reports are enough declarative to get an overview about&#160;a single database [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;r using <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=eedd10d6-75f7-4763-86de-d2347b8b5f89" target="_blank">SQLH2</a> from Microsoft to bring sql server related&nbsp;information together on one datastore. Its not a perfect solution when 64-bit is in use, because sqlh2 cannot gather informations from SQL Server x64. In our case its ok to exclude 64-bit servers.</p>

<p>Mostly the Reports are enough declarative to get an overview about&nbsp;a single database growth or changed instance settings. But&nbsp;i&#8217;m interessted to find databases where are not backuped since xx days or look at top 10 databases in our environment. </p>

<p>This join is&nbsp;a nice base to get Database information enterprise wide:</p>


<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #66cc66;">*</span> <span style="color: #993333; font-weight: bold;">FROM</span>
mgr_server <span style="color: #993333; font-weight: bold;">INNER</span> <span style="color: #993333; font-weight: bold;">JOIN</span> mgr_instance
<span style="color: #993333; font-weight: bold;">ON</span> mgr_server<span style="color: #66cc66;">.</span>srv_id <span style="color: #66cc66;">=</span> mgr_instance<span style="color: #66cc66;">.</span>srv_id
<span style="color: #993333; font-weight: bold;">INNER</span> <span style="color: #993333; font-weight: bold;">JOIN</span> c_database
<span style="color: #993333; font-weight: bold;">ON</span> mgr_instance<span style="color: #66cc66;">.</span>srv_id <span style="color: #66cc66;">=</span> c_database<span style="color: #66cc66;">.</span>srv_id
<span style="color: #993333; font-weight: bold;">AND</span> mgr_instance<span style="color: #66cc66;">.</span>inst_id <span style="color: #66cc66;">=</span> c_database<span style="color: #66cc66;">.</span>inst_id</pre></div></div>

<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.keystroke.ch%2F2008%2F02%2F06%2Fsqlh2-query%2F&amp;title=SQLH2+Query" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fblog.keystroke.ch%2F2008%2F02%2F06%2Fsqlh2-query%2F&amp;title=SQLH2+Query" rel="nofollow" title="Add to&nbsp;DotNetKicks"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Add to&nbsp;DotNetKicks" alt="Add to&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fblog.keystroke.ch%2F2008%2F02%2F06%2Fsqlh2-query%2F" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http%3A%2F%2Fblog.keystroke.ch%2F2008%2F02%2F06%2Fsqlh2-query%2F&amp;T=SQLH2+Query" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fblog.keystroke.ch%2F2008%2F02%2F06%2Fsqlh2-query%2F&amp;t=SQLH2+Query" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://blog.keystroke.ch/2008/02/06/sqlh2-query/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Customer Advisory Team Website</title>
		<link>http://blog.keystroke.ch/2008/02/05/customer-advisory-team-website/</link>
		<comments>http://blog.keystroke.ch/2008/02/05/customer-advisory-team-website/#comments</comments>
		<pubDate>Tue, 05 Feb 2008 06:58:58 +0000</pubDate>
		<dc:creator>ivolooser</dc:creator>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[MSSQL]]></category>
		<category><![CDATA[Resource]]></category>

		<guid isPermaLink="false">http://blog.keystroke.ch/2008/02/05/customer-advisory-team-website/</guid>
		<description><![CDATA[The Title says: &#8220;Resources for complex, enterprise SQL Server Implementations&#8221;. And its exactly what it says, a nice Page about SQL Specific Resources like Technical Notes, Whitepapers etc. SQL Customer Advisory Team Website Bookmark It]]></description>
			<content:encoded><![CDATA[<p>The Title says: &#8220;Resources for complex, enterprise SQL Server Implementations&#8221;. And its exactly what it says, a nice Page about SQL Specific Resources like Technical Notes, Whitepapers etc.</p>

<p><a target="_blank" href="http://sqlcat.com/">SQL Customer Advisory Team Website</a></p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.keystroke.ch%2F2008%2F02%2F05%2Fcustomer-advisory-team-website%2F&amp;title=Customer+Advisory+Team+Website" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fblog.keystroke.ch%2F2008%2F02%2F05%2Fcustomer-advisory-team-website%2F&amp;title=Customer+Advisory+Team+Website" rel="nofollow" title="Add to&nbsp;DotNetKicks"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Add to&nbsp;DotNetKicks" alt="Add to&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fblog.keystroke.ch%2F2008%2F02%2F05%2Fcustomer-advisory-team-website%2F" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http%3A%2F%2Fblog.keystroke.ch%2F2008%2F02%2F05%2Fcustomer-advisory-team-website%2F&amp;T=Customer+Advisory+Team+Website" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fblog.keystroke.ch%2F2008%2F02%2F05%2Fcustomer-advisory-team-website%2F&amp;t=Customer+Advisory+Team+Website" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://blog.keystroke.ch/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://blog.keystroke.ch/2008/02/05/customer-advisory-team-website/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

