tag:blogger.com,1999:blog-86029396543578847272024-03-13T13:44:55.351-07:00TutorialGenius.comTechnical blog discussing various programming languages, frameworks and paradigms. Code snippets and projects are also provided.s34nvideoshttp://www.blogger.com/profile/16947568863329729565noreply@blogger.comBlogger293125tag:blogger.com,1999:blog-8602939654357884727.post-4376791449466269122018-01-27T15:00:00.002-08:002018-01-27T15:00:26.415-08:00How to record line-in feed with Goldwave<span style="font-family: "verdana" , sans-serif;"><b>[How to record Line-in with Goldwave]</b></span><br />
<span style="font-family: "verdana" , sans-serif;"><b><br /></b></span>
<span style="font-family: "verdana" , sans-serif;">1. File > New > Select Quality for recording here</span><br />
<span style="font-family: "verdana" , sans-serif;">2. Hit F11, set Device and configure volume in this dialog.</span><br />
<span style="font-family: "verdana" , sans-serif;">3. the control pane should be visible by default, if not, go to: Tools > Control to view the control pane.</span><br />
<span style="font-family: "verdana" , sans-serif;">4. Hit record in the control pane to record your line-in feed.</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span>
<span style="font-family: "verdana" , sans-serif;">More info here: <a href="https://www.goldwave.com/faq.php#recsrc" target="_blank">https://www.goldwave.com/faq.php#recsrc</a></span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span><span style="font-family: "verdana" , sans-serif;"><b>----</b></span><br />
<span style="font-family: "verdana" , sans-serif;"><b><br /></b></span>
<span style="font-family: "verdana" , sans-serif;">Problems? Here is a good test to see if you are getting audio via the line-in jack...<br /></span>
<span style="font-family: "verdana" , sans-serif;"><b>[How to listen to Line-In via Speakers]</b></span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span><span style="font-family: "verdana" , sans-serif;">1. Type mmsys.cpl in the Start Menu search box and press Enter.</span><br />
<span style="font-family: verdana, sans-serif;">2. Select Recording tab. Double click on Line In.</span><br />
<span style="font-family: "verdana" , sans-serif;">3. Choose Listen tab, check Listen to this device. Choose playback through Default playback device and click Apply button.</span><br />
<span style="font-family: "verdana" , sans-serif;">4. Choose Levels tab, turn on the speaker, select volume label etc.</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span><span style="font-family: "verdana" , sans-serif;">It is better if you install the manufacturer's sound software and drivers. I have Realtek HD and controlling sound settings is much easier through this. </span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span>
s34nvideoshttp://www.blogger.com/profile/16947568863329729565noreply@blogger.com1tag:blogger.com,1999:blog-8602939654357884727.post-79656527555799605382016-04-13T16:48:00.002-07:002016-04-13T16:49:37.897-07:00Get and Set Private Properties using Reflection in C#It's frustrating when you're using an API and some properties you requuire are set as private. This certainly was the case when attempting to resume a video using the YouTube V3 API the other day.<br />
<br />
<b>Here is a code snippet on how to set private properties using Reflection.</b>
<div class="sh_csharp"><div class="head">Code Snippet</div><ol><li class="li1"><div class="de1"><span class="kw1">private</span> <span class="kw1">static</span> <span class="kw4">void</span> SetPrivateProperty<span class="sy0"><</span>T<span class="sy0">></span><span class="br0">(</span><span class="kw4">Object</span> obj, <span class="kw4">string</span> propertyName, <span class="kw4">object</span> <span class="kw1">value</span><span class="br0">)</span></div></li><li class="li1"><div class="de1"><span class="br0">{</span></div></li><li class="li1"><div class="de1"> <span class="kw1">var</span> propertyInfo <span class="sy0">=</span> <a href="http://www.google.com/search?q=typeof+msdn.microsoft.com"><span class="kw3">typeof</span></a><span class="br0">(</span>T<span class="br0">)</span><span class="sy0">.</span><span class="me1">GetProperty</span><span class="br0">(</span>propertyName, <span class="kw5">System.<span class="me1">Reflection</span></span><span class="sy0">.</span><span class="me1">BindingFlags</span><span class="sy0">.</span><span class="me1">NonPublic</span> <span class="sy0">|</span> <span class="kw5">System.<span class="me1">Reflection</span></span><span class="sy0">.</span><span class="me1">BindingFlags</span><span class="sy0">.</span><span class="me1">Instance</span><span class="br0">)</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1"> <span class="kw1">if</span> <span class="br0">(</span>propertyInfo <span class="sy0">==</span> <span class="kw1">null</span><span class="br0">)</span> <span class="kw1">return</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2"> propertyInfo<span class="sy0">.</span><span class="me1">SetValue</span><span class="br0">(</span>obj, <span class="kw1">value</span>, <span class="kw1">null</span><span class="br0">)</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1"><span class="br0">}</span></div></li><li class="li1"><div class="de1"><span class="kw1">private</span> <span class="kw1">static</span> <span class="kw4">object</span> GetPrivateProperty<span class="sy0"><</span>T<span class="sy0">></span><span class="br0">(</span><span class="kw4">Object</span> obj, <span class="kw4">string</span> propertyName<span class="br0">)</span></div></li><li class="li1"><div class="de1"><span class="br0">{</span></div></li><li class="li1"><div class="de1"> <span class="kw1">if</span> <span class="br0">(</span>obj <span class="sy0">==</span> <span class="kw1">null</span><span class="br0">)</span> <span class="kw1">return</span> <span class="kw1">null</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2"> <span class="kw1">var</span> propertyInfo <span class="sy0">=</span> <a href="http://www.google.com/search?q=typeof+msdn.microsoft.com"><span class="kw3">typeof</span></a><span class="br0">(</span>T<span class="br0">)</span><span class="sy0">.</span><span class="me1">GetProperty</span><span class="br0">(</span>propertyName, <span class="kw5">System.<span class="me1">Reflection</span></span><span class="sy0">.</span><span class="me1">BindingFlags</span><span class="sy0">.</span><span class="me1">NonPublic</span> <span class="sy0">|</span> <span class="kw5">System.<span class="me1">Reflection</span></span><span class="sy0">.</span><span class="me1">BindingFlags</span><span class="sy0">.</span><span class="me1">Instance</span><span class="br0">)</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1"> <span class="kw1">return</span> propertyInfo <span class="sy0">==</span> <span class="kw1">null</span> <span class="sy0">?</span> <span class="kw1">null</span> <span class="sy0">:</span> propertyInfo<span class="sy0">.</span><span class="me1">GetValue</span><span class="br0">(</span>obj, <span class="kw1">null</span><span class="br0">)</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1"><span class="br0">}</span></div></li></ol><div class="foot">End of Code Snippet</div></div>s34nvideoshttp://www.blogger.com/profile/16947568863329729565noreply@blogger.com1tag:blogger.com,1999:blog-8602939654357884727.post-70358209883031586682016-04-12T23:35:00.003-07:002017-09-15T06:49:25.650-07:00MsgBox - A Better Winforms MessageBox in C#<div style="text-align: center;">
<!-- IMG --><a href="https://drive.google.com/uc?export=view&id=0B6SfMAw6tfpRdUJKdmg2U0E1aXc" target="_blank"><img src="https://drive.google.com/uc?export=view&id=0B6SfMAw6tfpRdUJKdmg2U0E1aXc" /></a><!-- IMG -->
</div>
<h2>
<br /></h2>
<h2>
Introduction</h2>
MsgBox is an enhanced solution to the in-built MessageBox class. It's designed so that the styles, features and behaviour mimic the in-built control with added features.<br />
MsgBox allows a better Messagebox experience by allowing the following features:<br />
- Do not display this message again<br />
- Custom font styles and font colors<br />
- Scrollbars for text which is too long<br />
<h2>
Using the code</h2>
MsgBox is used like a standard MessageBox object. There is a different return object which encapsulates the original DialogResult. This handles extra information which as whether the user clicked 'Do no display this message again'.<br />
<br />
<strong>Simple Example</strong><br />
<div class="sh_csharp">
<div class="head">
Code Snippet</div>
<ol>
<li class="li1"><div class="de1">
MsgBox<span class="sy0">.</span><span class="me1">Show</span><span class="br0">(</span><span class="kw1">this</span>, <span class="sy0">&</span>quot<span class="sy0">;</span>Hello<span class="sy0">&</span>quot<span class="sy0">;</span>, <span class="sy0">&</span>quot<span class="sy0">;</span>Caption Text<span class="sy0">&</span>quot<span class="sy0">;</span>, MessageBoxButtons<span class="sy0">.</span><span class="me1">YesNoCancel</span>, MessageBoxIcon<span class="sy0">.</span><span class="me1">Question</span><span class="br0">)</span><span class="sy0">;</span></div>
</li>
</ol>
<div class="foot">
End of Code Snippet</div>
</div>
<br />
<!-- IMG --><a href="https://drive.google.com/uc?export=view&id=0B6SfMAw6tfpRZjVQQldyQlFIRjA" target="_blank"><img src="https://drive.google.com/uc?export=view&id=0B6SfMAw6tfpRZjVQQldyQlFIRjA" /></a><!-- IMG -->
<br />
<br />
<strong>Custom Fonts</strong><br />
<div class="sh_csharp">
<div class="head">
Code Snippet</div>
<ol>
<li class="li1"><div class="de1">
MsgBox<span class="sy0">.</span><span class="me1">Show</span><span class="br0">(</span><span class="kw1">this</span>, <span class="sy0">&</span>quot<span class="sy0">;</span>Hello<span class="sy0">&</span>quot<span class="sy0">;</span>, <span class="sy0">&</span>quot<span class="sy0">;</span>Caption Text<span class="sy0">&</span>quot<span class="sy0">;</span>, MessageBoxButtons<span class="sy0">.</span><span class="me1">OK</span>, MessageBoxIcon<span class="sy0">.</span><span class="me1">Information</span>, <span class="kw1">true</span>, <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> Font<span class="br0">(</span><span class="sy0">&</span>quot<span class="sy0">;</span>Verdana<span class="sy0">&</span>quot<span class="sy0">;</span>, 12f, FontStyle<span class="sy0">.</span><span class="me1">Bold</span><span class="br0">)</span>, Color<span class="sy0">.</span><span class="me1">Red</span><span class="br0">)</span><span class="sy0">;</span></div>
</li>
</ol>
<div class="foot">
End of Code Snippet</div>
</div>
<br />
<!-- IMG --><a href="https://drive.google.com/uc?export=view&id=0B6SfMAw6tfpRZ2JSaHFzaHMzRlk" target="_blank"><img src="https://drive.google.com/uc?export=view&id=0B6SfMAw6tfpRZ2JSaHFzaHMzRlk" /></a><!-- IMG -->
<br />
<br />
<strong>Long Text</strong><br />
<div class="sh_csharp">
<div class="head">
Code Snippet</div>
<ol>
<li class="li1"><div class="de1">
MsgBox<span class="sy0">.</span><span class="me1">Show</span><span class="br0">(</span><span class="kw1">this</span>, <span class="sy0">&</span>quot<span class="sy0">;</span>Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello<span class="sy0">&</span>quot<span class="sy0">;</span>, <span class="sy0">&</span>quot<span class="sy0">;</span>Caption Text<span class="sy0">&</span>quot<span class="sy0">;</span>, MessageBoxButtons<span class="sy0">.</span><span class="me1">OK</span>, MessageBoxIcon<span class="sy0">.</span><span class="me1">Information</span>, <span class="kw1">true</span>, <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> Font<span class="br0">(</span><span class="sy0">&</span>quot<span class="sy0">;</span>Verdana<span class="sy0">&</span>quot<span class="sy0">;</span>, 40f, FontStyle<span class="sy0">.</span><span class="me1">Bold</span><span class="br0">)</span>, Color<span class="sy0">.</span><span class="me1">Blue</span><span class="br0">)</span><span class="sy0">;</span></div>
</li>
</ol>
<div class="foot">
End of Code Snippet</div>
</div>
<br />
<!-- IMG --><a href="https://drive.google.com/uc?export=view&id=0B6SfMAw6tfpRS0U4Um1mbVd1bkE" target="_blank"><img src="https://drive.google.com/uc?export=view&id=0B6SfMAw6tfpRS0U4Um1mbVd1bkE" /></a><!-- IMG -->
<br />
<br />
<strong>Handling the do not display message again checkbox</strong><br />
<div class="sh_csharp">
<div class="head">
Code Snippet</div>
<ol>
<li class="li1"><div class="de1">
DialogResultNew res <span class="sy0">=</span> MsgBox<span class="sy0">.</span><span class="me1">Show</span><span class="br0">(</span><span class="kw1">this</span>, <span class="sy0">&</span>quot<span class="sy0">;</span>Hello<span class="sy0">&</span>quot<span class="sy0">;</span>, <span class="sy0">&</span>quot<span class="sy0">;</span>Caption Text<span class="sy0">&</span>quot<span class="sy0">;</span>, MessageBoxButtons<span class="sy0">.</span><span class="me1">OK</span><span class="br0">)</span><span class="sy0">;</span></div>
</li>
<li class="li1"><div class="de1">
<span class="kw1">if</span> <span class="br0">(</span>res<span class="sy0">.</span><span class="me1">DoNotDisplayMessageAgain</span><span class="br0">)</span> <span class="co1">// Do something here</span></div>
</li>
</ol>
<div class="foot">
End of Code Snippet</div>
</div>
<br />
<h2>
Download</h2>
<br />
<a href="https://drive.google.com/open?id=0B6SfMAw6tfpRNmN6cERrSUJLSW8" target="_blank">Download MsgBox Here</a>
<br />
<br />
<h2>
History</h2>
v1.0 - Initial write-ups34nvideoshttp://www.blogger.com/profile/16947568863329729565noreply@blogger.com0tag:blogger.com,1999:blog-8602939654357884727.post-11480068300919920962015-06-21T02:22:00.001-07:002015-06-21T02:47:35.841-07:00YouTube Comments and Commenting with YouTube API V3 (Google.Apis.YouTube.v3)<img src="http://i.ytimg.com/vi/tlcWiP7OLFI/maxresdefault.jpg" width="640" height="480" /><br /><br />
Google deprecated V2 of the YouTube API over a year ago, but as of last month, the URLs have been taken offline; forcing users to upgrade to V3 of the API. One of the last features requiring implementating on the V3 platform was the ability to comment on channels and videos. The following example shows how to leave a top level comment on a channel or video using V3 of the API with C#
<br /><br />
<b>Example</b><br />
<div class="sh_csharp"><div class="head">Code Snippet</div><ol><li class="li1"><div class="de1"> </div></li><li class="li1"><div class="de1">YouTubeService youtube<span class="sy0">;</span> <span class="co1">// Init your service here - Make sure you include the new required scope: YouTubeService.Scope.YoutubeForceSsl</span></div></li><li class="li1"><div class="de1"> </div></li><li class="li1"><div class="de1">CommentThreadSnippet commentThreadSnippet <span class="sy0">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> CommentThreadSnippet<span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2"><span class="co1">//commentThreadSnippet.ChannelId; Comment on a channel - leave video id blank if so</span></div></li><li class="li1"><div class="de1">commentThreadSnippet<span class="sy0">.</span><span class="me1">VideoId</span> <span class="sy0">=</span> v<span class="sy0">.</span><span class="me1">ID</span><span class="sy0">;</span> <span class="co1">// Comment on a Video by VideoID</span></div></li><li class="li1"><div class="de1"> </div></li><li class="li1"><div class="de1"><span class="co1">// A top level comment is a new comment (Not a reply to an existing comment)</span></div></li><li class="li1"><div class="de1">commentThreadSnippet<span class="sy0">.</span><span class="me1">TopLevelComment</span> <span class="sy0">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> Comment<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> Snippet <span class="sy0">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> CommentSnippet<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> TextOriginal <span class="sy0">=</span> comment <span class="br0">}</span><span class="br0">}</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2"> </div></li><li class="li1"><div class="de1"><span class="co1">// Make an insert request and get result snippet</span></div></li><li class="li1"><div class="de1">CommentThreadsResource<span class="sy0">.</span><span class="me1">InsertRequest</span> commentReq <span class="sy0">=</span> youtube<span class="sy0">.</span><span class="me1">CommentThreads</span><span class="sy0">.</span><span class="me1">Insert</span><span class="br0">(</span><a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> CommentThread<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> Snippet <span class="sy0">=</span> commentThreadSnippet<span class="br0">}</span>, <span class="st0">"snippet"</span><span class="br0">)</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">CommentThread commentRes <span class="sy0">=</span> commentReq<span class="sy0">.</span><span class="me1">Execute</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></div></li></ol><div class="foot">End of Code Snippet</div></div>s34nvideoshttp://www.blogger.com/profile/16947568863329729565noreply@blogger.com2tag:blogger.com,1999:blog-8602939654357884727.post-12165746053524103582015-03-25T04:31:00.001-07:002015-03-25T04:31:43.395-07:00Silently Delete a File within a Windows Batch File (BAT File)I have recently been preparing some custom install scripts lately and I found a few things that may prove to be of some use! This script deletes a file silently and will not report the result in the console window.<br/ >
<br/ >
<div class="sh_winbatch"><div class="head">Code Snippet</div><ol><li class="li1"><div class="de1"><span class="sy0">@</span>echo <span class="kw2">off</span></div></li>
<li class="li1"><div class="de1">del <span class="sy0">/</span>s randomtextfile.txt <span class="sy0">></span>nul <span class="nu0">2</span><span class="sy0">>&</span><span class="nu0">1</span> REM Delete file silently</div></li>
</ol><div class="foot">End of Code Snippet</div></div>s34nvideoshttp://www.blogger.com/profile/16947568863329729565noreply@blogger.com0tag:blogger.com,1999:blog-8602939654357884727.post-49812876517105160852015-03-25T04:28:00.001-07:002015-03-25T04:31:32.025-07:00How to get operating system 32bit or 64bit from a Windows Batch File (BAT File)I have recently been preparing some custom install scripts lately and I found a few things that may prove to be of some use! This script uses a registry key to determine weather the host system is a 32bit or a 64bit system<br/ >
<br/ >
<div class="sh_winbatch"><div class="head">Code Snippet</div><ol><li class="li1"><div class="de1"><span class="sy0">@</span>echo <span class="kw2">off</span> REM Hide output from commands</div></li>
<li class="li1"><div class="de1"><span class="sy0">@</span>echo Attempting <span class="kw1">to</span> get operating system type <span class="br0">(</span>32bit or 64bit<span class="br0">)</span>...</div></li>
<li class="li1"><div class="de1"> </div></li>
<li class="li1"><div class="de1">REM <span class="sy0">--------------</span> Get 32bit or 64bit <span class="sy0">--------------</span> </div></li>
<li class="li2"><div class="de2">Set RegQry=HKLM\Hardware\Description\System\CentralProcessor\<span class="nu0">0</span></div></li>
<li class="li1"><div class="de1">REG.exe Query <span class="sy0">%</span>RegQry<span class="sy0">%</span> <span class="sy0">></span> checkOS.txt</div></li>
<li class="li1"><div class="de1">Find <span class="sy0">/</span>i <span class="st0">"x86"</span> <span class="sy0"><</span> CheckOS.txt <span class="sy0">></span> StringCheck.txt</div></li>
<li class="li1"><div class="de1"> </div></li>
<li class="li1"><div class="de1"><span class="kw1">If</span> <span class="sy0">%</span>ERRORLEVEL<span class="sy0">%</span> == <span class="nu0">0</span> <span class="br0">(</span></div></li>
<li class="li2"><div class="de2"> <span class="sy0">@</span>echo This is <span class="nu0">32</span> Bit Operating system<span class="sy0">!</span></div></li>
<li class="li1"><div class="de1"> SET ostype = <span class="st0">"32bit"</span></div></li>
<li class="li1"><div class="de1"><span class="br0">)</span> <span class="kw1">ELSE</span> <span class="br0">(</span></div></li>
<li class="li1"><div class="de1"> <span class="sy0">@</span>echo This is <span class="nu0">64</span> Bit Operating System<span class="sy0">!</span></div></li>
<li class="li1"><div class="de1"> SET ostype = <span class="st0">"64bit"</span></div></li>
<li class="li2"><div class="de2"><span class="br0">)</span></div></li>
<li class="li1"><div class="de1">del <span class="sy0">/</span>s checkOS.txt <span class="sy0">></span>nul <span class="nu0">2</span><span class="sy0">>&</span><span class="nu0">1</span> REM Clean up silently</div></li>
<li class="li1"><div class="de1">del <span class="sy0">/</span>s StringCheck.txt <span class="sy0">></span>nul <span class="nu0">2</span><span class="sy0">>&</span><span class="nu0">1</span> REM Clean up silently</div></li>
</ol><div class="foot">End of Code Snippet</div></div>s34nvideoshttp://www.blogger.com/profile/16947568863329729565noreply@blogger.com0tag:blogger.com,1999:blog-8602939654357884727.post-59765597965948150622015-03-16T01:02:00.002-07:002015-03-16T01:02:20.504-07:00YouTube Bulk Uploader for the Lazy - An Offline Auto-Tagger, Bulk Uploader and VMS for YouTube!Being a hardcore videographer with very limited time in the world to share my vast collection of videos, I begun the search for an all encompassing video management system with the ability to auto-tag and upload my videos in bulk to YouTube. As I tend to travel lot and have a lot of time where I could be preparing my videos to upload, I found that I needed an internet connection to even tag them and place them into categories and apply the appropriate finishing details. I found a couple of programs which lightly touched on my requirements, but nothing stood up even close to my needs. Therefore I develped my own solution: "YouTube Bulk Uploader: For the Lazy!".<br/>
<br/>
<iframe width="560" height="315" src="http://www.youtube.com/embed/-vUzqPKcssQ?rel=0&vq=hd720" frameborder="0" allowfullscreen></iframe>
<br/><br/>
YouTube Bulk Uploader for the Lazy is your simple and fast solution for offline tagging and uploading videos to YouTube in Bulk. Save hours of time and effort today!<br/><br/>
YouTube Bulk Uploader for the Lazy allows you to easily BULK UPLOAD and TAG 1000's of videos OFFLINE! The software provides bulk editing of videos (Tags, Categories, Descriptions, Titles etc) and provides a simple to use interface for uploading and managing videos. The software 'tags' each physical video on your drive so you can freely move and rename them and the software will be able to detect where they are at all times! This can all be done offline, so no need for an internet connection until you're ready to upload!
<br/><br/>
<ul>
<li> Supports ALL YouTube supported video file types. MP4, MOV, MKV, MPEG, 3GP, AVI and more<br/>
<li> Allows bulk editing of video titles, descriptions, tags, categories, privacy and more<br/>
<li> Supports multiple YouTube accounts<br/>
<li> Ability to copy video information between multiple accounts<br/>
<li> The Tag Manager allows you to pre-define a set of video tags to tag videos faster!<br/>
<li> The Upload Queue allows to you prioritize your video uploads<br/>
<li> The Video Database allows you to edit and manage video information<br/>
<li> File Path Sync allows you to scan your hard drive for video files which have been moved or renamed<br/>
<li> All features can be performed offline (WITHOUT AN INTERNET CONNECTION!!) (Apart from the uploading part!)<br/>
<li> YouTube video titles, descriptions and video tags are automatically created using the videos file name!<br/>
<li> 1 Full Year of Free Product Updates<br/>
<li> Excellent Customer Support Service<br/>
<li> All This for Only $19.95!<br/>
</ul>
<br/>
- See more at: <a href="http://ginkosolutions.com/youtube-bulk-uploader" target="_blank">http://ginkosolutions.com/youtube-bulk-uploader</a>
<br/><br/>
s34nvideoshttp://www.blogger.com/profile/16947568863329729565noreply@blogger.com0tag:blogger.com,1999:blog-8602939654357884727.post-88004664737086765942015-03-16T00:49:00.000-07:002015-03-16T00:53:21.355-07:00Yellow Pages & Yelp Data Extraction - Crawler Spider Business Email List Capture Grabber Scraper<b>Developed by an old university friend. Very useful software to build your own business email lists and databases!</b><br/>
<br/>
<iframe width="560" height="315" src="https://www.youtube.com/embed/hjxQv3DAHDQ?vq=hd720" frameborder="0" allowfullscreen></iframe>
<br/><br/>
Web Contact Scraper is a fully automated software application for gathering targeted business contact information!
<br/><br/>
You can search and gather thousands of business details matching a chosen profession within any location worldwide! Build your own targeted Email Marketing Lists yourself! You can instantly retrieve 1000 Plumbers in New York or 10,000 Dance Instructors in Australia, the possibilities are endless! Export emails, phone numbers, websites, addresses to CSV and start your targeted business campaign today!
<br/><br/>
<ul>
<li> Search for multiple business key words (I.e. Construction, Dentist, Lawyer)<br/>
<li> Search within multiple cities, states and countries!<br/>
<li> See the search results appear in real-time!<br/>
<li> In-built tool to remove duplicate contact information<br/>
<li> Supports Yellow Pages and Yelp!<br/>
<li> Export results to CSV<br/>
<li> Proxy IP Support to scrape anonymously!<br/>
<li> Lifetime Licence Key for up to 2 Computers<br/>
<li> 1 Full Year of Free Product Updates<br/>
<li> Excellent Customer Support Service<br/>
<li> All This for Only $19.95!<br/>
</ul>
<br/>
- See more at: <a href="http://ginkosolutions.com/webcontactscraper" target="_blank">http://ginkosolutions.com/webcontactscraper</a>
<br/><br/>
s34nvideoshttp://www.blogger.com/profile/16947568863329729565noreply@blogger.com0tag:blogger.com,1999:blog-8602939654357884727.post-59892134070593176402015-03-14T05:07:00.000-07:002015-03-14T05:09:05.782-07:00Getting and Setting File Tag Meta Information in C# and ASP.NET - With TagLib and DsoFile Examples<b>The Problem</b><br />
I recently developed a video content management system, and rather than store hidden files to track versioning and movement of physical files, I wanted to modify the internal file meta information of the videos themselves. I planned to stuff a database ID into the comment tag within each video file, but this proved to be very challenging given the very disoraganised way in which various operating system handled different file types.
<br />
<br />
<b>Possible Solutions</b><br />
<b>MediaInfo</b> - <a href="http://sourceforge.net/projects/mediainfo/" target="_blank">http://sourceforge.net/projects/mediainfo/</a>. Cool API, updated a lot, but there is no support for setting file meta information. The entire API is READ ONLY!<br />
<br />
<b>TagLib</b> - <a href="https://taglib.github.io/" target="_blank">https://taglib.github.io/</a>. Again, good API with scope to set file tag meta information. So I decided to try this API out and see how far I could get with it. I started hitting it's limits when I couldn't set file meta information for a LOT of video file types: MKV, MOV, 3GP, ASF and more.<br />
<br />
<b>DsoFile</b> - <a href="http://support.microsoft.com/en-gb/kb/224351" target="_blank">http://support.microsoft.com/en-gb/kb/224351</a>. Microsoft's answer to tagging Microsoft Office file tag information. It's able to set Office file tags but also totally new custom properties within each file. You cannot see these values in Windows Explorer without a handy Powershell script plugin, but it works for ALL file types, not just office documents. It's written in C++ and includes the source code also. The downside is that it's a COM component, 32bit and no longer supported. However, somebody compiled a 64bit version <a href="http://www.keysolutions.com/blogs/kenyee.nsf/d6plinks/KKYE-79KRU6" target="_blank">here</a>
<br />
<br />
<b>The Ideal Solution</b><br />
DsoFile seems like a great solution to the problem. TagLib works hard to achieve an ideal solution, but there are too many file types out there ever changing and the library finds it hard to keep up. I decided to use DsoFile for my project for the time being. I have provided some sample code below so you can see how TagLib and DsoFile libraries modify file meta tag information.
<br />
<br />
<b>TagLib Sample Code - How to Get and Set the Comment File Meta Tag Field</b><br />
<div class="sh_csharp"><div class="head">Code Snippet</div><ol><li class="li1"><div class="de1"><span class="kw1">using</span> <span class="co3">System</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"><span class="kw1">using</span> <span class="co3">TagLib</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> </div></li>
<li class="li1"><div class="de1"><span class="co1">/// <summary></span></div></li>
<li class="li2"><div class="de2"><span class="co1">/// (c) GinkoSolutions.com</span></div></li>
<li class="li1"><div class="de1"><span class="co1">/// This sample class enables you to set meta file information within physical files.</span></div></li>
<li class="li1"><div class="de1"><span class="co1">/// This is similar to EXIF information for picture files.</span></div></li>
<li class="li1"><div class="de1"><span class="co1">/// TagLib doesn't seem to work for a lot of file types: MKV, MOV etc</span></div></li>
<li class="li1"><div class="de1"><span class="co1">/// It seems to work ok for MP4 files though.</span></div></li>
<li class="li2"><div class="de2"><span class="co1">/// </summary></span></div></li>
<li class="li1"><div class="de1"><span class="kw1">public</span> <span class="kw1">static</span> <span class="kw4">class</span> TagLibExample</div></li>
<li class="li1"><div class="de1"><span class="br0">{</span></div></li>
<li class="li1"><div class="de1"> <span class="co1">/// <summary></span></div></li>
<li class="li1"><div class="de1"> <span class="co1">/// Gets the comment tag from a files meta information</span></div></li>
<li class="li2"><div class="de2"> <span class="co1">/// </summary></span></div></li>
<li class="li1"><div class="de1"> <span class="co1">/// <param name="filename">Path to the file</param></span></div></li>
<li class="li1"><div class="de1"> <span class="co1">/// <returns>Our custom value stored in the files comment tag</returns></span></div></li>
<li class="li1"><div class="de1"> <span class="kw1">public</span> <span class="kw1">static</span> <span class="kw4">string</span> GetCommentField<span class="br0">(</span><span class="kw4">string</span> filename<span class="br0">)</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">{</span></div></li>
<li class="li2"><div class="de2"> <span class="kw4">string</span> comment <span class="sy0">=</span> <span class="kw4">string</span><span class="sy0">.</span><span class="me1">Empty</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> TagLib<span class="sy0">.</span><span class="me1">File</span> file <span class="sy0">=</span> <span class="kw1">null</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> </div></li>
<li class="li1"><div class="de1"> <span class="kw1">try</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">{</span></div></li>
<li class="li2"><div class="de2"> file <span class="sy0">=</span> TagLib<span class="sy0">.</span><span class="me1">File</span><span class="sy0">.</span><span class="me1">Create</span><span class="br0">(</span>filename<span class="br0">)</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> comment <span class="sy0">=</span> file<span class="sy0">.</span><span class="me1">Tag</span><span class="sy0">.</span><span class="me1">Comment</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">}</span></div></li>
<li class="li1"><div class="de1"> <span class="kw1">catch</span> <span class="br0">(</span>Exception ex<span class="br0">)</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">{</span></div></li>
<li class="li2"><div class="de2"> <span class="co1">// This library works with limited file types, so unsupported file types are</span></div></li>
<li class="li1"><div class="de1"> <span class="co1">// thrown here when trying to use "TagLib.File.Create()"</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">}</span></div></li>
<li class="li1"><div class="de1"> <span class="kw1">finally</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">{</span></div></li>
<li class="li2"><div class="de2"> <span class="kw1">if</span> <span class="br0">(</span>file <span class="sy0">!=</span> <span class="kw1">null</span><span class="br0">)</span> file<span class="sy0">.</span><span class="me1">Dispose</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span> <span class="co1">// Clean up</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">}</span></div></li>
<li class="li1"><div class="de1"> </div></li>
<li class="li1"><div class="de1"> <span class="kw1">return</span> comment<span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">}</span></div></li>
<li class="li2"><div class="de2"> </div></li>
<li class="li1"><div class="de1"> <span class="co1">/// <summary></span></div></li>
<li class="li1"><div class="de1"> <span class="co1">/// Sets the comment tag within a files meta information</span></div></li>
<li class="li1"><div class="de1"> <span class="co1">/// </summary></span></div></li>
<li class="li1"><div class="de1"> <span class="co1">/// <param name="filename">Path to the file</param></span></div></li>
<li class="li2"><div class="de2"> <span class="co1">/// <param name="value">Value to store in the comment tag</param></span></div></li>
<li class="li1"><div class="de1"> <span class="kw1">public</span> <span class="kw1">static</span> <span class="kw4">void</span> SetCommentField<span class="br0">(</span><span class="kw4">string</span> filename, <span class="kw4">string</span> <span class="kw1">value</span><span class="br0">)</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">{</span></div></li>
<li class="li1"><div class="de1"> TagLib<span class="sy0">.</span><span class="me1">File</span> file <span class="sy0">=</span> <span class="kw1">null</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> </div></li>
<li class="li2"><div class="de2"> <span class="kw1">try</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">{</span></div></li>
<li class="li1"><div class="de1"> file <span class="sy0">=</span> TagLib<span class="sy0">.</span><span class="me1">File</span><span class="sy0">.</span><span class="me1">Create</span><span class="br0">(</span>filename<span class="br0">)</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> </div></li>
<li class="li1"><div class="de1"> <span class="co1">// Set comment tag</span></div></li>
<li class="li2"><div class="de2"> <span class="co1">// NOTE: file.Tag.Comment cannot be an empty string, it defaults to null if empty</span></div></li>
<li class="li1"><div class="de1"> file<span class="sy0">.</span><span class="me1">Tag</span><span class="sy0">.</span><span class="me1">Comment</span> <span class="sy0">=</span> GetCommentField<span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> file<span class="sy0">.</span><span class="me1">Save</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> </div></li>
<li class="li1"><div class="de1"> <span class="co1">// Check comment was added successfully.</span></div></li>
<li class="li2"><div class="de2"> <span class="co1">// For some reason, TagLib won't throw an error if the property doesnt save</span></div></li>
<li class="li1"><div class="de1"> <span class="co1">// for certain file types, yet they appear to be supported.</span></div></li>
<li class="li1"><div class="de1"> <span class="co1">// So we have to check it actually worked...</span></div></li>
<li class="li1"><div class="de1"> file <span class="sy0">=</span> TagLib<span class="sy0">.</span><span class="me1">File</span><span class="sy0">.</span><span class="me1">Create</span><span class="br0">(</span>filename<span class="br0">)</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> </div></li>
<li class="li2"><div class="de2"> <span class="kw1">if</span> <span class="br0">(</span>file<span class="sy0">.</span><span class="me1">Tag</span><span class="sy0">.</span><span class="me1">Comment</span> <span class="sy0">!=</span> <span class="kw1">value</span><span class="br0">)</span></div></li>
<li class="li1"><div class="de1"> <span class="kw1">throw</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> Exception<span class="br0">(</span><span class="st0">"Could not set comment tag. This file format is not supported."</span><span class="br0">)</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">}</span></div></li>
<li class="li1"><div class="de1"> <span class="kw1">catch</span> <span class="br0">(</span>Exception ex<span class="br0">)</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">{</span></div></li>
<li class="li2"><div class="de2"> <span class="co1">// Handle errors here</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">}</span></div></li>
<li class="li1"><div class="de1"> <span class="kw1">finally</span> <span class="co1">// Always called, even when throwing in Exception block</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">{</span></div></li>
<li class="li1"><div class="de1"> <span class="kw1">if</span> <span class="br0">(</span>file <span class="sy0">!=</span> <span class="kw1">null</span><span class="br0">)</span> file<span class="sy0">.</span><span class="me1">Dispose</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span> <span class="co1">// Clean up</span></div></li>
<li class="li2"><div class="de2"> <span class="br0">}</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">}</span></div></li>
<li class="li1"><div class="de1"><span class="br0">}</span></div></li>
<li class="li1"><div class="de1"> </div></li>
</ol><div class="foot">End of Code Snippet</div></div>
<br />
<br />
<b>DsoFile Sample Code - How to Store a Value into a Custom Property and Get it back!</b><br />
<div class="sh_csharp"><div class="head">Code Snippet</div><ol><li class="li1"><div class="de1"><span class="kw1">using</span> <span class="co3">System</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"><span class="kw1">using</span> <span class="co3">DSOFile</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> </div></li>
<li class="li1"><div class="de1"><span class="co1">/// <summary></span></div></li>
<li class="li2"><div class="de2"><span class="co1">/// (c) GinkoSolutions.com</span></div></li>
<li class="li1"><div class="de1"><span class="co1">/// This sample class enables you to set meta file information within physical files.</span></div></li>
<li class="li1"><div class="de1"><span class="co1">/// This is similar to EXIF information for picture files.</span></div></li>
<li class="li1"><div class="de1"><span class="co1">/// DSOFile works for every file type, not just office files.</span></div></li>
<li class="li1"><div class="de1"><span class="co1">/// </span></div></li>
<li class="li2"><div class="de2"><span class="co1">/// NOTE</span></div></li>
<li class="li1"><div class="de1"><span class="co1">/// DsoFile is an unmnaged 32bit dll. We need to compile in x86 mode or we get 'class not registered exception'</span></div></li>
<li class="li1"><div class="de1"><span class="co1">/// There is a third party 64bit version available online, or recompile the C++ source manually.</span></div></li>
<li class="li1"><div class="de1"><span class="co1">/// </summary></span></div></li>
<li class="li1"><div class="de1"><span class="kw1">public</span> <span class="kw1">static</span> <span class="kw4">class</span> DSOFileExample</div></li>
<li class="li2"><div class="de2"><span class="br0">{</span></div></li>
<li class="li1"><div class="de1"> <span class="co1">/// <summary></span></div></li>
<li class="li1"><div class="de1"> <span class="co1">/// A property name that this sample code uses to store tag information.</span></div></li>
<li class="li1"><div class="de1"> <span class="co1">/// </summary></span></div></li>
<li class="li1"><div class="de1"> <span class="kw1">private</span> <span class="kw1">static</span> <span class="kw4">string</span> FILE_PROPERTY <span class="sy0">=</span> <span class="st0">"CustomFileTag"</span><span class="sy0">;</span></div></li>
<li class="li2"><div class="de2"> </div></li>
<li class="li1"><div class="de1"> <span class="co1">/// <summary></span></div></li>
<li class="li1"><div class="de1"> <span class="co1">/// Gets value stored in a custom tag</span></div></li>
<li class="li1"><div class="de1"> <span class="co1">/// </summary></span></div></li>
<li class="li1"><div class="de1"> <span class="co1">/// <param name="filename">Path to the file</param></span></div></li>
<li class="li2"><div class="de2"> <span class="co1">/// <returns>Our custom value stored in the custom file tag</returns></span></div></li>
<li class="li1"><div class="de1"> <span class="kw1">public</span> <span class="kw1">static</span> <span class="kw4">string</span> GetCustomPropertyValue<span class="br0">(</span><span class="kw4">string</span> filename<span class="br0">)</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">{</span></div></li>
<li class="li1"><div class="de1"> <span class="kw4">string</span> comment <span class="sy0">=</span> <span class="kw4">string</span><span class="sy0">.</span><span class="me1">Empty</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> OleDocumentProperties file <span class="sy0">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> DSOFile<span class="sy0">.</span><span class="me1">OleDocumentProperties</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></div></li>
<li class="li2"><div class="de2"> </div></li>
<li class="li1"><div class="de1"> <span class="kw1">try</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">{</span></div></li>
<li class="li1"><div class="de1"> <span class="co1">// Open file</span></div></li>
<li class="li1"><div class="de1"> file<span class="sy0">.</span><span class="me1">Open</span><span class="br0">(</span>filename, <span class="kw1">false</span>, DSOFile<span class="sy0">.</span><span class="me1">dsoFileOpenOptions</span><span class="sy0">.</span><span class="me1">dsoOptionDefault</span><span class="br0">)</span><span class="sy0">;</span></div></li>
<li class="li2"><div class="de2"> comment <span class="sy0">=</span> GetTagField<span class="br0">(</span>file<span class="br0">)</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">}</span></div></li>
<li class="li1"><div class="de1"> <span class="kw1">catch</span> <span class="br0">(</span>Exception ex<span class="br0">)</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">{</span></div></li>
<li class="li1"><div class="de1"> <span class="co1">// Handle errors here</span></div></li>
<li class="li2"><div class="de2"> <span class="br0">}</span></div></li>
<li class="li1"><div class="de1"> <span class="kw1">finally</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">{</span></div></li>
<li class="li1"><div class="de1"> <span class="kw1">if</span> <span class="br0">(</span>file <span class="sy0">!=</span> <span class="kw1">null</span><span class="br0">)</span> file<span class="sy0">.</span><span class="me1">Close</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span> <span class="co1">// Clean up</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">}</span></div></li>
<li class="li2"><div class="de2"> </div></li>
<li class="li1"><div class="de1"> <span class="kw1">return</span> comment<span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">}</span></div></li>
<li class="li1"><div class="de1"> </div></li>
<li class="li1"><div class="de1"> <span class="co1">/// <summary></span></div></li>
<li class="li2"><div class="de2"> <span class="co1">/// Sets value stored in a files custom tag</span></div></li>
<li class="li1"><div class="de1"> <span class="co1">/// </summary></span></div></li>
<li class="li1"><div class="de1"> <span class="co1">/// <param name="filename">Path to the file</param></span></div></li>
<li class="li1"><div class="de1"> <span class="co1">/// <param name="value">Value to store in the custom file tag</param></span></div></li>
<li class="li1"><div class="de1"> <span class="kw1">public</span> <span class="kw1">static</span> <span class="kw4">void</span> SetCustomPropertyValue<span class="br0">(</span><span class="kw4">string</span> filename, <span class="kw4">string</span> <span class="kw1">value</span><span class="br0">)</span></div></li>
<li class="li2"><div class="de2"> <span class="br0">{</span></div></li>
<li class="li1"><div class="de1"> OleDocumentProperties file <span class="sy0">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> DSOFile<span class="sy0">.</span><span class="me1">OleDocumentProperties</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> </div></li>
<li class="li1"><div class="de1"> <span class="kw1">try</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">{</span></div></li>
<li class="li2"><div class="de2"> file<span class="sy0">.</span><span class="me1">Open</span><span class="br0">(</span>filename, <span class="kw1">false</span>, DSOFile<span class="sy0">.</span><span class="me1">dsoFileOpenOptions</span><span class="sy0">.</span><span class="me1">dsoOptionDefault</span><span class="br0">)</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> SetTagField<span class="br0">(</span>file, <span class="kw1">value</span><span class="br0">)</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">}</span></div></li>
<li class="li1"><div class="de1"> <span class="kw1">catch</span> <span class="br0">(</span>Exception ex<span class="br0">)</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">{</span></div></li>
<li class="li2"><div class="de2"> <span class="co1">// Handle errors here</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">}</span></div></li>
<li class="li1"><div class="de1"> <span class="kw1">finally</span> <span class="co1">// Always called, even when throwing in Exception block</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">{</span></div></li>
<li class="li1"><div class="de1"> <span class="kw1">if</span> <span class="br0">(</span>file <span class="sy0">!=</span> <span class="kw1">null</span><span class="br0">)</span> file<span class="sy0">.</span><span class="me1">Close</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span> <span class="co1">// Clean up</span></div></li>
<li class="li2"><div class="de2"> <span class="br0">}</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">}</span></div></li>
<li class="li1"><div class="de1"> </div></li>
<li class="li1"><div class="de1"> <span class="co1">/// <summary></span></div></li>
<li class="li1"><div class="de1"> <span class="co1">/// Gets the value of the file tag property</span></div></li>
<li class="li2"><div class="de2"> <span class="co1">/// </summary></span></div></li>
<li class="li1"><div class="de1"> <span class="co1">/// <param name="file">Ole Document File</param></span></div></li>
<li class="li1"><div class="de1"> <span class="co1">/// <returns>Contents of the file tag property. Can be null or empty.</returns></span></div></li>
<li class="li1"><div class="de1"> <span class="kw1">private</span> <span class="kw1">static</span> <span class="kw4">string</span> GetTagField<span class="br0">(</span>DSOFile<span class="sy0">.</span><span class="me1">OleDocumentProperties</span> file<span class="br0">)</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">{</span></div></li>
<li class="li2"><div class="de2"> <span class="kw4">string</span> result <span class="sy0">=</span> <span class="kw4">string</span><span class="sy0">.</span><span class="me1">Empty</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> <span class="kw1">foreach</span> <span class="br0">(</span>DSOFile<span class="sy0">.</span><span class="me1">CustomProperty</span> property <span class="kw1">in</span> file<span class="sy0">.</span><span class="me1">CustomProperties</span><span class="br0">)</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">{</span></div></li>
<li class="li1"><div class="de1"> <span class="kw1">if</span> <span class="br0">(</span>property<span class="sy0">.</span><span class="me1">Name</span> <span class="sy0">==</span> FILE_PROPERTY<span class="br0">)</span> <span class="co1">// Check property exists</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">{</span></div></li>
<li class="li2"><div class="de2"> result <span class="sy0">=</span> property<span class="sy0">.</span><span class="me1">get_Value</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> <span class="kw1">break</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">}</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">}</span></div></li>
<li class="li1"><div class="de1"> <span class="kw1">return</span> result<span class="sy0">;</span></div></li>
<li class="li2"><div class="de2"> <span class="br0">}</span></div></li>
<li class="li1"><div class="de1"> </div></li>
<li class="li1"><div class="de1"> <span class="co1">/// <summary></span></div></li>
<li class="li1"><div class="de1"> <span class="co1">/// Sets the value of the file tag property</span></div></li>
<li class="li1"><div class="de1"> <span class="co1">/// </summary></span></div></li>
<li class="li2"><div class="de2"> <span class="co1">/// <param name="file">Ole Document File</param></span></div></li>
<li class="li1"><div class="de1"> <span class="co1">/// <param name="value">Value to set as the property value</param></span></div></li>
<li class="li1"><div class="de1"> <span class="co1">/// <param name="saveDocument">Saves document if set to true</param></span></div></li>
<li class="li1"><div class="de1"> <span class="co1">/// <param name="closeDocument">Closes the document if set to true</param></span></div></li>
<li class="li1"><div class="de1"> <span class="kw1">private</span> <span class="kw1">static</span> <span class="kw4">void</span> SetTagField<span class="br0">(</span>DSOFile<span class="sy0">.</span><span class="me1">OleDocumentProperties</span> file, <span class="kw4">string</span> <span class="kw1">value</span>, <span class="kw4">bool</span> saveDocument <span class="sy0">=</span> <span class="kw1">true</span>, <span class="kw4">bool</span> closeDocument <span class="sy0">=</span> <span class="kw1">true</span><span class="br0">)</span></div></li>
<li class="li2"><div class="de2"> <span class="br0">{</span></div></li>
<li class="li1"><div class="de1"> <span class="kw4">bool</span> found <span class="sy0">=</span> <span class="kw1">false</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> <span class="kw1">foreach</span> <span class="br0">(</span>DSOFile<span class="sy0">.</span><span class="me1">CustomProperty</span> property <span class="kw1">in</span> file<span class="sy0">.</span><span class="me1">CustomProperties</span><span class="br0">)</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">{</span></div></li>
<li class="li1"><div class="de1"> <span class="kw1">if</span> <span class="br0">(</span>property<span class="sy0">.</span><span class="me1">Name</span> <span class="sy0">==</span> FILE_PROPERTY<span class="br0">)</span> <span class="co1">// Check property exists</span></div></li>
<li class="li2"><div class="de2"> <span class="br0">{</span></div></li>
<li class="li1"><div class="de1"> property<span class="sy0">.</span><span class="me1">set_Value</span><span class="br0">(</span><span class="kw1">value</span><span class="br0">)</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> found <span class="sy0">=</span> <span class="kw1">true</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> <span class="kw1">break</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">}</span></div></li>
<li class="li2"><div class="de2"> <span class="br0">}</span></div></li>
<li class="li1"><div class="de1"> </div></li>
<li class="li1"><div class="de1"> <span class="kw1">if</span> <span class="br0">(</span><span class="sy0">!</span>found<span class="br0">)</span></div></li>
<li class="li1"><div class="de1"> file<span class="sy0">.</span><span class="me1">CustomProperties</span><span class="sy0">.</span><span class="kw1">Add</span><span class="br0">(</span>FILE_PROPERTY, <span class="kw1">value</span><span class="br0">)</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> </div></li>
<li class="li2"><div class="de2"> <span class="kw1">if</span> <span class="br0">(</span>saveDocument<span class="br0">)</span></div></li>
<li class="li1"><div class="de1"> file<span class="sy0">.</span><span class="me1">Save</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> </div></li>
<li class="li1"><div class="de1"> <span class="kw1">if</span> <span class="br0">(</span>closeDocument<span class="br0">)</span></div></li>
<li class="li1"><div class="de1"> file<span class="sy0">.</span><span class="me1">Close</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></div></li>
<li class="li2"><div class="de2"> <span class="br0">}</span></div></li>
<li class="li1"><div class="de1"><span class="br0">}</span></div></li>
<li class="li1"><div class="de1"> </div></li>
</ol><div class="foot">End of Code Snippet</div></div>s34nvideoshttp://www.blogger.com/profile/16947568863329729565noreply@blogger.com17tag:blogger.com,1999:blog-8602939654357884727.post-6960532498071037452015-03-11T19:43:00.002-07:002015-03-11T19:43:25.911-07:00How To Link To And Embed YouTube Videos In HD Or A Specific Quality LevelHere is a great post on how to change the default quality of an embedded YouTube video on a webpage.<br />
<br />
<a href="http://www.h3xed.com/web-and-internet/link-directly-to-and-embed-hd-youtube-videos" target="_blank">http://www.h3xed.com/web-and-internet/link-directly-to-and-embed-hd-youtube-videos</a>s34nvideoshttp://www.blogger.com/profile/16947568863329729565noreply@blogger.com0tag:blogger.com,1999:blog-8602939654357884727.post-37110431029152194012015-02-14T20:11:00.001-08:002015-02-14T20:11:18.492-08:00Download ALL Old Versions of iTunesFound a really great website that let's you download ALL older versions of iTunes for iOS, Windows 32bit and Windows 64bit!<br />
<br />
<b>Website:</b> <a href="http://appstudio.org/itunes/" target="_blank">http://appstudio.org/itunes/</a>s34nvideoshttp://www.blogger.com/profile/16947568863329729565noreply@blogger.com0tag:blogger.com,1999:blog-8602939654357884727.post-63868574141387368902015-02-11T00:09:00.000-08:002015-02-11T00:09:49.877-08:00C# - Serialize and Deserialize using BinaryFormatter with Strings (WITHOUT Files)This code snippet will allow you to Serialize and DeSerialize any serializable object to a standard string and back. No need for binary files!<br />
<br />
<b>Usage:</b><br />
<div class="sh_csharp"><div class="head">Code Snippet</div><ol><li class="li1"><div class="de1"><span class="co1">// Inits</span></div></li>
<li class="li1"><div class="de1">CustomClass instance <span class="sy0">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> CustomClass<span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> </div></li>
<li class="li1"><div class="de1"><span class="co1">// Serialize</span></div></li>
<li class="li2"><div class="de2"><span class="kw4">string</span> data <span class="sy0">=</span> SerializeObject<span class="sy0"><</span>CustomClass<span class="sy0">></span><span class="br0">(</span>instance<span class="br0">)</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> </div></li>
<li class="li1"><div class="de1"><span class="co1">// DeSerialize</span></div></li>
<li class="li1"><div class="de1">CustomClass instance <span class="sy0">=</span> DeSerializeObject<span class="sy0"><</span>CustomClass<span class="sy0">></span><span class="br0">(</span>data<span class="br0">)</span><span class="sy0">;</span></div></li>
</ol><div class="foot">End of Code Snippet</div></div>
<br />
<br />
<div class="sh_csharp"><div class="head">Code Snippet</div><ol><li class="li1"><div class="de1"><span class="co1">// NOTE: The result of serializing an object with BinaryFormatter is an octet stream, not a string.</span></div></li>
<li class="li1"><div class="de1"><span class="co1">// If we encode the serialized object with Base64, we will get our string.</span></div></li>
<li class="li1"><div class="de1"><span class="kw1">public</span> <span class="kw1">static</span> <span class="kw4">string</span> SerializeObject<span class="sy0"><</span>T<span class="sy0">></span><span class="br0">(</span>T toSerialize<span class="br0">)</span></div></li>
<li class="li1"><div class="de1"><span class="br0">{</span></div></li>
<li class="li2"><div class="de2"> <span class="kw5">System.<span class="me1">Runtime</span><span class="sy0">.</span><span class="me1">Serialization</span><span class="sy0">.</span><span class="me1">Formatters</span><span class="sy0">.</span><span class="me1">Binary</span></span><span class="sy0">.</span><span class="me1">BinaryFormatter</span> formatter <span class="sy0">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> <span class="kw5">System.<span class="me1">Runtime</span><span class="sy0">.</span><span class="me1">Serialization</span><span class="sy0">.</span><span class="me1">Formatters</span><span class="sy0">.</span><span class="me1">Binary</span></span><span class="sy0">.</span><span class="me1">BinaryFormatter</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> </div></li>
<li class="li1"><div class="de1"> <span class="kw1">if</span> <span class="br0">(</span><span class="sy0">!</span>toSerialize<span class="sy0">.</span><span class="me1">GetType</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">.</span><span class="me1">IsSerializable</span><span class="br0">)</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">{</span></div></li>
<li class="li1"><div class="de1"> <span class="kw1">throw</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> Exception<span class="br0">(</span><span class="st0">"Object cannot be serialized in it's current state."</span><span class="br0">)</span><span class="sy0">;</span></div></li>
<li class="li2"><div class="de2"> <span class="br0">}</span></div></li>
<li class="li1"><div class="de1"> </div></li>
<li class="li1"><div class="de1"> <span class="kw1">using</span> <span class="br0">(</span>MemoryStream ms <span class="sy0">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> MemoryStream<span class="br0">(</span><span class="br0">)</span><span class="br0">)</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">{</span></div></li>
<li class="li1"><div class="de1"> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> <span class="kw5">System.<span class="me1">Runtime</span><span class="sy0">.</span><span class="me1">Serialization</span><span class="sy0">.</span><span class="me1">Formatters</span><span class="sy0">.</span><span class="me1">Binary</span></span><span class="sy0">.</span><span class="me1">BinaryFormatter</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">.</span><span class="me1">Serialize</span><span class="br0">(</span>ms, toSerialize<span class="br0">)</span><span class="sy0">;</span></div></li>
<li class="li2"><div class="de2"> <span class="kw1">return</span> Convert<span class="sy0">.</span><span class="me1">ToBase64String</span><span class="br0">(</span>ms<span class="sy0">.</span><span class="me1">ToArray</span><span class="br0">(</span><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">}</span></div></li>
<li class="li1"><div class="de1"><span class="br0">}</span></div></li>
<li class="li1"><div class="de1"> </div></li>
<li class="li1"><div class="de1"><span class="kw1">public</span> <span class="kw1">static</span> T DeSerializeObject<span class="sy0"><</span>T<span class="sy0">></span><span class="br0">(</span><span class="kw4">string</span> data<span class="br0">)</span></div></li>
<li class="li2"><div class="de2"><span class="br0">{</span></div></li>
<li class="li1"><div class="de1"> <span class="kw4">byte</span><span class="br0">[</span><span class="br0">]</span> bytes <span class="sy0">=</span> Convert<span class="sy0">.</span><span class="me1">FromBase64String</span><span class="br0">(</span>data<span class="br0">)</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> </div></li>
<li class="li1"><div class="de1"> <span class="kw1">using</span> <span class="br0">(</span>MemoryStream ms <span class="sy0">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> MemoryStream<span class="br0">(</span>bytes<span class="br0">)</span><span class="br0">)</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">{</span></div></li>
<li class="li2"><div class="de2"> <span class="kw1">return</span> <span class="br0">(</span>T<span class="br0">)</span><a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> <span class="kw5">System.<span class="me1">Runtime</span><span class="sy0">.</span><span class="me1">Serialization</span><span class="sy0">.</span><span class="me1">Formatters</span><span class="sy0">.</span><span class="me1">Binary</span></span><span class="sy0">.</span><span class="me1">BinaryFormatter</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">.</span><span class="me1">Deserialize</span><span class="br0">(</span>ms<span class="br0">)</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">}</span></div></li>
<li class="li1"><div class="de1"><span class="br0">}</span></div></li>
</ol><div class="foot">End of Code Snippet</div></div>s34nvideoshttp://www.blogger.com/profile/16947568863329729565noreply@blogger.com0tag:blogger.com,1999:blog-8602939654357884727.post-45107397453281083212015-02-06T19:37:00.002-08:002015-02-06T19:37:28.358-08:00Recursion and Recursive Methods for Dummies - Working C# Example<b>In Brief</b><br />
<b>What is Recursion</b>: Very simply put... A method that calls itself.<br />
<b>Why use Recursion?</b>: So we can repeat a methods logic any number of times with differing arguments.<br />
<b>What is an Example of Recursion?</b>: Directories which contain directories which contain more directories and you would like to scan through all of the files within this directory chain. We can create ONE SINGLE method to do this by calling itself recursively. See below for full example.<br />
<br />
Here is a working example of a recursive method in C#. It takes a file directory as an argument and recursively loops through all of the files which the WHOLE directory structure. It goes in deep, then works backwards. This is an example of <b>backwards or tail recursion</b>.<br />
<br />
<div class="sh_csharp"><div class="head">Code Snippet</div><ol><li class="li1"><div class="de1"><span class="kw1">public</span> <span class="kw4">void</span> NameOfRecursiveMethod<span class="br0">(</span><span class="kw4">string</span> directoryToSearch<span class="br0">)</span></div></li>
<li class="li1"><div class="de1"><span class="br0">{</span></div></li>
<li class="li1"><div class="de1"> <span class="co1">// Go in deep as far as possible, then work backwards.</span></div></li>
<li class="li1"><div class="de1"> <span class="co1">// Find all the subdirectories under this directory.</span></div></li>
<li class="li2"><div class="de2"> <span class="kw1">foreach</span> <span class="br0">(</span><span class="kw4">string</span> dir <span class="kw1">in</span> Directory<span class="sy0">.</span><span class="me1">GetDirectories</span><span class="br0">(</span>directoryToSearch<span class="br0">)</span><span class="br0">)</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">{</span></div></li>
<li class="li1"><div class="de1"> <span class="co1">// Recursive call for each subdirectory.</span></div></li>
<li class="li1"><div class="de1"> <span class="kw1">this</span><span class="sy0">.</span><span class="me1">NameOfRecursiveMethod</span><span class="br0">(</span>dir<span class="br0">)</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">}</span></div></li>
<li class="li2"><div class="de2"> </div></li>
<li class="li1"><div class="de1"> <span class="co1">// Note: The First time we arrive here will be inside the deepest first directory</span></div></li>
<li class="li1"><div class="de1"> <span class="co1">// Get all files in the directory</span></div></li>
<li class="li1"><div class="de1"> <span class="kw4">string</span><span class="br0">[</span><span class="br0">]</span> files <span class="sy0">=</span> Directory<span class="sy0">.</span><span class="me1">GetFiles</span><span class="br0">(</span>directoryToSearch<span class="br0">)</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> </div></li>
<li class="li2"><div class="de2"> <span class="kw1">foreach</span> <span class="br0">(</span><span class="kw4">string</span> filename <span class="kw1">in</span> files<span class="br0">)</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">{</span></div></li>
<li class="li1"><div class="de1"> <span class="co1">// Do something for each file here</span></div></li>
<li class="li1"><div class="de1"> </div></li>
<li class="li1"><div class="de1"> <span class="br0">}</span></div></li>
<li class="li2"><div class="de2"><span class="br0">}</span></div></li>
</ol><div class="foot">End of Code Snippet</div></div>s34nvideoshttp://www.blogger.com/profile/16947568863329729565noreply@blogger.com0tag:blogger.com,1999:blog-8602939654357884727.post-70074408571468505432015-02-06T16:48:00.001-08:002015-02-06T16:48:17.673-08:00How to Deep Clone an Object by Value and not by Reference in C#The following code snippet using serialization to deep clone an object in C#. Please note: ICloneable is a deprecated API. ICloneable is considered a poor API, since it does not specify whether the result is a deep or a shallow copy. <br />
<br />
<div class="sh_csharp"><div class="head">Code Snippet</div><ol><li class="li1"><div class="de1"><span class="co1">// Usage</span></div></li>
<li class="li1"><div class="de1">CLASSNAME clonedInstance <span class="sy0">=</span> DeepClone<span class="sy0"><</span>CLASSNAME<span class="sy0">></span><span class="br0">(</span>instance<span class="br0">)</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> </div></li>
<li class="li1"><div class="de1"> </div></li>
<li class="li2"><div class="de2"><span class="co1">// Deep clones an object</span></div></li>
<li class="li1"><div class="de1"><span class="co1">// Your class (and all sub-classes) MUST be marked as [Serializable] in order for this to work.</span></div></li>
<li class="li1"><div class="de1"><span class="kw1">public</span> <span class="kw1">static</span> T DeepClone<span class="sy0"><</span>T<span class="sy0">></span><span class="br0">(</span>T obj<span class="br0">)</span></div></li>
<li class="li1"><div class="de1"><span class="br0">{</span></div></li>
<li class="li1"><div class="de1"> <span class="kw1">using</span> <span class="br0">(</span><span class="kw1">var</span> ms <span class="sy0">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> <span class="kw5">System.<span class="me1">IO</span></span><span class="sy0">.</span><span class="me1">MemoryStream</span><span class="br0">(</span><span class="br0">)</span><span class="br0">)</span></div></li>
<li class="li2"><div class="de2"> <span class="br0">{</span></div></li>
<li class="li1"><div class="de1"> <span class="kw1">var</span> formatter <span class="sy0">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> <span class="kw5">System.<span class="me1">Runtime</span><span class="sy0">.</span><span class="me1">Serialization</span><span class="sy0">.</span><span class="me1">Formatters</span><span class="sy0">.</span><span class="me1">Binary</span></span><span class="sy0">.</span><span class="me1">BinaryFormatter</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> formatter<span class="sy0">.</span><span class="me1">Serialize</span><span class="br0">(</span>ms, obj<span class="br0">)</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> ms<span class="sy0">.</span><span class="me1">Position</span> <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> </div></li>
<li class="li2"><div class="de2"> <span class="kw1">return</span> <span class="br0">(</span>T<span class="br0">)</span>formatter<span class="sy0">.</span><span class="me1">Deserialize</span><span class="br0">(</span>ms<span class="br0">)</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">}</span></div></li>
<li class="li1"><div class="de1"><span class="br0">}</span></div></li>
</ol><div class="foot">End of Code Snippet</div></div>s34nvideoshttp://www.blogger.com/profile/16947568863329729565noreply@blogger.com1tag:blogger.com,1999:blog-8602939654357884727.post-48852806326281175382015-01-18T22:43:00.001-08:002015-01-18T22:43:20.404-08:00SQL - Find Duplicate Data Column ValuesHere is a quick snippet on how to find duplicate columns within your tables
<br /><br />
<div class="sh_tsql"><div class="head">Code Snippet</div><ol><li class="li1"><div class="de1"><span class="kw1">select</span> col1, col2, <span class="kw2">count</span><span class="br0">(</span><span class="sy0">*</span><span class="br0">)</span></div></li>
<li class="li1"><div class="de1"><span class="kw1">from</span> <span class="kw1">TABLE</span></div></li>
<li class="li1"><div class="de1"><span class="kw1">group</span> <span class="kw1">by</span> col1, col2</div></li>
<li class="li1"><div class="de1"><span class="kw1">having</span> <span class="kw2">count</span><span class="br0">(</span><span class="sy0">*</span><span class="br0">)</span> <span class="sy0">></span> <span class="nu0">1</span></div></li>
</ol><div class="foot">End of Code Snippet</div></div>s34nvideoshttp://www.blogger.com/profile/16947568863329729565noreply@blogger.com0tag:blogger.com,1999:blog-8602939654357884727.post-44339902551349695352015-01-13T10:27:00.001-08:002015-01-13T10:27:06.345-08:00Free DNS Tools: Ping, Lookup, Trace, Whois, DNS Records, Spam Blacklist Check, Network Lookup and more!<a href="http://network-tools.com/" target="_blank">http://network-tools.com/</a> is a great website that allows you to perform an array of network and troubleshooting steps on any domain or IP address. I use it a lot when troubleshooting domain nameservers and other things that domain registrars should get right, but fail to do so!<br />
<br />
Some of the sample operations that can be performed on a domain:<br />
Express<br />
Ping<br />
Lookup<br />
Trace<br />
Whois (IDN Conversion Tool)<br />
DNS Records (Advanced Tool)<br />
Network Lookup<br />
Spam Blacklist Check<br />
URL Decode<br />
URL Encode<br />
HTTP Headers with optional SSL<br />
Email Tests<br />
<br />
Check it out!s34nvideoshttp://www.blogger.com/profile/16947568863329729565noreply@blogger.com0tag:blogger.com,1999:blog-8602939654357884727.post-11866296033566115402015-01-11T13:50:00.000-08:002015-01-11T13:50:27.996-08:00Binding a DataGridView to a Collection - Notify Grid When Properties are Changed (BindingList and INotifyPropertyChanged)When utilising a DataGridView or similar control within your windows and web applications, you may wish to bind to a collection (List, ArrayList etc). Binding is always great as you can maintain and manage your custom objects very easily. What can be tough to manage is when you may wish to edit the controls data (A cells contents within a DataGridView for example), so you have to edit the data within your data source (I.e. List of custom objects), then re-bind to reflect the new changes.<br />
<br />
The method above would work, but utilising a more <a href="http://en.wikipedia.org/wiki/Observer_pattern" target="_blank">Observer Pattern</a> approach to our programming, we can automatically notify the grid when we update any of our properties within our custom collection. You simply need to inherit from INotifyPropertyChanged within your custom object and bind to a DataGridView with a BindingList collection (Very similar to a List). Within the set properties for your custom object, simply raise an event.<br />
<br />
A full example can be found here: <a href="http://tech.pro/tutorial/776/csharp-tutorial-binding-a-datagridview-to-a-collection" target="_blank">http://tech.pro/tutorial/776/csharp-tutorial-binding-a-datagridview-to-a-collection</a>s34nvideoshttp://www.blogger.com/profile/16947568863329729565noreply@blogger.com0tag:blogger.com,1999:blog-8602939654357884727.post-19063131657727584152015-01-11T08:00:00.002-08:002015-01-11T08:01:22.932-08:00Free DataGrid / DataGridView for WinForms and ASP.NET MVC (SourceGrid)SourceGrid is a .NET Windows Forms grid control written entirely in C# with managed code. SourceGrid can be used to visualize or to change data in a table format.<br />
<br />
<img src="http://download-codeplex.sec.s-msft.com/Download?ProjectName=sourcegrid&DownloadId=63333" />
<br />
<br />
<b>Features</b><br />
- three sub-components, Grid, DataGrid, ArrayGrid<br />
- Multi selection mode, Row Selection, Column selection, Free selection<br />
- Cell and Row spanning<br />
- MVC support<br />
- Full feature list<br />
<br />
<b>Website: </b><a href="http://sourcegrid.codeplex.com/" target="_blank">http://sourcegrid.codeplex.com</a><br />
<b>Code Project: </b><a href="http://www.codeproject.com/Articles/3531/SourceGrid-Open-Source-C-Grid-Control" target="_blank">http://www.codeproject.com/Articles/3531/SourceGrid-Open-Source-C-Grid-Control</a>s34nvideoshttp://www.blogger.com/profile/16947568863329729565noreply@blogger.com1tag:blogger.com,1999:blog-8602939654357884727.post-4246262719483929762014-12-16T20:56:00.000-08:002014-12-16T20:56:01.652-08:00Lock Web.Config ASP.NET Configuration SettingsBy default, ASP.NET configuration files that are located in subdirectories override and extend configuration settings that are declared in parent configuration files. In application hosting scenarios, you might want to lock some settings of an ASP.NET application to prevent modification at lower levels. For example, you can lock the security settings for hosted applications to help prevent administrators from inadvertently changing those security settings.<br />
<br />
You can lock configuration settings in ASP.NET configuration files (Web.config files) by adding an allowOverride attribute to a location element and setting the allowOverride attribute to false. Then within the location element, you can define the configuration section that you want to lock. ASP.NET will throw an exception if another configuration file attempts to override any configuration section that is defined within this locked location element.<br />
<br />
Using a location element with an allowOverride=false attribute locks the entire configuration section. You can also lock individual configuration elements and attributes using lockItem, lockElements, lockAttributes, lockAllAttributesExcept, and lockAllElementsExcept.<br />
<br />
<b>Example:</b><br />
The following code example shows part of a Web.config file that locks the trust level of two different ASP.NET applications: application1 and application2. Any attempt to override the configuration settings in the trust configuration section raises a configuration system error.<br />
<div class="sh_text"><div class="head">Code Snippet</div><ol><li class="li1"><div class="de1"><configuration></div></li>
<li class="li1"><div class="de1"> <location path="application1" allowOverride="false"></div></li>
<li class="li1"><div class="de1"> <system.web></div></li>
<li class="li1"><div class="de1"> <trust level="High" /></div></li>
<li class="li2"><div class="de2"> </system.web></div></li>
<li class="li1"><div class="de1"> </location></div></li>
<li class="li1"><div class="de1"> </div></li>
<li class="li1"><div class="de1"> <location path="application2" allowOverride="false"></div></li>
<li class="li1"><div class="de1"> <system.web></div></li>
<li class="li2"><div class="de2"> <trust level="Medium" /></div></li>
<li class="li1"><div class="de1"> </system.web></div></li>
<li class="li1"><div class="de1"> </location></div></li>
<li class="li1"><div class="de1"></configuration></div></li>
</ol><div class="foot">End of Code Snippet</div></div>
s34nvideoshttp://www.blogger.com/profile/16947568863329729565noreply@blogger.com0tag:blogger.com,1999:blog-8602939654357884727.post-66759091433465219012014-12-16T20:42:00.002-08:002014-12-16T20:49:09.476-08:00Avoid Web.Config Inheritance in Child Web Application by using location inheritInChildApplications = falseWith shared hosting platforms like: HostGator, GoDaddy, Dreamhost to name a few, you can easily pickup some entry level Windows Plesk Hosting with all the ASP.NET trimmings quite cheaply! If you're an avid developer with a hand in all the pies, you probably have at least 5 or more web apps and/or web services you want to host all in the same shared hosting space!<br /> If this IS your scenario, beware that entry level shared hosting plans have ONE APP POOL for ALL of your apps! See my post on <a href="http://tutorialgenius.blogspot.com/2014/12/how-many-web-applications-per.html" target="_blank">Application Pools and Web Applications</a> for more information.<br />
<br />
<b>Why may I need to do this?</b><br />
If you have a web application, for example, sitting in your root directory and another web application/service sitting in a sub folder, then by default, this child web app will inherit the Web.Config settings of the root application.<br />
If your root application is .NET 4.5 and your sub-apps are .NET 2.0, then you may already be seeing a few fancy errors! This is just one of many reasons why we need to prevent this. This post outlines TWO methods to do this...<br />
<br />
<b>Method 1</b><br />
You can prevent inheritance by utilizing the location tag's inheritInChildApplications attribute. You should put the location tag in the ROOT Web.Config and NOT the child app's Web.Config in our example. The path attribute of the location tag is set to a wildcard (.) to specify ANY child app location. You can set this to a path attribute to target a single app if you prefer by entering it's location. As good practice, you should wrap individual tags with the location tag (The location tag can appear more than once in the Web.Config file!). Do not wrap EVERYTHING in the Web.Config with the location tag.
<br />
<div class="sh_text"><div class="head">Code Snippet</div><ol><li class="li1"><div class="de1"><?xml version="1.0"?></div></li>
<li class="li1"><div class="de1"><configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"></div></li>
<li class="li1"><div class="de1"><!-- disable inheritance for the connectionStrings section --></div></li>
<li class="li1"><div class="de1"><location path="." inheritInChildApplications="false"></div></li>
<li class="li2"><div class="de2"> <connectionStrings></div></li>
<li class="li1"><div class="de1"> </connectionStrings></div></li>
<li class="li1"><div class="de1"></location></div></li>
<li class="li1"><div class="de1"> </div></li>
<li class="li1"><div class="de1"><!-- leave inheritance enabled for appSettings --></div></li>
<li class="li2"><div class="de2"><appSettings></div></li>
<li class="li1"><div class="de1"></appSettings></div></li>
<li class="li1"><div class="de1"> </div></li>
<li class="li1"><div class="de1"><!-- disable inheritance for the system.web section --></div></li>
<li class="li1"><div class="de1"><location path="." inheritInChildApplications="false"></div></li>
<li class="li2"><div class="de2"> <system.web></div></li>
<li class="li1"><div class="de1"> <webParts></div></li>
<li class="li1"><div class="de1"> </webParts></div></li>
<li class="li1"><div class="de1"> <membership></div></li>
<li class="li1"><div class="de1"> </membership></div></li>
<li class="li2"><div class="de2"> </div></li>
<li class="li1"><div class="de1"> <compilation></div></li>
<li class="li1"><div class="de1"> </compilation></div></li>
<li class="li1"><div class="de1"> </system.web></div></li>
<li class="li1"><div class="de1"> </location></div></li>
<li class="li2"><div class="de2"></configuration></div></li>
</ol><div class="foot">End of Code Snippet</div></div>
<br />
<b>Note: </b>I included xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0" as an attribute of the configuration tag as inheritInChildApplications is defined in the .NET 2.0 schema. Setting this is good practise and will also remove the warning in Visual Studio about the inheritInChildApplications attribute not being recognized.<br />
<b><font color="red">WARNING!!!</font> </b>There is no good way of disabling inheritance of the configSections tag (As configSections must appear as the first tag in the Web.Config!). Microsoft issued a statement stating that it would be too complex to handle this appropriately using their given development methods. Simply, make sure that your sectiongroup name's don't clash with child apps. You can simply rename one of them if they do share the same name. Easy fix!<br />
<br />
<br />
<b>Method 2</b><br />
You can also prevent inheritance by using clear and/or remove tags in the child's Web.Config to clear our any inherited values defined in the root Web.Config.<br />
This is an example of a child app's Web.Config. It clears our any inherited connection strings defined by the root application. You then define the child app's connection strings BELOW the clear attribute. Note: Depending upon the Web.Config tag involved, you may need a remove attribute rather than a clear. <br />
<div class="sh_text"><div class="head">Code Snippet</div><ol><li class="li1"><div class="de1"><?xml version="1.0"?></div></li>
<li class="li1"><div class="de1"><configuration></div></li>
<li class="li1"><div class="de1"> <connectionStrings></div></li>
<li class="li1"><div class="de1"> <clear/></div></li>
<li class="li2"><div class="de2"> <!-- Child config's connection strings --></div></li>
<li class="li1"><div class="de1"> </connectionStrings></div></li>
<li class="li1"><div class="de1"></configuration></div></li>
</ol><div class="foot">End of Code Snippet</div></div>
<br />
<br />s34nvideoshttp://www.blogger.com/profile/16947568863329729565noreply@blogger.com0tag:blogger.com,1999:blog-8602939654357884727.post-48798229934772128092014-12-16T19:49:00.003-08:002014-12-16T20:07:14.520-08:00How Many Web Applications Should I Run Per Application PoolWhen we think of desktop applications like notepad, we know that each time it runs, the OS defines a new process (notepad.exe for example)... <br />
<br />
This is not the same for a web application... A web application needs a host process to be executed. This means that a process manages the web application and allows its execution. Starting from IIS6, this process is called w3wp.exe.<br />
A web application runs on top of an application pool that you define in IIS. An application pool, can be associated to one or more worker processes.<br />
<br />
The following example defines a common mistake people make when setting up web applications within web servers.... A web server administrator defines an application pool and executes multiple web applications on top of it. I worked with customer who has 20 -30-web applications on top of a single application pool!<br />
This is bad very bad especially for 32-bit processes. Let me try to explain why...<br />
<br />
Every web application needs:<br />
1. Assemblies loaded in memory<br />
2. Memory to calculate the application goal.<br />
<br />
If you define a single application pool for all web applications, what happens is that all web apps have to load their assemblies and share the same memory. Do you think that this memory is infinite? No, it is not.<br />
<br />
In a 32-bit process, by default every application can allocate 2GB of memory and a 32-bit process on a 64-bit machine 4GB. Those values are the maximum ones available by default, but do not except to use all that memory.<br />
<br />
Typically, an Out Of Memory exception occurs before that value. It happens due to internal memory fragmentation!<br />
<br />
In the case that your applications are managed: ASP.NET to be clear, what happens is that Garbage Collector (GC) cleans up the memory. If all web applications share the same memory, then this one is under pressure.<br />
It means that GC runs multiple times per second in order to provide clean memory for your app. What is the side effect? In server mode, the GC is required to stop all threads activities to clean up the memory (this was improved on .NET Fx 4.5, where the collation does not require to stop all threads).<br />
<br />
What is the side effect?<br />
Slow performance of your web application<br />
High impact on CPU time due to GC’s activity.<br />
<br />
Furthermore, if one of your web applications crashes, all application running on the same pool will be impacted. There are also other things to consider....<br />
Threadpool, the number of threads that a single process can define is not infinite. So all of the web applications have to share that number/threads. Same thing for the connection pool and so on.<br />
<br />
Please do not consider this post in the following way: define necessarily one application pool per web application. This is not the goal, IIS gives you the flexibility to host multiple applications on the same application pool. However, when you decide how many applications have to run on top of the same application pool, take care!<br /><br />s34nvideoshttp://www.blogger.com/profile/16947568863329729565noreply@blogger.com0tag:blogger.com,1999:blog-8602939654357884727.post-61409637735881837442014-12-16T19:31:00.000-08:002014-12-16T19:31:19.295-08:00WebForms UnobtrusiveValidationMode requires a ScriptResourceMapping for 'jquery'. Please add a ScriptResourceMapping named jquery(case-sensitive)<b>Example scenario when you might stumble across this error</b><br />
When your creating a web application which utilizes the jquery framework and is targeted against .NET 4.5 framework (I.e. When httpRuntime targetFramework is set to 4.5 in your config).<br />
<br />
<b>What is jQuery Unobtrusive Validation?</b><br />
Basically, it is simply Javascript validation that doesn't pollute your source code with its own validation code. This is done by making use of <b>data-</b> attributes in HTML. You can then read the validation even in the HTML source.<br />
<br />
With the unobtrusive way:<br />
<br />
You don't have to call the validate() method.<br />
You specify requirements using data attributes (data-val, data-val-required, etc.)<br />
<br />
<b>Jquery Validate Example:</b><br />
<br />
<div class="sh_html4strict"><div class="head">Code Snippet</div><ol><li class="li1"><div class="de1"><span class="sc2"><<a href="http://december.com/html/4/element/input.html"><span class="kw2">input</span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">"text"</span> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">"email"</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">"required"</span>></span></div></li>
<li class="li1"><div class="de1"><span class="sc2"><<a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a>></span></div></li>
<li class="li1"><div class="de1"> $(function () {</div></li>
<li class="li1"><div class="de1"> $("form").validate();</div></li>
<li class="li2"><div class="de2"> });</div></li>
<li class="li1"><div class="de1"><span class="sc2"><<span class="sy0">/</span><a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a>></span></div></li>
</ol><div class="foot">End of Code Snippet</div></div>
<br />
<br />
<b>Jquery Validate Unobtrusive Example:</b><br />
<br />
<div class="sh_html4strict"><div class="head">Code Snippet</div><ol><li class="li1"><div class="de1"><span class="sc2"><<a href="http://december.com/html/4/element/input.html"><span class="kw2">input</span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">"text"</span> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">"email"</span> data-val<span class="sy0">=</span><span class="st0">"true"</span> </span></div></li>
<li class="li1"><div class="de1"><span class="sc2">data-val-required<span class="sy0">=</span><span class="st0">"This field is required."</span>></span> </div></li>
<li class="li1"><div class="de1"> </div></li>
<li class="li1"><div class="de1"><span class="sc2"><<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">"validation-summary-valid"</span> data-valmsg-<span class="kw3">summary</span><span class="sy0">=</span><span class="st0">"true"</span>></span></div></li>
<li class="li2"><div class="de2"> <span class="sc2"><<a href="http://december.com/html/4/element/ul.html"><span class="kw2">ul</span></a>><<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a> <span class="kw3">style</span><span class="sy0">=</span><span class="st0">"display:none"</span>><<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>><<span class="sy0">/</span><a href="http://december.com/html/4/element/ul.html"><span class="kw2">ul</span></a>></span></div></li>
<li class="li1"><div class="de1"><span class="sc2"><<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>></span></div></li>
</ol><div class="foot">End of Code Snippet</div></div>
<br />
<br />
<b>How to use jQuery Unobtrusive Validation and FIX the issue</b><br />
You can fix this problem by registering jQuery in Global.asax in the Application_Start event. Be sure to replace the jquery version with your particular version!<br />
<br />
<div class="sh_csharp"><div class="head">Code Snippet</div><ol><li class="li1"><div class="de1">ScriptManager<span class="sy0">.</span><span class="me1">ScriptResourceMapping</span><span class="sy0">.</span><span class="me1">AddDefinition</span><span class="br0">(</span><span class="st0">"jquery"</span>, </div></li>
<li class="li1"><div class="de1"> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> ScriptResourceDefinition</div></li>
<li class="li1"><div class="de1"><span class="br0">{</span></div></li>
<li class="li1"><div class="de1">Path <span class="sy0">=</span> <span class="st0">"~/scripts/jquery-1.7.2.min.js"</span>,</div></li>
<li class="li2"><div class="de2">DebugPath <span class="sy0">=</span> <span class="st0">"~/scripts/jquery-1.7.2.min.js"</span>,</div></li>
<li class="li1"><div class="de1">CdnPath <span class="sy0">=</span> <span class="st0">"http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.1.min.js"</span>,</div></li>
<li class="li1"><div class="de1">CdnDebugPath <span class="sy0">=</span> <span class="st0">"http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.1.js"</span></div></li>
<li class="li1"><div class="de1"><span class="br0">}</span><span class="br0">)</span><span class="sy0">;</span></div></li>
</ol><div class="foot">End of Code Snippet</div></div>
<br />
<b>How to disable jQuery Unobtrusive Validation</b><br/>
Add this code snippet to your web.config file. If this key value is set to "None" [default], the ASP.NET application will use the pre-4.5 behavior (JavaScript inline in the pages) for client-side validation logic. However, If this key value is set to "WebForms", ASP.NET uses HTML5 data-attributes and late bound JavaScript from an added script reference for client-side validation logic.<br/>
<div class="sh_text"><div class="head">Code Snippet</div><ol><li class="li1"><div class="de1"><appSettings></div></li>
<li class="li1"><div class="de1"> <add key="ValidationSettings:UnobtrusiveValidationMode" value="None" /></div></li>
<li class="li1"><div class="de1"></appSettings></div></li>
</ol><div class="foot">End of Code Snippet</div></div>s34nvideoshttp://www.blogger.com/profile/16947568863329729565noreply@blogger.com0tag:blogger.com,1999:blog-8602939654357884727.post-46651717653692445922014-12-13T14:22:00.000-08:002014-12-13T14:28:23.457-08:00Apply a Text Label with Optional background on to a Graphics Object (System.Drawing)The following code allows you to apply to text label on to a Graphics object in C#. The background is optional but very useful if you want to set a properly aligned background color for your text label. Note: I use a lot of using statements so that anything implementing IDisposable is disposed of properly.<br />
<br />
<b>Usage:</b><br />
<div class="sh_csharp"><div class="head">Code Snippet</div><ol><li class="li1"><div class="de1"><span class="kw1">using</span> <span class="br0">(</span>Bitmap b <span class="sy0">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> Bitmap<span class="br0">(</span><span class="st0">"FULL PATH TO YOUR IMAGE"</span><span class="br0">)</span><span class="br0">)</span></div></li>
<li class="li1"><div class="de1"><span class="br0">{</span></div></li>
<li class="li1"><div class="de1"> <span class="kw1">using</span> <span class="br0">(</span>Graphics g <span class="sy0">=</span> Graphics<span class="sy0">.</span><span class="me1">FromImage</span><span class="br0">(</span>b<span class="br0">)</span><span class="br0">)</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">{</span></div></li>
<li class="li2"><div class="de2"> <span class="kw1">using</span> <span class="br0">(</span>Font fontText <span class="sy0">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> Font<span class="br0">(</span><a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> FontFamily<span class="br0">(</span><span class="st0">"Verdana"</span><span class="br0">)</span>, <span class="nu0">14</span>, FontStyle<span class="sy0">.</span><span class="me1">Bold</span><span class="br0">)</span><span class="br0">)</span> <span class="co1">// Verdana 14em Bold</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">{</span></div></li>
<li class="li1"><div class="de1"> <span class="kw1">using</span> <span class="br0">(</span>Brush fontTextBrush <span class="sy0">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> SolidBrush<span class="br0">(</span>Color<span class="sy0">.</span><span class="me1">White</span><span class="br0">)</span><span class="br0">)</span> <span class="co1">// White Text Color</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">{</span></div></li>
<li class="li1"><div class="de1"> PointF fontTextPoint <span class="sy0">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> PointF<span class="br0">(</span><span class="nu0">5</span>, <span class="nu0">5</span><span class="br0">)</span><span class="sy0">;</span> <span class="co1">// Write the text at position (5,5)</span></div></li>
<li class="li2"><div class="de2"> <span class="kw4">string</span> textLabel <span class="sy0">=</span> <span class="st0">"Hello From TutorialGenius.com!"</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> </div></li>
<li class="li1"><div class="de1"> <span class="co1">// Example - Black background</span></div></li>
<li class="li1"><div class="de1"> <span class="kw1">this</span><span class="sy0">.</span><span class="me1">ApplyText</span><span class="br0">(</span>g, textLabel, fontText, fontTextBrush, fontTextPoint, Color<span class="sy0">.</span><span class="me1">Black</span><span class="br0">)</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> </div></li>
<li class="li2"><div class="de2"> <span class="co1">// Example - No background</span></div></li>
<li class="li1"><div class="de1"> <span class="kw1">this</span><span class="sy0">.</span><span class="me1">ApplyText</span><span class="br0">(</span>g, textLabel, fontText, fontTextBrush, fontTextPoint<span class="br0">)</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">}</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">}</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">}</span></div></li>
<li class="li2"><div class="de2"><span class="br0">}</span></div></li>
</ol><div class="foot">End of Code Snippet</div></div>
<br />
<br />
<div class="sh_csharp"><div class="head">Code Snippet</div><ol><li class="li1"><div class="de1"><span class="co1">// Applies a text layer with optional background onto a Graphics object</span></div></li>
<li class="li1"><div class="de1"><span class="kw1">private</span> <span class="kw4">void</span> ApplyText<span class="br0">(</span>Graphics g, <span class="kw4">string</span> text, Font font, Brush brush, PointF<span class="sy0">?</span> point <span class="sy0">=</span> <span class="kw1">null</span>, Color<span class="sy0">?</span> backgroundColor <span class="sy0">=</span> <span class="kw1">null</span><span class="br0">)</span></div></li>
<li class="li1"><div class="de1"><span class="br0">{</span></div></li>
<li class="li1"><div class="de1"> <span class="kw1">if</span> <span class="br0">(</span>point <span class="sy0">==</span> <span class="kw1">null</span><span class="br0">)</span> point <span class="sy0">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> PointF<span class="br0">(</span><span class="nu0">0</span>, <span class="nu0">0</span><span class="br0">)</span><span class="sy0">;</span></div></li>
<li class="li2"><div class="de2"> </div></li>
<li class="li1"><div class="de1"> <span class="co1">// First - Apply optional background color</span></div></li>
<li class="li1"><div class="de1"> <span class="kw1">if</span> <span class="br0">(</span>backgroundColor<span class="sy0">.</span><span class="me1">HasValue</span><span class="br0">)</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">{</span></div></li>
<li class="li1"><div class="de1"> SizeF fontTextSize <span class="sy0">=</span> g<span class="sy0">.</span><span class="me1">MeasureString</span><span class="br0">(</span>text, font<span class="br0">)</span><span class="sy0">;</span></div></li>
<li class="li2"><div class="de2"> <span class="kw1">using</span> <span class="br0">(</span>Brush fillBrush <span class="sy0">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> SolidBrush<span class="br0">(</span>Color<span class="sy0">.</span><span class="me1">Black</span><span class="br0">)</span><span class="br0">)</span></div></li>
<li class="li1"><div class="de1"> g<span class="sy0">.</span><span class="me1">FillRectangle</span><span class="br0">(</span>fillBrush, point<span class="sy0">.</span><span class="kw1">Value</span><span class="sy0">.</span><span class="me1">X</span>, point<span class="sy0">.</span><span class="kw1">Value</span><span class="sy0">.</span><span class="me1">Y</span>, fontTextSize<span class="sy0">.</span><span class="me1">Width</span>, fontTextSize<span class="sy0">.</span><span class="me1">Height</span><span class="br0">)</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"> <span class="br0">}</span></div></li>
<li class="li1"><div class="de1"> </div></li>
<li class="li1"><div class="de1"> <span class="co1">// Second - Draw string on graphics object</span></div></li>
<li class="li2"><div class="de2"> g<span class="sy0">.</span><span class="me1">DrawString</span><span class="br0">(</span>text, font, brush, point<span class="sy0">.</span><span class="kw1">Value</span><span class="br0">)</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"><span class="br0">}</span></div></li>
</ol><div class="foot">End of Code Snippet</div></div>s34nvideoshttp://www.blogger.com/profile/16947568863329729565noreply@blogger.com0tag:blogger.com,1999:blog-8602939654357884727.post-89937716675270247442014-12-13T13:04:00.001-08:002014-12-13T13:04:46.810-08:00How to Reflow Electronic Components - Motherboards, Video Cards, PCBs etc! (Oven Baking Method!)<b>What is a Reflow?</b><br />
The term ‘reflow’ describes a process of briefly melting (reflowing) the solder on an electrical circuit board, in this case a laptop motherboard.<br />
<br />
<b>Why would you perform a Reflow on a laptop motherboard?</b><br />
The solder used in laptop motherboards tends to degrade over time, becoming brittle and weak. It can change from being a solid block of solder into more of a honeycomb structure. This weaker solder joint can fracture causing tiny broken connections in the circuit, invisible to the naked eye. The idea behind performing a reflow is that it melts the solder, allowing it to form a solid block again and joining up the electrical circuit.<br />
<br />
<b>See more here, it uses a motherboard as an example</b><br />
<a href="http://www.computerrepairtips.net/how-to-reflow-a-laptop-motherboard/" target="_blank">http://www.computerrepairtips.net/how-to-reflow-a-laptop-motherboard/</a>s34nvideoshttp://www.blogger.com/profile/16947568863329729565noreply@blogger.com0tag:blogger.com,1999:blog-8602939654357884727.post-3898597291605878122014-12-06T22:22:00.000-08:002014-12-06T22:22:00.222-08:00C#/ASP.NET - Testing Email from localhost without SMTP ServerA lot of the time when developing apps, you need to send emails from your application. Developers need a way to test this and sometimes setting up a SMTP server is a little overkill. Thankfully, the .NET framework has a built in way for you to set this up so you can send the emails to your hard drive as opposed to a SMTP server.<br />
<br />
Simply add the following code to your web.config or app.config...<br />
<br />
<div class="sh_text"><div class="head">Code Snippet</div><ol><li class="li1"><div class="de1"><system.net></div></li>
<li class="li1"><div class="de1"><mailSettings></div></li>
<li class="li1"><div class="de1"><smtp deliveryMethod="SpecifiedPickupDirectory"></div></li>
<li class="li1"><div class="de1"><specifiedPickupDirectory pickupDirectoryLocation="c:\Temp\" /></div></li>
<li class="li2"><div class="de2"></smtp></div></li>
<li class="li1"><div class="de1"></mailSettings></div></li>
<li class="li1"><div class="de1"></system.net></div></li>
</ol><div class="foot">End of Code Snippet</div></div>
<br />
<br />
<b>Usage:</b><br />
<div class="sh_csharp"><div class="head">Code Snippet</div><ol><li class="li1"><div class="de1"><span class="kw5">System.<span class="me1">Net</span></span><span class="sy0">.</span><span class="me1">Mail</span><span class="sy0">.</span><span class="me1">MailMessage</span> mail <span class="sy0">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> <span class="kw5">System.<span class="me1">Net</span></span><span class="sy0">.</span><span class="me1">Mail</span><span class="sy0">.</span><span class="me1">MailMessage</span><span class="br0">(</span><span class="st0">"fromEmail@email.com"</span>,</div></li>
<li class="li1"><div class="de1"><span class="st0">"toEmail@email.com"</span>, <span class="st0">"Test"</span>, <span class="st0">"Test Body"</span><span class="br0">)</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"><span class="kw5">System.<span class="me1">Net</span></span><span class="sy0">.</span><span class="me1">Mail</span><span class="sy0">.</span><span class="me1">SmtpClient</span> client <span class="sy0">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> <span class="kw5">System.<span class="me1">Net</span></span><span class="sy0">.</span><span class="me1">Mail</span><span class="sy0">.</span><span class="me1">SmtpClient</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1">client<span class="sy0">.</span><span class="me1">Send</span><span class="br0">(</span>mail<span class="br0">)</span><span class="sy0">;</span></div></li>
</ol><div class="foot">End of Code Snippet</div></div>s34nvideoshttp://www.blogger.com/profile/16947568863329729565noreply@blogger.com0