<?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>Michael S. Clark &#187; Computing</title>
	<atom:link href="http://www.ne0ge0.com/tags/computing/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ne0ge0.com</link>
	<description>When I talk, the world ignores me...</description>
	<lastBuildDate>Mon, 12 Dec 2011 15:44:39 +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>Fibre&#8217;s A-comin&#8217;!</title>
		<link>http://www.ne0ge0.com/2011/12/12/fibres-a-comin/</link>
		<comments>http://www.ne0ge0.com/2011/12/12/fibres-a-comin/#comments</comments>
		<pubDate>Mon, 12 Dec 2011 15:44:39 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Interests]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.ne0ge0.com/?p=605</guid>
		<description><![CDATA[Further to the original rollout of FTTN, Arbroath is on the list of exchanges to be upgraded in 2012. w00t! [Via: BT Plc.]]]></description>
			<content:encoded><![CDATA[<p>Further to the original rollout of <a title="FTTN" href="http://en.wikipedia.org/wiki/FTTC#Fiber_to_the_node">FTTN</a>, Arbroath is on the list of exchanges to be upgraded in 2012.</p>
<p>w00t!</p>
<p>[<em>Via: <a title="BT Plc." href="http://www.btplc.com/News/Articles/Showarticle.cfm?ArticleID=5D490029-9378-46B1-922D-94A8F8F29AA9">BT Plc.</a></em>]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ne0ge0.com/2011/12/12/fibres-a-comin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Find Text In Microsoft SQL Server Stored Procedures</title>
		<link>http://www.ne0ge0.com/2011/07/07/find-text-in-microsoft-sql-server-stored-procedures/</link>
		<comments>http://www.ne0ge0.com/2011/07/07/find-text-in-microsoft-sql-server-stored-procedures/#comments</comments>
		<pubDate>Thu, 07 Jul 2011 09:02:09 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://www.ne0ge0.com/?p=534</guid>
		<description><![CDATA[I recently had to perform a change on any stored procedures that contained a certain piece of text. Not knowing how to search for text across a database, I googled it and found the following small piece of useful code: [Via: ASP FAQ]]]></description>
			<content:encoded><![CDATA[<p>I recently had to perform a change on any stored procedures that contained a certain piece of text. Not knowing how to search for text across a database, I googled it and found the following small piece of useful code:</p>
<pre class="brush: sql; title: ; notranslate">
SELECT [ROUTINE_NAME], [ROUTINE_DEFINITION]
FROM [INFORMATION_SCHEMA].[ROUTINES]
WHERE [ROUTINE_DEFINITION] LIKE '%&amp;lt;insert_text_here&amp;gt;%'
AND [ROUTINE_TYPE] = 'PROCEDURE'
</pre>
<p>[<em>Via: <a title="ASP FAQ" href="http://databases.aspfaq.com/database/how-do-i-find-a-stored-procedure-containing-text.html">ASP FAQ</a></em>]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ne0ge0.com/2011/07/07/find-text-in-microsoft-sql-server-stored-procedures/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>DataGridView Flickering When Changing Background Colour</title>
		<link>http://www.ne0ge0.com/2010/08/04/datagridview-flickering-when-changing-background-colour/</link>
		<comments>http://www.ne0ge0.com/2010/08/04/datagridview-flickering-when-changing-background-colour/#comments</comments>
		<pubDate>Wed, 04 Aug 2010 08:05:50 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Interests]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://www.ne0ge0.com/?p=511</guid>
		<description><![CDATA[Since implementing crossfading of tracks in Karaokidex, I&#8217;ve indicated the crossfading by gradually fading out the background colour of the first track&#8217;s row in the playlist DataGridView and fading in the background colour of the second track&#8217;s row. This caused a really annoying flickering. The problem is the DataGridView is not double-buffered by default, nor [...]]]></description>
			<content:encoded><![CDATA[<p>Since implementing crossfading of tracks in Karaokidex, I&#8217;ve indicated the crossfading by gradually fading out the background colour of the first track&#8217;s row in the playlist DataGridView and fading in the background colour of the second track&#8217;s row. This caused a really annoying flickering.</p>
<p>The problem is the DataGridView is not double-buffered by default, nor is there any visible property on the DataGridView object to set it as double-buffered.</p>
<p>Google to the rescue!</p>
<p>Thanks to the guys at StackOverflow.com for this elegant solution that uses reflection rather than defining a custom class.</p>
<pre class="brush: csharp; title: ; notranslate">
typeof(DataGridView).InvokeMember(
   &quot;DoubleBuffered&quot;,
   BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.SetProperty,
   null,
   myDataGridViewObject,
   new object[] { true });
</pre>
<p>[<em>Via: <a href="http://stackoverflow.com/questions/118528/horrible-redraw-performance-of-the-datagridview-on-one-of-my-two-screens">stackoverflow</a></em>]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ne0ge0.com/2010/08/04/datagridview-flickering-when-changing-background-colour/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Launching Single-Instance ClickOnce Apps From File Association</title>
		<link>http://www.ne0ge0.com/2010/08/02/launching-single-instance-clickonce-apps-from-file-association/</link>
		<comments>http://www.ne0ge0.com/2010/08/02/launching-single-instance-clickonce-apps-from-file-association/#comments</comments>
		<pubDate>Mon, 02 Aug 2010 08:30:44 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Interests]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://www.ne0ge0.com/?p=500</guid>
		<description><![CDATA[Since Service Pack 1 of Visual Studio 2008, setting file associations has never been easier. The publish options dialog has four pages; once of which is the &#8220;File Associations&#8221; page. After one or more entries has been added, and the app published, the ClickOnce app will now be launched whenever an associated file is opened [...]]]></description>
			<content:encoded><![CDATA[<p>Since Service Pack 1 of Visual Studio 2008, setting file associations has never been easier. The publish options dialog has four pages; once of which is the &#8220;File Associations&#8221; page. After one or more entries has been added, and the app published, the ClickOnce app will now be launched whenever an associated file is opened from explorer.</p>
<p>This is fine, unless you only want one instance of your app to be running at any one time. Each time an associated file is opened, a new instance of the ClickOnce app will be launched. If your single-instance app is open and you try to open an associated file, the reference to the file will be lost when the new instance detects that the original instance is running and terminates. Grrr.</p>
<p>However, you can get round this. After detecting that there is another instance of your app running, simply pass the file reference to the original instance before closing.</p>
<p>Note the callback is made using an IpcChannel rather than a TcpChannel. If a TcpChannel is specified, Vista and Windows 7 will require permission from the user to allow communication through the firewall.</p>
<p><a href="http://www.ne0ge0.com/wp-content/uploads/allow-program-windows-7-firewall-7-468x334.png"><img src="http://www.ne0ge0.com/wp-content/uploads/allow-program-windows-7-firewall-7-468x334-300x214.png" alt="" title="Firewall" width="300" height="214" class="aligncenter size-medium wp-image-506" /></a></p>
<p>Here is the code:</p>
<pre class="brush: csharp; title: ; notranslate">
            // Single instance checked
            bool IsFirstInstance;
            Mutex theMutex =
                new Mutex(false, &quot;Local\\&quot; + Application.ProductName, out IsFirstInstance);
            string[] theActivationData =
                AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData;

            if (IsFirstInstance)
            {
                IpcChannel theChannel =
                    new IpcChannel(Application.ProductName);

                try
                {
                    ChannelServices.RegisterChannel(theChannel, false);
                    RemotingServices.Marshal(this._MainView, &quot;MainView&quot;);

                    this.MainView_Show();

                    this.ConsumeLaunchParameters(theActivationData);

                    Application.Run(this._AppContext);
                }
                catch (SocketException) { }
                finally
                {
                    ChannelServices.UnregisterChannel(theChannel);
                }
            }
            else
            {
                if (null != theActivationData &amp;&amp;
                    theActivationData.Length &gt; 0)
                {
                    try
                    {
                        MainView theOriginalMainView =
                            (MainView)RemotingServices.Connect(
                                typeof(MainView),
                                &quot;ipc://&quot; + Application.ProductName + &quot;/MainView&quot;);

                        theOriginalMainView.ConsumeArguments(theActivationData);
                    }
                    catch (SocketException) { }
                }
            }

            theMutex.Close();
            Application.Exit();
</pre>
<p>Since my app uses a centralised controller system, I had to add the following code to the MainView form to pass the arguments back to the controller:</p>
<pre class="brush: csharp; title: ; notranslate">
        public void ConsumeArguments(
            string[] theArguments)
        {
            // Note that it is not allowed for non-UI thread to access
            // controls on the form, instead, we should use the Invoke method of the form
            // to execute a delegate on the UI thread that own's the control's underlying
            // windows handle.
            if (this.InvokeRequired)
            {
                this.Invoke(
                    new MethodCallback(ConsumeArguments),
                    new object[]
                        { theArguments });

                return;
            }
            else
            {
                if (null != this.ArgumentsConsumed)
                {
                    this.ArgumentsConsumed(theArguments);
                }
            }
        }

        public event MethodCallback ArgumentsConsumed;

        public delegate void MethodCallback(string[] args);
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.ne0ge0.com/2010/08/02/launching-single-instance-clickonce-apps-from-file-association/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Removing The Need For UACLauncher</title>
		<link>http://www.ne0ge0.com/2010/08/02/removing-the-need-for-uaclauncher/</link>
		<comments>http://www.ne0ge0.com/2010/08/02/removing-the-need-for-uaclauncher/#comments</comments>
		<pubDate>Mon, 02 Aug 2010 08:09:55 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Interests]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://www.ne0ge0.com/?p=496</guid>
		<description><![CDATA[Up &#8217;til now, when I&#8217;ve been developing and ClickOnce application, I&#8217;ve had to include a UACLauncher as a default option to support any user that is not the administrator on their own machine. The console app has elevated privileges that are passed on to the re-launched ClickOnce app. If I didn&#8217;t include this, the application [...]]]></description>
			<content:encoded><![CDATA[<p>Up &#8217;til now, when I&#8217;ve been developing and ClickOnce application, I&#8217;ve had to include a UACLauncher as a default option to support any user that is not the administrator on their own machine.</p>
<p><img class="aligncenter size-full wp-image-497" title="UACLauncher" src="http://www.ne0ge0.com/wp-content/uploads/UACLauncher.png" alt="UACLauncher" width="249" height="444" /></p>
<p>The console app has elevated privileges that are passed on to the re-launched ClickOnce app.</p>
<p>If I didn&#8217;t include this, the application would fail with (what I assumed was the first of many permissions errors) a registry access error. I decided to remove the UACLauncher and debug each error as it occurred. All my ClickOnce applications that require registry access to store settings store them in the LocalMachine hive. After googling the registry permission error, the main suggestion that came back was to move the settings to the CurrentUser hive.</p>
<p>Fair enough, but upon publishing the new version, there were no more errors. It seems that the only thing the app was doing that required administrator-level access was to attempt to write to the LocalMachine hive of the registry.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ne0ge0.com/2010/08/02/removing-the-need-for-uaclauncher/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Full Screen Weather</title>
		<link>http://www.ne0ge0.com/2010/02/15/full-screen-weather/</link>
		<comments>http://www.ne0ge0.com/2010/02/15/full-screen-weather/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 09:51:38 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Gadgets & Gizmos]]></category>
		<category><![CDATA[Interests]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.ne0ge0.com/?p=429</guid>
		<description><![CDATA[We&#8217;ve always liked Weather Underground for its no-nonsense, real-time weather info. Today they&#8217;ve released a new service called Full Screen Weather that mashes up Google Maps with weather data for nothing but maps and up-to-the-minute weather info. [Via: Lifehacker]]]></description>
			<content:encoded><![CDATA[<blockquote><p>We&#8217;ve always liked <a href="http://www.wunderground.com/">Weather Underground</a> for its no-nonsense, real-time weather info. Today they&#8217;ve released a new service called <a href="http://fullscreenweather.com/">Full Screen Weather</a> that mashes up Google Maps with weather data for nothing but maps and up-to-the-minute weather info.</p></blockquote>
<p>[<em>Via: <a href="http://lifehacker.com/5470766/full-screen-weather-is-a-giant-no+frills-weather-map?skyline=true&#038;s=i">Lifehacker</a></em>]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ne0ge0.com/2010/02/15/full-screen-weather/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lego Cubestormer Robot Solves Rubik&#039;s Cube in Sub-12 Second Whirlwind</title>
		<link>http://www.ne0ge0.com/2010/02/15/lego-cubestormer-robot-solves-rubiks-cube-in-sub-12-second-whirlwind/</link>
		<comments>http://www.ne0ge0.com/2010/02/15/lego-cubestormer-robot-solves-rubiks-cube-in-sub-12-second-whirlwind/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 09:19:00 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Gadgets & Gizmos]]></category>
		<category><![CDATA[Interests]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.ne0ge0.com/?p=427</guid>
		<description><![CDATA[Robots born with the sole purpose of solving the Rubik&#8217;s Cube are nothing new, but we&#8217;re pretty sure we haven&#8217;t seen one crack the code in under a dozen seconds before. [Via: engadget]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Robots born with the sole purpose of solving the Rubik&#8217;s Cube are nothing new, but we&#8217;re pretty sure we haven&#8217;t seen one crack the code in under a dozen seconds before.</p></blockquote>
<p>[<em>Via: <a href="http://www.engadget.com/2010/02/15/lego-cubestormer-robot-solves-rubiks-cube-in-sub-12-second-whir/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+weblogsinc%2Fengadget+%28Engadget%29&amp;utm_content=Google+Reader">engadget</a></em>]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ne0ge0.com/2010/02/15/lego-cubestormer-robot-solves-rubiks-cube-in-sub-12-second-whirlwind/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aero Snap with Multiple Monitors</title>
		<link>http://www.ne0ge0.com/2010/01/27/aero-snap-with-multiple-monitors/</link>
		<comments>http://www.ne0ge0.com/2010/01/27/aero-snap-with-multiple-monitors/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 12:37:06 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Interests]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.ne0ge0.com/?p=409</guid>
		<description><![CDATA[I tried to use the window Aero Snap feature on Windows 7 today that allows you to snap windows to the left or right of the screen by holding the title bar and dragging to the left or right edges. This work well for systems with one monitor, but with dual monitors, the desktop is [...]]]></description>
			<content:encoded><![CDATA[<p>I tried to use the window Aero Snap feature on Windows 7 today that allows you to snap windows to the left or right of the screen by holding the title bar and dragging to the left or right edges. This work well for systems with one monitor, but with dual monitors, the desktop is treated as being the size of the entire multi-monitor area and therefore the right edge is on the right hand side of the second monitor.</p>
<p>What if you want to snap a window to the right edge of the primary monitor, or the left edge of the secondary monitor for that matter?</p>
<p>Well, thankfully, Aero Snap can also be utilised via the keyboard:</p>
<ul>
<li>Holding the <strong>Windows key</strong> down and tapping the<strong> left cursor</strong> key will cycle the current window from monitor edge to monitor edge anti-clockwise.</li>
</ul>
<ul>
<li>Holding the <strong>Windows key</strong> down and tapping the <strong>right cursor</strong> key will  cycle the current window from monitor edge to monitor edge clockwise.</li>
<li>Holding the <strong>Windows key</strong> down and tapping the <strong>up cursor</strong> key will maximise the current window on the monitor which it is displayed.</li>
<li>Holding the <strong>Windows key</strong> down and tapping the <strong>down cursor</strong> key  will restore the current window if it is maximised and minimise it if it is restored.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ne0ge0.com/2010/01/27/aero-snap-with-multiple-monitors/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Customize the Windows 7 “Send To” Menu Option</title>
		<link>http://www.ne0ge0.com/2010/01/27/customize-the-windows-7-send-to-menu-option/</link>
		<comments>http://www.ne0ge0.com/2010/01/27/customize-the-windows-7-send-to-menu-option/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 10:19:10 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Interests]]></category>

		<guid isPermaLink="false">http://www.ne0ge0.com/?p=402</guid>
		<description><![CDATA[Like prior versions of Windows, this is one of your options when right-clicking an item; it does what it says: it sends a copy of the object to the option you choose. The default choices with a normal right-click are the Desktop, a Zip folder, a fax or mail recipient, or any additional drives connected [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Like prior versions of Windows, this is one of your options when  right-clicking an item; it does what it says: it sends a copy of the  object to the option you choose. The default choices with a normal  right-click are the Desktop, a Zip folder, a fax or mail recipient, or  any additional drives connected to your PC.</p>
<p>The How-To Geek offers an easy way to customize the default choices.  Simply type “<strong>shell:sendto</strong>” (without the quotes) in the location bar of a  Windows Explorer window. You’ll see the default choices here. Now you  can pull any of the defaults out or you can add locations you want in  the standard list with a simple drag-and-drop.</p></blockquote>
<p>The couple I usually add are <a title="Notepad++" href="http://notepad-plus.sourceforge.net/uk/site.htm">Notepad++</a> and <a title="BareTail" href="http://www.baremetalsoft.com/baretail/index.php">BareTail</a> for log file monitoring.</p>
<p>[<em>Via: <a href="http://jkontherun.com/2009/02/03/customize-the-windows-7-send-to-menu-option/">jkOnTheRun</a></em>]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ne0ge0.com/2010/01/27/customize-the-windows-7-send-to-menu-option/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>In Communist China, Google Searches You!</title>
		<link>http://www.ne0ge0.com/2010/01/15/in-communist-china-google-searches-you/</link>
		<comments>http://www.ne0ge0.com/2010/01/15/in-communist-china-google-searches-you/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 16:20:11 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Interests]]></category>

		<guid isPermaLink="false">http://www.ne0ge0.com/?p=399</guid>
		<description><![CDATA[One of the cooler stories out (of) the whole Google-China debacle is that Google hacked the hackers. [Via: Gizmodo]]]></description>
			<content:encoded><![CDATA[<blockquote><p>One of the cooler stories out (of) the whole <a href="http://gizmodo.com/5446712/google-refuses-to-continue-censoring-results-in-china">Google-China debacle</a> is that <a href="http://www.nytimes.com/2010/01/15/world/asia/15diplo.html?ref=technology">Google hacked the hackers</a>.</p></blockquote>
<p>[<em>Via: <a href="http://">Gizmodo</a></em>]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ne0ge0.com/2010/01/15/in-communist-china-google-searches-you/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

