<?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>Shadow Productions &#187; Programming</title>
	<atom:link href="http://www.shadowsplace.net/category/software/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.shadowsplace.net</link>
	<description>Ideas. News. Projects. Development.</description>
	<lastBuildDate>Thu, 06 Oct 2011 01:33:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Keyboard and Mouse Cleaning</title>
		<link>http://www.shadowsplace.net/709/windows/keyboard-and-mouse-cleaning/</link>
		<comments>http://www.shadowsplace.net/709/windows/keyboard-and-mouse-cleaning/#comments</comments>
		<pubDate>Thu, 15 Apr 2010 16:40:27 +0000</pubDate>
		<dc:creator>Shadow</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.shadowsplace.net/?p=709</guid>
		<description><![CDATA[So you&#8217;re wondering what on earth Shadow Productions could do to help with your cleaning routine? Well, not much really &#8212; however I can at least appreciate the difficulty of cleaning a keyboard and mouse, especially that of a gamer&#8230; The odd situation is, that I tend to clean my keyboard while having the computer on &#8212; [...]]]></description>
			<content:encoded><![CDATA[<p>So you&#8217;re wondering what on earth Shadow Productions could do to help with your cleaning routine? Well, not much really &#8212; however I can at least appreciate the difficulty of cleaning a keyboard and mouse, especially that of a gamer&#8230;</p>
<p>The odd situation is, that I tend to clean my keyboard while having the computer on &#8212; while voice chatting or waiting for a new game to install, I subconsciously clean the keyboard, but also tend to write an essay of jargon at the same time from accidental key presses.</p>
<p>This application, &#8220;Keyboard and Mouse Disabler&#8221; has only one known purpose so far, and that is to make cleaning your keyboard and mouse peripherals easy. With a few clicks, your mouse and keyboard will be temporarily disabled, preventing accidental key presses and mouse clicks &#8212; then it&#8217;s cleaning time <img src='http://www.shadowsplace.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>There is no install required, it runs straight from the download. While this may  seem to be a rather trivial application to release, I thought why not. If someone finds a use for it &#8212; great <img src='http://www.shadowsplace.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<blockquote style="text-align: center; vertical-align: middle;"><p><a href="http://files.shadowsplace.net/kmdisabler/KeyboardAndMouseDisabler.zip"><strong>Download Keyboard and Mouse Disabler!</strong></a></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.shadowsplace.net/709/windows/keyboard-and-mouse-cleaning/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Logging (My.Application.Log) in VB.NET</title>
		<link>http://www.shadowsplace.net/667/programming/logging-my-application-log-in-vb-net/</link>
		<comments>http://www.shadowsplace.net/667/programming/logging-my-application-log-in-vb-net/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 04:14:21 +0000</pubDate>
		<dc:creator>Shadow</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.shadowsplace.net/?p=667</guid>
		<description><![CDATA[Logging during an application refers to the tracing of internal code actions and functions, user actions, as well as any errors or exceptions that may arise. As I have learnt over the years, at a certain stage of application development logging becomes critical. It is imperative during testing (especially with multiple, external testers) that they can [...]]]></description>
			<content:encoded><![CDATA[<div class='toc wptoc'>
<h2>Contents</h2>
<ol class='toc-odd level-1'>
	<li>
		<a href="#Log_Events">Log Events</a>
	</li>
	<li>
		<a href="#Writing_Events_to_the_Log">Writing Events to the Log</a>
	</li>
	<li>
		<a href="#Writing_Errors_to_the_Log">Writing Errors to the Log</a>
	</li>
	<li>
		<a href="#So_where_does_the_log_file_end_up">So where does the log file end up?</a>
	</li>
	<li>
		<a href="#Level_specific_Logging">Level specific Logging</a>
	</li>
	<li>
		<a href="#In_Conclusion">In Conclusion</a>
	</li>
</ol>
</ol>
</div>
Logging during an application refers to the tracing of internal code actions and functions, user actions, as well as any errors or exceptions that may arise.</p>
<p>As I have learnt over the years, at a certain stage of application development logging becomes critical. It is imperative during testing (especially with multiple, external testers) that they can report any problems or issues in the most efficient manner; this usually entails sending  a log file which the developer can use to locate and debug the bug.</p>
<p>VB.NET comes with its own &#8216;logging&#8217; sub-system integrated into the language. It allows the developer to place entries into the log file at specified points in the code. These entry points are usually placed at strategic points, such as in the catch statement of a Try&#8230; Catch or at the end of a long process to indicate completion.</p>
<p>The logging sub-system of VB.NET resides under the <strong>My.Application.Log</strong> namespace. Under this namespace are several functions and concepts, that I will detail below, which will let you start logging in your own applications.</p>
<span id="Log_Events"><h2>Log Events</h2></span>
<p>Several functions under this namespace allow you to write events to the log file. An &#8216;entry&#8217; essentially, is composed of a string <strong>Message</strong>, a <strong>Severity Level</strong> and an <strong>Event ID</strong>.</p>
<p>The <strong>Message</strong> is a string that the developer specifies to appear in the log file. It should generally detail a stage in the code (e.g. &#8220;Starting update&#8230;&#8221;).</p>
<p>The <strong>Severity Level</strong> is used to determine how &#8216;critical&#8217; the entry or exception is. This level is only used to help filter out critical events from the less critical ones. For example, an event of a failed update, &#8220;Update failed&#8221; should be classes at a error level, while an event such as &#8220;Starting update&#8221; should only be classed as an information level.</p>
<p><a href="http://www.shadowsplace.net/wp-content/uploads/2010/02/severitylevels.png" rel="shadowbox[sbpost-667];player=img;" title="severitylevels"><img class="aligncenter size-full wp-image-668" title="severitylevels" src="http://www.shadowsplace.net/wp-content/uploads/2010/02/severitylevels.png" alt="" width="381" height="184" /></a></p>
<p>Other levels, such as a &#8216;critical&#8217;, are usually reserved for an error that causes the application to cease functioning.</p>
<p>The <strong>Event ID</strong> attribute is a way help index and identify the errors that may occur for correlation purposes. It is optional attribute when writing an event. It is usually reserved for error events as opposed to verbose events.</p>
<span id="Writing_Events_to_the_Log"><h2>Writing Events to the Log</h2></span>
<p>You can write events to the log by calling a function under the My.Application.Log namespace. The following code write an example event to the log;</p>

<div class="wp_syntax"><div class="code"><pre class="vbnet" style="font-family:monospace;">My.<span style="color: #0000FF;">Application</span>.<span style="color: #0600FF;">Log</span>.<span style="color: #0000FF;">WriteEntry</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;Starting to process function XYZ&quot;</span>, TraceEventType.<span style="color: #0000FF;">Verbose</span><span style="color: #000000;">&#41;</span></pre></div></div>

<p>As noted above, the Event ID attribute is optional; it may be considered in-effective to index verbose level messages; reserving the event ID&#8217;s for error and critical level events.</p>
<span id="Writing_Errors_to_the_Log"><h2>Writing Errors to the Log</h2></span>
<p>When writing Errors to the log a slightly different and specialized function may be used. The WriteError function will write details of an &#8216;exception&#8217; caught during a Try&#8230; Catch statement. It is invoked similar to the code example below;</p>

<div class="wp_syntax"><div class="code"><pre class="vbnet" style="font-family:monospace;"><span style="color: #0600FF;">Try</span>
    <span style="color: #FF8000;">Throw</span> <span style="color: #FF8000;">New</span> Exception<span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;A sample error exception&quot;</span><span style="color: #000000;">&#41;</span>
<span style="color: #0600FF;">Catch</span> ex <span style="color: #FF8000;">As</span> Exception
     My.<span style="color: #0000FF;">Application</span>.<span style="color: #0600FF;">Log</span>.<span style="color: #0000FF;">WriteException</span><span style="color: #000000;">&#40;</span>ex, TraceEventType.<span style="color: #FF8000;">Error</span>, <span style="color: #808080;">&quot;Additional information or details&quot;</span><span style="color: #000000;">&#41;</span>
<span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Try</span></pre></div></div>

<p>Once the error exception is raised within the Try block, the WriteException event will write the exception details (ex) to the log. The same severity level option can be applied, as well as some additional notes to make debugging easier.</p>
<span id="So_where_does_the_log_file_end_up"><h2>So where does the log file end up?</h2></span>
<p>When the application closes, and the log file has been flushed to disk the file can be retrieved for analysis. By default it is placed in the user&#8217;s Roaming profile under a subdirectory relevant to your application name. To save some time, you can find out the direct path, and for example, show it in a message box, while running the program by executing the following line of code;</p>

<div class="wp_syntax"><div class="code"><pre class="vbnet" style="font-family:monospace;"><span style="color: #0600FF;">MsgBox</span><span style="color: #000000;">&#40;</span>My.<span style="color: #0000FF;">Application</span>.<span style="color: #0600FF;">Log</span>.<span style="color: #0000FF;">DefaultFileLogWriter</span>.<span style="color: #0000FF;">FullLogFileName</span><span style="color: #000000;">&#41;</span></pre></div></div>

<span id="Level_specific_Logging"><h2>Level specific Logging</h2></span>
<p>As with any logging sub-system, some performance overhead (while extremely minimal) may be invoked. To help reduce this, it is possible to only log events that may be considered more relevant than others.</p>
<p>As discussed above the Severity Level can help rank events on a scale of severity, from Verbose to Critical. Similarly we can choose to only log events that we deem important on a release application, for example only events higher than the Informational level. We can choose programmatically as to which events should be included and which should not. The code below sets this level to log events only Information and above.</p>

<div class="wp_syntax"><div class="code"><pre class="vbnet" style="font-family:monospace;">My.<span style="color: #0000FF;">Application</span>.<span style="color: #0600FF;">Log</span>.<span style="color: #0000FF;">TraceSource</span>.<span style="color: #0600FF;">Switch</span>.<span style="color: #0000FF;">Level</span> <span style="color: #008000;">=</span> SourceLevels.<span style="color: #0600FF;">Information</span></pre></div></div>

<p>The hierarchy of severity levels can be determined using the table below (<a href="http://msdn.microsoft.com/en-us/library/ms172717.aspx">source</a>).</p>
<p>
<table id="wp-table-reloaded-id-1-no-1" class="wp-table-reloaded wp-table-reloaded-id-1">
<thead>
	<tr class="row-1 odd">
		<th class="column-1">SourceLevels Value</th><th class="column-2">Message severity required for output</th>
	</tr>
</thead>
<tbody class="row-hover">
	<tr class="row-2 even">
		<td class="column-1">Critical</td><td class="column-2">Critical</td>
	</tr>
	<tr class="row-3 odd">
		<td class="column-1">Error</td><td class="column-2">Critical or Error</td>
	</tr>
	<tr class="row-4 even">
		<td class="column-1">Warning</td><td class="column-2">Critical, Error, or Warning</td>
	</tr>
	<tr class="row-5 odd">
		<td class="column-1">Information</td><td class="column-2">Critical, Error, Warning, or Information</td>
	</tr>
	<tr class="row-6 even">
		<td class="column-1">Verbose</td><td class="column-2">Critical, Error, Warning, Information, or Verbose</td>
	</tr>
	<tr class="row-7 odd">
		<td class="column-1">ActivityTracing</td><td class="column-2">Start, Stop, Suspend, Resume, or Transfer</td>
	</tr>
	<tr class="row-8 even">
		<td class="column-1">All</td><td class="column-2">All messages are allowed.</td>
	</tr>
	<tr class="row-9 odd">
		<td class="column-1">Off</td><td class="column-2">All messages are blocked.</td>
	</tr>
</tbody>
</table>

<span id="In_Conclusion"><h2>In Conclusion</h2></span>
<p>Logging becomes essential in larger, more complex programs with several testers. Hopefully the outline of the logging system above will make it simple to implement basic logging capabilities into your own application.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shadowsplace.net/667/programming/logging-my-application-log-in-vb-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Skipping code during step-through debug Visual Basic, C# .NET</title>
		<link>http://www.shadowsplace.net/646/programming/skipping-code-during-step-through-debug-visual-basic-c-net/</link>
		<comments>http://www.shadowsplace.net/646/programming/skipping-code-during-step-through-debug-visual-basic-c-net/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 17:00:42 +0000</pubDate>
		<dc:creator>Shadow</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.shadowsplace.net/?p=646</guid>
		<description><![CDATA[When developing certain types of programs, different methods of debugging may be required in order to effectively and efficiently debug. For example, programs with a timer iterative functions with a small interval, programs intercepting Window (WndProc) messages, or even programs with multiple hooks to the keyboard or mouse. All these type of programs have something in common&#8230;. [...]]]></description>
			<content:encoded><![CDATA[<p>When developing certain types of programs, different methods of debugging may be required in order to effectively and efficiently debug.</p>
<p>For example, programs with a timer iterative functions with a small interval, programs intercepting Window (WndProc) messages, or even programs with multiple hooks to the keyboard or mouse. All these type of programs have something in common&#8230;. it&#8217;s a major pain in the backside to &#8216;step-through&#8217; (by default F10 in Visual Studio) without it jumping to areas non-related to the area of interest.</p>
<p style="text-align: center;"><a href="http://www.shadowsplace.net/wp-content/uploads/2010/02/WndProcBreakpoint.png" rel="shadowbox[sbpost-646];player=img;" title="WndProcBreakpoint"><img class="aligncenter size-full wp-image-658" title="WndProcBreakpoint" src="http://www.shadowsplace.net/wp-content/uploads/2010/02/WndProcBreakpoint.png" alt="" width="535" height="65" /></a></p>
<p>It&#8217;s not until recently that I discovered the <strong>DebuggerStepThrough</strong> attribute as a question answer on <a href="http://stackoverflow.com/questions/445276/c-attribute-to-skip-over-a-method-while-stepping-in-debug-mode">Stack Overflow</a>.</p>
<p>Essentially, the <strong>DebuggerStepThrough</strong> attribute belongs to the <strong>Systems.Diagnostics</strong> namespace, and can be placed before almost any block of code to indicate to the debugger that it should pass/skip the block in question.</p>
<p>Decleration of <strong>DebuggerStepThrough</strong> in C#;</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008000;">&#91;</span>DebuggerStepThrough<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#93;</span>
<span style="color: #0600FF; font-weight: bold;">private</span> <span style="color: #6666cc; font-weight: bold;">void</span> AnExampleSub<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
    <span style="color: #008080; font-style: italic;">// Annoying iterative code</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

<p>Decleration of <strong>DebuggerStepThrough</strong> in VB.NET;</p>

<div class="wp_syntax"><div class="code"><pre class="vbnet" style="font-family:monospace;"><span style="color: #000000;">&#91;</span>DebuggerStepThrough<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#93;</span> _
<span style="color: #FF8000;">Private</span> <span style="color: #0600FF;">Sub</span> AnExampleSub<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
      <span style="color: #008080; font-style: italic;">' Annoying iterative code</span>
<span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Sub</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span></pre></div></div>

<p>During debugging step through, the debugger will not visit anywhere within the subs in the examples above.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shadowsplace.net/646/programming/skipping-code-during-step-through-debug-visual-basic-c-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programmer Comics</title>
		<link>http://www.shadowsplace.net/321/programming/programmer-comics/</link>
		<comments>http://www.shadowsplace.net/321/programming/programmer-comics/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 15:43:06 +0000</pubDate>
		<dc:creator>Shadow</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.shadowsplace.net/?p=321</guid>
		<description><![CDATA[One of my friends sent me a link to a &#8216;collection of good programmer web-comics&#8217;&#8230;. So I picked the best of the good Collection sourced from here. Thanks for the laughs]]></description>
			<content:encoded><![CDATA[<p>One of my friends sent me a link to a &#8216;collection of good programmer web-comics&#8217;&#8230;.<br />
So I picked the best of the good <img src='http://www.shadowsplace.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>
<a href='http://www.shadowsplace.net/wp-content/uploads/2009/06/zealous_autoconfig.png' rel='shadowbox[sbalbum-321];player=img;' title='Zealous Autoconfig' title="Zealous Autoconfig"><img width="150" height="150" src="http://www.shadowsplace.net/wp-content/uploads/2009/06/zealous_autoconfig-150x150.png" class="attachment-thumbnail" alt="Zealous Autoconfig" title="Zealous Autoconfig" /></a>
<a href='http://www.shadowsplace.net/wp-content/uploads/2009/06/goto.png' rel='shadowbox[sbalbum-321];player=img;' title='Goto' title="Goto"><img width="150" height="150" src="http://www.shadowsplace.net/wp-content/uploads/2009/06/goto-150x150.png" class="attachment-thumbnail" alt="Goto" title="Goto" /></a>
<a href='http://www.shadowsplace.net/wp-content/uploads/2009/06/im_an_idiot.png' rel='shadowbox[sbalbum-321];player=img;' title='I&#039;m an Idiot' title="I&#039;m an Idiot"><img width="150" height="150" src="http://www.shadowsplace.net/wp-content/uploads/2009/06/im_an_idiot-150x150.png" class="attachment-thumbnail" alt="I&#039;m an Idiot" title="I&#039;m an Idiot" /></a>
<a href='http://www.shadowsplace.net/wp-content/uploads/2009/06/exploits_of_a_mom.png' rel='shadowbox[sbalbum-321];player=img;' title='Exploits of a mom' title="Exploits of a mom"><img width="150" height="150" src="http://www.shadowsplace.net/wp-content/uploads/2009/06/exploits_of_a_mom-150x150.png" class="attachment-thumbnail" alt="Exploits of a mom" title="Exploits of a mom" /></a>
<a href='http://www.shadowsplace.net/wp-content/uploads/2009/06/pointers.png' rel='shadowbox[sbalbum-321];player=img;' title='Pointers' title="Pointers"><img width="150" height="150" src="http://www.shadowsplace.net/wp-content/uploads/2009/06/pointers-150x150.png" class="attachment-thumbnail" alt="Pointers" title="Pointers" /></a>
<a href='http://www.shadowsplace.net/wp-content/uploads/2009/06/python.png' rel='shadowbox[sbalbum-321];player=img;' title='Python' title="Python"><img width="150" height="150" src="http://www.shadowsplace.net/wp-content/uploads/2009/06/python-150x150.png" class="attachment-thumbnail" alt="Python" title="Python" /></a>
<a href='http://www.shadowsplace.net/wp-content/uploads/2009/06/sandwich.png' rel='shadowbox[sbalbum-321];player=img;' title='Sandwich' title="Sandwich"><img width="150" height="150" src="http://www.shadowsplace.net/wp-content/uploads/2009/06/sandwich-150x150.png" class="attachment-thumbnail" alt="Sandwich" title="Sandwich" /></a>
<a href='http://www.shadowsplace.net/wp-content/uploads/2009/06/regular_expressions.png' rel='shadowbox[sbalbum-321];player=img;' title='Regular Expressions' title="Regular Expressions"><img width="150" height="150" src="http://www.shadowsplace.net/wp-content/uploads/2009/06/regular_expressions-150x150.png" class="attachment-thumbnail" alt="Regular Expressions" title="Regular Expressions" /></a>
<a href='http://www.shadowsplace.net/wp-content/uploads/2009/06/success.png' rel='shadowbox[sbalbum-321];player=img;' title='Success' title="Success"><img width="150" height="150" src="http://www.shadowsplace.net/wp-content/uploads/2009/06/success-150x150.png" class="attachment-thumbnail" alt="Success" title="Success" /></a>
<a href='http://www.shadowsplace.net/wp-content/uploads/2009/06/listen_to_yourself.png' rel='shadowbox[sbalbum-321];player=img;' title='Listen to yourself' title="Listen to yourself"><img width="150" height="150" src="http://www.shadowsplace.net/wp-content/uploads/2009/06/listen_to_yourself-150x150.png" class="attachment-thumbnail" alt="Listen to yourself" title="Listen to yourself" /></a>
<a href='http://www.shadowsplace.net/wp-content/uploads/2009/06/real_programmers.png' rel='shadowbox[sbalbum-321];player=img;' title='Real Programmers' title="Real Programmers"><img width="150" height="150" src="http://www.shadowsplace.net/wp-content/uploads/2009/06/real_programmers-150x150.png" class="attachment-thumbnail" alt="Real Programmers" title="Real Programmers" /></a>
<a href='http://www.shadowsplace.net/wp-content/uploads/2009/06/internet_full.gif' rel='shadowbox[sbalbum-321];player=img;' title='Internet Full' title="Internet Full"><img width="150" height="150" src="http://www.shadowsplace.net/wp-content/uploads/2009/06/internet_full-150x150.gif" class="attachment-thumbnail" alt="Internet Full" title="Internet Full" /></a>
<a href='http://www.shadowsplace.net/wp-content/uploads/2009/06/duty_calls.png' rel='shadowbox[sbalbum-321];player=img;' title='Duty Calls' title="Duty Calls"><img width="150" height="150" src="http://www.shadowsplace.net/wp-content/uploads/2009/06/duty_calls-150x150.png" class="attachment-thumbnail" alt="Duty Calls" title="Duty Calls" /></a>
<a href='http://www.shadowsplace.net/wp-content/uploads/2009/06/measurement-of-code-quality.jpg' rel='shadowbox[sbalbum-321];player=img;' title='Measurement of code quality' title="Measurement of code quality"><img width="150" height="150" src="http://www.shadowsplace.net/wp-content/uploads/2009/06/measurement-of-code-quality-150x150.jpg" class="attachment-thumbnail" alt="Measurement of code quality" title="Measurement of code quality" /></a>
<a href='http://www.shadowsplace.net/wp-content/uploads/2009/06/bug-feature.jpg' rel='shadowbox[sbalbum-321];player=img;' title='Bug / Feature' title="Bug / Feature"><img width="150" height="150" src="http://www.shadowsplace.net/wp-content/uploads/2009/06/bug-feature-150x150.jpg" class="attachment-thumbnail" alt="Bug / Feature" title="Bug / Feature" /></a>
<a href='http://www.shadowsplace.net/wp-content/uploads/2009/06/flow_charts.png' rel='shadowbox[sbalbum-321];player=img;' title='Flow Charts' title="Flow Charts"><img width="150" height="150" src="http://www.shadowsplace.net/wp-content/uploads/2009/06/flow_charts-150x150.png" class="attachment-thumbnail" alt="Flow Charts" title="Flow Charts" /></a>
<a href='http://www.shadowsplace.net/wp-content/uploads/2009/06/compiling.png' rel='shadowbox[sbalbum-321];player=img;' title='Compiling' title="Compiling"><img width="150" height="150" src="http://www.shadowsplace.net/wp-content/uploads/2009/06/compiling-150x150.png" class="attachment-thumbnail" alt="Compiling" title="Compiling" /></a>
<a href='http://www.shadowsplace.net/wp-content/uploads/2009/06/lisp.jpg' rel='shadowbox[sbalbum-321];player=img;' title='Lisp' title="Lisp"><img width="150" height="150" src="http://www.shadowsplace.net/wp-content/uploads/2009/06/lisp-150x150.jpg" class="attachment-thumbnail" alt="Lisp" title="Lisp" /></a>
<a href='http://www.shadowsplace.net/wp-content/uploads/2009/06/token_ring.gif' rel='shadowbox[sbalbum-321];player=img;' title='Token Ring' title="Token Ring"><img width="150" height="150" src="http://www.shadowsplace.net/wp-content/uploads/2009/06/token_ring-150x150.gif" class="attachment-thumbnail" alt="Token Ring" title="Token Ring" /></a>
<a href='http://www.shadowsplace.net/wp-content/uploads/2009/06/e_to_the_pi_minus_pi.png' rel='shadowbox[sbalbum-321];player=img;' title='e to the pi Minus pi' title="e to the pi Minus pi"><img width="150" height="150" src="http://www.shadowsplace.net/wp-content/uploads/2009/06/e_to_the_pi_minus_pi-150x150.png" class="attachment-thumbnail" alt="e to the pi Minus pi" title="e to the pi Minus pi" /></a>
<a href='http://www.shadowsplace.net/wp-content/uploads/2009/06/dilbert-xp02.gif' rel='shadowbox[sbalbum-321];player=img;' title='Extreme Programming' title="Extreme Programming"><img width="150" height="150" src="http://www.shadowsplace.net/wp-content/uploads/2009/06/dilbert-xp02-150x150.gif" class="attachment-thumbnail" alt="Extreme Programming" title="Extreme Programming" /></a>
<a href='http://www.shadowsplace.net/wp-content/uploads/2009/06/dilbertsoftwarerequirements.jpg' rel='shadowbox[sbalbum-321];player=img;' title='Software Requirements' title="Software Requirements"><img width="150" height="150" src="http://www.shadowsplace.net/wp-content/uploads/2009/06/dilbertsoftwarerequirements-150x150.jpg" class="attachment-thumbnail" alt="Software Requirements" title="Software Requirements" /></a>
<a href='http://www.shadowsplace.net/wp-content/uploads/2009/06/phd113007s.gif' rel='shadowbox[sbalbum-321];player=img;' title='On victory' title="On victory"><img width="150" height="150" src="http://www.shadowsplace.net/wp-content/uploads/2009/06/phd113007s-150x150.gif" class="attachment-thumbnail" alt="On victory" title="On victory" /></a>
<a href='http://www.shadowsplace.net/wp-content/uploads/2009/06/phd101305s.gif' rel='shadowbox[sbalbum-321];player=img;' title='Overcautious' title="Overcautious"><img width="150" height="150" src="http://www.shadowsplace.net/wp-content/uploads/2009/06/phd101305s-150x150.gif" class="attachment-thumbnail" alt="Overcautious" title="Overcautious" /></a>
<a href='http://www.shadowsplace.net/wp-content/uploads/2009/06/12563stripgw6.gif' rel='shadowbox[sbalbum-321];player=img;' title='Bob the Cobol programmer' title="Bob the Cobol programmer"><img width="150" height="150" src="http://www.shadowsplace.net/wp-content/uploads/2009/06/12563stripgw6-150x150.gif" class="attachment-thumbnail" alt="Bob the Cobol programmer" title="Bob the Cobol programmer" /></a>
<br />
Collection sourced from <a href="http://slashweb.org/programming/25-best-programmer-webcomic-strips.html">here</a>. Thanks for the laughs <img src='http://www.shadowsplace.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.shadowsplace.net/321/programming/programmer-comics/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Custom Right Click (Context) Menu on the Taskbar for your Program</title>
		<link>http://www.shadowsplace.net/138/programming/custom-right-click-context-menu-on-the-taskbar-for-your-program/</link>
		<comments>http://www.shadowsplace.net/138/programming/custom-right-click-context-menu-on-the-taskbar-for-your-program/#comments</comments>
		<pubDate>Thu, 13 Nov 2008 05:46:57 +0000</pubDate>
		<dc:creator>Shadow</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.shadowsplace.net/?p=138</guid>
		<description><![CDATA[Sometimes it may be required in your program that you need to alter the right click menu, otherwise known as context menu. With this following code snippit, you can completley yet simply change the entire menu to your own liking&#8230; The theroy behind this code is that when a user right clicks on the program [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes it may be required in your program that you need to alter the right click menu, otherwise known as context menu. With this following code snippit, you can completley yet simply change the entire menu to your own liking&#8230;</p>
<p><a rel="lightbox" href="http://www.shadowsplace.net/wp-content/uploads/2008/11/sampletaskbarmenu.jpg" title="Sample Taskbar Menu"><img class="aligncenter size-medium wp-image-148" title="Sample Taskbar Menu" src="http://www.shadowsplace.net/wp-content/uploads/2008/11/sampletaskbarmenu-300x120.jpg" alt="" width="300" height="120" /></a><br />
The theroy behind this code is that when a user right clicks on the program item, a &#8216;message&#8217; is sent by the Windows UI to your program. Normally your program handles this message itself however we can &#8216;override&#8217; this, and place our own actions there instead.</p>

<div class="wp_syntax"><div class="code"><pre class="vbnet" style="font-family:monospace;"><span style="color: #FF8000;">Private</span> <span style="color: #0600FF;">Const</span> WMessageRightClickTaskbar <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Integer</span> <span style="color: #008000;">=</span> <span style="color: #008000;">&amp;</span>H313
&nbsp;
Protected <span style="color: #FF8000;">Overloads</span> <span style="color: #FF8000;">Overrides</span> <span style="color: #0600FF;">Sub</span> WndProc<span style="color: #000000;">&#40;</span><span style="color: #FF8000;">ByRef</span> m <span style="color: #FF8000;">As</span> Message<span style="color: #000000;">&#41;</span>
&nbsp;
        <span style="color: #008080; font-style: italic;">' Check if the intercepted 'message' is a 'right click on taskbar'</span>
        <span style="color: #0600FF;">If</span> m.<span style="color: #0000FF;">Msg</span> <span style="color: #008000;">=</span> WMessageRightClickTaskbar <span style="color: #FF8000;">Then</span>
&nbsp;
            <span style="color: #008080; font-style: italic;">' It is possible to change the action that occurs.</span>
            <span style="color: #008080; font-style: italic;">' In this case, a context menu is shown at the cursor position</span>
            ContextMenuStrip1.<span style="color: #0000FF;">Show</span><span style="color: #000000;">&#40;</span>Cursor.<span style="color: #0000FF;">Position</span><span style="color: #000000;">&#41;</span>
&nbsp;
            <span style="color: #008080; font-style: italic;">' If you change the above event to something other</span>
            <span style="color: #008080; font-style: italic;">' than a context menu, remove the 'Exit Sub' below</span>
            <span style="color: #008080; font-style: italic;">' to restore the context menu and make it appear also.</span>
            <span style="color: #0600FF;">Exit</span> <span style="color: #0600FF;">Sub</span>
&nbsp;
        <span style="color: #0600FF;">End</span> <span style="color: #0600FF;">If</span>
&nbsp;
        <span style="color: #008080; font-style: italic;">' If it isnt, then handle it normally</span>
        <span style="color: #FF8000;">MyBase</span>.<span style="color: #0000FF;">WndProc</span><span style="color: #000000;">&#40;</span>m<span style="color: #000000;">&#41;</span>
&nbsp;
<span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Sub</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF; font-weight: bold;">private</span> <span style="color: #0600FF; font-weight: bold;">const</span> <span style="color: #6666cc; font-weight: bold;">int</span> WMessageRightClickTaskbar <span style="color: #008000;">=</span> 0x313<span style="color: #008000;">;</span>
&nbsp;
<span style="color: #0600FF; font-weight: bold;">protected</span> <span style="color: #0600FF; font-weight: bold;">override</span> <span style="color: #6666cc; font-weight: bold;">void</span> WndProc<span style="color: #008000;">&#40;</span><span style="color: #0600FF; font-weight: bold;">ref</span> Message m<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
&nbsp;
    <span style="color: #008080; font-style: italic;">// Check if the intercepted 'message' is a 'right click on taskbar'</span>
    <span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>m<span style="color: #008000;">.</span><span style="color: #0000FF;">Msg</span> <span style="color: #008000;">==</span> WMessageRightClickTaskbar<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span>
&nbsp;
        <span style="color: #008080; font-style: italic;">// It is possible to change the action that occurs.</span>
        <span style="color: #008080; font-style: italic;">// In this case, a context menu is shown at the cursor position</span>
        ContextMenuStrip1<span style="color: #008000;">.</span><span style="color: #0000FF;">Show</span><span style="color: #008000;">&#40;</span>Cursor<span style="color: #008000;">.</span><span style="color: #0000FF;">Position</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
        <span style="color: #008080; font-style: italic;">// If you change the above event to something other</span>
        <span style="color: #008080; font-style: italic;">// than a context menu, remove the 'return' below</span>
        <span style="color: #008080; font-style: italic;">// to restore the context menu and make it appear also.</span>
        <span style="color: #0600FF; font-weight: bold;">return</span><span style="color: #008000;">;</span>
&nbsp;
       <span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #008080; font-style: italic;">// If it isnt, then handle it normally</span>
<span style="color: #0600FF; font-weight: bold;">base</span><span style="color: #008000;">.</span><span style="color: #0000FF;">WndProc</span><span style="color: #008000;">&#40;</span>m<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
<span style="color: #008000;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.shadowsplace.net/138/programming/custom-right-click-context-menu-on-the-taskbar-for-your-program/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Injection Comic</title>
		<link>http://www.shadowsplace.net/122/internet/sql-injection-comic/</link>
		<comments>http://www.shadowsplace.net/122/internet/sql-injection-comic/#comments</comments>
		<pubDate>Sat, 13 Sep 2008 01:51:13 +0000</pubDate>
		<dc:creator>Shadow</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.shadowsplace.net/?p=122</guid>
		<description><![CDATA[This one still makes me laugh From http://xkcd.com/327/]]></description>
			<content:encoded><![CDATA[<p>This one still makes me laugh <img src='http://www.shadowsplace.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<div class="mceTemp mceIEcenter">
<dl id="attachment_123" class="wp-caption aligncenter" style="width: 310px;">
<dt class="wp-caption-dt"><a title="Exploits of a mum - http://xkcd.com/327/" rel="lightbox" href="http://www.shadowsplace.net/wp-content/uploads/2008/09/exploits_of_a_mom.png"><img class="size-medium wp-image-123" title="Exploits of a mom" src="http://www.shadowsplace.net/wp-content/uploads/2008/09/exploits_of_a_mom-300x92.png" alt="Exploits of a mom" width="300" height="92" /></a></dt>
</dl>
</div>
<p>From <a href="http://xkcd.com/327/">http://xkcd.com/327/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.shadowsplace.net/122/internet/sql-injection-comic/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visual Studio 2008 SP1 Released</title>
		<link>http://www.shadowsplace.net/105/programming/visual-studio-2008-sp1-released/</link>
		<comments>http://www.shadowsplace.net/105/programming/visual-studio-2008-sp1-released/#comments</comments>
		<pubDate>Wed, 13 Aug 2008 05:58:25 +0000</pubDate>
		<dc:creator>Shadow</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.shadowsplace.net/?p=105</guid>
		<description><![CDATA[SP1 for Visual Studio 2008 has progressed from the Beta workbench. It is now publicly available for download from Microsoft. Download Visual Studio 2008 SP1 If you have installed the Service Pack beta you will need to install the following Service Pack Preparation tool before installing SP1. Note: With the preparation tool you may be required [...]]]></description>
			<content:encoded><![CDATA[<p>SP1 for Visual Studio 2008 has progressed from the Beta workbench. It is now publicly available for download from Microsoft.</p>
<p><a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=FBEE1648-7106-44A7-9649-6D9F6D58056E&amp;displaylang=en">Download Visual Studio 2008 SP1</a></p>
<p>If you have installed the Service Pack beta you will need to install the following <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=A494B0E0-EB07-4FF1-A21C-A4663E456D9D&amp;displaylang=en">Service Pack Preparation tool</a> before installing SP1. <strong>Note: </strong>With the preparation tool you may be required to insert your original Visual Studio 2008 installation disk.</p>
<p>The only issue I had was while performing the preparation tool where an MSI file &#8216;rdbg_std.msi&#8217; was &#8216;missing&#8217;. I found out that it was &#8216;Remote Debugger&#8217; related, then looked for the relevant file on the Visual Studio installation disk. It was under <strong>&lt;cd&gt;\Remote Debugger\x86</strong> (or x64)<strong>\rdbgsetup.exe</strong>. I had WinRAR installed so I right clicked, and extracted the file which resulted in the creation of a &#8216;rdbg_std.msi&#8217;. I pointed the installation to that file and all was good.</p>
<p>Should you have any other issues installing the Service Pack, take a look at the <a href="http://download.microsoft.com/download/A/2/8/A2807F78-C861-4B66-9B31-9205C3F22252/VS2008SP1Readme.htm">read me</a>. It contains some troubleshooting material and installation details.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shadowsplace.net/105/programming/visual-studio-2008-sp1-released/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>VPC Kiosk</title>
		<link>http://www.shadowsplace.net/7/programming/vpc-kiosk/</link>
		<comments>http://www.shadowsplace.net/7/programming/vpc-kiosk/#comments</comments>
		<pubDate>Sat, 10 Nov 2007 09:37:56 +0000</pubDate>
		<dc:creator>Shadow</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.shadowsplace.5gigs.com/2007/11/10/vpc-kiosk/</guid>
		<description><![CDATA[Imagine being able to walk to your local internet cafe but instead of restricting yourself to the limited resouces avaliable on that machine, instead you are able to insert your usb and load a virtual machine with all your personalisation and files. This effectivley will allow carry a usb on your keychain which can be [...]]]></description>
			<content:encoded><![CDATA[<p>Imagine being able to walk to your local internet cafe but instead of restricting yourself to the limited resouces avaliable on that machine, instead you are able to insert your usb and load a virtual machine with all your personalisation and files. This effectivley will allow carry a usb on your keychain which can be loaded at any of these VPC Kiosks.</p>
<p>I am currently trying to develop an interface that will allow for this in VB.net however it is quite difficult having to use a closed-source Microsoft Virtual PC 2007 in order to obtain this &#8216;kiosk&#8217; functionality.</p>
<p>Progress:</p>
<blockquote><p>I have made the GUI which detects the insertion of a usb and performs the finding of all virtual machines on the usb device. However I have hit a roadblock with the VPC configuration files which may take some time and effort to overcome.</p></blockquote>
<p>This application concept is Copyrighted 2007 Shadow Productions</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shadowsplace.net/7/programming/vpc-kiosk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

