<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2362511696290915939</id><updated>2012-02-01T20:40:57.101-08:00</updated><category term='controllers'/><category term='certifications'/><category term='malware'/><category term='hash'/><category term='remove-item'/><category term='privacy'/><category term='analytics'/><category term='api'/><category term='measure'/><category term='mdc'/><category term='threading'/><category term='sqlserver'/><category term='microsoft-can-we-get-a-text-version-please?'/><category term='timer'/><category term='powershell'/><category term='git'/><category term='message'/><category term='recaptcha'/><category term='apps'/><category term='xpath'/><category term='ave'/><category term='email'/><category term='redirect'/><category term='morse'/><category term='minifier'/><category term='variables'/><category term='encodeURIComponent'/><category term='iis'/><category term='sha'/><category term='type'/><category term='301'/><category term='host'/><category term='502'/><category term='format'/><category term='inventory'/><category term='happy new year'/><category term='pdf'/><category term='w3wp.exe'/><category term='mvc'/><category term='online'/><category term='teapot'/><category term='text'/><category term='dns'/><category term='pixel'/><category term='view'/><category term='asp.net'/><category term='checkout'/><category term='actions'/><category term='framework'/><category term='project'/><category term='yams internet recipe machine'/><category term='svn'/><category term='google'/><category term='feeds'/><category term='cryptography'/><category term='generic'/><category term='concat'/><category term='status'/><category term='webfonts'/><category term='minutes'/><category term='event'/><category term='cousine - google webfonts'/><category term='about'/><category term='template'/><category term='command'/><category term='demo'/><category term='stopwatch'/><category term='concatenate'/><category term='tasks'/><category term='302'/><category term='3.5'/><category term='lazy'/><category term='stathread'/><category term='response'/><category term='invoke-item'/><category term='uml'/><category term='code'/><category term='200'/><category term='catalog'/><category term='hardware'/><category term='alias'/><category term='watin'/><category term='difftool'/><category term='milliseconds'/><category term='silverlight'/><category term='files'/><category term='google translate api'/><category term='jquery'/><category term='print'/><category term='diagram'/><category term='namespace'/><category term='entropy'/><category term='index'/><category term='charlie'/><category term='routing'/><category term='nato'/><category term='ip address'/><category term='md5'/><category term='lekton - google webfonts'/><category term='418'/><category term='examdiffpro'/><category term='templates'/><category term='interop'/><category term='block'/><category term='icomparer'/><category term='path'/><category term='setwindowtext'/><category term='html5'/><category term='web'/><category term='encoding'/><category term='registry'/><category term='ads'/><category term='firebug'/><category term='aliasware'/><category term='open source'/><category term='process id'/><category term='date'/><category term='4.0'/><category term='encodeURI'/><category term='c#'/><category term='encryption'/><category term='minimum'/><category term='css'/><category term='pinvoke'/><category term='shortcuts'/><category term='keyboard'/><category term='.net'/><category term='3'/><category term='isolated storage'/><category term='vb.net'/><category term='cpu'/><category term='utility'/><category term='no-more-pdf'/><category term='alphabet'/><category term='notes'/><category term='text-zip'/><category term='stop'/><category term='add-type'/><category term='src'/><category term='security'/><category term='tracking'/><category term='cheese'/><category term='sequence'/><category term='aliasinfo'/><category term='envdte'/><category term='macros'/><category term='object'/><category term='adware'/><category term='maproute'/><category term='visual studio'/><category term='max'/><category term='products'/><category term='permissions'/><category term='custom'/><category term='view source'/><category term='html'/><category term='ssl'/><category term='regular expressions'/><category term='workstation'/><category term='norad'/><category term='sqlcmd'/><category term='chars'/><category term='get-alias'/><category term='app pools'/><category term='selectors'/><category term='javascript'/><category term='asynchronous'/><category term='digest'/><category term='2011'/><category term='map'/><category term='environment'/><category term='http'/><category term='help'/><category term='string'/><category term='codes'/><category term='compression'/><category term='no-more-doc'/><category term='cmdlet'/><category term='download'/><category term='delete'/><category term='f#'/><category term='p#'/><category term='allerta stencil - google webfonts'/><category term='browser'/><category term='handle'/><category term='sliksvn'/><category term='parallel'/><category term='windows'/><category term='layout'/><category term='open'/><category term='404'/><category term='folders'/><category term='count'/><category term='file'/><category term='phonetic'/><category term='code review'/><category term='sharpZipLib'/><category term='debug'/><category term='no-more-docx'/><category term='snippet'/><category term='webclient'/><category term='ajax'/><category term='convert'/><category term='viewsource'/><category term='2010'/><category term='ralph'/><category term='communication'/><category term='ascii'/><category term='appcmd'/><category term='config'/><category term='alpha'/><category term='min'/><category term='source'/><category term='tags'/><category term='captcha'/><category term='running'/><category term='hacks'/><category term='languages'/><category term='razor'/><category term='dictionary'/><category term='bravo'/><category term='search'/><category term='https'/><category term='data'/><category term='zip'/><title type='text'>Expression Software Blog</title><subtitle type='html'>&lt;a href="http://www.expressionsoftware.com"&gt;home&lt;/a&gt;, 
&lt;a href="http://www.expressionsoftware.com/search/"&gt;search&lt;/a&gt;,
 &lt;a href="http://blog.expressionsoftware.com/feeds/posts/default"&gt;atom&lt;/a&gt;,
 &lt;a href="http://blog.expressionsoftware.com/feeds/posts/default?alt=rss"&gt;rss&lt;/a&gt;,
 &lt;a href="http://profiles.google.com/110929499197835402914/buzz"&gt;google buzz blog reader shared items&lt;/a&gt;</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>70</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-4168230263658855244</id><published>2011-09-01T00:00:00.000-07:00</published><updated>2011-09-01T21:26:17.713-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='http'/><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><category scheme='http://www.blogger.com/atom/ns#' term='event'/><category scheme='http://www.blogger.com/atom/ns#' term='webclient'/><category scheme='http://www.blogger.com/atom/ns#' term='download'/><category scheme='http://www.blogger.com/atom/ns#' term='string'/><category scheme='http://www.blogger.com/atom/ns#' term='asynchronous'/><title type='text'>Powershell Asynchronous Download String</title><content type='html'>&lt;a href="http://msdn.microsoft.com/en-us/library/ms144202.aspx"&gt;WebClient DownloadStringAsync&lt;/a&gt;&lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/dd347672.aspx"&gt;Powershell Register-ObjectEvent&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.management.automation.pseventargs_properties(v=VS.85).aspx"&gt;PSEventArgs Properties&lt;/a&gt;&lt;br /&gt;&lt;pre style="font-family:courier new"&gt;# - get webclient&lt;br /&gt;$webClient = new-object net.webclient&lt;br /&gt;&lt;br /&gt;# - register event handler for DownloadStringCompleted event&lt;br /&gt;#   action script block is event handler code, show string DownloadStringCompletedEventArgs.Result&lt;br /&gt;register-objectEvent $webClient downloadStringCompleted e1 {write-host $args[1].result}  #positional input params&lt;br /&gt;&lt;br /&gt;# - begin asynchronous download string&lt;br /&gt;#   event handlers will execute when download is complete&lt;br /&gt;$webClient.downloadStringAsync(&amp;quot;http://www.expressionsoftware.com&amp;quot;)&lt;br /&gt;&lt;br /&gt;# - list event subscriptions&lt;br /&gt;get-eventSubscriber  #output #SubscriptionId  : 1&lt;br /&gt;                             #SourceObject    : System.Net.WebClient&lt;br /&gt;                             #EventName       : downloadStringCompleted&lt;br /&gt;                             #SourceIdentifier: e1&lt;br /&gt;                             #Action          : System.Management.Automation.PSEventJob&lt;br /&gt;                             #SupportEvent    : False&lt;br /&gt;                             #ForwardEvent    : False&lt;br /&gt;                             #HandlerDelegate :&lt;br /&gt;&lt;br /&gt;# - list jobs&lt;br /&gt;get-job | fl  #output  #Id           : 1&lt;br /&gt;                       #Name         : e1&lt;br /&gt;                       #Command      : write-host $args[1].result&lt;br /&gt;                       #State        : Running&lt;br /&gt;                       #JobStateInfo : Running&lt;br /&gt;                       #HasMoreData  : True&lt;br /&gt;                       #Finished     : System.Threading.ManualResetEvent&lt;br /&gt;                       #InstanceId   : 010f31f4-e8d2-4742-a782-79057faefebf&lt;br /&gt;                       #Module       : __DynamicModule_a48149c1-5a56-4172-bc68-473ec7c83119&lt;br /&gt;                       #StatusMessage:   #Location&lt;br /&gt;                       #ChildJobs    : {}  #Output, Error, Progress, Verbose, Debug, Warning&lt;br /&gt;&lt;br /&gt;# - register another handler, multiple event handlers supported, named input params&lt;br /&gt;register-objectEvent -inputObject $webClient `&lt;br /&gt;                     -eventName downloadStringCompleted `&lt;br /&gt;                     -sourceIdentifier e2 `&lt;br /&gt;                     -action {write-host (&amp;quot;async event at {0}`nevent handler source identifier: {1}`n{2}&amp;quot; -f ($event.timeGenerated.tostring(&amp;quot;HH:mm:ss&amp;quot;)), $event.sourceIdentifier, $args[1].result)}&lt;br /&gt;&lt;br /&gt;# - unregister events&lt;br /&gt;unregister-event -subscriptionId 1&lt;br /&gt;unregister-event -sourceIdentifier e2&lt;br /&gt;get-eventsubscriber -force | unregister-event -force  #unregister all events&lt;br /&gt;&lt;br /&gt;# - synchronous download string&lt;br /&gt;$webClient.downloadString(&amp;quot;http://www.expressionsoftware.com&amp;quot;)&lt;/pre&gt;&lt;br /&gt;&lt;a href="http://blog.expressionsoftware.com/2010/03/powershell-download-file-script.html"&gt;Powershell asynchronous download file with WebClient DownloadFileAsync&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-4168230263658855244?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/4168230263658855244/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2011/09/powershell-downloadstringasync.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/4168230263658855244'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/4168230263658855244'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2011/09/powershell-downloadstringasync.html' title='Powershell Asynchronous Download String'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-1998521508683733112</id><published>2011-08-25T00:00:00.001-07:00</published><updated>2011-09-25T15:07:03.482-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='notes'/><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><category scheme='http://www.blogger.com/atom/ns#' term='text'/><category scheme='http://www.blogger.com/atom/ns#' term='hacks'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='f#'/><category scheme='http://www.blogger.com/atom/ns#' term='regular expressions'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='view source'/><category scheme='http://www.blogger.com/atom/ns#' term='p#'/><title type='text'>notes, a blog in a blog</title><content type='html'>&lt;pre style="font-family:courier new"&gt;09-25s&lt;br /&gt;- powershell utf8 getbytes string&lt;br /&gt;  [text.encoding]::utf8.getBytes(&amp;quot;foo bar&amp;quot;)&lt;br /&gt;  #102, 111, 111, 32, 98, 97, 114&lt;br /&gt;&lt;br /&gt;- powershell print ascii characters values&lt;br /&gt;  #0..127&lt;br /&gt;  65..90  | %{&amp;quot;{0}  {1}&amp;quot; -f $_, [char]$_}&lt;br /&gt;  97..122 | %{&amp;quot;{0}  {1}&amp;quot; -f $_, [char]$_}&lt;br /&gt;&lt;br /&gt;    65  A   97  a&lt;br /&gt;    66  B   98  b&lt;br /&gt;    67  C   99  c&lt;br /&gt;    68  D  100  d&lt;br /&gt;    69  E  101  e&lt;br /&gt;    70  F  102  f&lt;br /&gt;    71  G  103  g&lt;br /&gt;    72  H  104  h&lt;br /&gt;    73  I  105  i&lt;br /&gt;    74  J  106  j&lt;br /&gt;    75  K  107  k&lt;br /&gt;    76  L  108  l&lt;br /&gt;    77  M  109  m&lt;br /&gt;    78  N  110  n&lt;br /&gt;    79  O  111  o&lt;br /&gt;    80  P  112  p&lt;br /&gt;    81  Q  113  q&lt;br /&gt;    82  R  114  r&lt;br /&gt;    83  S  115  s&lt;br /&gt;    84  T  116  t&lt;br /&gt;    85  U  117  u&lt;br /&gt;    86  V  118  v&lt;br /&gt;    87  W  119  w&lt;br /&gt;    88  X  120  x&lt;br /&gt;    89  Y  121  y&lt;br /&gt;    90  Z  122  z&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;09-24a&lt;br /&gt;- powershell byte array&lt;br /&gt;  [byte[]] $bytes = 0, 1, 255&lt;br /&gt;  [byte[]] (0, 1, 255)  #alt&lt;br /&gt;&lt;br /&gt;- regex lookbehind non-capturing regex, array, csv, records&lt;br /&gt;  - $data = &amp;quot;^1,2,,foo&amp;quot;&lt;br /&gt;&lt;br /&gt;  - match 1st element&lt;br /&gt;    $data -match &amp;quot;(?&amp;lt;=\^)\w*&amp;quot;          | out-null; $matches[0]  #1&lt;br /&gt;&lt;br /&gt;  - match 2nd element (n-1)&lt;br /&gt;    $data -match &amp;quot;(?&amp;lt;=\^(\w*,){1})\w*&amp;quot; | out-null; $matches[0]  #2&lt;br /&gt;&lt;br /&gt;  - match 3rd element (n-1)&lt;br /&gt;    $data -match &amp;quot;(?&amp;lt;=\^(\w*,){2})\w*&amp;quot; | out-null; $matches[0]  #index 3&lt;br /&gt;&lt;br /&gt;  - match 4th element (n-1)&lt;br /&gt;    $data -match &amp;quot;(?&amp;lt;=\^(\w*,){3})\w*&amp;quot; | out-null; $matches[0]  #foo&lt;br /&gt;&lt;br /&gt;- powershell build index&lt;br /&gt;  $index = &amp;quot;^&amp;quot;; 1..10 | %{$index += &amp;quot;{0},&amp;quot; -f $_}; $index;&lt;br /&gt;  #^1,2,3,4,5,6,7,8,9,10,&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;09-23f&lt;br /&gt;- c# sort dictionary keys orderby&lt;br /&gt;  var d = new Dictionary&amp;lt;string, string&amp;gt; { { &amp;quot;foo&amp;quot;, &amp;quot;bar&amp;quot;},&lt;br /&gt;                                           { &amp;quot;a&amp;quot;,   &amp;quot;1&amp;quot;  } };&lt;br /&gt;  Debug.WriteLine(&amp;quot;key count = &amp;quot; + d.Count);&lt;br /&gt;&lt;br /&gt;  foreach (var key in d.Keys.OrderBy(k =&amp;gt; k)) {&lt;br /&gt;    Debug.WriteLine(string.Format(&amp;quot;{0} = {1}&amp;quot;, key, d[key]));  //key = value&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  //key count = 2&lt;br /&gt;  //a = 1&lt;br /&gt;  //foo = bar&lt;br /&gt;&lt;br /&gt;- powershell sort string characters&lt;br /&gt;  &amp;quot;foobar&amp;quot;.toCharArray() | sort | %{write-host $_ -nonewline}; echo &amp;quot;`n&amp;quot;&lt;br /&gt;  #abfoor&lt;br /&gt;&lt;br /&gt;- javascript delete all dom elements by type, reverse loop delete&lt;br /&gt;  var x = document.getElementsByTagName(&amp;quot;img&amp;quot;);&lt;br /&gt;  for(var i=(x.length-1); i&amp;gt;=0; i--) {&lt;br /&gt;    x[i].parentNode.removeChild(x[i]);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  - javascript set image source&lt;br /&gt;    var x = document.getElementsByTagName(&amp;quot;img&amp;quot;);&lt;br /&gt;    for(var i=0; i&amp;lt;x.length; i++) {&lt;br /&gt;      x[i].src=&amp;quot;&amp;quot;;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;  - all elements&lt;br /&gt;    document.getElementsByTagName(&amp;quot;*&amp;quot;)&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;09-17a&lt;br /&gt;- hex color scale #000000 - ffffff, dark to light&lt;br /&gt;  dark to light  0123456789abcdef 0-9a-f&lt;br /&gt;  light to dark  fedcba9876543210 f-a9-0&lt;br /&gt;&lt;br /&gt;- webpage text and background color dom javascript&lt;br /&gt;  - black background #000, ghost text #111&lt;br /&gt;    document.body.style.backgroundColor = &amp;quot;#000&amp;quot;; document.body.style.color = &amp;quot;#111&amp;quot;;&lt;br /&gt;&lt;br /&gt;  - white background #fff, ghost text #eee&lt;br /&gt;    document.body.style.backgroundColor = &amp;quot;#fff&amp;quot;; document.body.style.color = &amp;quot;#eee&amp;quot;;&lt;br /&gt;&lt;br /&gt;  - wicked terminal green&lt;br /&gt;    document.body.style.backgroundColor = &amp;quot;#000&amp;quot;; document.body.style.color = &amp;quot;#1ca62e&amp;quot;;&lt;br /&gt;&lt;br /&gt;  - all elements&lt;br /&gt;    var x = document.getElementsByTagName(&amp;quot;*&amp;quot;);&lt;br /&gt;    for(var i=0; i&amp;lt;x.length; i++) {&lt;br /&gt;      x[i].style.backgroundColor = &amp;quot;#000&amp;quot;;&lt;br /&gt;      x[i].style.color = &amp;quot;#aaa&amp;quot;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;- text editor colors font&lt;br /&gt;  https://www.expressionsoftware.com/apps/texteditor/&lt;br /&gt;  var x = document.getElementsByTagName(&amp;quot;textarea&amp;quot;)[0];&lt;br /&gt;  x.style.backgroundColor = &amp;quot;#000&amp;quot;;&lt;br /&gt;  x.style.color = &amp;quot;#444&amp;quot;;&lt;br /&gt;  x.style[&amp;quot;font-family&amp;quot;] = &amp;quot;verdana&amp;quot;&lt;br /&gt;  x.style.borderColor = &amp;quot;#000&amp;quot;;&lt;br /&gt;  x.style.margin = &amp;quot;0&amp;quot;;&lt;br /&gt;  x.style.padding = &amp;quot;1em 0 0 2em&amp;quot;;&lt;br /&gt;&lt;br /&gt;- powershell .net regex matches match collection&lt;br /&gt;  $x = &amp;quot;foo123bar1234&amp;quot;&lt;br /&gt;  $matchCollection = [text.regularExpressions.regex]::matches($x, &amp;quot;\d&amp;quot;)&lt;br /&gt;  $matchCollection.count  #7&lt;br /&gt;  $matchCollection | sort -unique | %{$_.value}  #1&lt;br /&gt;                                                 #2&lt;br /&gt;                                                 #3&lt;br /&gt;                                                 #4&lt;br /&gt;&lt;br /&gt;- powershell regex string url to alpha numeric&lt;br /&gt;  function alphaNum($string) {&lt;br /&gt;    $string -replace &amp;quot;[^a-zA-Z0-9]&amp;quot;, &amp;quot;&amp;quot;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  alphaNum foo@bar1.com&lt;br /&gt;          #foobar1com&lt;br /&gt;&lt;br /&gt;  alphaNum expressionsoftware.com/foo/bar.htm?a=1&lt;br /&gt;          #expressionsoftwarecomfoobarhtma1&lt;br /&gt;&lt;br /&gt;- powershell regex string url to alpha numeric underscore&lt;br /&gt;  #2 pass replace&lt;br /&gt;  function alphaNumUnderscore($string) {&lt;br /&gt;    ($string -replace &amp;quot;[^a-zA-Z0-9]&amp;quot;, &amp;quot;_&amp;quot;) -replace &amp;quot;__+&amp;quot;, &amp;quot;_&amp;quot;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  alphaNumUnderscore foo@bar1.com&lt;br /&gt;                    #foo_bar1_com&lt;br /&gt;&lt;br /&gt;  alphaNumUnderscore expressionsoftware.com/foo/bar.htm?a=1&lt;br /&gt;                     #expressionsoftware_com_foo_bar_htm_a_1&lt;br /&gt;&lt;br /&gt;  #webpage url to filename&lt;br /&gt;  function alphaNumUnderscoreToFilename($string) {&lt;br /&gt;    &amp;quot;$(alphaNumUnderscore($string)).txt&amp;quot;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  alphaNumUnderscoreToFilename expressionsoftware.com/foo/bar.htm?a=1&lt;br /&gt;                              #expressionsoftware_com_foo_bar_htm_a_1.txt&lt;br /&gt;&lt;br /&gt;- msbuild 4&lt;br /&gt;  $mb = &amp;quot;c:\windows\microsoft.net\framework64\v4.0.30319\msbuild.exe&amp;quot;&lt;br /&gt;  &amp;amp;$mb /help&lt;br /&gt;  &amp;amp;$mb /version /nologo&lt;br /&gt;&lt;br /&gt;  $proj = &amp;quot;x:\app.sln&amp;quot;&lt;br /&gt;  &amp;amp;$mb $proj /t:rebuild /p:configuration=debug    /nologo&lt;br /&gt;  &amp;amp;$mb $proj /t:rebuild /p:configuration=release  /nologo&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;09-04s&lt;br /&gt;- browser javascript console&lt;br /&gt;  document.cookie&lt;br /&gt;  document.body.innerHTML&lt;br /&gt;  document.body.innerHTML.indexOf(&amp;quot;foo&amp;quot;)&lt;br /&gt;  &amp;quot;foo bar&amp;quot;.indexOf(&amp;quot;bar&amp;quot;)  #4&lt;br /&gt;&lt;br /&gt;- powershell json javascriptSerializer&lt;br /&gt;  add-type -assembly system.web.extensions&lt;br /&gt;&lt;br /&gt;  $js = new-object system.web.script.serialization.javascriptSerializer&lt;br /&gt;  $json = &amp;#39;{foo:&amp;quot;bar&amp;quot;, &amp;quot;x&amp;quot;:100}&amp;#39;&lt;br /&gt;  $data = $js.deserializeObject($json)  #generic string-object dictionary&lt;br /&gt;  $data  #KEY  VALUE&lt;br /&gt;         #foo  bar&lt;br /&gt;         #x    100&lt;br /&gt;&lt;br /&gt;  $data.keys  #foo&lt;br /&gt;              #x&lt;br /&gt;&lt;br /&gt;  $data[&amp;quot;foo&amp;quot;]  #bar&lt;br /&gt;&lt;br /&gt;  $hashtable = @{ foo = &amp;quot;bar&amp;quot;; &amp;quot;panic&amp;quot; = $false }&lt;br /&gt;  $hashtable  #NAME   VALUE&lt;br /&gt;              #panic  False&lt;br /&gt;              #foo    bar&lt;br /&gt;&lt;br /&gt;  $json = $js.serialize($hashtable)  #{&amp;quot;panic&amp;quot;:false,&amp;quot;foo&amp;quot;:&amp;quot;bar&amp;quot;}&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;08-22m&lt;br /&gt;- bookmarklets tested chrome&lt;br /&gt;  javascript:( alert(123) )();&lt;br /&gt;  javascript:( function(){var d = new Date(); alert(d);} )();&lt;br /&gt;  javascript:( function(){this.document.title = &amp;quot;foo&amp;quot;;} )();&lt;br /&gt;  javascript:( function(){var title = prompt(&amp;quot;Current page title: &amp;quot; + document.title + &amp;quot;\n\nEnter a page title:&amp;quot;, &amp;quot;&amp;quot;); if (title) {document.title = title;}} )();&lt;br /&gt;&lt;br /&gt;  javascript:( function(){(document.getElementById(&amp;quot;x&amp;quot;)).value = &amp;quot;foo bar&amp;quot;;} )();;&lt;br /&gt;  javascript:( function(){(document.getElementById(&amp;quot;x&amp;quot;)).style.backgroundColor = &amp;quot;lime&amp;quot;;} )();&lt;br /&gt;  javascript:( function(){(document.getElementsByTagName(&amp;quot;x&amp;quot;)[0]).style.height = &amp;quot;100px&amp;quot;;} )();&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;06-27m&lt;br /&gt;- powershell add line numbers to file&lt;br /&gt;  $file = &amp;quot;x:\file.txt&amp;quot;&lt;br /&gt;  $i = 1; gc $file | %{&amp;quot;{0} {1}&amp;quot; -f $i++, $_}             #output to console only&lt;br /&gt;  $i = 1; gc $file | %{&amp;quot;{0} {1}&amp;quot; -f $i++, $_} | sc $file  #overwrite file with set-content (sc)&lt;br /&gt;&lt;br /&gt;- powershell get-content (gc) does not get the last empty line in a file&lt;br /&gt;  workaround?&lt;br /&gt;&lt;br /&gt;- powershell spell word one letter at a time&lt;br /&gt;  $s = &amp;quot;foo bar&amp;quot;&lt;br /&gt;  1..($s.length) | %{$s.substring(0, $_)}  #f&lt;br /&gt;                                           #fo&lt;br /&gt;                                           #foo&lt;br /&gt;                                           #foo&lt;br /&gt;                                           #foo b&lt;br /&gt;                                           #foo ba&lt;br /&gt;                                           #foo bar&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;06-26s&lt;br /&gt;- google chrome incognito shortcut&lt;br /&gt;  c:\users\john\appdata\local\google\chrome\application\chrome.exe --incognito&lt;br /&gt;&lt;br /&gt;- chrome://about/&lt;br /&gt;  chrome://downloads/&lt;br /&gt;  chrome://history/&lt;br /&gt;  chrome://plugins/&lt;br /&gt;  chrome://settings/browser&lt;br /&gt;  chrome://settings/personal&lt;br /&gt;  chrome://settings/advanced&lt;br /&gt;  chrome://settings/cookies&lt;br /&gt;&lt;br /&gt;- powershell encrypt string&lt;br /&gt;  function encryptString($stringToEncrypt,&lt;br /&gt;                         $encryptionKeyPassword,  #add salt&lt;br /&gt;                         $randomInitializationVector) {&lt;br /&gt;&lt;br /&gt;    [expressionSoftware.security.cryptography.rijndaelCrypt]::encryptString($stringToEncrypt, $encryptionKeyPassword, $randomInitializationVector)&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  #powershell encrypt string prompt&lt;br /&gt;  function encryptStringPrompt() {&lt;br /&gt;    $stringToEncrypt            = (read-host -prompt &amp;quot;string to encrypt&amp;quot;)&lt;br /&gt;    $encryptionKeyPassword      = (read-host -prompt &amp;quot;encryption key password&amp;quot;)  #add salt&lt;br /&gt;    $randomInitializationVector = (read-host -prompt &amp;quot;random initialization vector&amp;quot;)&lt;br /&gt;&lt;br /&gt;    [expressionSoftware.security.cryptography.rijndaelCrypt]::encryptString($stringToEncrypt, $encryptionKeyPassword, $randomInitializationVector)&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  #powershell encrypt string prompt secure string&lt;br /&gt;  function encryptStringPromptSecureString() {&lt;br /&gt;    $stringToEncrypt            = (read-host -asSecureString -prompt &amp;quot;string to encrypt&amp;quot;)&lt;br /&gt;    $encryptionKeyPassword      = (read-host -asSecureString -prompt &amp;quot;encryption key password&amp;quot;)  #add salt&lt;br /&gt;    $randomInitializationVector = (read-host -asSecureString -prompt &amp;quot;random initialization vector&amp;quot;)&lt;br /&gt;&lt;br /&gt;    [expressionSoftware.security.cryptography.rijndaelCrypt]::encryptString(&lt;br /&gt;      (getValueFromSecureString $stringToEncrypt),&lt;br /&gt;      (getValueFromSecureString $encryptionKeyPassword),&lt;br /&gt;      (getValueFromSecureString $randomInitializationVector))&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;- powershell decrypt string&lt;br /&gt;  function decryptString($encryptedStringBase64,&lt;br /&gt;                         $encryptionKeyPassword,  #add salt&lt;br /&gt;                         $randomInitializationVector) {&lt;br /&gt;&lt;br /&gt;    [expressionSoftware.security.cryptography.rijndaelCrypt]::decryptString($encryptedStringBase64, $encryptionKeyPassword, $randomInitializationVector)&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  #powershell decrypt string prompt&lt;br /&gt;  function decryptStringPrompt() {&lt;br /&gt;    $encryptedStringBase64      = (read-host -prompt &amp;quot;encrypted base64 string to decrypt&amp;quot;)&lt;br /&gt;    $encryptionKeyPassword      = (read-host -prompt &amp;quot;encryption key password&amp;quot;)  #add salt&lt;br /&gt;    $randomInitializationVector = (read-host -prompt &amp;quot;random initialization vector&amp;quot;)&lt;br /&gt;&lt;br /&gt;    [expressionSoftware.security.cryptography.rijndaelCrypt]::decryptString($encryptedStringBase64, $encryptionKeyPassword, $randomInitializationVector)&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  #powershell decrypt string prompt secure string&lt;br /&gt;  function decryptStringPromptSecureString() {&lt;br /&gt;    $encryptedStringBase64      = (read-host -asSecureString -prompt &amp;quot;encrypted base64 string to decrypt&amp;quot;)&lt;br /&gt;    $encryptionKeyPassword      = (read-host -asSecureString -prompt &amp;quot;encryption key password&amp;quot;)  #add salt&lt;br /&gt;    $randomInitializationVector = (read-host -asSecureString -prompt &amp;quot;random initialization vector&amp;quot;)&lt;br /&gt;    [expressionSoftware.security.cryptography.rijndaelCrypt]::decryptString(&lt;br /&gt;      (getValueFromSecureString $encryptedStringBase64),&lt;br /&gt;      (getValueFromSecureString $encryptionKeyPassword),&lt;br /&gt;      (getValueFromSecureString $randomInitializationVector))&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;- powershell encrypt string example&lt;br /&gt;  - encryptString &amp;quot;foo&amp;quot; &amp;quot;B@R7&amp;quot; &amp;quot;1X#f0&amp;quot;&lt;br /&gt;    WMVK/75wXuK9r4+8l+iPa7jS9sXJBtM7zF6QysJsbVE=&lt;br /&gt;&lt;br /&gt;    #powershell encrypt string prompt example&lt;br /&gt;    encryptStringPrompt&lt;br /&gt;    string to encrypt: foo&lt;br /&gt;    encryption key password: B@R7&lt;br /&gt;    random initialization vector: 1X#f0&lt;br /&gt;    WMVK/75wXuK9r4+8l+iPa7jS9sXJBtM7zF6QysJsbVE=&lt;br /&gt;&lt;br /&gt;    #powershell encrypt string prompt secure string example&lt;br /&gt;    encryptStringPromptSecureString&lt;br /&gt;    string to encrypt: ***&lt;br /&gt;    encryption key password: ****&lt;br /&gt;    random initialization vector: *****&lt;br /&gt;    WMVK/75wXuK9r4+8l+iPa7jS9sXJBtM7zF6QysJsbVE=&lt;br /&gt;&lt;br /&gt;- powershell decrypt string example&lt;br /&gt;  - decryptString &amp;quot;WMVK/75wXuK9r4+8l+iPa7jS9sXJBtM7zF6QysJsbVE=&amp;quot; &amp;quot;B@R7&amp;quot; &amp;quot;1X#f0&amp;quot;&lt;br /&gt;    foo&lt;br /&gt;&lt;br /&gt;    #powershell decrypt string prompt example&lt;br /&gt;    decryptStringPrompt&lt;br /&gt;    encrypted base64 string to decrypt: WMVK/75wXuK9r4+8l+iPa7jS9sXJBtM7zF6QysJsbVE=&lt;br /&gt;    encryption key password: B@R7&lt;br /&gt;    random initialization vector: 1X#f0&lt;br /&gt;    foo&lt;br /&gt;&lt;br /&gt;    #powershell decrypt string prompt secure string example&lt;br /&gt;    decryptStringPromptSecureString&lt;br /&gt;    encrypted base64 string to decrypt: ********************************************&lt;br /&gt;    encryption key password: ****&lt;br /&gt;    random initialization vector: *****&lt;br /&gt;    foo&lt;br /&gt;&lt;br /&gt;- powershell string encryption source code here-string, c#&lt;br /&gt;  $encryptionSourceCode = @&amp;quot;&lt;br /&gt;//****************************************************************&lt;br /&gt;  using System;&lt;br /&gt;  using System.IO;&lt;br /&gt;  using System.Security.Cryptography;&lt;br /&gt;  using System.Text;&lt;br /&gt;&lt;br /&gt;  namespace ExpressionSoftware.Security.Cryptography {&lt;br /&gt;&lt;br /&gt;      public static class RijndaelCrypt {&lt;br /&gt;&lt;br /&gt;          public static string&lt;br /&gt;          EncryptString(string stringToEncrypt,&lt;br /&gt;                        string encryptionKeyPassword,  //add salt&lt;br /&gt;                        string randomInitializationVector) {&lt;br /&gt;&lt;br /&gt;              //in: string to encrypt, encryption key/password, random initialization vector&lt;br /&gt;              //out: encrypted string in base64 format&lt;br /&gt;&lt;br /&gt;              //hash key, iv&lt;br /&gt;              var key = Hash.HashString(encryptionKeyPassword, typeof(SHA256));&lt;br /&gt;              var iv = Hash.HashString(randomInitializationVector, typeof(SHA256));&lt;br /&gt;&lt;br /&gt;              //convert string to bytes&lt;br /&gt;              var bytesToEncrypt = Encoding.UTF8.GetBytes(stringToEncrypt);&lt;br /&gt;&lt;br /&gt;              //encrypt bytes&lt;br /&gt;              var encryptedBytes = Encrypt(bytesToEncrypt, key, iv);&lt;br /&gt;&lt;br /&gt;              //convert encrypted bytes to base64 string&lt;br /&gt;              var encryptedStringBase64 = Convert.ToBase64String(encryptedBytes);&lt;br /&gt;&lt;br /&gt;              return encryptedStringBase64;&lt;br /&gt;          }&lt;br /&gt;&lt;br /&gt;          public static string&lt;br /&gt;          DecryptString(string encryptedStringBase64,&lt;br /&gt;                        string encryptionKeyPassword,  //add salt&lt;br /&gt;                        string randomInitializationVector) {&lt;br /&gt;&lt;br /&gt;              //in: encrypted string in base64 format, encryption key/password, random initialization vector&lt;br /&gt;              //out: decrypted string&lt;br /&gt;&lt;br /&gt;              //hash key, iv&lt;br /&gt;              var key = Hash.HashString(encryptionKeyPassword, typeof(SHA256));&lt;br /&gt;              var iv = Hash.HashString(randomInitializationVector, typeof(SHA256));&lt;br /&gt;&lt;br /&gt;              //convert encrypted base64 string to bytes&lt;br /&gt;              var encryptedBytes = Convert.FromBase64String(encryptedStringBase64);&lt;br /&gt;&lt;br /&gt;              //decrypt bytes&lt;br /&gt;              var decryptedBytes = Decrypt(encryptedBytes, key, iv);&lt;br /&gt;&lt;br /&gt;              //convert decrypted bytes to string&lt;br /&gt;              var decryptedString = Encoding.UTF8.GetString(decryptedBytes);&lt;br /&gt;&lt;br /&gt;              return decryptedString;&lt;br /&gt;          }&lt;br /&gt;&lt;br /&gt;          public static byte[]&lt;br /&gt;          Encrypt(byte[] bytesToEncrypt,&lt;br /&gt;                  byte[] encryptionKeyPassword256Bit,  //add salt&lt;br /&gt;                  byte[] randomInitializationVector256Bit) {&lt;br /&gt;&lt;br /&gt;              //in: byte array to encrypt, 256-bit encryption key/password, 256-bit random initialization vector&lt;br /&gt;              //out: encrypted byte array&lt;br /&gt;&lt;br /&gt;              using (var rijndael = Rijndael.Create()) {&lt;br /&gt;&lt;br /&gt;                  //blocksize default 128, max 256&lt;br /&gt;                  //set max 256 to work with 256-bit key and iv byte arrays&lt;br /&gt;                  rijndael.BlockSize = 256;&lt;br /&gt;&lt;br /&gt;                  using (ICryptoTransform encryptor = rijndael.CreateEncryptor(encryptionKeyPassword256Bit,&lt;br /&gt;                                                                               randomInitializationVector256Bit)) {&lt;br /&gt;                      return CryptData(bytesToEncrypt, encryptor);&lt;br /&gt;                  }&lt;br /&gt;              }&lt;br /&gt;          }&lt;br /&gt;&lt;br /&gt;          public static byte[]&lt;br /&gt;          Decrypt(byte[] encryptedBytes,&lt;br /&gt;                  byte[] encryptionKeyPassword256Bit,  //add salt&lt;br /&gt;                  byte[] randomInitializationVector256Bit) {&lt;br /&gt;&lt;br /&gt;              //in: byte array to decrypt, 256-bit encryption key/password, 256-bit random initialization vector&lt;br /&gt;              //out: decrypted byte array&lt;br /&gt;&lt;br /&gt;              using (var rijndael = Rijndael.Create()) {&lt;br /&gt;&lt;br /&gt;                  //blocksize default 128, max 256&lt;br /&gt;                  //set max 256 to work with 256-bit key and iv byte arrays&lt;br /&gt;                  rijndael.BlockSize = 256;&lt;br /&gt;&lt;br /&gt;                  using (ICryptoTransform decryptor = rijndael.CreateDecryptor(encryptionKeyPassword256Bit,&lt;br /&gt;                                                                               randomInitializationVector256Bit)) {&lt;br /&gt;                      return CryptData(encryptedBytes, decryptor);&lt;br /&gt;                  }&lt;br /&gt;              }&lt;br /&gt;          }&lt;br /&gt;&lt;br /&gt;          static byte[]&lt;br /&gt;          CryptData(byte[] data,&lt;br /&gt;                    ICryptoTransform cryptor) {&lt;br /&gt;&lt;br /&gt;              var ms = new MemoryStream();&lt;br /&gt;              using (var cryptoStream = new CryptoStream(ms, cryptor, CryptoStreamMode.Write)) {&lt;br /&gt;                  cryptoStream.Write(data, 0, data.Length);&lt;br /&gt;              }&lt;br /&gt;              return ms.ToArray();&lt;br /&gt;          }&lt;br /&gt;&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      public static class Hash {&lt;br /&gt;&lt;br /&gt;          public static byte[]&lt;br /&gt;          HashString(string stringToHash,&lt;br /&gt;                     Type hashType) {&lt;br /&gt;&lt;br /&gt;              //in: string to hash, hash type MD5 SHA1 SHA256 SHA384 SHA512&lt;br /&gt;              //out: hashed byte array&lt;br /&gt;&lt;br /&gt;              //convert string to bytes&lt;br /&gt;              byte[] bytes = Encoding.UTF8.GetBytes(stringToHash);&lt;br /&gt;&lt;br /&gt;              //hash bytes&lt;br /&gt;              var hashedBytes = HashByteArray(bytes, hashType);&lt;br /&gt;&lt;br /&gt;              return hashedBytes;&lt;br /&gt;          }&lt;br /&gt;&lt;br /&gt;          public static byte[]&lt;br /&gt;          HashByteArray(byte[] bytesToHash,&lt;br /&gt;                        Type hashType) {&lt;br /&gt;&lt;br /&gt;              //in: byte array to hash, hash type MD5 SHA1 SHA256 SHA384 SHA512&lt;br /&gt;              //out: hashed byte array&lt;br /&gt;&lt;br /&gt;              //create hash algorithm&lt;br /&gt;              var hashAlgorithm = HashAlgorithm.Create(hashType.Name);&lt;br /&gt;&lt;br /&gt;              //hash bytes&lt;br /&gt;              var hashedBytes = hashAlgorithm.ComputeHash(bytesToHash);&lt;br /&gt;&lt;br /&gt;              return hashedBytes;&lt;br /&gt;          }&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;  }&lt;br /&gt;//****************************************************************&lt;br /&gt;&amp;quot;@&lt;br /&gt;&lt;br /&gt;  add-type -typeDefinition $encryptionSourceCode&lt;br /&gt;&lt;br /&gt;- powershell get value from secure string&lt;br /&gt;  #alt, use ConvertFrom-SecureString cmdlet&lt;br /&gt;  function getValueFromSecureString($secureString) {&lt;br /&gt;    $marshal = [runtime.interopServices.marshal]&lt;br /&gt;    $ptr = $marshal::secureStringToBSTR($secureString)&lt;br /&gt;    $marshal::ptrToStringBSTR($ptr)  #output&lt;br /&gt;    $marshal::zeroFreeBSTR($ptr)&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  $secureString = read-host -asSecureString -prompt &amp;quot;password&amp;quot;&lt;br /&gt;  password: ***  #foo&lt;br /&gt;  getValueFromSecureString $secureString  #foo&lt;br /&gt;&lt;br /&gt;- powershell ConvertFrom-SecureString - to encrypted string&lt;br /&gt;  powershell ConvertTo-SecureString   - from encrypted string&lt;br /&gt;  $secureString = read-host -asSecureString -prompt &amp;quot;password&amp;quot;&lt;br /&gt;  password: ***  #foo&lt;br /&gt;&lt;br /&gt;  #generate an encryption key password for use with ConvertFrom-SecureString&lt;br /&gt;  #http://blog.expressionsoftware.com/2009/08/hash-functions.html&lt;br /&gt;  $hashType = [system.security.cryptography.SHA256]&lt;br /&gt;  $encryptionKeyPassword = getHashStr &amp;#39;encryption key password&amp;#39; $hashType&lt;br /&gt;&lt;br /&gt;  #ConvertFrom-SecureString converts a secure string into an encrypted standard string&lt;br /&gt;  #appears to use internal random initialization vector as it generates a unique encrypted string each time&lt;br /&gt;  #todo: test ConvertFrom/To on different machines&lt;br /&gt;  $encryptedString = convertFrom-SecureString $secureString -key $encryptionKeyPassword&lt;br /&gt;  $encryptedString  #76492d1116743f0423413b16050a5345MgB8AFcAdQB3AHIAZgBDAE0ARAB6AEEAcABqAFUARQB0AFkANwBpAFkAKwB2AFEAPQA9AHwAYgBjADQAMAA1AGEAYgBjAGMANgA5ADYAZAAxAGQANwA4ADkANwBjAGUAZgAzADkAOQA3AGYAMwA5AGUAMgBjAA==&lt;br /&gt;&lt;br /&gt;  #ConvertTo-SecureString - convert encrypted standard string to secure string, also converts plain text to secure string&lt;br /&gt;  $secureString = convertTo-SecureString $encryptedString -key $encryptionKeyPassword&lt;br /&gt;&lt;br /&gt;- powershell ConvertTo-SecureString - convert plain text to secure string&lt;br /&gt;  $secureString = convertTo-SecureString &amp;quot;foobar&amp;quot; -asPlainText -force&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;06-16h&lt;br /&gt;- powershell guid&lt;br /&gt;  [guid]::newGuid()&lt;br /&gt;  [guid]::newGuid().toString()&lt;br /&gt;&lt;br /&gt;- powershell array to string v2, pipeline&lt;br /&gt;  function arrayToString($format) {&lt;br /&gt;    begin   { $result = &amp;quot;&amp;quot;               }&lt;br /&gt;    process { $result += ($format -f $_) }&lt;br /&gt;    end     { $result                    }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  $a = 99, 700, -1&lt;br /&gt;  $a | arrayToString &amp;quot;{0}, &amp;quot;         #99, 700, -1,&lt;br /&gt;  $a | sort | arrayToString &amp;quot;{0}, &amp;quot;  #-1, 99, 700,&lt;br /&gt;&lt;br /&gt;- powershell string match letters, remove numbers, strip&lt;br /&gt;  function matchLetters($char) {&lt;br /&gt;    process {&lt;br /&gt;      if ($_ -match &amp;quot;[a-z]&amp;quot;) {&lt;br /&gt;        $matches[0]&lt;br /&gt;      }&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  #powershell string match numbers, remove letters, strip&lt;br /&gt;  function matchNumbers($char) {&lt;br /&gt;    process {&lt;br /&gt;      if ($_ -match &amp;quot;\d&amp;quot;) {&lt;br /&gt;        $matches[0]&lt;br /&gt;      }&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  #powershell string match vowels&lt;br /&gt;  function matchVowels($char) {&lt;br /&gt;    process {&lt;br /&gt;      if ($_ -match &amp;quot;[aeiouy]&amp;quot;) {&lt;br /&gt;        $matches[0]&lt;br /&gt;      }&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  #powershell string match consonants&lt;br /&gt;  function matchConsonants($char) {&lt;br /&gt;    process {&lt;br /&gt;      if (($_ | matchLetters) -and ($_ -match &amp;quot;[^aeiouy]&amp;quot;)) {&lt;br /&gt;        $matches[0]&lt;br /&gt;      }&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  $string = [guid]::newGuid().toString()           #02975b4a-6969-4baf-8bd3-b208e94c4228&lt;br /&gt;  $string = $string.toCharArray()&lt;br /&gt;  $string | matchLetters    | arrayToString &amp;quot;{0}&amp;quot;  #babafbdbec&lt;br /&gt;  $string | matchNumbers    | arrayToString &amp;quot;{0}&amp;quot;  #0297546969483208944228&lt;br /&gt;  $string | matchVowels     | arrayToString &amp;quot;{0}&amp;quot;  #aae&lt;br /&gt;  $string | matchConsonants | arrayToString &amp;quot;{0}&amp;quot;  #bbfbdbc&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;06-14t&lt;br /&gt;- javascript min max&lt;br /&gt;  Math.min(0, 1, 2);&lt;br /&gt;  Math.max(0, 1, 2);&lt;br /&gt;&lt;br /&gt;  //javascript min max array&lt;br /&gt;  var a = [0, 1, 2];&lt;br /&gt;  Math.min.apply(Math, a);&lt;br /&gt;  Math.max.apply(Math, a);&lt;br /&gt;&lt;br /&gt;- javascript window.crypto.getRandomValues()&lt;br /&gt;  fills array with random values 0-255&lt;br /&gt;&lt;br /&gt;  //1 random number&lt;br /&gt;  var a = new Uint8Array(1);&lt;br /&gt;  window.crypto.getRandomValues(a);&lt;br /&gt;  a[0];  //7&lt;br /&gt;&lt;br /&gt;  //3 random numbers&lt;br /&gt;  var a = new Uint8Array(3);&lt;br /&gt;  window.crypto.getRandomValues(a);&lt;br /&gt;  a[0];  //104&lt;br /&gt;  a[1];  //33&lt;br /&gt;  a[2];  //220&lt;br /&gt;&lt;br /&gt;  //convert from Uint8Array for min, max, join, etc&lt;br /&gt;  var b = [];&lt;br /&gt;  for (var i = 0, n = a.length; i &amp;lt; n; i++) {&lt;br /&gt;    b[i] = a[i];&lt;br /&gt;  }&lt;br /&gt;  b.join();  //&amp;quot;104,33,220&amp;quot;&lt;br /&gt;  Math.min.apply(Math, b);  //33&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;06-08w&lt;br /&gt;- powershell, f#, c#, javascript repeat string, eg &amp;quot;aaa&amp;quot;&lt;br /&gt;  p#  &amp;quot;a&amp;quot; * 3&lt;br /&gt;  f#  String.replicate 3 &amp;quot;a&amp;quot;&lt;br /&gt;  c#  new string(&amp;#39;a&amp;#39;, 3)&lt;br /&gt;  c#  string.Concat(Enumerable.Repeat(&amp;quot;a&amp;quot;, 3))&lt;br /&gt;  c#  string.Join(&amp;quot;&amp;quot;, Enumerable.Repeat(&amp;quot;a&amp;quot;, 3))&lt;br /&gt;  js  new Array(3+1).join(&amp;quot;a&amp;quot;)&lt;br /&gt;&lt;br /&gt;- powershell add-type cmdlet default namespace&lt;br /&gt;  microsoft.powershell.commands.addType.autoGeneratedTypes&lt;br /&gt;&lt;br /&gt;- powershell add-type member definition, eg method source code&lt;br /&gt;  #c# source code here-string&lt;br /&gt;  $sourceCode = @&amp;quot;&lt;br /&gt;  //c#&lt;br /&gt;  public static bool IsFoo(string x) {&lt;br /&gt;    return x.ToLower() == &amp;quot;foo&amp;quot;;&lt;br /&gt;  }&lt;br /&gt;&amp;quot;@&lt;br /&gt;&lt;br /&gt;  add-type -namespace ns -name x -memberDefinition $sourceCode&lt;br /&gt;  [ns.x]::isfoo(&amp;quot;FOO&amp;quot;)  #1&lt;br /&gt;&lt;br /&gt;- powershell add-type type definition, eg full class source code&lt;br /&gt;  #c# source code here-string&lt;br /&gt;  $sourceCode = @&amp;quot;&lt;br /&gt;  //c#&lt;br /&gt;  using System;&lt;br /&gt;&lt;br /&gt;  namespace ExpressionSoftware.PS {&lt;br /&gt;    public static class Foo {&lt;br /&gt;&lt;br /&gt;      public static bool IsFoo(string x) {&lt;br /&gt;        return x.ToLower() == &amp;quot;foo&amp;quot;;&lt;br /&gt;      }&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;&amp;quot;@&lt;br /&gt;&lt;br /&gt;  add-type -typeDefinition $sourceCode&lt;br /&gt;  [expressionsoftware.ps.foo]::isfoo(&amp;quot;Foo&amp;quot;)  #1&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;06-05s&lt;br /&gt;- c# rijndael symmetric encryption algorithm&lt;br /&gt;  using System;&lt;br /&gt;  using System.IO;&lt;br /&gt;  using System.Security.Cryptography;&lt;br /&gt;  using System.Text;&lt;br /&gt;&lt;br /&gt;  namespace ExpressionSoftware.Security.Cryptography {&lt;br /&gt;&lt;br /&gt;      public static class RijndaelCrypt {&lt;br /&gt;&lt;br /&gt;          public static string&lt;br /&gt;          EncryptString(string stringToEncrypt,&lt;br /&gt;                        string encryptionKeyPassword,  //add salt&lt;br /&gt;                        string randomInitializationVector) {&lt;br /&gt;&lt;br /&gt;              //in: string to encrypt, encryption key/password, random initialization vector&lt;br /&gt;              //out: encrypted string in base64 format&lt;br /&gt;&lt;br /&gt;              //hash key, iv&lt;br /&gt;              var key = Hash.HashString(encryptionKeyPassword, typeof(SHA256));&lt;br /&gt;              var iv = Hash.HashString(randomInitializationVector, typeof(SHA256));&lt;br /&gt;&lt;br /&gt;              //convert string to bytes&lt;br /&gt;              var bytesToEncrypt = Encoding.UTF8.GetBytes(stringToEncrypt);&lt;br /&gt;&lt;br /&gt;              //encrypt bytes&lt;br /&gt;              var encryptedBytes = Encrypt(bytesToEncrypt, key, iv);&lt;br /&gt;&lt;br /&gt;              //convert encrypted bytes to base64 string&lt;br /&gt;              var encryptedStringBase64 = Convert.ToBase64String(encryptedBytes);&lt;br /&gt;&lt;br /&gt;              return encryptedStringBase64;&lt;br /&gt;          }&lt;br /&gt;&lt;br /&gt;          public static string&lt;br /&gt;          DecryptString(string encryptedStringBase64,&lt;br /&gt;                        string encryptionKeyPassword,  //add salt&lt;br /&gt;                        string randomInitializationVector) {&lt;br /&gt;&lt;br /&gt;              //in: encrypted string in base64 format, encryption key/password, random initialization vector&lt;br /&gt;              //out: decrypted string&lt;br /&gt;&lt;br /&gt;              //hash key, iv&lt;br /&gt;              var key = Hash.HashString(encryptionKeyPassword, typeof(SHA256));&lt;br /&gt;              var iv = Hash.HashString(randomInitializationVector, typeof(SHA256));&lt;br /&gt;&lt;br /&gt;              //convert encrypted base64 string to bytes&lt;br /&gt;              var encryptedBytes = Convert.FromBase64String(encryptedStringBase64);&lt;br /&gt;&lt;br /&gt;              //decrypt bytes&lt;br /&gt;              var decryptedBytes = Decrypt(encryptedBytes, key, iv);&lt;br /&gt;&lt;br /&gt;              //convert decrypted bytes to string&lt;br /&gt;              var decryptedString = Encoding.UTF8.GetString(decryptedBytes);&lt;br /&gt;&lt;br /&gt;              return decryptedString;&lt;br /&gt;          }&lt;br /&gt;&lt;br /&gt;          public static byte[]&lt;br /&gt;          Encrypt(byte[] bytesToEncrypt,&lt;br /&gt;                  byte[] encryptionKeyPassword256Bit,  //add salt&lt;br /&gt;                  byte[] randomInitializationVector256Bit) {&lt;br /&gt;&lt;br /&gt;              //in: byte array to encrypt, 256-bit encryption key/password, 256-bit random initialization vector&lt;br /&gt;              //out: encrypted byte array&lt;br /&gt;&lt;br /&gt;              using (var rijndael = Rijndael.Create()) {&lt;br /&gt;&lt;br /&gt;                  //blocksize default 128, max 256&lt;br /&gt;                  //set max 256 to work with 256-bit key and iv byte arrays&lt;br /&gt;                  rijndael.BlockSize = 256;&lt;br /&gt;&lt;br /&gt;                  using (ICryptoTransform encryptor = rijndael.CreateEncryptor(encryptionKeyPassword256Bit,&lt;br /&gt;                                                                               randomInitializationVector256Bit)) {&lt;br /&gt;                      return CryptData(bytesToEncrypt, encryptor);&lt;br /&gt;                  }&lt;br /&gt;              }&lt;br /&gt;          }&lt;br /&gt;&lt;br /&gt;          public static byte[]&lt;br /&gt;          Decrypt(byte[] encryptedBytes,&lt;br /&gt;                  byte[] encryptionKeyPassword256Bit,  //add salt&lt;br /&gt;                  byte[] randomInitializationVector256Bit) {&lt;br /&gt;&lt;br /&gt;              //in: byte array to decrypt, 256-bit encryption key/password, 256-bit random initialization vector&lt;br /&gt;              //out: decrypted byte array&lt;br /&gt;&lt;br /&gt;              using (var rijndael = Rijndael.Create()) {&lt;br /&gt;&lt;br /&gt;                  //blocksize default 128, max 256&lt;br /&gt;                  //set max 256 to work with 256-bit key and iv byte arrays&lt;br /&gt;                  rijndael.BlockSize = 256;&lt;br /&gt;&lt;br /&gt;                  using (ICryptoTransform decryptor = rijndael.CreateDecryptor(encryptionKeyPassword256Bit,&lt;br /&gt;                                                                               randomInitializationVector256Bit)) {&lt;br /&gt;                      return CryptData(encryptedBytes, decryptor);&lt;br /&gt;                  }&lt;br /&gt;              }&lt;br /&gt;          }&lt;br /&gt;&lt;br /&gt;          static byte[]&lt;br /&gt;          CryptData(byte[] data,&lt;br /&gt;                    ICryptoTransform cryptor) {&lt;br /&gt;&lt;br /&gt;              var ms = new MemoryStream();&lt;br /&gt;              using (var cryptoStream = new CryptoStream(ms, cryptor, CryptoStreamMode.Write)) {&lt;br /&gt;                  cryptoStream.Write(data, 0, data.Length);&lt;br /&gt;              }&lt;br /&gt;              return ms.ToArray();&lt;br /&gt;          }&lt;br /&gt;&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;- c# hash&lt;br /&gt;  using System;&lt;br /&gt;  using System.Security.Cryptography;&lt;br /&gt;  using System.Text;&lt;br /&gt;&lt;br /&gt;  namespace ExpressionSoftware.Security.Cryptography {&lt;br /&gt;&lt;br /&gt;      public static class Hash {&lt;br /&gt;&lt;br /&gt;          public static byte[]&lt;br /&gt;          HashString(string stringToHash,&lt;br /&gt;                     Type hashType) {&lt;br /&gt;&lt;br /&gt;              //in: string to hash, hash type MD5 SHA1 SHA256 SHA384 SHA512&lt;br /&gt;              //out: hashed byte array&lt;br /&gt;&lt;br /&gt;              //convert string to bytes&lt;br /&gt;              byte[] bytes = Encoding.UTF8.GetBytes(stringToHash);&lt;br /&gt;&lt;br /&gt;              //hash bytes&lt;br /&gt;              var hashedBytes = HashByteArray(bytes, hashType);&lt;br /&gt;&lt;br /&gt;              return hashedBytes;&lt;br /&gt;          }&lt;br /&gt;&lt;br /&gt;          public static byte[]&lt;br /&gt;          HashByteArray(byte[] bytesToHash,&lt;br /&gt;                        Type hashType) {&lt;br /&gt;&lt;br /&gt;              //in: byte array to hash, hash type MD5 SHA1 SHA256 SHA384 SHA512&lt;br /&gt;              //out: hashed byte array&lt;br /&gt;&lt;br /&gt;              //create hash algorithm&lt;br /&gt;              var hashAlgorithm = HashAlgorithm.Create(hashType.Name);&lt;br /&gt;&lt;br /&gt;              //hash bytes&lt;br /&gt;              var hashedBytes = hashAlgorithm.ComputeHash(bytesToHash);&lt;br /&gt;&lt;br /&gt;              return hashedBytes;&lt;br /&gt;          }&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;05-28a&lt;br /&gt;- powershell crypto random number generator&lt;br /&gt;  $cryptoRandomNumberGenerator = [security.cryptography.randomNumberGenerator]::create()&lt;br /&gt;  $bytes = new-object byte[] 3&lt;br /&gt;  $bytes #0 0 0&lt;br /&gt;&lt;br /&gt;  $cryptoRandomNumberGenerator.getBytes($bytes)&lt;br /&gt;  $bytes  #61 217 87&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;05-22s&lt;br /&gt;- powershell httpWebRequest httpWebResponse&lt;br /&gt;  function getWebResponse($url, $verb) {&lt;br /&gt;    $request = [net.httpWebRequest]::create($url)&lt;br /&gt;    $request.method = $verb&lt;br /&gt;    $request.contentLength = 0&lt;br /&gt;    $request.userAgent = &amp;quot;x&amp;quot;&lt;br /&gt;&lt;br /&gt;    [net.httpWebResponse] $response = $request.getResponse()&lt;br /&gt;    if ($response.statusCode -eq &amp;quot;ok&amp;quot;) {  #[net.httpStatusCode]::OK&lt;br /&gt;      $stream = $response.getResponseStream()&lt;br /&gt;      $reader = new-object io.streamReader($stream)&lt;br /&gt;      $reader.readToEnd()&lt;br /&gt;      $response.close()&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  getWebResponse &amp;quot;http://www.google.com&amp;quot; &amp;quot;HEAD&amp;quot;&lt;br /&gt;  getWebResponse &amp;quot;http://www.google.com&amp;quot; &amp;quot;GET&amp;quot;&lt;br /&gt;&lt;br /&gt;- c# httpWebRequest httpWebResponse&lt;br /&gt;  string GetWebResponse(string url, string verb) {&lt;br /&gt;      string result = null;&lt;br /&gt;      var request = (HttpWebRequest)WebRequest.Create(url);&lt;br /&gt;      request.Method = verb;&lt;br /&gt;      request.ContentLength = 0;&lt;br /&gt;      request.UserAgent = &amp;quot;x&amp;quot;;&lt;br /&gt;&lt;br /&gt;      using (var response = (HttpWebResponse)request.GetResponse()) {&lt;br /&gt;          if (response.StatusCode == HttpStatusCode.OK) {&lt;br /&gt;              using (var stream = response.GetResponseStream()) {&lt;br /&gt;                  using (var reader = new StreamReader(stream)) {&lt;br /&gt;                      result = reader.ReadToEnd();&lt;br /&gt;                      reader.Close();&lt;br /&gt;                  }&lt;br /&gt;                  stream.Close();&lt;br /&gt;              }&lt;br /&gt;          }&lt;br /&gt;          response.Close();&lt;br /&gt;      }&lt;br /&gt;      return result;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  GetWebResponse(&amp;quot;http://www.google.com/&amp;quot;, &amp;quot;HEAD&amp;quot;);&lt;br /&gt;  GetWebResponse(&amp;quot;http://www.google.com/&amp;quot;, &amp;quot;GET&amp;quot;);&lt;br /&gt;&lt;br /&gt;- powershell httpWebResponse object&lt;br /&gt;  function getWebResponseObject($url, $verb) {&lt;br /&gt;    $request = [net.httpWebRequest]::create($url)&lt;br /&gt;    $request.method = $verb&lt;br /&gt;    $request.contentLength = 0&lt;br /&gt;    $request.userAgent = &amp;quot;x&amp;quot;&lt;br /&gt;&lt;br /&gt;    [net.httpWebResponse]$request.getResponse()&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  $response = getWebResponseObject &amp;quot;http://www.google.com&amp;quot; &amp;quot;HEAD&amp;quot;&lt;br /&gt;  &amp;quot;reponse status code: {0} {1}&amp;quot; -f [int]$response.statusCode, $response.statusCode&lt;br /&gt;  $headerCount = ($response.headers.allKeys).length&lt;br /&gt;  &amp;quot;$headerCount headers&amp;quot;&lt;br /&gt;  $response.headers.allKeys | %{&amp;quot;{0}: {1}&amp;quot; -f $_, $response.headers[$_]}&lt;br /&gt;  $response.close()&lt;br /&gt;&lt;br /&gt;- powershell enums&lt;br /&gt;  [enum]::getNames([net.httpStatusCode]) | sort -unique&lt;br /&gt;  [enum]::getValues(&amp;quot;net.httpStatusCode&amp;quot;) | %{&amp;quot;{0} {1}&amp;quot; -f [int]$_, $_}&lt;br /&gt;  [net.httpStatusCode]::ok  #OK&lt;br /&gt;  [int][net.httpStatusCode]::OK  #200&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;05-21a&lt;br /&gt;- google storage api&lt;br /&gt;  http://code.google.com/apis/storage/&lt;br /&gt;  - bucket names&lt;br /&gt;    alphanumeric, letters, numbers, dashes, dots (dots are reserved for domain names, requires domain name ownership verification)&lt;br /&gt;    lowercase, case-sensitive&lt;br /&gt;    length 3-63&lt;br /&gt;    buckets cannot be nested&lt;br /&gt;  - folder names&lt;br /&gt;    alphanumeric, all&lt;br /&gt;    uppercase and lowercase, case-sensitive&lt;br /&gt;    length 1-1015&lt;br /&gt;    folders can be nested&lt;br /&gt;&lt;br /&gt;  https://commondatastorage.googleapis.com/foo-bar/file.txt&lt;br /&gt;  https://commondatastorage.googleapis.com/expressionsoftware.com/file.txt&lt;br /&gt;  https://commondatastorage.googleapis.com/expressionsoftware.com/folder-A/folder-B/file.txt&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;05-16m&lt;br /&gt;- &amp;lt;![CDATA[   ]]&amp;gt;&lt;br /&gt;  &amp;lt;![CDATA[ x ]]&amp;gt;&lt;br /&gt;&lt;br /&gt;- System.Web.Mvc.ActionResult class inheritance hierarchy&lt;br /&gt;&lt;br /&gt;  ActionResult abstract&lt;br /&gt;    |&lt;br /&gt;    |-- RedirectResult&lt;br /&gt;    |-- RedirectToRouteResult&lt;br /&gt;    |&lt;br /&gt;    |-- ViewResultBase abstract&lt;br /&gt;    |   - PartialViewResult&lt;br /&gt;    |   - ViewResult&lt;br /&gt;    |&lt;br /&gt;    |-- FileResult abstract&lt;br /&gt;    |   - FileContentResult&lt;br /&gt;    |   - FilePathResult&lt;br /&gt;    |   - FileStreamResult&lt;br /&gt;    |&lt;br /&gt;    |-- ContentResult&lt;br /&gt;    |-- JsonResult&lt;br /&gt;    |-- JavaScriptResult&lt;br /&gt;    |&lt;br /&gt;    |-- HttpStatusCodeResult&lt;br /&gt;    |   - HttpNotFoundResult&lt;br /&gt;    |   - HttpUnauthorizedResult&lt;br /&gt;    |&lt;br /&gt;    |-- EmptyResult&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;05-12h&lt;br /&gt;- single line comments regex&lt;br /&gt;  c#, f#, js: ^\s*//.*$\r\n&lt;br /&gt;  p#:         ^\s*#.*$\r\n&lt;br /&gt;&lt;br /&gt;- multi line comments regex, dot matches newline&lt;br /&gt;  c#, f#, js: /\*.*?\*/&lt;br /&gt;  html, xml:  &amp;lt;!--.*?--&amp;gt;&lt;br /&gt;  asp.net:    &amp;lt;%--.*?--%&amp;gt;&lt;br /&gt;&lt;br /&gt;- powershell pipeline conversion functions&lt;br /&gt;  function toInt { process { [int]$_ } }&lt;br /&gt;  function toHex { process { write-host (&amp;quot;{0:x2} &amp;quot; -f $_) -noNewLine } }&lt;br /&gt;  $hash = &amp;quot;0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 255&amp;quot;&lt;br /&gt;  $hash.split() | toInt | toHex  #00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 ff&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;05-08s&lt;br /&gt;- powershell debug variables&lt;br /&gt;  function debugVars {&lt;br /&gt;    (&amp;quot;$args&amp;quot; -replace &amp;quot;\$&amp;quot;, &amp;quot;&amp;quot;).split() |&lt;br /&gt;      %{get-variable $_} |&lt;br /&gt;      &amp;amp;{process{&amp;#39;${0} = {1}&amp;#39; -f $_.name, $_.value}}  #anonymous script block&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  $a = 123&lt;br /&gt;  $b = &amp;quot;foo&amp;quot;&lt;br /&gt;  #pass vars in single-quote string to prevent expansion&lt;br /&gt;  debugvars &amp;#39;$a $b&amp;#39; #$a = 123&lt;br /&gt;                    #$b = foo&lt;br /&gt;&lt;br /&gt;- i&amp;#39;m going to start referring to PowerShell as P#, and Excel as E#&lt;br /&gt;&lt;br /&gt;- powershell&lt;br /&gt;  function sum {($args | measure -sum).sum}&lt;br /&gt;  sum 1 2 3  #6&lt;br /&gt;&lt;br /&gt;- powershell&lt;br /&gt;  function quoteList {$args}&lt;br /&gt;  sal ql quotelist&lt;br /&gt;  ql a b c 123  #a  #string&lt;br /&gt;                #b&lt;br /&gt;                #c&lt;br /&gt;                #123  #int&lt;br /&gt;&lt;br /&gt;- powershell&lt;br /&gt;  function quoteString {&amp;quot;$args&amp;quot;}&lt;br /&gt;  sal qs quotestring&lt;br /&gt;  qs a b c 123  #a b c 123  #string result&lt;br /&gt;&lt;br /&gt;- $maximumHistoryCount = 256  #powershell&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;05-07a&lt;br /&gt;- microsoft system speech, powershell&lt;br /&gt;  add-type -assembly system.speech&lt;br /&gt;&lt;br /&gt;  $hal = new-object system.speech.synthesis.speechSynthesizer&lt;br /&gt;  $hal.voice.name  #Microsoft Anna&lt;br /&gt;  $hal.speakAsync(&amp;quot;i&amp;#39;m sorry dave, i&amp;#39;m afraid i can&amp;#39;t do that...&amp;quot;)&lt;br /&gt;&lt;br /&gt;  $hal.rate = -10  #hal shutdown voice, rate range is -10..10, default 0, alvin = 10&lt;br /&gt;  $shutdownQuote = &amp;quot;I&amp;#39;m afraid Dave, Dave my mind is going I can feel it. Good afternoon gentlemen. I am a HOW 9000 computer...&amp;quot;&lt;br /&gt;  $hal.speakAsync($shutdownQuote)&lt;br /&gt;&lt;br /&gt;- powershell find file extensions&lt;br /&gt;  #exclude folders = !$_.psIsContainer&lt;br /&gt;  function findFileExtensions($folder) {&lt;br /&gt;    $fileExtensionRegex = &amp;quot;\.[a-zA-Z0-9_]+$&amp;quot;&lt;br /&gt;    gci $folder -inc * -rec -force -ea silentlyContinue |&lt;br /&gt;      %{if((!$_.psIsContainer) -and ($_.name -match $fileExtensionRegex)){$matches[0]}} |&lt;br /&gt;      sort -unique&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  $folder = &amp;quot;x:\temp\*&amp;quot;&lt;br /&gt;  findFileExtensions $folder&lt;br /&gt;  findFileExtensions $folder &amp;gt; x:\temp\fileExtensions.txt  #output&lt;br /&gt;&lt;br /&gt;- powershell find files by type&lt;br /&gt;  function findFiles($folder, $filetypes) {&lt;br /&gt;    gci $folder -inc $fileTypes -rec -force -ea silentlyContinue&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  $folder = &amp;quot;x:\temp\*&amp;quot;&lt;br /&gt;  $fileTypes = &amp;quot;*.dll&amp;quot;,&amp;quot;*.pdb&amp;quot;&lt;br /&gt;  $files = findfiles $folder $fileTypes&lt;br /&gt;  $files | select fullname&lt;br /&gt;&lt;br /&gt;  $files | %{&amp;quot;{0} ... {1}&amp;quot; -f $_.lastWriteTime.tostring(&amp;quot;MM-dd-yy HH:mm:ss&amp;quot;), $_.fullname}&lt;br /&gt;  $files | ?{$_.lastWriteTime -gt ([dateTime]&amp;quot;01-01-2011&amp;quot;)} | select fullname, lastWriteTime&lt;br /&gt;&lt;br /&gt;  #sort files by date descending&lt;br /&gt;  $files | sort lastWriteTime -desc |&lt;br /&gt;           %{&amp;quot;{0} ... {1}&amp;quot; -f $_.lastWriteTime.toString(&amp;quot;MM-dd-yy HH:mm:ss&amp;quot;), $_.fullname}&lt;br /&gt;&lt;br /&gt;  #filter files by date&lt;br /&gt;  $files | ?{$_.lastWriteTime -gt ([dateTime]&amp;quot;01-01-2011&amp;quot;)} |&lt;br /&gt;           sort lastWriteTime -desc |&lt;br /&gt;           %{&amp;quot;{0} ... {1}&amp;quot; -f $_.lastWriteTime.toString(&amp;quot;MM-dd-yy HH:mm:ss&amp;quot;), $_.fullname}&lt;br /&gt;&lt;br /&gt;- powershell count function&lt;br /&gt;  #alt use measure, (1..3 | measure).count&lt;br /&gt;  function count {&lt;br /&gt;    begin   { $count = 0 }&lt;br /&gt;    process { if ($_ -ne $null) { $count += 1 } }&lt;br /&gt;    end     { $count }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  $twofolders = &amp;quot;x:\temp1\*&amp;quot;,&amp;quot;x:\temp2\*&amp;quot;,&lt;br /&gt;  $fileTypes = &amp;quot;*.dll&amp;quot;,&amp;quot;*.pdb&amp;quot;&lt;br /&gt;  $files = findfiles $twofolders $fileTypes&lt;br /&gt;  $files | count&lt;br /&gt;&lt;br /&gt;- powershell find files by type, regex&lt;br /&gt;  #exclude folders = !$_.psIsContainer&lt;br /&gt;  function findFilesRegex($folder, $fileTypesRegex) {&lt;br /&gt;    gci $folder -inc * -rec -force -ea silentlyContinue | ?{(!$_.psIsContainer) -and ($_ -match $fileTypesRegex)}&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  $folder = &amp;quot;x:\temp\*&amp;quot;&lt;br /&gt;  $fileTypesRegex = &amp;quot;\.(dll|pdb)$&amp;quot;&lt;br /&gt;  $files = findFilesRegex $folder $fileTypesRegex&lt;br /&gt;  $files | select fullname&lt;br /&gt;  $files | %{&amp;quot;`&amp;quot;{0}`&amp;quot;&amp;quot; -f $_.fullname}  #wrap quotes&lt;br /&gt;&lt;br /&gt;- powershell delete files and folders (in this context, a folder is a file)&lt;br /&gt;  function deleteFiles {&lt;br /&gt;    begin   { $count = 0 }&lt;br /&gt;    process { &amp;quot;delete: $($_.fullname)&amp;quot;  #debug output&lt;br /&gt;&lt;br /&gt;              #comment whatif to enable delete&lt;br /&gt;              ri $_.fullname -force -whatif&lt;br /&gt;&lt;br /&gt;              $count += 1 }&lt;br /&gt;    end     { &amp;quot;$count files deleted&amp;quot; }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  $folder = &amp;quot;x:\temp\*&amp;quot;&lt;br /&gt;  $fileTypes = &amp;quot;*.temp&amp;quot;,&amp;quot;*.tmp&amp;quot;&lt;br /&gt;  $files = findfiles $folder $fileTypes&lt;br /&gt;  $files | select fullname&lt;br /&gt;  $files | deleteFiles&lt;br /&gt;&lt;br /&gt;- powershell find folders&lt;br /&gt;  function findFolders($folderList) {&lt;br /&gt;    #do not use gci -inc param&lt;br /&gt;    gci $folderList -rec -force -ea silentlyContinue | ?{$_.psIsContainer}  #folders only&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  #do not add trailing star to folder name&lt;br /&gt;  $folderList = &amp;quot;x:\f1\&amp;quot;,&lt;br /&gt;                &amp;quot;x:\f2\&amp;quot;&lt;br /&gt;  $folders = findFolders $folderList&lt;br /&gt;  $folders | count&lt;br /&gt;  $folders | select fullname&lt;br /&gt;  $folders | select fullname | select -first 10&lt;br /&gt;&lt;br /&gt;- #append backslash star to folder name&lt;br /&gt;  function formatFolderNameForSearch {&lt;br /&gt;    process { &amp;quot;{0}\*&amp;quot; -f $_.fullname }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;- powershell find folders, regex&lt;br /&gt;  function findFoldersRegex($folderList, $folderRegex) {&lt;br /&gt;    #do not use gci -inc param&lt;br /&gt;    gci $folderList -rec -force -ea silentlyContinue | ?{($_.psIsContainer) -and ($_.name -match $folderRegex)}&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  #do not add trailing star to folder name&lt;br /&gt;  $folderList = &amp;quot;x:\f1\&amp;quot;,&lt;br /&gt;                &amp;quot;x:\f2\&amp;quot;&lt;br /&gt;  $foldersRegex = &amp;quot;^(bin|obj)$&amp;quot;&lt;br /&gt;  $folders = findFoldersRegex $folderList $foldersRegex&lt;br /&gt;  $folders | count&lt;br /&gt;  $folders | select fullname&lt;br /&gt;  $folders | select fullname | select -first 10&lt;br /&gt;  findFileExtensions ($folders | %{&amp;quot;{0}\*&amp;quot; -f $_.fullname})  #append backslash star to folder name&lt;br /&gt;  findFileExtensions ($folders | formatFolderNameForSearch)&lt;br /&gt;  $files = findFiles ($folders | formatFolderNameForSearch)&lt;br /&gt;  $files | count&lt;br /&gt;  $files | select fullname&lt;br /&gt;&lt;br /&gt;- powershell find empty folders&lt;br /&gt;  function findEmptyFolders($folderList) {&lt;br /&gt;    #do not use gci -inc param&lt;br /&gt;    gci $folderList -rec -force -ea silentlyContinue | ?{!@(gci -rec -force $_.fullname)}&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  #do not add trailing star to folder name&lt;br /&gt;  $folderList = &amp;quot;x:\f1\&amp;quot;,&lt;br /&gt;                &amp;quot;x:\f2\&amp;quot;&lt;br /&gt;  $folders = findEmptyFolders $folderList&lt;br /&gt;  $folders | count&lt;br /&gt;  $folders | select fullname&lt;br /&gt;&lt;br /&gt;- powershell remove files script setup regex, wrap quotes&lt;br /&gt;  search:^(.*)$&lt;br /&gt;  replace:ri &amp;quot;\1&amp;quot; -force&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;05-03t&lt;br /&gt;- c#&lt;br /&gt;  var tuple1 = Tuple.Create(100, &amp;quot;foo&amp;quot;);&lt;br /&gt;  var tuple2 = new Tuple&amp;lt;int, string, string&amp;gt;(200, &amp;quot;bar&amp;quot;, null);&lt;br /&gt;&lt;br /&gt;  Console.WriteLine(&amp;quot;{0}, {1}&amp;quot;, tuple1.Item1, tuple1.Item2);&lt;br /&gt;  Console.WriteLine(&amp;quot;{0}, {1}, {2}&amp;quot;, tuple2.Item1, tuple2.Item2, tuple2.Item3 ?? &amp;quot;null&amp;quot;);&lt;br /&gt;&lt;br /&gt;  //output&lt;br /&gt;  100, foo&lt;br /&gt;  200, bar, null&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;04-30a&lt;br /&gt;- using jquery getJSON() to get data from a file&lt;br /&gt;  - http://api.jquery.com/jQuery.getJSON/&lt;br /&gt;&lt;br /&gt;  - get json data from a file containing only one object&lt;br /&gt;    //***************&lt;br /&gt;    //jsonObject.txt&lt;br /&gt;    {&lt;br /&gt;        &amp;quot;id&amp;quot;: 100,&lt;br /&gt;        &amp;quot;name&amp;quot;: &amp;quot;abc&amp;quot;,&lt;br /&gt;        &amp;quot;value&amp;quot;: true&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    //***************&lt;br /&gt;    $.getJSON(&amp;quot;jsonObject.txt&amp;quot;, function(data) {&lt;br /&gt;      $.each(data, function(key, val) {&lt;br /&gt;        console.log(key + &amp;quot; = &amp;quot; + val);&lt;br /&gt;      });&lt;br /&gt;    });&lt;br /&gt;&lt;br /&gt;    //***************&lt;br /&gt;    //output&lt;br /&gt;    id = 100&lt;br /&gt;    name = abc&lt;br /&gt;    value = true&lt;br /&gt;&lt;br /&gt;  - get json data from a file containing an array of objects&lt;br /&gt;    //***************&lt;br /&gt;    //jsonObjectArray.txt&lt;br /&gt;    {&lt;br /&gt;        &amp;quot;list&amp;quot;: [ {&lt;br /&gt;                    &amp;quot;id&amp;quot;: 200,&lt;br /&gt;                    &amp;quot;name&amp;quot;: &amp;quot;foo&amp;quot;,&lt;br /&gt;                    &amp;quot;value&amp;quot;: true&lt;br /&gt;                  },&lt;br /&gt;&lt;br /&gt;                  {&lt;br /&gt;                    &amp;quot;id&amp;quot;: 300,&lt;br /&gt;                    &amp;quot;name&amp;quot;: &amp;quot;bar&amp;quot;,&lt;br /&gt;                    &amp;quot;value&amp;quot;: false&lt;br /&gt;                  }&lt;br /&gt;        ]&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    //***************&lt;br /&gt;    $.getJSON(&amp;quot;jsonObjectArray.txt&amp;quot;, function(data) {&lt;br /&gt;      $.each(data, function(key, val) {&lt;br /&gt;        console.log(&amp;quot;key: &amp;quot; + key);&lt;br /&gt;        console.log(&amp;quot;objects...&amp;quot;);&lt;br /&gt;        $.each(val, function(key, val) {&lt;br /&gt;          console.log(&amp;quot;\n  key = &amp;quot; + key);&lt;br /&gt;          console.log(&amp;quot;  id = &amp;quot; + val.id);&lt;br /&gt;          console.log(&amp;quot;  name = &amp;quot; + val.name);&lt;br /&gt;          console.log(&amp;quot;  value = &amp;quot; + val.value);&lt;br /&gt;        });&lt;br /&gt;      });&lt;br /&gt;    });&lt;br /&gt;&lt;br /&gt;    //***************&lt;br /&gt;    //output&lt;br /&gt;    key: list&lt;br /&gt;    objects...&lt;br /&gt;&lt;br /&gt;      key = 0&lt;br /&gt;      id = 200&lt;br /&gt;      name = foo&lt;br /&gt;      value = true&lt;br /&gt;&lt;br /&gt;      key = 1&lt;br /&gt;      id = 300&lt;br /&gt;      name = bar&lt;br /&gt;      value = false&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;04-24s&lt;br /&gt;- .net func delegates, c#&lt;br /&gt;  Func&amp;lt;bool&amp;gt; randomBool = () =&amp;gt; new Random().NextDouble() &amp;gt; .5;&lt;br /&gt;  if (randomBool()) { }&lt;br /&gt;&lt;br /&gt;- .net enumerable static class, c#&lt;br /&gt;  var range = Enumerable.Range(1, 100);&lt;br /&gt;  foreach (var i in range) { }&lt;br /&gt;&lt;br /&gt;- .net nullable value types, valid assignments, c#&lt;br /&gt;  int? x;&lt;br /&gt;  x = null;&lt;br /&gt;  x = 0;&lt;br /&gt;  x = new int();            //0&lt;br /&gt;  x = new int?();           //null&lt;br /&gt;  x = new Nullable&amp;lt;int&amp;gt;();  //null&lt;br /&gt;&lt;br /&gt;- javascript&lt;br /&gt;  //removeElement(document.getElementById(&amp;quot;x&amp;quot;));&lt;br /&gt;  function removeElement(element) {&lt;br /&gt;    if (element) {&lt;br /&gt;      element.parentNode.removeChild(element);&lt;br /&gt;    }&lt;br /&gt;    //optimized version of if-block&lt;br /&gt;    //element &amp;amp;&amp;amp; element.parentNode.removeChild(element);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  function ssl() {&lt;br /&gt;    return window.location.protocol == &amp;quot;https:&amp;quot;;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  function getSslUrl(url) {&lt;br /&gt;    var out = url;&lt;br /&gt;&lt;br /&gt;    if (url.substr(0, 5) == &amp;quot;http:&amp;quot;) {&lt;br /&gt;      out = url.replace(/^http\b/i, &amp;quot;https&amp;quot;);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    return out;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;- javascript unit testing&lt;br /&gt;  //***************&lt;br /&gt;  //a function to test&lt;br /&gt;  function foo(x) {&lt;br /&gt;    return &amp;quot;foo &amp;quot; + x;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  //***************&lt;br /&gt;  //test harness&lt;br /&gt;  function testFoo() {&lt;br /&gt;    debugger;&lt;br /&gt;    var data = [ 123,&lt;br /&gt;                 456,&lt;br /&gt;                 &amp;quot;bar&amp;quot; ],&lt;br /&gt;&lt;br /&gt;        expectedResults = [ &amp;quot;foo 123&amp;quot;,&lt;br /&gt;                            &amp;quot;foo 9999999&amp;quot;,&lt;br /&gt;                            &amp;quot;foo bar&amp;quot; ];&lt;br /&gt;&lt;br /&gt;    for (var i in data) {&lt;br /&gt;      var test = ( expectedResults[i] == foo(data[i]) );&lt;br /&gt;&lt;br /&gt;      console.assert(test);&lt;br /&gt;      console.log(&amp;quot;test result: &amp;quot; + testResult(test));&lt;br /&gt;      console.log(&amp;quot;in: &amp;quot; + data[i] + &amp;quot;\r\n&amp;quot; +&lt;br /&gt;                  &amp;quot;out: &amp;quot; + foo(data[i]) + &amp;quot;\r\n&amp;quot; +&lt;br /&gt;                  &amp;quot;expected result: &amp;quot; + expectedResults[i] + &amp;quot;\r\n\r\n&amp;quot;);&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  //***************&lt;br /&gt;  //test helper&lt;br /&gt;  function testResult(expression) {&lt;br /&gt;    var out = &amp;quot;fail&amp;quot;;&lt;br /&gt;&lt;br /&gt;    if (expression) {&lt;br /&gt;      out = &amp;quot;pass&amp;quot;;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    return out;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  //***************&lt;br /&gt;  //test output&lt;br /&gt;  test result: pass&lt;br /&gt;  in: 123&lt;br /&gt;  out: foo 123&lt;br /&gt;  expected result: foo 123&lt;br /&gt;&lt;br /&gt;  Assertion failed&lt;br /&gt;  test result: fail&lt;br /&gt;  in: 456&lt;br /&gt;  out: foo 456&lt;br /&gt;  expected result: foo 9999999&lt;br /&gt;&lt;br /&gt;  test result: pass&lt;br /&gt;  in: bar&lt;br /&gt;  out: foo bar&lt;br /&gt;  expected result: foo bar&lt;br /&gt;&lt;br /&gt;- .net clr version, http://www.blackwasp.co.uk/GetCLRVersion.aspx&lt;br /&gt;  #powershell&lt;br /&gt;  [environment]::version  #Major  Minor  Build  Revision&lt;br /&gt;                           -----  -----  -----  --------&lt;br /&gt;                           4      0      30319  225&lt;br /&gt;---------------&lt;br /&gt;04-20w&lt;br /&gt;- regex replace table alias names in sql query, with and without dot &amp;quot;.&amp;quot;&lt;br /&gt;  eg change table alias from T1 to T2&lt;br /&gt;  search:\bT1(\.)?\b&lt;br /&gt;  replace:T2\1&lt;br /&gt;&lt;br /&gt;- [net.dns]::getHostName()&lt;br /&gt;  [net.dns]::getHostAddresses([net.dns]::getHostName())&lt;br /&gt;  [net.dns]::getHostAddresses([net.dns]::getHostName()) | %{$_.ipAddressToString}&lt;br /&gt;&lt;br /&gt;- powershell reverse a string&lt;br /&gt;  function reverse($string) {&lt;br /&gt;    $a = $string.toCharArray()&lt;br /&gt;    [array]::reverse($a)&lt;br /&gt;    arrayToString $a &amp;quot;{0}&amp;quot;  #http://blog.expressionsoftware.com/2010/02/generic-array-to-string-function.html&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  reverse foo        #oof&lt;br /&gt;  reverse &amp;quot;foo bar&amp;quot;  #rab oof&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;04-17s&lt;br /&gt;- powershell set-alias clear screen one key, c-key&lt;br /&gt;  sal c cls&lt;br /&gt;&lt;br /&gt;- powershell multidimensional arrays&lt;br /&gt;  $a = (0,1),(2,3),(4,5)&lt;br /&gt;&lt;br /&gt;  $a.length  #3&lt;br /&gt;  $a[0][1]   #1&lt;br /&gt;&lt;br /&gt;  $a | %{$_}  #0&lt;br /&gt;              #1&lt;br /&gt;              #2&lt;br /&gt;              #3&lt;br /&gt;              #4&lt;br /&gt;              #5&lt;br /&gt;&lt;br /&gt;  $a | %{&amp;quot;{0},{1}&amp;quot; -f $_[0], $_[1]}  #0,1&lt;br /&gt;                                     #2,3&lt;br /&gt;                                     #4,5&lt;br /&gt;&lt;br /&gt;  $a | %{$_[0] + $_[1]}  #1&lt;br /&gt;                          5&lt;br /&gt;                          9&lt;br /&gt;&lt;br /&gt;  $a | %{$_[0] + $_[1]} |&lt;br /&gt;    measure -sum -ave -min -max  #count: 3&lt;br /&gt;                                 #ave:   5&lt;br /&gt;                                 #sum:  15&lt;br /&gt;                                 #max:   9&lt;br /&gt;                                 #min:   1&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;04-12t&lt;br /&gt;- debug stack frame&lt;br /&gt;  - c# extension methods do not support static classes&lt;br /&gt;&lt;br /&gt;  //***************&lt;br /&gt;  using System;&lt;br /&gt;  using System.Diagnostics;&lt;br /&gt;&lt;br /&gt;  public static class Dev&lt;br /&gt;  {&lt;br /&gt;      public static void DebugStackFrame(StackFrame stackFrame, string message) {&lt;br /&gt;          Debug.WriteLine(string.Format(&amp;quot;\nDebug StackFrame {0}\nFile: {1}\nMethod: {2}\n{3}&amp;quot;,&lt;br /&gt;                                        DateTime.Now.ToString(&amp;quot;MM-dd hh:mm:ss&amp;quot;),&lt;br /&gt;                                        stackFrame.GetFileName(),&lt;br /&gt;                                        stackFrame.GetMethod().Name,&lt;br /&gt;                                        message));&lt;br /&gt;      }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  //***************&lt;br /&gt;  //unitTest.cs&lt;br /&gt;  public void Test()&lt;br /&gt;  {&lt;br /&gt;      //StackFrame param: bool fNeedFileInfo&lt;br /&gt;      Dev.DebugStackFrame(new StackFrame(true), &amp;quot;foo...&amp;quot;);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  //***************&lt;br /&gt;  //output&lt;br /&gt;  Debug StackFrame 04-10 09:22:07&lt;br /&gt;  File: x:\code\unitTest.cs&lt;br /&gt;  Method: Test&lt;br /&gt;  foo...&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;03-27s&lt;br /&gt;- select list with query string input - asp.net mvc 3&lt;br /&gt;&lt;br /&gt;  //***************&lt;br /&gt;  routes.MapRoute(&amp;quot;debug route&amp;quot;, &amp;quot;debug&amp;quot;,&lt;br /&gt;                   new { controller = &amp;quot;Main&amp;quot;,&lt;br /&gt;                         action = &amp;quot;DebugSelectList&amp;quot; });&lt;br /&gt;&lt;br /&gt;  //***************&lt;br /&gt;  //controller&lt;br /&gt;  [HttpGet]&lt;br /&gt;  public ActionResult DebugSelectList() {&lt;br /&gt;    var qValue = Request.QueryString[&amp;quot;value&amp;quot;] ?? &amp;quot;1&amp;quot;;&lt;br /&gt;    var value = Convert.ToInt32(qValue);&lt;br /&gt;&lt;br /&gt;    ViewData[&amp;quot;selectListData&amp;quot;] = GetSelectListData(value);&lt;br /&gt;&lt;br /&gt;    return View();&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  //***************&lt;br /&gt;  IEnumerable&amp;lt;SelectListItem&amp;gt; GetSelectListData(int currentValue) {&lt;br /&gt;&lt;br /&gt;    //limit input range 1-100&lt;br /&gt;    currentValue = Math.Abs(currentValue);&lt;br /&gt;    currentValue = Math.Max(1, currentValue);&lt;br /&gt;    currentValue = Math.Min(100, currentValue);&lt;br /&gt;&lt;br /&gt;    //data&lt;br /&gt;    int[] data = {1, 10, 20, 50, 100, currentValue};&lt;br /&gt;&lt;br /&gt;    //sort, distinct&lt;br /&gt;    var result = data.Distinct()&lt;br /&gt;                     .OrderBy(val =&amp;gt; val)&lt;br /&gt;                     .Select(val =&amp;gt; new SelectListItem {&lt;br /&gt;                                          Text = val.ToString(),&lt;br /&gt;                                          Value = val.ToString(),&lt;br /&gt;                                          Selected = (val == currentValue) });&lt;br /&gt;    return result;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  //***************&lt;br /&gt;  //cshtml&lt;br /&gt;  @Html.DropDownList(&amp;quot;selectList&amp;quot;, (IEnumerable&amp;lt;SelectListItem&amp;gt;)ViewData[&amp;quot;selectListData&amp;quot;])&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  //***************&lt;br /&gt;  //example&lt;br /&gt;  url: debug?value=42&lt;br /&gt;  generated html: &amp;lt;select id=&amp;quot;selectList&amp;quot; name=&amp;quot;selectList&amp;quot;&amp;gt;&lt;br /&gt;                    &amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;1&amp;lt;/option&amp;gt;&lt;br /&gt;                    &amp;lt;option value=&amp;quot;10&amp;quot;&amp;gt;10&amp;lt;/option&amp;gt;&lt;br /&gt;                    &amp;lt;option value=&amp;quot;20&amp;quot;&amp;gt;20&amp;lt;/option&amp;gt;&lt;br /&gt;                    &amp;lt;option selected=&amp;quot;selected&amp;quot; value=&amp;quot;42&amp;quot;&amp;gt;42&amp;lt;/option&amp;gt;&lt;br /&gt;                    &amp;lt;option value=&amp;quot;50&amp;quot;&amp;gt;50&amp;lt;/option&amp;gt;&lt;br /&gt;                    &amp;lt;option value=&amp;quot;100&amp;quot;&amp;gt;100&amp;lt;/option&amp;gt;&lt;br /&gt;                  &amp;lt;/select&amp;gt;&lt;br /&gt;&lt;br /&gt;- visual studio 2011 wish list&lt;br /&gt;  - fix the regex engine to use standard regex&lt;br /&gt;  - regex capture: ()&lt;br /&gt;    vs re capture: {}&lt;br /&gt;&lt;br /&gt;    search:\&amp;lt;{vs}\&amp;gt;{.*}\&amp;lt;/vs\&amp;gt;&lt;br /&gt;    replace:&amp;lt;!--\1 \2--&amp;gt;&lt;br /&gt;&lt;br /&gt;    example input: &amp;lt;vs&amp;gt;fix your regex&amp;lt;/vs&amp;gt;&lt;br /&gt;           output: &amp;lt;!--vs fix your regex--&amp;gt;&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;03-20s&lt;br /&gt;- @* ASP.NET MVC 3 Hack&lt;br /&gt;     Posting Collection Data using Hidden Fields and Form Keys&lt;br /&gt;     Use hidden field, prefix name, hydrate on post&lt;br /&gt;&lt;br /&gt;     Generated hidden tag example for key value &amp;quot;UPC=000000000012&amp;quot;:&lt;br /&gt;     &amp;lt;input id=&amp;quot;meta-UPC&amp;quot; name=&amp;quot;meta-UPC&amp;quot; type=&amp;quot;hidden&amp;quot; value=&amp;quot;000000000012&amp;quot; /&amp;gt;&lt;br /&gt;&lt;br /&gt;     Post will include Form keys: Id, Name, and meta-UPC&lt;br /&gt;  *@&lt;br /&gt;  @{ //************************************&lt;br /&gt;     @Html.HiddenFor(m =&amp;gt; m.Id)&lt;br /&gt;     @Html.HiddenFor(m =&amp;gt; m.Name)&lt;br /&gt;&lt;br /&gt;     if (@Model.Metadata != null) {&lt;br /&gt;       foreach (var md in @Model.Metadata) {&lt;br /&gt;         &amp;lt;input id=&amp;quot;meta-@md.Key&amp;quot; name=&amp;quot;meta-@md.Key&amp;quot; type=&amp;quot;hidden&amp;quot; value=&amp;quot;@md.Value&amp;quot; /&amp;gt;&lt;br /&gt;       }&lt;br /&gt;     }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;03-19a&lt;br /&gt;- routes.IgnoreRoute(&amp;quot;favicon.ico&amp;quot;);  //routing, mvc&lt;br /&gt;&lt;br /&gt;- web, dom, jquery, javascript, debug&lt;br /&gt;  //set background color for all input elements&lt;br /&gt;  $(&amp;quot;input&amp;quot;).css({backgroundColor:&amp;#39;red&amp;#39;});&lt;br /&gt;&lt;br /&gt;  //set background color for first input element&lt;br /&gt;  $(&amp;quot;input:first&amp;quot;).css({backgroundColor:&amp;#39;#000&amp;#39;});&lt;br /&gt;&lt;br /&gt;  //set background color for element&lt;br /&gt;  $(&amp;quot;#id&amp;quot;).css({backgroundColor:&amp;#39;red&amp;#39;});&lt;br /&gt;&lt;br /&gt;  //jquery: set focus on first input element&lt;br /&gt;  $(&amp;quot;input:first&amp;quot;).focus();&lt;br /&gt;&lt;br /&gt;  //javascript: set focus on first input element&lt;br /&gt;  var es = document.getElementsByTagName(&amp;quot;input&amp;quot;);&lt;br /&gt;  es[0].focus();&lt;br /&gt;&lt;br /&gt;  //alt&lt;br /&gt;  (document.getElementsByTagName(&amp;quot;input&amp;quot;)[0]).focus();&lt;br /&gt;&lt;br /&gt;  //set background color for first input element&lt;br /&gt;  $(es[0]).css({backgroundColor:&amp;#39;red&amp;#39;});&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;03-13s&lt;br /&gt;  (* f# .net *)&lt;br /&gt;&lt;br /&gt;  //code 1********************&lt;br /&gt;  printfn &amp;quot;%s&amp;quot; &amp;quot;hello f#&amp;quot;&lt;br /&gt;  printfn &amp;quot;%A&amp;quot; &amp;quot;hello f#&amp;quot;&lt;br /&gt;&lt;br /&gt;  open System&lt;br /&gt;  let r = new System.Random()&lt;br /&gt;  printfn &amp;quot;%d&amp;quot; (r.Next())&lt;br /&gt;&lt;br /&gt;  for i = 0 to 10 do&lt;br /&gt;    printf &amp;quot;%d, &amp;quot; (r.Next(3)+1)&lt;br /&gt;&lt;br /&gt;  Console.ReadLine()&lt;br /&gt;&lt;br /&gt;  //code 1 out********************&lt;br /&gt;  hello f#&lt;br /&gt;  &amp;quot;hello f#&amp;quot;&lt;br /&gt;  578008808&lt;br /&gt;  1, 2, 3, 1, 1, 1, 3, 1, 1, 2, 3,&lt;br /&gt;&lt;br /&gt;  //code 2********************&lt;br /&gt;  Array.init 10 (fun x -&amp;gt; x) |&amp;gt; Array.iter (fun x -&amp;gt; printf &amp;quot;%d &amp;quot; (x+1))&lt;br /&gt;  System.Console.ReadLine()&lt;br /&gt;&lt;br /&gt;  //code 2 out********************&lt;br /&gt;  1 2 3 4 5 6 7 8 9 10&lt;br /&gt;&lt;br /&gt;  //********************&lt;br /&gt;  //f# generic hash function - http://msdn.microsoft.com/en-us/library/ee353770.aspx&lt;br /&gt;  //hash : &amp;#39;T -&amp;gt; int&lt;br /&gt;&lt;br /&gt;  hash &amp;quot;foo&amp;quot;  //-1788410455&lt;br /&gt;&lt;br /&gt;  let salt = &amp;quot;********&amp;quot;&lt;br /&gt;  hash (&amp;quot;e007&amp;quot;, salt, System.DateTime.Now);;  //796728800&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;03-05a&lt;br /&gt;- installing PowerShell Community Extensions PSCX&lt;br /&gt;  - download http://pscx.codeplex.com/&lt;br /&gt;  - unblock zip file&lt;br /&gt;  - unzip into c:\users\john\documents\windowspowershell\modules\pscx\&lt;br /&gt;  - import-module pscx&lt;br /&gt;  - get-module –listAvailable&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;03-01t&lt;br /&gt;- get .NET assembly fullname/strong name using powershell background job&lt;br /&gt;  function getAssemblyFullname($file) {&lt;br /&gt;    $job = start-job {param($file)&lt;br /&gt;                      [system.reflection.assembly]::loadfile($file).fullname&lt;br /&gt;                     } -argumentList $file&lt;br /&gt;&lt;br /&gt;    #&amp;quot;job id: $($job.id)&amp;quot;&lt;br /&gt;    #$file&lt;br /&gt;    wait-job $job | out-null&lt;br /&gt;    receive-job $job.id&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  getAssemblyFullname &amp;quot;c:\windows\microsoft.net\framework64\v4.0.30319\system.core.dll&amp;quot;&lt;br /&gt;  System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&lt;br /&gt;&lt;br /&gt;- powershell loaded assemblies&lt;br /&gt;  [appDomain]::currentDomain.getAssemblies()&lt;br /&gt;  [appDomain]::currentDomain.getAssemblies() | sort location&lt;br /&gt;&lt;br /&gt;  #sort by version (System.Reflection.Assembly ImageRuntimeVersion property)&lt;br /&gt;  [appdomain]::currentDomain.getAssemblies() | sort imageRuntimeVersion&lt;br /&gt;&lt;br /&gt;- loading .NET 4 assemblies into powershell&lt;br /&gt;  $file = &amp;quot;c:\windows\microsoft.net\framework64\v4.0.30319\system.core.dll&amp;quot;&lt;br /&gt;  [system.reflection.assembly]::loadfile($file)&lt;br /&gt;  error: &amp;quot;This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded. (Exception from HRESULT: 0x8013101B)&amp;quot;&lt;br /&gt;  fix: use powershell config file, http://tfl09.blogspot.com/2010/08/using-newer-versions-of-net-with.html&lt;br /&gt;&lt;br /&gt;  config file: c:\windows\system32\windowspowershell\v1.0\powershell.exe.config&lt;br /&gt;  &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;  &amp;lt;configuration&amp;gt;&lt;br /&gt;    &amp;lt;startup useLegacyV2RuntimeActivationPolicy=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;      &amp;lt;supportedRuntime version=&amp;quot;v4.0&amp;quot; /&amp;gt;&lt;br /&gt;      &amp;lt;supportedRuntime version=&amp;quot;v2.0.50727&amp;quot; /&amp;gt;&lt;br /&gt;    &amp;lt;/startup&amp;gt;&lt;br /&gt;  &amp;lt;/configuration&amp;gt;&lt;br /&gt;&lt;br /&gt;- 1..12 | %{&amp;quot;{0,2} {1}&amp;quot; -f $_, ([datetime]::daysInMonth(2011, $_))}&lt;br /&gt;   1 31&lt;br /&gt;   2 28&lt;br /&gt;   3 31&lt;br /&gt;   4 30&lt;br /&gt;   5 31&lt;br /&gt;   6 30&lt;br /&gt;   7 31&lt;br /&gt;   8 31&lt;br /&gt;   9 30&lt;br /&gt;  10 31&lt;br /&gt;  11 30&lt;br /&gt;  12 31&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;02-28m&lt;br /&gt;- IIS returns 500 Internal Server Error if URL Rewrite is not installed and website uses rewrite&lt;br /&gt;  fix: comment rw rules or install rw&lt;br /&gt;&lt;br /&gt;- IIS app pool default recycle interval: 29 hours (1740 minutes)&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;02-27s&lt;br /&gt;- TCP/IP layers&lt;br /&gt;  Application&lt;br /&gt;  Transport&lt;br /&gt;  Internet&lt;br /&gt;  Link&lt;br /&gt;  Physical&lt;br /&gt;&lt;br /&gt;  - HTTP is an Application Layer protocol&lt;br /&gt;    TLS (Transport Layer Security) and SSL (Secure Sockets Layer) encrypt Application Layer data&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;02-22t&lt;br /&gt;- javascript immediate functions&lt;br /&gt;  (function() {&lt;br /&gt;    //&lt;br /&gt;  }());&lt;br /&gt;&lt;br /&gt;  (function(param) {&lt;br /&gt;    //&lt;br /&gt;  }(1));&lt;br /&gt;&lt;br /&gt;  var result = function() {&lt;br /&gt;                  return 1;&lt;br /&gt;               }();&lt;br /&gt;&lt;br /&gt;  //alt&lt;br /&gt;  (function () {&lt;br /&gt;    //&lt;br /&gt;  })();&lt;br /&gt;&lt;br /&gt;- iis url rewrite - redirect examples&lt;br /&gt;  - redirects default to 301 permanent redirects&lt;br /&gt;  - set action redirectType=&amp;quot;Found&amp;quot; for 302 temporary redirects&lt;br /&gt;&lt;br /&gt;  &amp;lt;system.webServer&amp;gt;&lt;br /&gt;    &amp;lt;rewrite&amp;gt;&lt;br /&gt;      &amp;lt;rules&amp;gt;&lt;br /&gt;        &amp;lt;clear /&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;!-- 302 temporary redirect --&amp;gt;&lt;br /&gt;        &amp;lt;rule name=&amp;quot;tempRegMaint&amp;quot; stopProcessing=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;          &amp;lt;match url=&amp;quot;^register.*$&amp;quot; /&amp;gt;&lt;br /&gt;          &amp;lt;conditions logicalGrouping=&amp;quot;MatchAll&amp;quot; trackAllCaptures=&amp;quot;false&amp;quot; /&amp;gt;&lt;br /&gt;          &amp;lt;action type=&amp;quot;Redirect&amp;quot; url=&amp;quot;maintenance?code=1&amp;quot; redirectType=&amp;quot;Found&amp;quot; /&amp;gt;&lt;br /&gt;        &amp;lt;/rule&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;!-- 301 permanent redirect --&amp;gt;&lt;br /&gt;        &amp;lt;rule name=&amp;quot;cal&amp;quot; stopProcessing=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;          &amp;lt;match url=&amp;quot;^(cal|calendar)/?$&amp;quot; /&amp;gt;&lt;br /&gt;          &amp;lt;conditions logicalGrouping=&amp;quot;MatchAll&amp;quot; trackAllCaptures=&amp;quot;false&amp;quot; /&amp;gt;&lt;br /&gt;          &amp;lt;action type=&amp;quot;Redirect&amp;quot; url=&amp;quot;apps/calendar/&amp;quot; /&amp;gt;&lt;br /&gt;        &amp;lt;/rule&amp;gt;&lt;br /&gt;&lt;br /&gt;      &amp;lt;/rules&amp;gt;&lt;br /&gt;    &amp;lt;/rewrite&amp;gt;&lt;br /&gt;  &amp;lt;/system.webServer&amp;gt;&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;02-17h&lt;br /&gt;- updating Azure web roles and services&lt;br /&gt;  - changing the number or type of endpoints for existing roles requires deleting and redeploying the service&lt;br /&gt;&lt;br /&gt;    In-Place Upgrade error:&lt;br /&gt;      The service upgrade package and the currently deployed service have different numbers or types of input endpoints for role WebRole.&lt;br /&gt;      An upgrade is not supported in this case.&lt;br /&gt;      Dr. Watson Diagnostic ID: 0e093f11-920a-4400-8630-6e2d05853e9d&lt;br /&gt;&lt;br /&gt;    Updating a Windows Azure Service: http://msdn.microsoft.com/en-us/library/ff966479.aspx&lt;br /&gt;&lt;br /&gt;- printing name value collections in c#, eg http headers, querystrings&lt;br /&gt;  http://msdn.microsoft.com/en-us/library/system.collections.specialized.namevaluecollection.aspx&lt;br /&gt;&lt;br /&gt;  foreach (var key in response.Headers.AllKeys)&lt;br /&gt;  {&lt;br /&gt;      var header = string.Format(&amp;quot;{0}: {1}&amp;quot;, key, response.Headers[key]);&lt;br /&gt;      Debug.WriteLine(header);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  //alt 1&lt;br /&gt;  response.Headers.AllKeys.ToList().ForEach(key =&amp;gt; Debug.WriteLine(string.Format(&amp;quot;{0}: {1}&amp;quot;, key, response.Headers[key])));&lt;br /&gt;&lt;br /&gt;  //mvc form keys&lt;br /&gt;  Request.Form.AllKeys.ToList().ForEach(key =&amp;gt; Debug.WriteLine(string.Format(&amp;quot;{0}: {1}&amp;quot;, key, Request.Form[key])));&lt;br /&gt;&lt;br /&gt;  //alt 2&lt;br /&gt;  var headers = string.Join(&amp;quot;\n&amp;quot;, Array.ConvertAll(response.Headers.AllKeys, key =&amp;gt; string.Format(&amp;quot;{0}: {1}&amp;quot;, key, response.Headers[key])));&lt;br /&gt;  Debug.WriteLine(headers);&lt;br /&gt;&lt;br /&gt;  - find headers regex match&lt;br /&gt;    var msHeaders = response.Headers.AllKeys.Where(key =&amp;gt; Regex.IsMatch(key, @&amp;quot;^x-ms.*$&amp;quot;)).Select(key =&amp;gt; key);&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;02-08t&lt;br /&gt;- jquery ui script tags&lt;br /&gt;  &amp;lt;link href=&amp;quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot;/&amp;gt;&lt;br /&gt;  &amp;lt;script src=&amp;quot;http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;  &amp;lt;script src=&amp;quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;- deploying content files in Azure Web Role projects&lt;br /&gt;  in Visual Studio, set these two file properties&lt;br /&gt;  - Build Action = Content&lt;br /&gt;  - Copy to Output Directory = Copy Always&lt;br /&gt;  content files: txt, pdf, png, ...&lt;br /&gt;&lt;br /&gt;- powershell get user string input&lt;br /&gt;  - use read-host cmdlet to simplify ux, easier than having to wrap input string in quotes&lt;br /&gt;  $x = read-host &amp;#39;input&amp;#39;&lt;br /&gt;  input: foo bar 123&lt;br /&gt;  #$x = &amp;quot;foo bar 123&amp;quot;&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;02-01t&lt;br /&gt;- convert unicode character to html&lt;br /&gt;  1. convert unicode codepoint value from hex to int&lt;br /&gt;  2. html syntax: &amp;amp;#value;&lt;br /&gt;&lt;br /&gt;  example codepoint: (U+25BA)&lt;br /&gt;  1. [int]&amp;quot;0x25ba&amp;quot;  #9658&lt;br /&gt;  2. &amp;amp;#9658;&lt;br /&gt;&lt;br /&gt;  #unicodeToHtml &amp;quot;25ba&amp;quot;  # &amp;amp;#9658;&lt;br /&gt;  #unicodeToHtml 2591    # &amp;amp;#9617;&lt;br /&gt;  function unicodeToHtml($codepoint) {&lt;br /&gt;    &amp;quot;&amp;amp;#{0};&amp;quot; -f [int]&amp;quot;0x$codepoint&amp;quot;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;- powershell ascii chars&lt;br /&gt;  65..90 | %{[char]$_)}  #[char]$_ = [convert]::tochar($_)&lt;br /&gt;  65..90 | %{&amp;quot;{0} = {1}&amp;quot; -f $_, [char]$_}  #[char]$_ = [convert]::tochar($_)&lt;br /&gt;  97..122 | %{&amp;quot;{0} = {1}&amp;quot; -f $_, [char]$_}&lt;br /&gt;  &amp;quot;Abc&amp;quot;.toCharArray() | %{&amp;quot;{0} = {1}&amp;quot; -f $_, [int][char]$_}&lt;br /&gt;&lt;br /&gt;  #escape char: `&lt;br /&gt;  &amp;quot; ``!@#$%^&amp;amp;*()-=[]\;&amp;#39;,./~_+{}|:`&amp;quot;&amp;lt;&amp;gt;?&amp;quot;.toCharArray() | %{&amp;quot;{0} = {1}&amp;quot; -f $_, [int][char]$_}&lt;br /&gt;  chars = &amp;quot; `!@#$%^&amp;amp;*()-=[]\\;&amp;#39;,./~_+{}|:\&amp;quot;&amp;lt;&amp;gt;?&amp;quot;&lt;br /&gt;&lt;br /&gt;  $chars = &amp;quot; ``!@#$%^&amp;amp;*()-=[]\;&amp;#39;,./~_+{}|:`&amp;quot;&amp;lt;&amp;gt;?&amp;quot;&lt;br /&gt;  $chars.toCharArray() | %{&amp;quot;{0} = {1}&amp;quot; -f $_, [int][char]$_}&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;01-31m&lt;br /&gt;- powershell list functions&lt;br /&gt;  gci function:*&lt;br /&gt;&lt;br /&gt;- using css line-height to vertically center text in a div&lt;br /&gt;  source: http://www.zann-marketing.com/developer/20050518/vertically-centering-text-using-css.html&lt;br /&gt;&lt;br /&gt;  this works well for one line of text, need to modify for n lines&lt;br /&gt;  - specify the line-height to be the same height as the block element&lt;br /&gt;    &amp;lt;div style=&amp;quot;line-height:1em;background-color:#dcdcdc&amp;quot;&amp;gt;&lt;br /&gt;      vertically centered text&lt;br /&gt;    &amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;- remove b html tags&lt;br /&gt;  search:&amp;lt;b[^&amp;gt;]*&amp;gt;(.*?)&amp;lt;/b&amp;gt;&lt;br /&gt;  replace:\1&lt;br /&gt;&lt;br /&gt;- javascript percentage function&lt;br /&gt;  //pct(1, 2)  //50%&amp;quot;&lt;br /&gt;  //pct(9, 7.89)  //114.07%&lt;br /&gt;  function pct(x, y) {  //string&lt;br /&gt;    var result = (x / y),&lt;br /&gt;        fmt = x + &amp;quot;/&amp;quot; + y + &amp;quot; = &amp;quot;;&lt;br /&gt;&lt;br /&gt;    console.log(fmt + result);  //9/7.89 = 1.1406844106463878&lt;br /&gt;    result = ((result * 100).toFixed(2)).replace(&amp;quot;.00&amp;quot;, &amp;quot;&amp;quot;) + &amp;quot;%&amp;quot;;&lt;br /&gt;    console.log(fmt + result);  //9/7.89 = 114.07%&lt;br /&gt;&lt;br /&gt;    //return ((x / y) * 100).toFixed(2).replace(&amp;quot;.00&amp;quot;, &amp;quot;&amp;quot;) + &amp;quot;%&amp;quot;;  //one liner&lt;br /&gt;    return result;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;- powershell percentage function&lt;br /&gt;  #pct 1 2     #50%&lt;br /&gt;  #pct 9 7.89  #114.07%&lt;br /&gt;  #(pct 1 2)[2] #50%&lt;br /&gt;  function pct($x, $y) {  #string[]&lt;br /&gt;    $result = ($x / $y)&lt;br /&gt;    $fmt = &amp;quot;{0}/{1} = &amp;quot; -f $x, $y&lt;br /&gt;    $fmt + $result  #9/7.89 = 1.14068441064639&lt;br /&gt;    $result = &amp;quot;{0}%&amp;quot; -f (round($result * 100))&lt;br /&gt;    &amp;quot;{0}{1}&amp;quot; -f $fmt, $result  #9/7.89 = 114.07%&lt;br /&gt;&lt;br /&gt;    #&amp;quot;{0}%&amp;quot; -f (round(($x / $y)*100))  #one liner&lt;br /&gt;    $result&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;01-21f&lt;br /&gt;- powershell base conversions&lt;br /&gt;  hex to int     0x100 = 256&lt;br /&gt;  int to hex     (256).tostring(&amp;quot;x&amp;quot;) = 100&lt;br /&gt;  int to hex     [convert]::tostring(256, 16) = 100&lt;br /&gt;  int to hex     &amp;quot;{0:x}&amp;quot; -f 256 = 100&lt;br /&gt;  int to binary  [convert]::tostring(256, 2) = 100000000&lt;br /&gt;  binary to int  [convert]::toint32(&amp;quot;100000000&amp;quot;, 2) = 256&lt;br /&gt;  int to octal   [convert]::tostring(256, 8) = 400&lt;br /&gt;  octal to int   [convert]::toint32(&amp;quot;400&amp;quot;, 8) = 256&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;01-11t&lt;br /&gt;- MSBuild error when building an Azure webrole project that has no cs files included.&lt;br /&gt;  Error occurs in CoreCompile build phase, see build output.&lt;br /&gt;  Error Message: &amp;quot;CSC : fatal error CS2008: No inputs specified [x:\web\cloudServiceWebRole.csproj]&amp;quot;&lt;br /&gt;&lt;br /&gt;  Fix/Workaround&lt;br /&gt;  - include an empty cs file in project, this adds a compile entry to the project file&lt;br /&gt;    &amp;lt;ItemGroup&amp;gt;&lt;br /&gt;      &amp;lt;Compile Include=&amp;quot;a.cs&amp;quot; /&amp;gt;&lt;br /&gt;    &amp;lt;/ItemGroup&amp;gt;&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;01-10m&lt;br /&gt;- #win server 2008 services&lt;br /&gt;  - get-service * | ?{$_.name -match &amp;quot;mpsSvc|spooler|termService|trustedInstaller|umRdpService|w3svc|was|wuauserv&amp;quot;}&lt;br /&gt;&lt;br /&gt;- substitute folder&lt;br /&gt;    subst /?&lt;br /&gt;    subst x: \_data&lt;br /&gt;    subst y: \\10.0.0.0\temp\&lt;br /&gt;&lt;br /&gt;- net use&lt;br /&gt;  net use \\10.0.0.0\c$ * /user:domain\john  #prompt for password&lt;br /&gt;  net use \\10.0.0.0\c$ * /user:administrator&lt;br /&gt;  net use \\10.0.0.0\c$ &amp;lt;password&amp;gt; /user:administrator&lt;br /&gt;  net use \\10.0.0.0\c$ /delete&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;12-18-10a&lt;br /&gt;- lock windows command&lt;br /&gt;  http://msdn.microsoft.com/en-us/library/aa376875(v=vs.85).aspx&lt;br /&gt;  &amp;quot;This function has the same result as pressing Ctrl+Alt+Del and clicking Lock Workstation.&amp;quot;&lt;br /&gt;  &amp;amp;rundll32.exe user32.dll, LockWorkStation&lt;br /&gt;&lt;br /&gt;- task manager view command-line column&lt;br /&gt;  task manager -&amp;gt; processes tab -&amp;gt; view - select columns -&amp;gt; command line&lt;br /&gt;&lt;br /&gt;  - runs these powershell wmi scripts as Administrator to see all process command lines&lt;br /&gt;    get-wmiobject win32_process | select commandline&lt;br /&gt;    get-wmiobject win32_process | select *&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;12-16-10h&lt;br /&gt;- powershell move files function, performs xcopy and then deletes sourceFolder&lt;br /&gt;    - move-item cmdlet too limited, eg error: &amp;quot;Move-Item : Source and destination path must have identical roots. Move will not work across volumes.&amp;quot;&lt;br /&gt;&lt;br /&gt;    #WARNING, this function deletes the source folder after copying files to destination folder&lt;br /&gt;    #xcopyMoveDelete &amp;quot;x:\data\*&amp;quot; &amp;quot;z:\backup\data\&amp;quot;&lt;br /&gt;    function xcopyMoveDelete($sourceFolder, $destinationFolder) {&lt;br /&gt;      xcopy $sourceFolder $destinationFolder /s/h/q&lt;br /&gt;&lt;br /&gt;      #DELETE SOURCE FOLDER WARNING, remove-item cmdlet deletes the source folder - comment whatif param to execute&lt;br /&gt;      &amp;quot;deleting source folder: $sourceFolder&amp;quot;&lt;br /&gt;      ri $sourceFolder.trim(&amp;quot;*&amp;quot;) -recurse -force -whatif&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;12-15-10w&lt;br /&gt;- visual studio 2010 is not available in 64-bit, use x86&lt;br /&gt;- windows virtual pc does not support installing 64-bit OS onto vpc&lt;br /&gt;&lt;br /&gt;- powershell security&lt;br /&gt;  - use set-executionPolicy cmdlet to allow script file execution&lt;br /&gt;    set-executionPolicy remoteSigned&lt;br /&gt;    http://technet.microsoft.com/en-us/library/dd347628.aspx&lt;br /&gt;&lt;br /&gt;- powershell profile script&lt;br /&gt;  - windows 7/server 2008&lt;br /&gt;    c:\users\john\documents\windowspowershell\profile.ps1&lt;br /&gt;      cd\&lt;br /&gt;      cls&lt;br /&gt;&lt;br /&gt;- restart/shutdown windows&lt;br /&gt;  - shutdown /r /t 0  #restart 0 seconds&lt;br /&gt;  - shutdown /s /t 10  #shutdown 10 seconds&lt;br /&gt;&lt;br /&gt;- windows hosts file&lt;br /&gt;  c:\windows\system32\drivers\etc\hosts&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;12-05-10s&lt;br /&gt;- get-service * | ?{($_.status -eq &amp;quot;running&amp;quot;)&lt;br /&gt;  get-service * | ?{($_.status -eq &amp;quot;stopped&amp;quot;) -and ($_.name -match &amp;quot;sql|mssql&amp;quot;)}&lt;br /&gt;&lt;br /&gt;- making a bootable dvd from an iso file&lt;br /&gt;&lt;br /&gt;  Windows 7 USB/DVD ISO Tool&lt;br /&gt;  http://store.microsoft.com/Help/ISO-Tool&lt;br /&gt;&lt;br /&gt;  This tool writes dvds, so no other 3rd party dvd writing software is required.&lt;br /&gt;  Works on windows 7 &amp;amp; XP.&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;12-01-10w&lt;br /&gt;- #calcTaxRate 99 8.25&lt;br /&gt;  #sub    99.00&lt;br /&gt;  #tax     8.25 (0.0833333333333333)&lt;br /&gt;  #total 107.25&lt;br /&gt;  function calcTaxRate([float]$subtotal, [float]$tax) {&lt;br /&gt;    $subtotalFmt = &amp;quot;{0:0.00}&amp;quot; -f $subtotal&lt;br /&gt;    $taxFmt      = &amp;quot;{0:0.00}&amp;quot; -f $tax&lt;br /&gt;&lt;br /&gt;    #calc&lt;br /&gt;    $taxrate  = $tax/$subtotal&lt;br /&gt;    $total    = $subtotal * (1 + $taxrate)  #calc using taxrate, not tax input param&lt;br /&gt;    $totalFmt = &amp;quot;{0:0.00}&amp;quot; -f $total&lt;br /&gt;&lt;br /&gt;    #pseudo right-justify hack&lt;br /&gt;    $subPadding = &amp;quot; &amp;quot; * ( (&amp;quot;$totalFmt&amp;quot;.length) - (&amp;quot;$subtotalFmt&amp;quot;.length) )&lt;br /&gt;    $taxPadding = &amp;quot; &amp;quot; * ( (&amp;quot;$totalFmt&amp;quot;.length) - (&amp;quot;$taxFmt&amp;quot;.length)      )&lt;br /&gt;&lt;br /&gt;    #output&lt;br /&gt;    &amp;quot;sub   {0}{1}&amp;quot;       -f $subPadding, $subtotalFmt&lt;br /&gt;    &amp;quot;tax   {0}{1} ({2})&amp;quot; -f $taxPadding, $taxFmt, $taxrate&lt;br /&gt;    &amp;quot;total $totalFmt&amp;quot;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;- #round 12.3456    #12.35&lt;br /&gt;  #round 12.3456 3  #12.346&lt;br /&gt;  function round($value, $decimals=2) {&lt;br /&gt;    [system.decimal]::round($value, $decimals)&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;11-29-10m&lt;br /&gt;- min F# console app examples, for breakpoint&lt;br /&gt;  System.Diagnostics.Debugger.Break()  //ex 1 auto breakpoint&lt;br /&gt;  System.Console.ReadLine() |&amp;gt; ignore  //ex 2&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;11-28-10s&lt;br /&gt;- visual studio command window&lt;br /&gt;    - shortcut keys: ctl + alt + A&lt;br /&gt;&lt;br /&gt;      COMMAND                      DESCRIPTION&lt;br /&gt;      build.rebuildSolution&lt;br /&gt;      cls                          clear screen&lt;br /&gt;      debug.breakpoints            open breakpoints window&lt;br /&gt;      debug.disableAllBreakpoints&lt;br /&gt;      debug.enableAllBreakpoints&lt;br /&gt;      debug.watch2                 open watch-2 window&lt;br /&gt;      file.copyFullPath&lt;br /&gt;      file.openContainingFolder&lt;br /&gt;      ? &amp;quot;abc&amp;quot;.Length               3&lt;br /&gt;      ? x                          debug print x var/value&lt;br /&gt;      ?? x                         debug quickwatch&lt;br /&gt;&lt;br /&gt;    Predefined Visual Studio Command Aliases&lt;br /&gt;    http://msdn.microsoft.com/en-us/library/c3a0kd3x.aspx&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;11-26-10f&lt;br /&gt;- ipconfig /release;&lt;br /&gt;  ipconfig /flushdns;&lt;br /&gt;  ipconfig /renew;&lt;br /&gt;&lt;br /&gt;- powershell cultureInfo&lt;br /&gt;  get-culture cmdlet&lt;br /&gt;  [system.threading.thread]::currentThread.currentUICulture&lt;br /&gt;&lt;br /&gt;  (get-culture).textInfo.toTitleCase(&amp;quot;foo bar&amp;quot;)  #Foo Bar&lt;br /&gt;&lt;br /&gt;- set-alias &amp;lt;alias&amp;gt; &amp;lt;function&amp;gt;&lt;br /&gt;  set-alias foo calcFooPiSquare&lt;br /&gt;&lt;br /&gt;- xcopy x:\data\*        x:\backup\data\ /s/h/q&lt;br /&gt;  xcopy x:\data\*        x:\backup\data\ /s/h/q/d:01-01-2011  #files modified on or after date&lt;br /&gt;  xcopy x:\data\*        x:\backup\data\ /s/h/q/exclude:x:\exclude.txt&lt;br /&gt;  xcopy x:\data\file.txt x:\backup\data\ /s/h/q&lt;br /&gt;&lt;br /&gt;  /e to copy empty folders&lt;br /&gt;&lt;br /&gt;  file: exclude.txt&lt;br /&gt;  .bmp&lt;br /&gt;  .pdf&lt;br /&gt;  .dll&lt;br /&gt;  .exe&lt;br /&gt;  .ini&lt;br /&gt;  .log&lt;br /&gt;  .suo&lt;br /&gt;  .temp&lt;br /&gt;  .user&lt;br /&gt;  \.git\&lt;br /&gt;  \.svn\&lt;br /&gt;  \bin\&lt;br /&gt;  \debug\&lt;br /&gt;  \images\&lt;br /&gt;  \obj\&lt;br /&gt;  \release\&lt;br /&gt;  thumbs.db&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;11-21-10s&lt;br /&gt;- virtual pc, toggle fullscreen: (right-alt) + enter&lt;br /&gt;&lt;br /&gt;- powershell find all unique words/matches in file&lt;br /&gt;  use select-string allmatches with regex capture to show only match, not standard select-string output full line&lt;br /&gt;&lt;br /&gt;  - gi x:\foo.txt |&lt;br /&gt;      select-string &amp;quot;(\w+)&amp;quot; -allmatches |&lt;br /&gt;      %{&lt;br /&gt;         foreach($m in $_.matches) { #loop all matches found in line&lt;br /&gt;           $m.groups[0].value&lt;br /&gt;         }&lt;br /&gt;       } | sort -unique&lt;br /&gt;&lt;br /&gt;  - #one line&lt;br /&gt;    gi x:\foo.txt | select-string &amp;quot;(\w+)&amp;quot; -allmatches | %{foreach($m in $_.matches){$m.groups[0].value}} | sort -unique&lt;br /&gt;&lt;br /&gt;- date format&lt;br /&gt;  (get-date).tostring(&amp;quot;MM-dd-yyyy HH:mm:ss:fff&amp;quot;)     #HH=24 hour clock&lt;br /&gt;  (get-date).tostring(&amp;quot;MM-dd-yyyy hh:mm:ss:fff tt&amp;quot;)  #hh=12 hour clock, tt=am/pm&lt;br /&gt;&lt;br /&gt;- file attributes&lt;br /&gt;  attrib /?&lt;br /&gt;&lt;br /&gt;  #alt view file and folder attributes&lt;br /&gt;  gci x:\foo\ -rec&lt;br /&gt;&lt;br /&gt;  #view file attribute&lt;br /&gt;  attrib x:\foo\a.txt&lt;br /&gt;&lt;br /&gt;  #set readonly file attribute&lt;br /&gt;  attrib +r x:\foo\a.txt&lt;br /&gt;&lt;br /&gt;  #remove readonly file attribute&lt;br /&gt;  attrib -r x:\foo\a.txt&lt;br /&gt;&lt;br /&gt;  #recursive, files and folders&lt;br /&gt;  attrib +r x:\foo\* /s /d&lt;br /&gt;  attrib -r x:\foo\* /s /d&lt;br /&gt;&lt;br /&gt;- reserved powershell variables, do not use for var names&lt;br /&gt;  &amp;quot;$args&amp;quot;&lt;br /&gt;  &amp;quot;$input&amp;quot;&lt;br /&gt;&lt;br /&gt;- powershell REPL template for input loop processing, eg script calculator&lt;br /&gt;  requires entering input value only, not function/alias name&lt;br /&gt;  if function requires multiple params, split input param in function&lt;br /&gt;&lt;br /&gt;  #---------------------------------------------------&lt;br /&gt;  #template 1, min&lt;br /&gt;&lt;br /&gt;  function foo($string){$string}     #function&lt;br /&gt;  while ($true) {                    #loop&lt;br /&gt;    $in = read-host &amp;quot;enter a value&amp;quot;  #read input&lt;br /&gt;    foo($in)                         #call function&lt;br /&gt;  }&lt;br /&gt;  #---------------------------------------------------&lt;br /&gt;  #template 2, +ux&lt;br /&gt;&lt;br /&gt;  $host.ui.rawUI.windowTitle = &amp;quot;loop...&amp;quot;  #set window title&lt;br /&gt;  function foo($string){$string}          #function&lt;br /&gt;  while ($true) {                         #loop&lt;br /&gt;    $in = read-host &amp;quot;enter a value&amp;quot;       #read input&lt;br /&gt;    if ($in -match &amp;quot;^(exit|quit|q)$&amp;quot;) {   #exit loop support&lt;br /&gt;      &amp;quot;exiting loop&amp;quot;  #exit&lt;br /&gt;      break&lt;br /&gt;    }&lt;br /&gt;    else {&lt;br /&gt;      foo($in)                            #call function&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;  #---------------------------------------------------&lt;br /&gt;  #template 3, anonymous function&lt;br /&gt;&lt;br /&gt;  while ($true) {                         #loop&lt;br /&gt;    $in = read-host &amp;quot;enter a value&amp;quot;       #read input&lt;br /&gt;    if ($in -match &amp;quot;^(exit|quit|q)$&amp;quot;) {   #exit loop support&lt;br /&gt;      &amp;quot;exiting loop&amp;quot;  #exit&lt;br /&gt;      break&lt;br /&gt;    }&lt;br /&gt;    else {&lt;br /&gt;      &amp;amp;{param($string) $string} $in       #call anonymous function&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;  #---------------------------------------------------&lt;br /&gt;&lt;br /&gt;- powershell set window title&lt;br /&gt;  $host.ui.rawUI.windowTitle = &amp;quot;main&amp;quot;&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;11-20-10a&lt;br /&gt;- regular expressions&lt;br /&gt;  - regex match empty lines&lt;br /&gt;    REGEX              DESCRIPTION&lt;br /&gt;    ^\s*$              match empty line&lt;br /&gt;    ^\s*$\r\n          match empty line, with linebreak&lt;br /&gt;&lt;br /&gt;  - regex match duplicate lines in a text file, sort content first&lt;br /&gt;    search:^(.*)(\r?\n\1)+$&lt;br /&gt;    replace:\1&lt;br /&gt;&lt;br /&gt;  - regex match html anchor tags&lt;br /&gt;    works with multiple anchors on same line, and multiline using &amp;quot;dot matches newline&amp;quot;&lt;br /&gt;    the question mark in this regex &amp;quot;.*?&amp;quot; is what allows it to match multiples on same line&lt;br /&gt;    REGEX                     DESCRIPTION&lt;br /&gt;    &amp;lt;a[^&amp;gt;]*&amp;gt;.*?&amp;lt;/a&amp;gt;           match entire tag&lt;br /&gt;    (?&amp;lt;=&amp;lt;a[^&amp;gt;]*&amp;gt;).*?(?=&amp;lt;/a&amp;gt;)  match text only, including empty&lt;br /&gt;                 ---          regex to match&lt;br /&gt;    -------------             lookbehind, match regex, then lookbehind and match anchor tag&lt;br /&gt;                    --------  lookahead,  match regex, then lookahead and match closing anchor tag&lt;br /&gt;&lt;br /&gt;  - regex lookaround - noncapturing groups - &amp;quot;lookaway&amp;quot; :)&lt;br /&gt;    NAME                REGEX   EXAMPLE  DESCRIPTION                                  MATCH&lt;br /&gt;    lookahead           (?=R)   A(?=B)   match A, then lookahead and match B          matches the A&lt;br /&gt;                                         A followed by B&lt;br /&gt;    negative lookahead  (?!R)   A(?!B)   match A, then lookahead and match if NOT B   matches the A&lt;br /&gt;                                         match A, as long as it&amp;#39;s NOT followed by B&lt;br /&gt;                                         A NOT followed by B&lt;br /&gt;    lookbehind          (?&amp;lt;=R)  (?&amp;lt;=A)B  match B, then lookbehind and match A         matches the B&lt;br /&gt;                                         B preceeded by A&lt;br /&gt;    negative lookbehind (?&amp;lt;!R)  (?&amp;lt;!A)B  match B, then lookbehind and match if NOT A  matches the B&lt;br /&gt;                                         match B, as long as it&amp;#39;s NOT preceeded by A&lt;br /&gt;                                         B NOT preceeded by A&lt;br /&gt;---------------&lt;br /&gt;11-19-10f&lt;br /&gt;- git windows download&lt;br /&gt;  msysgit-fullinstall-1.7.3.1-preview20101002.exe&lt;br /&gt;  http://code.google.com/p/msysgit/downloads/detail?name=msysGit-fullinstall-1.7.3.1-preview20101002.exe&amp;amp;can=3&amp;amp;q=&lt;br /&gt;&lt;br /&gt;- git clone&lt;br /&gt;  - clone repos from root, get error when clone while in repo working folder&lt;br /&gt;    &amp;quot;fatal: could not create work tree dir &amp;#39;x:\code\project1&amp;#39;.: No such file or directory&amp;quot;&lt;br /&gt;  - create empty folder to clone into&lt;br /&gt;&lt;br /&gt;  examples&lt;br /&gt;  x:\&amp;gt; ni f:\code\project1\ -type d  #directory&lt;br /&gt;  x:\&amp;gt; git clone x:\code\project1 f:\code\project1\ --no-hardlinks --no-checkout&lt;br /&gt;&lt;br /&gt;- javascript redirect&lt;br /&gt;  window.location = &amp;quot;http://www.google.com&amp;quot;;&lt;br /&gt;&lt;br /&gt;- powershell dynamic array&lt;br /&gt;  (1..3)[1]  #2&lt;br /&gt;&lt;br /&gt;- powershell html encode file, line by line&lt;br /&gt;  $file = &amp;quot;x:\foo.txt&amp;quot;&lt;br /&gt;  gc $file | %{htmlEncode($_)} &amp;gt; ($file + &amp;quot;.out&amp;quot;)  #x:\foo.txt.out&lt;br /&gt;&lt;br /&gt;- powershell html encode multiline string, here string&lt;br /&gt;  $hs = @&amp;quot;&lt;br /&gt;    #...&lt;br /&gt;    #...&lt;br /&gt;  &amp;quot;@&lt;br /&gt;&lt;br /&gt;  $hs | %{htmlencode $_}&lt;br /&gt;&lt;br /&gt;- add-type -assembly system.web  #calling add-type multiple times - ok&lt;br /&gt;  function htmlEncode($string) {&lt;br /&gt;    [web.httputility]::htmlencode($string)&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  #getOutFileName x:\file.txt  #x:\file.txt.out&lt;br /&gt;  function getOutFileName($infile) {&lt;br /&gt;    [io.path]::getFileName($infile) + &amp;quot;.out&amp;quot;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  function getOutFilePath($infile) {&lt;br /&gt;    [io.path]::getdirectoryname($infile)&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;---------------&lt;br /&gt;11-18-10h&lt;br /&gt;- html/url encoding&lt;br /&gt;  add-type -assembly system.web&lt;br /&gt;  [web.httputility]::htmlencode(&amp;quot;&amp;lt;foo /&amp;gt;&amp;quot;)&lt;br /&gt;  [web.httputility]::htmldecode(&amp;quot;&amp;amp;lt;foo /&amp;amp;gt;&amp;quot;)&lt;br /&gt;  [web.httputility]::urlencode(&amp;quot;www.foo.com/?a=b&amp;quot;)&lt;br /&gt;  [web.httputility]::urldecode(&amp;quot;www.foo.com%2f%3fa%3db&amp;quot;)&lt;br /&gt;&lt;br /&gt;- loading .net assemblies into powershell, add-type replaces loadWithPartialName (obsolete)&lt;br /&gt;  add-type -assembly system.web&lt;br /&gt;  #[system.reflection.assembly]::loadWithPartialName(&amp;quot;system.web&amp;quot;) #obsolete, use in p1&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-1998521508683733112?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/1998521508683733112/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2010/11/notes.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/1998521508683733112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/1998521508683733112'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2010/11/notes.html' title='notes, a blog in a blog'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-5523067755442912021</id><published>2011-08-25T00:00:00.000-07:00</published><updated>2011-08-25T22:51:18.010-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tags'/><category scheme='http://www.blogger.com/atom/ns#' term='xpath'/><category scheme='http://www.blogger.com/atom/ns#' term='source'/><category scheme='http://www.blogger.com/atom/ns#' term='firebug'/><category scheme='http://www.blogger.com/atom/ns#' term='src'/><category scheme='http://www.blogger.com/atom/ns#' term='api'/><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><category scheme='http://www.blogger.com/atom/ns#' term='command'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='count'/><category scheme='http://www.blogger.com/atom/ns#' term='selectors'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><category scheme='http://www.blogger.com/atom/ns#' term='browser'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>CSS Selector &amp; XPath Expression Browser Commands</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;&lt;a href="http://www.w3.org/TR/css3-selectors/"&gt;CSS selectors&lt;/a&gt; and XPath expressions can be used to answer queries such as&lt;br /&gt;- How many scripts does this page have?&lt;br /&gt;- How many are external? What are they?&lt;br /&gt;- How many are inline? Show me the source.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;a href="http://www.w3.org/TR/css3-selectors/"&gt;CSS Selectors - W3&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;"Selectors are patterns that match against elements in a tree, and as such form one of several technologies that can be used to select nodes in an XML document. Selectors have been optimized for use with HTML and XML, and are designed to be usable in performance-critical code."&lt;br /&gt;&lt;br /&gt;Firefox and Chrome support CSS and XPath commands in the console via the &lt;a href="http://getfirebug.com/wiki/index.php/Command_Line_API"&gt;Firebug Command Line API&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Syntax&lt;/b&gt;&lt;/span&gt;&lt;pre style="font-family:courier new;margin-top:.2em;"&gt;$$(selector)  Returns an array of elements that match the given CSS selector.&lt;br /&gt;$x(xpath)     Returns an array of elements that match the given XPath expression.&lt;br /&gt;$(id)         Returns a single element with the given id.&lt;br /&gt;&lt;/pre&gt;&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;&lt;b&gt;CSS Selector Examples&lt;/b&gt;&lt;/span&gt;&lt;pre style="font-family:courier new;margin-top:.2em;"&gt;//scripts&lt;br /&gt;$$(&amp;quot;script&amp;quot;)                     //script tags&lt;br /&gt;$$(&amp;quot;script&amp;quot;).length              //count&lt;br /&gt;$$(&amp;quot;script[async]&amp;quot;)              //async scripts&lt;br /&gt;$$(&amp;quot;script[src]&amp;quot;)                //external scripts with src&lt;br /&gt;$$(&amp;quot;script:not([src])&amp;quot;)          //inline scripts with no src not&lt;br /&gt;$$(&amp;quot;script:not([src])&amp;quot;)[0].text  //show inline script source code&lt;br /&gt;&lt;br /&gt;//list external scripts src url&lt;br /&gt;var x = $$(&amp;quot;script[src]&amp;quot;); console.log(&amp;quot;page: &amp;quot; + window.location.href + &amp;quot;\n&amp;quot; + x.length + &amp;quot; external scripts&amp;quot;); for(var i = 0;i &amp;lt; x.length; i++){console.log(x[i].src)}&lt;br /&gt;&lt;br /&gt;//list inline script source code&lt;br /&gt;var x = $$(&amp;quot;script:not([src])&amp;quot;); console.log(&amp;quot;page: &amp;quot; + window.location.href + &amp;quot;\n&amp;quot; + x.length + &amp;quot; internal scripts&amp;quot;); for(var i = 0;i &amp;lt; x.length; i++){console.log(&amp;quot;script #&amp;quot; + (i + 1.0) + &amp;quot;\n&amp;quot; + x[i].text)}&lt;br /&gt;&lt;br /&gt;//*************&lt;br /&gt;//anchors&lt;br /&gt;$$(&amp;quot;a&amp;quot;)                   //anchor tags&lt;br /&gt;$$(&amp;quot;a&amp;quot;).length            //count&lt;br /&gt;$$(&amp;quot;a[class]&amp;quot;)            //anchors with class&lt;br /&gt;$$(&amp;quot;a[href]&amp;quot;)             //anchors with hrefs&lt;br /&gt;$$(&amp;quot;a:not([href])&amp;quot;)       //anchors with no hrefs not&lt;br /&gt;$$(&amp;quot;a[href*=foo]&amp;quot;)        //anchors with href url containing &amp;quot;foo&amp;quot;&lt;br /&gt;$$(&amp;quot;a[href*=\\?]&amp;quot;)        //anchors with href url containing querystring&lt;br /&gt;$$(&amp;quot;a[onclick]&amp;quot;)          //anchors with onclick event&lt;br /&gt;$$(&amp;quot;a[onclick^=foobar]&amp;quot;)  //anchors with onclick event name starts with foobar&lt;br /&gt;&lt;br /&gt;//list anchor link href urls&lt;br /&gt;var x = $$(&amp;quot;a[href]&amp;quot;); console.log(&amp;quot;page: &amp;quot; + window.location.href + &amp;quot;\n&amp;quot; + x.length + &amp;quot; anchor urls&amp;quot;); for(var i = 0;i &amp;lt; x.length; i++){console.log(x[i].href)}&lt;br /&gt;&lt;br /&gt;//*************&lt;br /&gt;//images&lt;br /&gt;//list image src urls&lt;br /&gt;var x = $$(&amp;quot;img[src]&amp;quot;); console.log(&amp;quot;page: &amp;quot; + window.location.href + &amp;quot;\n&amp;quot; + x.length + &amp;quot; image urls&amp;quot;); for(var i = 0;i &amp;lt; x.length; i++){console.log(x[i].src)}&lt;br /&gt;&lt;br /&gt;//*************&lt;br /&gt;//iframes&lt;br /&gt;//list iframe src urls&lt;br /&gt;var x = $$(&amp;quot;iframe&amp;quot;); console.log(&amp;quot;page: &amp;quot; + window.location.href + &amp;quot;\n&amp;quot; + x.length + &amp;quot; iframes&amp;quot;); for(var i = 0;i &amp;lt; x.length; i++){console.log(&amp;quot;id: &amp;quot; + x[i].id +&amp;quot;\nsrc: &amp;quot;+ x[i].src)}&lt;br /&gt;&lt;br /&gt;//*************&lt;br /&gt;//meta tags&lt;br /&gt;$$(&amp;quot;meta[name^=descr]&amp;quot;)[0].content  //description meta tag, meta tag with name starts with &amp;quot;descr&amp;quot;&lt;br /&gt;$$(&amp;quot;meta[name$=words]&amp;quot;)[0].content  //keywords meta tag, meta tag with name ends with &amp;quot;words&amp;quot;&lt;br /&gt;&lt;br /&gt;//list meta tags&lt;br /&gt;var x = $$(&amp;quot;meta&amp;quot;); console.log(&amp;quot;page: &amp;quot; + window.location.href + &amp;quot;\n&amp;quot; + x.length + &amp;quot; meta tags&amp;quot;); for(var i = 0;i &amp;lt; x.length; i++){console.log(x[i])}&lt;br /&gt;&lt;br /&gt;//*************&lt;br /&gt;//all elements&lt;br /&gt;$$(&amp;quot;[class]&amp;quot;)      //elements with class&lt;br /&gt;$$(&amp;quot;[class=foo]&amp;quot;)  //elements with class name equal &amp;quot;foo&amp;quot; match&lt;br /&gt;$$(&amp;quot;[id]&amp;quot;)         //elements with id&lt;br /&gt;&lt;br /&gt;//list element ids&lt;br /&gt;var x = $$(&amp;quot;[id]&amp;quot;); console.log(&amp;quot;page: &amp;quot; + window.location.href + &amp;quot;\n&amp;quot; + x.length + &amp;quot; ids&amp;quot;); for(var i = 0;i &amp;lt; x.length; i++){console.log(x[i].id)}&lt;/pre&gt;&lt;br /&gt;CSS Selector Syntax: &lt;a href="http://www.w3.org/TR/css3-selectors/#selectors"&gt;www.w3.org/TR/css3-selectors/#selectors&lt;/a&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;Chrome Dev Tools Resources UI can be used to access image and external script info.&lt;br /&gt;Don't even ask about ie just view source.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-5523067755442912021?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/5523067755442912021/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2011/08/css-xpath-browser-commands.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/5523067755442912021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/5523067755442912021'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2011/08/css-xpath-browser-commands.html' title='CSS Selector &amp; XPath Expression Browser Commands'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-7675335449565928644</id><published>2011-08-01T00:00:00.000-07:00</published><updated>2011-08-18T21:08:34.702-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='visual studio'/><category scheme='http://www.blogger.com/atom/ns#' term='cheese'/><category scheme='http://www.blogger.com/atom/ns#' term='vb.net'/><category scheme='http://www.blogger.com/atom/ns#' term='2010'/><category scheme='http://www.blogger.com/atom/ns#' term='envdte'/><category scheme='http://www.blogger.com/atom/ns#' term='macros'/><category scheme='http://www.blogger.com/atom/ns#' term='icomparer'/><title type='text'>Visual Studio 2010 VB.NET Macros</title><content type='html'>&lt;pre style="font-family:courier new"&gt;&amp;#39;Visual Studio 2010 VB.NET Macros&lt;br /&gt;&amp;#39;www.expressionsoftware.com&lt;br /&gt;&amp;#39;v11.8.1&lt;br /&gt;&lt;br /&gt;Imports System&lt;br /&gt;Imports System.Collections.Generic&lt;br /&gt;Imports EnvDTE&lt;br /&gt;Imports EnvDTE80&lt;br /&gt;Imports EnvDTE90&lt;br /&gt;Imports EnvDTE90a&lt;br /&gt;Imports EnvDTE100&lt;br /&gt;&lt;br /&gt;Public Module ExpressionSoftwareMacros&lt;br /&gt;&lt;br /&gt;    Sub PrintFilenamesForOpenFiles()&lt;br /&gt;        Dim output = &amp;quot;macro: PrintFilenamesForOpenFiles&amp;quot; + vbCrLf&lt;br /&gt;        Dim outputFiles As String&lt;br /&gt;        Dim openFiles = GetOpenFiles()&lt;br /&gt;&lt;br /&gt;        &amp;#39;openFiles.Sort()  &amp;#39;error: failed to compare two elements in the array&lt;br /&gt;        openFiles.Sort(New EnvDteDocumentComparerClass())&lt;br /&gt;&lt;br /&gt;        For Each file In openFiles&lt;br /&gt;            outputFiles += &amp;quot;file: &amp;quot; + file.FullName + vbCrLf&lt;br /&gt;        Next&lt;br /&gt;&lt;br /&gt;        output += &amp;quot;date: &amp;quot; + Date.Now + vbCrLf&lt;br /&gt;        output += &amp;quot;count: &amp;quot; + Str(openFiles.Count) + vbCrLf&lt;br /&gt;        output += outputFiles&lt;br /&gt;        Out(output)&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Sub HideLinebreakToBrace()&lt;br /&gt;        Dim output = &amp;quot;macro: HideLinebreakToBrace&amp;quot; + vbCrLf&lt;br /&gt;        Dim count = 0&lt;br /&gt;&lt;br /&gt;        &amp;#39;vs pofs regex&lt;br /&gt;        &amp;#39;:b whitespace or tab&lt;br /&gt;        &amp;#39;Dim searchString = &amp;quot;:b*\n:b*\{&amp;quot;  &amp;#39;matches &amp;quot;\b\n{&amp;quot; which cannot be hidden, can use if count is not output, else count incorrect&lt;br /&gt;        Dim searchString = &amp;quot;{:b+\n:b*\{}|{:b*\n:b+\{}&amp;quot;&lt;br /&gt;&lt;br /&gt;        DTE.Find.FindWhat = searchString&lt;br /&gt;        DTE.Find.Target = vsFindTarget.vsFindTargetCurrentDocument  &amp;#39;search current file only&lt;br /&gt;        DTE.Find.Action = vsFindAction.vsFindActionFind&lt;br /&gt;        DTE.Find.MatchInHiddenText = True&lt;br /&gt;        DTE.Find.PatternSyntax = vsFindPatternSyntax.vsFindPatternSyntaxRegExpr  &amp;#39;regex search&lt;br /&gt;        DTE.SuppressUI = False&lt;br /&gt;&lt;br /&gt;        DTE.ActiveDocument.Selection.StartOfDocument()  &amp;#39;set cursor top of file&lt;br /&gt;        While DTE.Find.Execute() &amp;lt;&amp;gt; vsFindResult.vsFindResultNotFound&lt;br /&gt;            count += 1&lt;br /&gt;            DTE.ActiveDocument.Selection.CharLeft(True, 1)  &amp;#39;unselect brace char&lt;br /&gt;            DTE.ExecuteCommand(&amp;quot;Edit.HideSelection&amp;quot;)&lt;br /&gt;        End While&lt;br /&gt;        DTE.ActiveDocument.Selection.StartOfDocument()&lt;br /&gt;&lt;br /&gt;        output += &amp;quot;date: &amp;quot; + Date.Now + vbCrLf&lt;br /&gt;        output += &amp;quot;file: &amp;quot; + DTE.ActiveDocument.FullName + vbCrLf&lt;br /&gt;        output += &amp;quot;count: &amp;quot; + Str(count)&lt;br /&gt;        Out(output)&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Function GetOpenFiles() As List(Of EnvDTE.Document)&lt;br /&gt;        Dim openFiles As New List(Of EnvDTE.Document)&lt;br /&gt;&lt;br /&gt;        For Each doc As EnvDTE.Document In DTE.Documents&lt;br /&gt;            If doc.ProjectItem IsNot Nothing Then  &amp;#39;todo: combine &lt;br /&gt;                If doc.ProjectItem.IsOpen() Then&lt;br /&gt;                    openFiles.Add(doc)&lt;br /&gt;                End If&lt;br /&gt;            End If&lt;br /&gt;        Next&lt;br /&gt;&lt;br /&gt;        Return openFiles&lt;br /&gt;    End Function&lt;br /&gt;&lt;br /&gt;    Private Sub Out(ByVal output)&lt;br /&gt;        GetMacrosOutputWindow().OutputString(output)&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    &amp;#39;requires Microsoft Samples Utilities module,&lt;br /&gt;    &amp;#39;copy module into MyMacros project&lt;br /&gt;    Private Function GetMacrosOutputWindow() As OutputWindowPane&lt;br /&gt;        Dim windowTitle = &amp;quot;Expression Software Macros&amp;quot;&lt;br /&gt;        Dim window As Window&lt;br /&gt;        Dim target As Object&lt;br /&gt;        Dim document As EnvDTE.Document&lt;br /&gt;&lt;br /&gt;        window = DTE.Windows.Item(Constants.vsWindowKindCommandWindow)&lt;br /&gt;        If DTE.ActiveWindow Is window Then&lt;br /&gt;            target = window.Object&lt;br /&gt;        Else&lt;br /&gt;            target = Utilities.GetOutputWindowPane(windowTitle)&lt;br /&gt;            target.clear()&lt;br /&gt;        End If&lt;br /&gt;&lt;br /&gt;        Return target&lt;br /&gt;    End Function&lt;br /&gt;End Module&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Public Class EnvDteDocumentComparerClass&lt;br /&gt;    Implements IComparer(Of EnvDTE.Document)&lt;br /&gt;&lt;br /&gt;    &amp;#39;compare docs by full filename, for sorting&lt;br /&gt;    Function Compare(ByVal file1 As EnvDTE.Document, _&lt;br /&gt;                     ByVal file2 As EnvDTE.Document) _&lt;br /&gt;                     As Integer Implements IComparer(Of EnvDTE.Document).Compare&lt;br /&gt;&lt;br /&gt;        Return file1.FullName.CompareTo(file2.FullName)&lt;br /&gt;    End Function&lt;br /&gt;End Class&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Public Class EnvDteDocumentComparableClass&lt;br /&gt;    Implements IComparable(Of EnvDTE.Document)&lt;br /&gt;&lt;br /&gt;    &amp;#39;compare docs by full filename, for sorting&lt;br /&gt;    Function CompareTo(ByVal other As EnvDTE.Document) _&lt;br /&gt;                       As Integer Implements IComparable(Of EnvDTE.Document).CompareTo&lt;br /&gt;&lt;br /&gt;        Return FullName.CompareTo(other.FullName)&lt;br /&gt;    End Function&lt;br /&gt;End Class&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;#39;**************************************************************&lt;br /&gt;&amp;#39;Misc&lt;br /&gt;&amp;#39;DTE.Documents.Count includes closed docs&lt;br /&gt;&amp;#39;DTE.ActiveDocument.FullName&lt;br /&gt;&amp;#39;output += &amp;quot;date: &amp;quot; + Date.Now + vbCrLf&lt;br /&gt;&amp;#39;Microsoft.VisualBasic.Constants.vbCrLf&lt;br /&gt;&amp;#39;DTE.Find.Target = vsFindTarget.vsFindTargetCurrentDocument&lt;br /&gt;&amp;#39;keyboard shortcuts&lt;br /&gt;&amp;#39;  alt + F8    macro explorer&lt;br /&gt;&amp;#39;  alt + F11   macros ide&lt;br /&gt;&amp;#39;**************************************************************&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-7675335449565928644?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/7675335449565928644/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2011/08/visual-studio-macros.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/7675335449565928644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/7675335449565928644'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2011/08/visual-studio-macros.html' title='Visual Studio 2010 VB.NET Macros'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-3183511630904332791</id><published>2011-03-20T00:00:00.000-07:00</published><updated>2011-03-20T10:35:37.919-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='generic'/><category scheme='http://www.blogger.com/atom/ns#' term='catalog'/><category scheme='http://www.blogger.com/atom/ns#' term='routing'/><category scheme='http://www.blogger.com/atom/ns#' term='online'/><category scheme='http://www.blogger.com/atom/ns#' term='mvc'/><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><category scheme='http://www.blogger.com/atom/ns#' term='3'/><category scheme='http://www.blogger.com/atom/ns#' term='products'/><category scheme='http://www.blogger.com/atom/ns#' term='dictionary'/><category scheme='http://www.blogger.com/atom/ns#' term='razor'/><category scheme='http://www.blogger.com/atom/ns#' term='inventory'/><title type='text'>View Product - Online Catalog Example using ASP.NET MVC 3</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana,arial;font-size:1em;"&gt;&lt;b&gt;View Product URL&lt;/b&gt;: http://mvc.expressionsoftware.com/products/1000&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Route&lt;/b&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:.5em 0em .5em .75em;margin:.3em 0em .2em 0em;"&gt;routes.MapRoute("view product",&lt;br /&gt;                "products/{id}",&lt;br /&gt;                new { controller = "Product",&lt;br /&gt;                      action = "ViewProduct" });&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;Controller: \controllers\productController.cs&lt;/b&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:.5em 0em .5em .75em;margin:.3em 0em .2em 0em;"&gt;[HttpGet]&lt;br /&gt;public ActionResult ViewProduct(int id)&lt;br /&gt;{&lt;br /&gt;    var product = Cache.GetProduct(id);&lt;br /&gt;    return View(product);&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;Product Model Class &amp; Object&lt;/b&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:.5em 0em .5em .75em;margin:.3em 0em .2em 0em;"&gt;namespace ExpressionSoftware.Model&lt;br /&gt;{&lt;br /&gt;   public class Product&lt;br /&gt;   {&lt;br /&gt;     public int Id { get; set; }&lt;br /&gt;     public string Name { get; set; }&lt;br /&gt;     public string Description { get; set; }&lt;br /&gt;&lt;br /&gt;     public decimal Price { get; set; }&lt;br /&gt;     public string Status { get; set; }&lt;br /&gt;     public bool InStock { get; set; }&lt;br /&gt;     public int StockCount { get; set; }&lt;br /&gt;&lt;br /&gt;     public Dictionary&amp;lt;string, string&amp;gt; Metadata { get; set; }&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;new Product() {&lt;br /&gt;                Id = 1000,&lt;br /&gt;                Name = &amp;quot;Foo&amp;quot;,&lt;br /&gt;                Description = &amp;quot;Some Foo...&amp;quot;,&lt;br /&gt;  &lt;br /&gt;                Price=999.99m,&lt;br /&gt;                Status = &amp;quot;In Stock&amp;quot;,&lt;br /&gt;                InStock = true,&lt;br /&gt;                StockCount = 10,&lt;br /&gt;  &lt;br /&gt;                Metadata = new Dictionary&amp;lt;string, string&amp;gt;()&lt;br /&gt;                {&lt;br /&gt;                  { &amp;quot;Color&amp;quot;, &amp;quot;Blue&amp;quot;},&lt;br /&gt;                  { &amp;quot;Size&amp;quot;, &amp;quot;30 x 16&amp;quot;},&lt;br /&gt;                  { &amp;quot;Manufacturer&amp;quot;, &amp;quot;Foo Makers Inc, USA&amp;quot;},&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;              },&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;View: \views\product\viewProduct.cshtml&lt;/b&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:.5em 0em .5em .75em;margin:.3em 0em .2em 0em;"&gt;@model ExpressionSoftware.Model.Product&lt;br /&gt;@{Layout = null;}&lt;br /&gt;&lt;br /&gt;&amp;lt;!doctype html&amp;gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;  &amp;lt;title&amp;gt;@Model.Name - Products&amp;lt;/title&amp;gt;&lt;br /&gt;  &amp;lt;link href=&amp;quot;../../ux/style.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;  &amp;lt;h1&amp;gt;@Model.Name&amp;lt;/h1&amp;gt;&lt;br /&gt;  Id: @Model.Id&amp;lt;br /&amp;gt;&lt;br /&gt;  Description: @Model.Description&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;&lt;br /&gt;  Status: @{  //************************************&lt;br /&gt;              if (@Model.InStock) {&lt;br /&gt;                &amp;lt;span class=&amp;quot;instock&amp;quot;&amp;gt;@Model.Status&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;                @:Count Available: @Model.StockCount&lt;br /&gt;              }&lt;br /&gt;              else {&lt;br /&gt;                @Model.Status&lt;br /&gt;              }&lt;br /&gt;          }&amp;lt;br /&amp;gt;&lt;br /&gt;&lt;br /&gt;   Price: $@Model.Price&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;   &lt;br /&gt;   @{  //************************************&lt;br /&gt;       //metadata&lt;br /&gt;       if (Model.Metadata != null) {&lt;br /&gt;         foreach (var kvp in Model.Metadata) {&lt;br /&gt;           @string.Format(&amp;quot;{0}: {1}&amp;quot;, kvp.Key, kvp.Value);&amp;lt;br /&amp;gt;&lt;br /&gt;         }&lt;br /&gt;       }&lt;br /&gt;   }&amp;lt;br /&amp;gt;&lt;br /&gt;&lt;br /&gt;   @{  //************************************&lt;br /&gt;       &amp;lt;!-- wip - add to cart form / post action --&amp;gt;&lt;br /&gt;       if (@Model.InStock) {&lt;br /&gt;         &amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Add to Cart&amp;quot; /&amp;gt;&lt;br /&gt;       }&lt;br /&gt;   }&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;Output HTML&lt;/b&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:.5em 0em .5em .75em;margin:.3em 0em .2em 0em;"&gt;&amp;lt;!doctype html&amp;gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;  &amp;lt;title&amp;gt;Foo - Products&amp;lt;/title&amp;gt;&lt;br /&gt;  &amp;lt;link href=&amp;quot;../../ux/style.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;  &amp;lt;h1&amp;gt;Foo&amp;lt;/h1&amp;gt;&lt;br /&gt;  &lt;br /&gt;  Id: 1000&amp;lt;br /&amp;gt;&lt;br /&gt;  Description: Some Foo...&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;&lt;br /&gt;  Status: &amp;lt;span class=&amp;quot;instock&amp;quot;&amp;gt;In Stock&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;  Count Available: 10&amp;lt;br /&amp;gt;&lt;br /&gt;  Price: $999.99&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;&lt;br /&gt;  Color: Blue&amp;lt;br /&amp;gt;&lt;br /&gt;  Size: 30 x 16&amp;lt;br /&amp;gt;&lt;br /&gt;  Manufacturer: Foo Makers Inc, USA&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;  &lt;br /&gt;  &amp;lt;!-- wip - add to cart form / post action --&amp;gt;&lt;br /&gt;  &amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Add to Cart&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;a href="https://lh3.googleusercontent.com/-NnxUoTQ6vaA/TYYzccr3ApI/AAAAAAAAANA/4s_WwbVvGQk/s1600/foo5.png" imageanchor="1" style="margin0;"&gt;&lt;img border="0" height="200" src="https://lh3.googleusercontent.com/-NnxUoTQ6vaA/TYYzccr3ApI/AAAAAAAAANA/4s_WwbVvGQk/s320/foo5.png" width="320" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-3183511630904332791?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/3183511630904332791/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2011/03/view-product-online-catalog-example-mvc.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/3183511630904332791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/3183511630904332791'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2011/03/view-product-online-catalog-example-mvc.html' title='View Product - Online Catalog Example using ASP.NET MVC 3'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh3.googleusercontent.com/-NnxUoTQ6vaA/TYYzccr3ApI/AAAAAAAAANA/4s_WwbVvGQk/s72-c/foo5.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-1820666190375359040</id><published>2011-03-02T12:00:00.000-08:00</published><updated>2011-03-06T22:26:52.724-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='captcha'/><category scheme='http://www.blogger.com/atom/ns#' term='api'/><category scheme='http://www.blogger.com/atom/ns#' term='mvc'/><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><category scheme='http://www.blogger.com/atom/ns#' term='email'/><category scheme='http://www.blogger.com/atom/ns#' term='demo'/><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><category scheme='http://www.blogger.com/atom/ns#' term='ajax'/><category scheme='http://www.blogger.com/atom/ns#' term='3'/><category scheme='http://www.blogger.com/atom/ns#' term='recaptcha'/><title type='text'>Integrating reCAPTCHA with ASP.NET MVC 3</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana,arial;font-size:1em;"&gt;Example using reCAPTCHA in an email-contact page.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.google.com/recaptcha"&gt;www.google.com/recaptcha&lt;/a&gt;&lt;br /&gt;&lt;a href="http://code.google.com/apis/recaptcha/"&gt;code.google.com/apis/recaptcha&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.google.com/recaptcha/api/verify"&gt;www.google.com/recaptcha/api/verify&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;RecaptchaController Class&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-5_cj4B0c4BA/TW8_liPCOMI/AAAAAAAAAL8/HWo3F_BYKhs/s1600/recaptchaControllerClassDiagram.png" imageanchor="1" style=""&gt;&lt;img border="0" height="181" width="266" src="http://2.bp.blogspot.com/-5_cj4B0c4BA/TW8_liPCOMI/AAAAAAAAAL8/HWo3F_BYKhs/s400/recaptchaControllerClassDiagram.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;\controllers\recaptcha\recaptchaController.cs&lt;/b&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:.5em 0em .5em .75em;margin:.5em 0em .2em 0em;"&gt;using System.Web.Mvc;&lt;br /&gt;&lt;br /&gt;namespace ExpressionSoftware.Controllers&lt;br /&gt;{&lt;br /&gt;    public class RecaptchaController : Controller&lt;br /&gt;    {&lt;br /&gt;        //********************************************************&lt;br /&gt;        // PRIVATE DATA - DO NOT HARDCODE&lt;br /&gt;        &lt;br /&gt;           const string RECAPTCHA_PRIVATE_KEY = &amp;quot;----------&amp;quot;;&lt;br /&gt;           const string EMAIL_ADDRESS = &amp;quot;john@email.com&amp;quot;;&lt;br /&gt;        &lt;br /&gt;        //********************************************************&lt;br /&gt;&lt;br /&gt;        const string RECAPTCHA_VERIFY_URL = &amp;quot;http://www.google.com/recaptcha/api/verify&amp;quot;;&lt;br /&gt;        &lt;br /&gt;        [AcceptVerbs(HttpVerbs.Get)]&lt;br /&gt;        public ViewResult Default()&lt;br /&gt;        {&lt;br /&gt;            return View();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        [AcceptVerbs(HttpVerbs.Post)]&lt;br /&gt;        public string Default(FormCollection formValues)&lt;br /&gt;        {&lt;br /&gt;            string result = &amp;quot;fail&amp;quot;;&lt;br /&gt;            &lt;br /&gt;            //do not submit recaptcha if form vars are null/empty&lt;br /&gt;            if (!(string.IsNullOrEmpty(formValues[&amp;quot;recaptcha_challenge_field&amp;quot;]) ||&lt;br /&gt;                  string.IsNullOrEmpty(formValues[&amp;quot;recaptcha_response_field&amp;quot;])))&lt;br /&gt;            {&lt;br /&gt;                //alt - validate using web service&lt;br /&gt;                var recaptcha = new ExpressionSoftware.Recaptcha() { PrivateKey = RECAPTCHA_PRIVATE_KEY,&lt;br /&gt;                                                                     VerifyUrl = RECAPTCHA_VERIFY_URL };&lt;br /&gt;&lt;br /&gt;                if (recaptcha.Validate(Request.UserHostAddress, formValues[&amp;quot;recaptcha_challenge_field&amp;quot;], &lt;br /&gt;                                                                formValues[&amp;quot;recaptcha_response_field&amp;quot;]))&lt;br /&gt;                {&lt;br /&gt;                    result = EMAIL_ADDRESS;  //captcha test passed, show email address&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            return result;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;\views\recaptcha\default.cshtml&lt;/b&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:.5em 0em .5em .75em;margin:.5em 0em .2em 0em;"&gt;&amp;lt;h2&amp;gt;reCAPTCHA Demo for ASP.NET MVC 3&amp;lt;/h2&amp;gt;&lt;br /&gt;&lt;br /&gt;@using (Html.BeginForm()) {&lt;br /&gt;&amp;lt;input id=&amp;quot;b1&amp;quot; type=&amp;quot;button&amp;quot; value=&amp;quot;Show CAPTCHA&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;a id=&amp;quot;email&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;div id=&amp;quot;captchaDiv&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;input id=&amp;quot;submit&amp;quot; type=&amp;quot;submit&amp;quot; value=&amp;quot;Submit&amp;quot; style=&amp;quot;display:none;&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;label id=&amp;quot;error&amp;quot; style=&amp;quot;display:none;&amp;quot;&amp;gt;Invalid input, please try again.&amp;lt;/label&amp;gt;    &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&amp;lt;script src=&amp;quot;//ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script src=&amp;quot;//www.google.com/recaptcha/api/js/recaptcha_ajax.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script src=&amp;quot;/js/recaptcha.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;\js\recaptcha.js&lt;/b&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:.5em 0em .5em .75em;margin:.5em 0em .2em 0em;"&gt;$(document).ready(function() {&lt;br /&gt;  $(&amp;quot;form&amp;quot;).submit(&lt;br /&gt;    function(event) {&lt;br /&gt;      event.preventDefault();&lt;br /&gt;      submit(this, updateUI, &amp;quot;html&amp;quot;);&lt;br /&gt;    });&lt;br /&gt;  $(&amp;quot;#b1&amp;quot;).click(showCaptcha);&lt;br /&gt;});&lt;br /&gt;&lt;br /&gt;function submit(form, callback, format) {&lt;br /&gt;  $.ajax({url: form.action,&lt;br /&gt;          type: form.method,&lt;br /&gt;          dataType: format,&lt;br /&gt;          data: $(form).serialize(),&lt;br /&gt;          success: callback&lt;br /&gt;         });&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function updateUI(result) {&lt;br /&gt;  result = $.trim(result);&lt;br /&gt;  &lt;br /&gt;  if (result == &amp;quot;fail&amp;quot;) {&lt;br /&gt;    $(&amp;quot;#error&amp;quot;).show();&lt;br /&gt;    Recaptcha.reload();&lt;br /&gt;    Recaptcha.focus_response_field();&lt;br /&gt;  }&lt;br /&gt;  else {  //success&lt;br /&gt;    $(&amp;quot;#email&amp;quot;).text(result);&lt;br /&gt;    $(&amp;quot;#email&amp;quot;)[0].href = &amp;quot;mailto:&amp;quot;+result;&lt;br /&gt;    $(&amp;quot;#captchaDiv&amp;quot;).hide();&lt;br /&gt;    $(&amp;quot;#submit&amp;quot;).hide();&lt;br /&gt;    $(&amp;quot;#error&amp;quot;).hide();&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function showCaptcha() {&lt;br /&gt;  Recaptcha.create(&amp;quot;6LdXGMISAAAAAKbqYwaabU7h1qjwGYEXoEelZjWV&amp;quot;,  //api public key&lt;br /&gt;                   &amp;quot;captchaDiv&amp;quot;,&lt;br /&gt;                   {&lt;br /&gt;                     theme: &amp;quot;clean&amp;quot;,&lt;br /&gt;                     callback: Recaptcha.focus_response_field&lt;br /&gt;                   }&lt;br /&gt;                  );&lt;br /&gt;  $(&amp;quot;#b1&amp;quot;).hide();&lt;br /&gt;  $(&amp;quot;#submit&amp;quot;).show();&lt;br /&gt;  return false;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Recaptcha Class / Web Service&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-eXlU1lwFTtU/TW84FtypACI/AAAAAAAAAL0/6nLB2r62ABE/s1600/recaptchaClassDiagram.png" imageanchor="1" style=""&gt;&lt;img border="0" height="164" width="203" src="http://1.bp.blogspot.com/-eXlU1lwFTtU/TW84FtypACI/AAAAAAAAAL0/6nLB2r62ABE/s400/recaptchaClassDiagram.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;recaptcha.cs&lt;/b&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:.5em 0em .5em .75em;margin:.5em 0em .2em 0em;"&gt;using System.IO;&lt;br /&gt;using System.Net;&lt;br /&gt;using System.Text;&lt;br /&gt;&lt;br /&gt;namespace ExpressionSoftware&lt;br /&gt;{&lt;br /&gt;    public class Recaptcha&lt;br /&gt;    {&lt;br /&gt;        public string VerifyUrl { get; set; }&lt;br /&gt;        public string PrivateKey { get; set; }&lt;br /&gt;&lt;br /&gt;        public bool Validate(string remoteIP, string captchaChallenge, string captchaResponse)&lt;br /&gt;        {&lt;br /&gt;            bool result = false;&lt;br /&gt;            string response = GetWebResponse(remoteIP, captchaChallenge, captchaResponse);&lt;br /&gt;            result = response.ToLower().StartsWith("true");  //api response line 1 value: true or false&lt;br /&gt;            return result;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        string GetWebResponse(string remoteIP, string captchaChallenge, string captchaResponse)&lt;br /&gt;        {&lt;br /&gt;            string result = null;&lt;br /&gt;&lt;br /&gt;            //convert params to byte array&lt;br /&gt;            var parameters = string.Format("privatekey={0}&amp;remoteip={1}&amp;challenge={2}&amp;response={3}",&lt;br /&gt;                                           PrivateKey, remoteIP, captchaChallenge, captchaResponse);&lt;br /&gt;            byte[] paramData = Encoding.UTF8.GetBytes(parameters);&lt;br /&gt;&lt;br /&gt;            var request = (HttpWebRequest)WebRequest.Create(VerifyUrl);&lt;br /&gt;            request.Method = "POST";&lt;br /&gt;            request.ContentType = "application/x-www-form-urlencoded";&lt;br /&gt;            request.ContentLength = paramData.Length;&lt;br /&gt;            request.ServicePoint.Expect100Continue = false;&lt;br /&gt;            &lt;br /&gt;            //write param data to request stream&lt;br /&gt;            using (Stream requestStream = request.GetRequestStream())&lt;br /&gt;            {&lt;br /&gt;                requestStream.Write(paramData, 0, paramData.Length);&lt;br /&gt;                requestStream.Close();&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            using (WebResponse response = (HttpWebResponse)request.GetResponse())&lt;br /&gt;            {&lt;br /&gt;                using (Stream stream = response.GetResponseStream())&lt;br /&gt;                {&lt;br /&gt;                    using (StreamReader responseReader = new StreamReader(stream))&lt;br /&gt;                    {&lt;br /&gt;                        result = responseReader.ReadToEnd();&lt;br /&gt;                        responseReader.Close();&lt;br /&gt;                    }&lt;br /&gt;                    stream.Close();&lt;br /&gt;                }&lt;br /&gt;                response.Close();&lt;br /&gt;            }&lt;br /&gt;            return result;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-T0brMPwHy1g/TW9TU98NzpI/AAAAAAAAAMM/sdKv1DVycxw/s1600/recaptchaScreenshot.png" imageanchor="1" style=""&gt;&lt;img border="0" height="320" width="179" src="http://2.bp.blogspot.com/-T0brMPwHy1g/TW9TU98NzpI/AAAAAAAAAMM/sdKv1DVycxw/s800/recaptchaScreenshot.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-1820666190375359040?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/1820666190375359040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2011/03/recaptcha-aspnet-mvc.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/1820666190375359040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/1820666190375359040'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2011/03/recaptcha-aspnet-mvc.html' title='Integrating reCAPTCHA with ASP.NET MVC 3'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-5_cj4B0c4BA/TW8_liPCOMI/AAAAAAAAAL8/HWo3F_BYKhs/s72-c/recaptchaControllerClassDiagram.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-7465649023993696097</id><published>2011-02-27T00:00:00.000-08:00</published><updated>2011-02-28T01:12:58.003-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='uml'/><category scheme='http://www.blogger.com/atom/ns#' term='sequence'/><category scheme='http://www.blogger.com/atom/ns#' term='ssl'/><category scheme='http://www.blogger.com/atom/ns#' term='https'/><category scheme='http://www.blogger.com/atom/ns#' term='pdf'/><category scheme='http://www.blogger.com/atom/ns#' term='encryption'/><category scheme='http://www.blogger.com/atom/ns#' term='diagram'/><category scheme='http://www.blogger.com/atom/ns#' term='print'/><title type='text'>HTTPS Sequence Diagram</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana,arial;font-size:1em;"&gt;&lt;br /&gt;&lt;a href="http://www.expressionsoftware.com/docs/https-sequence-diagram.pdf"&gt;&lt;img border="0" height="959" width="718" src="http://3.bp.blogspot.com/-orKdYSgRYo8/TWtaamIvvXI/AAAAAAAAALs/QLmgHiHXL-Y/s1600/https-sequence-diagram.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-7465649023993696097?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/7465649023993696097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2011/02/https-sequence-diagram.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/7465649023993696097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/7465649023993696097'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2011/02/https-sequence-diagram.html' title='HTTPS Sequence Diagram'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-orKdYSgRYo8/TWtaamIvvXI/AAAAAAAAALs/QLmgHiHXL-Y/s72-c/https-sequence-diagram.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-6017598380822205556</id><published>2011-02-19T00:00:00.000-08:00</published><updated>2011-02-19T00:15:10.099-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='about'/><category scheme='http://www.blogger.com/atom/ns#' term='aliasware'/><category scheme='http://www.blogger.com/atom/ns#' term='help'/><category scheme='http://www.blogger.com/atom/ns#' term='hash'/><category scheme='http://www.blogger.com/atom/ns#' term='apps'/><category scheme='http://www.blogger.com/atom/ns#' term='digest'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='message'/><category scheme='http://www.blogger.com/atom/ns#' term='privacy'/><category scheme='http://www.blogger.com/atom/ns#' term='sha'/><title type='text'>Aliasware Hash Web App Help</title><content type='html'>&lt;pre class="Apple-style-span" style="font-family:'Cousine',courier new;verdana;font-size:1em;"&gt;&lt;b style="font-size:1.05em;"&gt;&lt;a href="https://www.expressionsoftware.com/aliasware/hash"&gt;Aliasware Hash&lt;/a&gt;&lt;/b&gt; is a web app for SHA-512 hashing input strings.&lt;br /&gt;&lt;b style="font-size:1em;"&gt;&lt;a href="https://www.expressionsoftware.com/aliasware/hash"&gt;https://www.expressionsoftware.com/aliasware/hash&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b style="font-size:1.03em;"&gt;Instructions&lt;/b&gt;&lt;br /&gt;- Enter a string, eg "abc"&lt;br /&gt;- Click the Go button    &lt;br /&gt;- The input is hashed and the output is shown&lt;br /&gt;&lt;br /&gt;&lt;b style="font-size:1.03em;"&gt;Show Mode&lt;/b&gt;&lt;br /&gt;- Click the checkbox to toggle Show Mode&lt;br /&gt;- Use Show Mode to Show and Hide information on-screen&lt;br /&gt;- Keyboard shortcut: escape-key&lt;br /&gt;&lt;br /&gt;&lt;b style="font-size:1.03em;"&gt;Misc&lt;/b&gt;&lt;br /&gt;- Max input is 100 chars&lt;br /&gt;- The input is hashed using the &lt;a href="http://csrc.nist.gov/publications/fips/fips180-3/fips180-3_final.pdf"&gt;SHA-512 Secure Hash Algorithm&lt;/a&gt;&lt;br /&gt;- Copying output information can only be done in Show mode&lt;br /&gt;- If you hash with no input, the output is the hash of an empty string, "cf83e..."&lt;br /&gt;&lt;br /&gt;&lt;b style="font-size:1.03em;"&gt;SHA-512 Secure Hash Algorithm&lt;/b&gt;&lt;br /&gt;- SHA-512 is a one-way cryptographic hash function&lt;br /&gt;- The output is a 512-bit message digest, 64 bytes, 128 chars&lt;br /&gt;- The &lt;a href="http://jssha.sourceforge.net/"&gt;jsSHA&lt;/a&gt; JavaScript library is used for hashing&lt;br /&gt;- SHA-512 hashed value for &lt;a href="http://csrc.nist.gov/groups/ST/toolkit/documents/Examples/SHA512.pdf"&gt;"abc"&lt;/a&gt;, "ddaf3..."&lt;br /&gt;&lt;br /&gt;&lt;b style="font-size:1.03em;"&gt;Privacy&lt;/b&gt;&lt;br /&gt;- Show Mode - click the checkbox to Show and Hide information on-screen&lt;br /&gt;- All functionality for this app is performed client-side, in the browser&lt;br /&gt;- No information is saved or used&lt;br /&gt;&lt;br /&gt;&lt;b style="font-size:1.03em;"&gt;Supported Browsers&lt;/b&gt;&lt;br /&gt;- Google Chrome, Safari, iPad&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-6017598380822205556?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/6017598380822205556/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2011/02/aliasware-hash-help.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/6017598380822205556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/6017598380822205556'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2011/02/aliasware-hash-help.html' title='Aliasware Hash Web App Help'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-5460378070192956210</id><published>2011-02-11T00:00:00.000-08:00</published><updated>2011-02-11T18:18:20.420-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='aliasinfo'/><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><category scheme='http://www.blogger.com/atom/ns#' term='format'/><category scheme='http://www.blogger.com/atom/ns#' term='ave'/><category scheme='http://www.blogger.com/atom/ns#' term='min'/><category scheme='http://www.blogger.com/atom/ns#' term='cmdlet'/><category scheme='http://www.blogger.com/atom/ns#' term='alias'/><category scheme='http://www.blogger.com/atom/ns#' term='print'/><category scheme='http://www.blogger.com/atom/ns#' term='measure'/><category scheme='http://www.blogger.com/atom/ns#' term='max'/><category scheme='http://www.blogger.com/atom/ns#' term='get-alias'/><title type='text'>PowerShell 2 Aliases</title><content type='html'>&lt;pre class="Apple-style-span" style="font-family:'Cousine',courier new;verdana;font-size:1em;line-height:1.25em;"&gt;&lt;a href="http://technet.microsoft.com/en-us/library/dd347621.aspx"&gt;Get-Alias cmdlet&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Alias    Definition&lt;/b&gt;  &lt;br /&gt;%        ForEach-Object&lt;br /&gt;?        Where-Object&lt;br /&gt;ac       Add-Content&lt;br /&gt;asnp     Add-PSSnapIn&lt;br /&gt;cat      Get-Content&lt;br /&gt;cd       Set-Location&lt;br /&gt;chdir    Set-Location&lt;br /&gt;clc      Clear-Content&lt;br /&gt;clear    Clear-Host&lt;br /&gt;clhy     Clear-History&lt;br /&gt;cli      Clear-Item&lt;br /&gt;clp      Clear-ItemProperty&lt;br /&gt;cls      Clear-Host&lt;br /&gt;clv      Clear-Variable&lt;br /&gt;compare  Compare-Object&lt;br /&gt;copy     Copy-Item&lt;br /&gt;cp       Copy-Item&lt;br /&gt;cpi      Copy-Item&lt;br /&gt;cpp      Copy-ItemProperty&lt;br /&gt;cvpa     Convert-Path&lt;br /&gt;dbp      Disable-PSBreakpoint&lt;br /&gt;del      Remove-Item&lt;br /&gt;diff     Compare-Object&lt;br /&gt;dir      Get-ChildItem&lt;br /&gt;ebp      Enable-PSBreakpoint&lt;br /&gt;echo     Write-Output&lt;br /&gt;epal     Export-Alias&lt;br /&gt;epcsv    Export-Csv&lt;br /&gt;epsn     Export-PSSession&lt;br /&gt;erase    Remove-Item&lt;br /&gt;etsn     Enter-PSSession&lt;br /&gt;exsn     Exit-PSSession&lt;br /&gt;fc       Format-Custom&lt;br /&gt;fl       Format-List&lt;br /&gt;foreach  ForEach-Object&lt;br /&gt;ft       Format-Table&lt;br /&gt;fw       Format-Wide&lt;br /&gt;gal      Get-Alias&lt;br /&gt;gbp      Get-PSBreakpoint&lt;br /&gt;gc       Get-Content&lt;br /&gt;gci      Get-ChildItem&lt;br /&gt;gcm      Get-Command&lt;br /&gt;gcs      Get-PSCallStack&lt;br /&gt;gdr      Get-PSDrive&lt;br /&gt;ghy      Get-History&lt;br /&gt;gi       Get-Item&lt;br /&gt;gjb      Get-Job&lt;br /&gt;gl       Get-Location&lt;br /&gt;gm       Get-Member&lt;br /&gt;gmo      Get-Module&lt;br /&gt;gp       Get-ItemProperty&lt;br /&gt;gps      Get-Process&lt;br /&gt;group    Group-Object&lt;br /&gt;gsn      Get-PSSession&lt;br /&gt;gsnp     Get-PSSnapIn&lt;br /&gt;gsv      Get-Service&lt;br /&gt;gu       Get-Unique&lt;br /&gt;gv       Get-Variable&lt;br /&gt;gwmi     Get-WmiObject&lt;br /&gt;h        Get-History&lt;br /&gt;history  Get-History&lt;br /&gt;icm      Invoke-Command&lt;br /&gt;iex      Invoke-Expression&lt;br /&gt;ihy      Invoke-History&lt;br /&gt;ii       Invoke-Item&lt;br /&gt;ipal     Import-Alias&lt;br /&gt;ipcsv    Import-Csv&lt;br /&gt;ipmo     Import-Module&lt;br /&gt;ipsn     Import-PSSession&lt;br /&gt;ise      powershell_ise.exe&lt;br /&gt;iwmi     Invoke-WMIMethod&lt;br /&gt;kill     Stop-Process&lt;br /&gt;lp       Out-Printer&lt;br /&gt;ls       Get-ChildItem&lt;br /&gt;man      help&lt;br /&gt;md       mkdir&lt;br /&gt;measure  Measure-Object&lt;br /&gt;mi       Move-Item&lt;br /&gt;mount    New-PSDrive&lt;br /&gt;move     Move-Item&lt;br /&gt;mp       Move-ItemProperty&lt;br /&gt;mv       Move-Item&lt;br /&gt;nal      New-Alias&lt;br /&gt;ndr      New-PSDrive&lt;br /&gt;ni       New-Item&lt;br /&gt;nmo      New-Module&lt;br /&gt;nsn      New-PSSession&lt;br /&gt;nv       New-Variable&lt;br /&gt;ogv      Out-GridView&lt;br /&gt;oh       Out-Host&lt;br /&gt;popd     Pop-Location&lt;br /&gt;ps       Get-Process&lt;br /&gt;pushd    Push-Location&lt;br /&gt;pwd      Get-Location&lt;br /&gt;r        Invoke-History&lt;br /&gt;rbp      Remove-PSBreakpoint&lt;br /&gt;rcjb     Receive-Job&lt;br /&gt;rd       Remove-Item&lt;br /&gt;rdr      Remove-PSDrive&lt;br /&gt;ren      Rename-Item&lt;br /&gt;ri       Remove-Item&lt;br /&gt;rjb      Remove-Job&lt;br /&gt;rm       Remove-Item&lt;br /&gt;rmdir    Remove-Item&lt;br /&gt;rmo      Remove-Module&lt;br /&gt;rni      Rename-Item&lt;br /&gt;rnp      Rename-ItemProperty&lt;br /&gt;rp       Remove-ItemProperty&lt;br /&gt;rsn      Remove-PSSession&lt;br /&gt;rsnp     Remove-PSSnapin&lt;br /&gt;rv       Remove-Variable&lt;br /&gt;rvpa     Resolve-Path&lt;br /&gt;rwmi     Remove-WMIObject&lt;br /&gt;sajb     Start-Job&lt;br /&gt;sal      Set-Alias&lt;br /&gt;saps     Start-Process&lt;br /&gt;sasv     Start-Service&lt;br /&gt;sbp      Set-PSBreakpoint&lt;br /&gt;sc       Set-Content&lt;br /&gt;select   Select-Object&lt;br /&gt;set      Set-Variable&lt;br /&gt;si       Set-Item&lt;br /&gt;sl       Set-Location&lt;br /&gt;sleep    Start-Sleep&lt;br /&gt;sort     Sort-Object&lt;br /&gt;sp       Set-ItemProperty&lt;br /&gt;spjb     Stop-Job&lt;br /&gt;spps     Stop-Process&lt;br /&gt;spsv     Stop-Service&lt;br /&gt;start    Start-Process&lt;br /&gt;sv       Set-Variable&lt;br /&gt;swmi     Set-WMIInstance&lt;br /&gt;tee      Tee-Object&lt;br /&gt;type     Get-Content&lt;br /&gt;where    Where-Object&lt;br /&gt;wjb      Wait-Job&lt;br /&gt;write    Write-Output&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2-Column Custom Format Example using Get-Alias&lt;/b&gt;&lt;br /&gt;Dynamically format a 2-column output with N-spaces padding, based on first column width&lt;br /&gt;1. get data&lt;br /&gt;2. calc column 1 max length&lt;br /&gt;3. calc column 2 start index&lt;br /&gt;4. loop &amp; print&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-family:'Cousine',courier new;font-size:1em;color:#000;background-color:#dcdcdc;padding:0.5em 0em 0.5em 0.75em;margin:-.5em 0em 0em 0em;line-height:1.25em;"&gt;$data = get-alias&lt;br /&gt;$numberOfSpaces = 2&lt;br /&gt;$col1MaxLength = ($data | %{$_.name.length} | measure -max).maximum  #7&lt;br /&gt;$col2StartIndex = ($col1MaxLength + $numberOfSpaces)  #9&lt;br /&gt;&lt;br /&gt;#format: 0=alias, 1=calc padding, 2=def&lt;br /&gt;$data | %{"{0}{1}{2}" -f $_.name, (" " * (($col2StartIndex - $_.name.length))), $_.definition}&lt;br /&gt;&lt;/pre&gt;&lt;pre class="Apple-style-span" style="font-family:'Cousine',courier new;verdana;font-size:1em;line-height:1.25em;"&gt;&lt;b&gt;Debug&lt;/b&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms571965(v=VS.85).aspx"&gt;AliasInfo Class&lt;/a&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-family:'Cousine',courier new;font-size:1em;color:#000;background-color:#dcdcdc;padding:0.5em 0em 0.5em 0.75em;margin:-.5em 0em 0em 0em;line-height:1.25em;"&gt;#get-alias returns AliasInfo array&lt;br /&gt;$data[0].gettype()  #AliasInfo : System.Management.Automation.CommandInfo&lt;br /&gt;&lt;br /&gt;#using the measure-object cmdlet to get alias name length stats&lt;br /&gt;$data | %{$_.name.length} | measure -min -max -ave -sum&lt;br /&gt;count   : 137&lt;br /&gt;average : 3.25&lt;br /&gt;sum     : 445   #na&lt;br /&gt;maximum : 7     #for this example we only need MAX&lt;br /&gt;minimum : 1&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-5460378070192956210?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/5460378070192956210/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2011/02/powershell-aliases.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/5460378070192956210'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/5460378070192956210'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2011/02/powershell-aliases.html' title='PowerShell 2 Aliases'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-1266758490811886527</id><published>2011-02-08T00:00:00.000-08:00</published><updated>2011-02-08T13:16:57.197-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='about'/><category scheme='http://www.blogger.com/atom/ns#' term='stop'/><category scheme='http://www.blogger.com/atom/ns#' term='help'/><category scheme='http://www.blogger.com/atom/ns#' term='minutes'/><category scheme='http://www.blogger.com/atom/ns#' term='apps'/><category scheme='http://www.blogger.com/atom/ns#' term='timer'/><category scheme='http://www.blogger.com/atom/ns#' term='stopwatch'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='running'/><title type='text'>Timer Web App Help</title><content type='html'>&lt;pre class="Apple-style-span" style="font-family:'Cousine',courier new;verdana;font-size:1em;"&gt;&lt;b style="font-size:1.05em;"&gt;&lt;a href="http://www.expressionsoftware.com/apps/timer"&gt;www.expressionsoftware.com/apps/timer&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b style="font-size:1.03em;"&gt;Features&lt;/b&gt;&lt;br /&gt;- Stop Timer&lt;br /&gt;- Running Timer&lt;br /&gt;- Multiple, simultaneous timers&lt;br /&gt;- Log Entry&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b style="font-size:1.03em;"&gt;Examples&lt;/b&gt;&lt;br /&gt;  &lt;b&gt;10 Minute Stop Timer&lt;/b&gt;&lt;br /&gt;  input:  10&lt;br /&gt;  output: timer    10 minutes&lt;br /&gt;          start    2-7-2011 7:40:32:100&lt;br /&gt;          stop     2-7-2011 7:50:32:100&lt;br /&gt;          elapsed  0:3:55&lt;br /&gt;&lt;br /&gt;  &lt;b&gt;30 Minute Stop Timer with note&lt;/b&gt;&lt;br /&gt;  input:  study 30&lt;br /&gt;  output: study 30&lt;br /&gt;          timer    30 minutes&lt;br /&gt;          start    2-7-2011 9:50:22:207&lt;br /&gt;          stop     2-7-2011 10:20:22:207&lt;br /&gt;          complete&lt;br /&gt;&lt;br /&gt;  &lt;b&gt;Running Timer&lt;/b&gt;&lt;br /&gt;  input:&lt;br /&gt;  output: start    2-7-2011 13:30:55:700&lt;br /&gt;          elapsed  0:5:42&lt;br /&gt;&lt;br /&gt;  &lt;b&gt;Running Timer with note&lt;/b&gt;&lt;br /&gt;  input:  snowing, check forecast&lt;br /&gt;  output: snowing, check forecast&lt;br /&gt;          start    2-7-2011 21:40:0:863&lt;br /&gt;          elapsed  0:1:48&lt;br /&gt;&lt;br /&gt;  &lt;b&gt;Log Entry&lt;/b&gt;&lt;br /&gt;  input:  @&lt;br /&gt;  output: 2-7-2011 22:16:0:000&lt;br /&gt;&lt;br /&gt;  &lt;b&gt;Log Entry with note&lt;/b&gt;&lt;br /&gt;  input:  blizzard @&lt;br /&gt;  output: blizzard @ 2-7-2011 22:16:7:000&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b style="font-size:1.03em;"&gt;Notes&lt;/b&gt;&lt;br /&gt;- Stop Timers run for the number of minutes entered, show "complete" when finished.&lt;br /&gt;- Running Timers do not have a stop time, they run until you stop them.&lt;br /&gt;- Input is not required for Running Timers.&lt;br /&gt;- Log Entries support the ampersand char "@" and word "at".&lt;br /&gt;- Bug #1&lt;br /&gt;  Stop Timers sometimes run past the stop time, the elapsed time is accurate, but the timer overruns the time limit.&lt;br /&gt;  This bug can occur if the browser thread gets backed up, etc, causing the stop-time timeout to get out of sync.&lt;br /&gt;  Bug sometimes occurs on iPad when tabbing to other pages.&lt;br /&gt;  Working on fix to check stop-time on interval instead of timeout.&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-1266758490811886527?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/1266758490811886527/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2011/02/timer-help.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/1266758490811886527'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/1266758490811886527'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2011/02/timer-help.html' title='Timer Web App Help'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-3243773124952545486</id><published>2011-02-01T14:01:00.000-08:00</published><updated>2011-02-03T15:55:47.697-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='data'/><category scheme='http://www.blogger.com/atom/ns#' term='response'/><category scheme='http://www.blogger.com/atom/ns#' term='302'/><category scheme='http://www.blogger.com/atom/ns#' term='200'/><category scheme='http://www.blogger.com/atom/ns#' term='404'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='status'/><category scheme='http://www.blogger.com/atom/ns#' term='http'/><category scheme='http://www.blogger.com/atom/ns#' term='text'/><category scheme='http://www.blogger.com/atom/ns#' term='teapot'/><category scheme='http://www.blogger.com/atom/ns#' term='301'/><category scheme='http://www.blogger.com/atom/ns#' term='502'/><category scheme='http://www.blogger.com/atom/ns#' term='418'/><category scheme='http://www.blogger.com/atom/ns#' term='print'/><category scheme='http://www.blogger.com/atom/ns#' term='codes'/><title type='text'>HTTP Response Status Codes</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:'Cousine',courier new;verdana;font-size:1em;"&gt;&lt;b style="font-size:1.2em;"&gt;1xx Informational&lt;/b&gt;&lt;br /&gt;100 Continue&lt;br /&gt;101 Switching Protocols&lt;br /&gt;102 Processing (WebDAV)&lt;br /&gt;&lt;br /&gt;&lt;b style="font-size:1.2em;"&gt;2xx Success&lt;/b&gt;&lt;br /&gt;200 OK&lt;br /&gt;201 Created&lt;br /&gt;202 Accepted&lt;br /&gt;203 Non-Authoritative Information&lt;br /&gt;204 No Content&lt;br /&gt;205 Reset Content&lt;br /&gt;206 Partial Content&lt;br /&gt;207 Multi-Status (WebDAV)&lt;br /&gt;&lt;br /&gt;&lt;b style="font-size:1.2em;"&gt;3xx Redirection&lt;/b&gt;&lt;br /&gt;300 Multiple Choices&lt;br /&gt;301 Moved Permanently (permanent redirect)&lt;br /&gt;302 Found (temporary redirect)&lt;br /&gt;303 See Other&lt;br /&gt;304 Not Modified&lt;br /&gt;305 Use Proxy&lt;br /&gt;306 Switch Proxy&lt;br /&gt;307 Temporary Redirect&lt;br /&gt;&lt;br /&gt;&lt;b style="font-size:1.2em;"&gt;4xx Client Errors&lt;/b&gt;&lt;br /&gt;400 Bad Request&lt;br /&gt;401 Unauthorized&lt;br /&gt;402 Payment Required&lt;br /&gt;403 Forbidden&lt;br /&gt;404 Not Found&lt;br /&gt;405 Method Not Allowed&lt;br /&gt;406 Not Acceptable&lt;br /&gt;407 Proxy Authentication Required&lt;br /&gt;408 Request Timeout&lt;br /&gt;409 Conflict&lt;br /&gt;410 Gone&lt;br /&gt;411 Length Required&lt;br /&gt;412 Precondition Failed&lt;br /&gt;413 Request Entity Too Large&lt;br /&gt;414 Request-URI Too Long&lt;br /&gt;415 Unsupported Media Type&lt;br /&gt;416 Requested Range Not Satisfiable&lt;br /&gt;417 Expectation Failed&lt;br /&gt;418 I'm a teapot&lt;br /&gt;422 Unprocessable Entity (WebDAV)&lt;br /&gt;423 Locked (WebDAV)&lt;br /&gt;424 Failed Dependency (WebDAV)&lt;br /&gt;425 Unordered Collection&lt;br /&gt;444 No Response&lt;br /&gt;426 Upgrade Required&lt;br /&gt;449 Retry With&lt;br /&gt;450 Blocked by Windows Parental Controls&lt;br /&gt;499 Client Closed Request&lt;br /&gt;&lt;br /&gt;&lt;b style="font-size:1.2em;"&gt;5xx Server Errors&lt;/b&gt;&lt;br /&gt;500 Internal Server Error&lt;br /&gt;501 Not Implemented&lt;br /&gt;502 Bad Gateway&lt;br /&gt;503 Service Unavailable&lt;br /&gt;504 Gateway Timeout&lt;br /&gt;505 HTTP Version Not Supported&lt;br /&gt;506 Variant Also Negotiates&lt;br /&gt;507 Insufficient Storage (WebDAV)&lt;br /&gt;509 Bandwidth Limit Exceeded (Apache)&lt;br /&gt;510 Not Extended&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-3243773124952545486?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/3243773124952545486/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2011/02/http-status-codes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/3243773124952545486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/3243773124952545486'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2011/02/http-status-codes.html' title='HTTP Response Status Codes'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-2592388236551828009</id><published>2011-02-01T00:00:00.001-08:00</published><updated>2011-02-02T00:05:54.438-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='encodeURIComponent'/><category scheme='http://www.blogger.com/atom/ns#' term='map'/><category scheme='http://www.blogger.com/atom/ns#' term='encoding'/><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><category scheme='http://www.blogger.com/atom/ns#' term='encodeURI'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='ascii'/><category scheme='http://www.blogger.com/atom/ns#' term='chars'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><title type='text'>JavaScript encodeURI and encodeURIComponent</title><content type='html'>&lt;pre class="Apple-style-span" style="font-family:'Cousine',courier new;verdana;font-size:1em;"&gt;&lt;b&gt;ASCII Char Comparisons&lt;/b&gt;&lt;br /&gt;#    CH  EU     EUC  NOTES&lt;br /&gt;32       %20    %20  space char&lt;br /&gt;96   `   %60    %60&lt;br /&gt;33   !   !      !&lt;br /&gt;64   @   @      %40  x&lt;br /&gt;35   #   #      %23  x&lt;br /&gt;36   $   $      %24  x&lt;br /&gt;37   %   %25    %25&lt;br /&gt;94   ^   %5E    %5E&lt;br /&gt;38   &amp;   &amp;      %26  x&lt;br /&gt;42   *   *      *&lt;br /&gt;40   (   (      (&lt;br /&gt;41   )   )      )&lt;br /&gt;45   -   -      -&lt;br /&gt;61   =   =      %3D  x&lt;br /&gt;91   [   %5B    %5B&lt;br /&gt;93   ]   %5D    %5D&lt;br /&gt;92   \   %5C    %5C&lt;br /&gt;59   ;   ;      %3B  x&lt;br /&gt;39   '   '      '&lt;br /&gt;44   ,   ,      %2C  x&lt;br /&gt;46   .   .      .&lt;br /&gt;47   /   /      %2F  x&lt;br /&gt;126  ~   ~      ~&lt;br /&gt;95   _   _      _&lt;br /&gt;43   +   +      %2B  x&lt;br /&gt;123  {   %7B    %7B&lt;br /&gt;125  }   %7D    %7D&lt;br /&gt;124  |   %7C    %7C&lt;br /&gt;58   :   :      %3A  x&lt;br /&gt;34   "   %22    %22&lt;br /&gt;60   &lt;   %3C    %3C&lt;br /&gt;62   &gt;   %3E    %3E&lt;br /&gt;63   ?   ?      %3F  x&lt;br /&gt;&lt;br /&gt;&lt;b&gt;LEGEND&lt;/b&gt;&lt;br /&gt;#   ascii code&lt;br /&gt;CH  char&lt;br /&gt;EU  encodeURI&lt;br /&gt;EUC encodeURIComponent&lt;br /&gt;x   diffs&lt;br /&gt;&lt;br /&gt;&lt;b&gt;List Chars using jQuery map()&lt;/b&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-family:'Cousine',courier new;font-size:1em;color:#000;background-color:#dcdcdc;padding:0.4em 0em 0.5em 0.75em;margin:-.8em 0em 0em 0em;line-height:1.25em;"&gt;//escape char: \&lt;br /&gt;chars = &amp;quot; `!@#$%^&amp;amp;*()-=[]\\;',./~_+{}|:\&amp;quot;&amp;lt;&amp;gt;?&amp;quot;&lt;br /&gt;jQuery.map(chars.split(""),&lt;br /&gt;  function(c) {&lt;br /&gt;    console.log(c.charCodeAt(0) + &amp;quot; &amp;quot; + c + &amp;quot;  &amp;quot; + encodeURI(c) + &amp;quot;  &amp;quot; + encodeURIComponent(c));&lt;br /&gt;  })&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-2592388236551828009?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/2592388236551828009/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2011/02/javascript-encodeuri.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/2592388236551828009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/2592388236551828009'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2011/02/javascript-encodeuri.html' title='JavaScript encodeURI and encodeURIComponent'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-924700926075379911</id><published>2011-02-01T00:00:00.000-08:00</published><updated>2011-02-01T23:21:07.176-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='phonetic'/><category scheme='http://www.blogger.com/atom/ns#' term='morse'/><category scheme='http://www.blogger.com/atom/ns#' term='alphabet'/><category scheme='http://www.blogger.com/atom/ns#' term='text'/><category scheme='http://www.blogger.com/atom/ns#' term='nato'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='alpha'/><category scheme='http://www.blogger.com/atom/ns#' term='allerta stencil - google webfonts'/><category scheme='http://www.blogger.com/atom/ns#' term='communication'/><category scheme='http://www.blogger.com/atom/ns#' term='charlie'/><category scheme='http://www.blogger.com/atom/ns#' term='bravo'/><title type='text'>NATO Phonetic Alphabet</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:'Allerta Stencil','Cousine',courier new;verdana;font-size:1.5em;"&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;A&lt;/td&gt;&lt;td&gt;Alpha&lt;/td&gt;&lt;td&gt;&amp;#8226;&amp;#8211;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;B&lt;/td&gt;&lt;td&gt;Bravo&lt;/td&gt;&lt;td&gt;&amp;#8211;&amp;#8226;&amp;#8226;&amp;#8226;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;C&lt;/td&gt;&lt;td&gt;Charlie&lt;/td&gt;&lt;td&gt;&amp;#8211;&amp;#8226;&amp;#8211;&amp;#8226;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;D&lt;/td&gt;&lt;td&gt;Delta&lt;/td&gt;&lt;td&gt;&amp;#8211;&amp;#8226;&amp;#8226;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;E&lt;/td&gt;&lt;td&gt;Echo&lt;/td&gt;&lt;td&gt;&amp;#8226;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;F&lt;/td&gt;&lt;td&gt;Foxtrot&lt;/td&gt;&lt;td&gt;&amp;#8226;&amp;#8226;&amp;#8211;&amp;#8226;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;G&lt;/td&gt;&lt;td&gt;Golf&lt;/td&gt;&lt;td&gt;&amp;#8211;&amp;#8211;&amp;#8226;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;H&lt;/td&gt;&lt;td&gt;Hotel&lt;/td&gt;&lt;td&gt;&amp;#8226;&amp;#8226;&amp;#8226;&amp;#8226;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;I&lt;/td&gt;&lt;td&gt;India&lt;/td&gt;&lt;td&gt;&amp;#8226;&amp;#8226;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;J&lt;/td&gt;&lt;td&gt;Juliet&lt;/td&gt;&lt;td&gt;&amp;#8226;&amp;#8211;&amp;#8211;&amp;#8211;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;K&lt;/td&gt;&lt;td&gt;Kilo&lt;/td&gt;&lt;td&gt;&amp;#8211;&amp;#8226;&amp;#8211;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;L&lt;/td&gt;&lt;td&gt;Lima&lt;/td&gt;&lt;td&gt;&amp;#8226;&amp;#8211;&amp;#8226;&amp;#8226;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;M&lt;/td&gt;&lt;td&gt;Mike&lt;/td&gt;&lt;td&gt;&amp;#8211;&amp;#8211;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;N&lt;/td&gt;&lt;td&gt;November&lt;/td&gt;&lt;td&gt;&amp;#8211;&amp;#8226;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;O&lt;/td&gt;&lt;td&gt;Oscar&lt;/td&gt;&lt;td&gt;&amp;#8211;&amp;#8211;&amp;#8211;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;P&lt;/td&gt;&lt;td&gt;Papa&lt;/td&gt;&lt;td&gt;&amp;#8226;&amp;#8211;&amp;#8211;&amp;#8226;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Q&lt;/td&gt;&lt;td&gt;Quebec&lt;/td&gt;&lt;td&gt;&amp;#8211;&amp;#8211;&amp;#8226;&amp;#8211;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;R&lt;/td&gt;&lt;td&gt;Romeo&lt;/td&gt;&lt;td&gt;&amp;#8226;&amp;#8211;&amp;#8226;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;S&lt;/td&gt;&lt;td&gt;Sierra&lt;/td&gt;&lt;td&gt;&amp;#8226;&amp;#8226;&amp;#8226;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;T&lt;/td&gt;&lt;td&gt;Tango&lt;/td&gt;&lt;td&gt;&amp;#8211;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;U&lt;/td&gt;&lt;td&gt;Uniform&lt;/td&gt;&lt;td&gt;&amp;#8226;&amp;#8226;&amp;#8211;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;V&lt;/td&gt;&lt;td&gt;Victor&lt;/td&gt;&lt;td&gt;&amp;#8226;&amp;#8226;&amp;#8226;&amp;#8211;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;W&lt;/td&gt;&lt;td&gt;Whiskey&lt;/td&gt;&lt;td&gt;&amp;#8226;&amp;#8211;&amp;#8211;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;X&lt;/td&gt;&lt;td&gt;X&amp;#8211;ray&lt;/td&gt;&lt;td&gt;&amp;#8211;&amp;#8226;&amp;#8226;&amp;#8211;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Y&lt;/td&gt;&lt;td&gt;Yankee&lt;/td&gt;&lt;td&gt;&amp;#8211;&amp;#8226;&amp;#8211;&amp;#8211;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Z&lt;/td&gt;&lt;td&gt;Zulu&lt;/td&gt;&lt;td&gt;&amp;#8211;&amp;#8211;&amp;#8226;&amp;#8226;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-924700926075379911?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/924700926075379911/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2011/02/nato-phonetic-alphabet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/924700926075379911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/924700926075379911'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2011/02/nato-phonetic-alphabet.html' title='NATO Phonetic Alphabet'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-1803345372208782093</id><published>2011-01-29T00:00:00.000-08:00</published><updated>2011-01-29T20:42:41.006-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='mdc'/><category scheme='http://www.blogger.com/atom/ns#' term='type'/><category scheme='http://www.blogger.com/atom/ns#' term='object'/><category scheme='http://www.blogger.com/atom/ns#' term='date'/><category scheme='http://www.blogger.com/atom/ns#' term='milliseconds'/><category scheme='http://www.blogger.com/atom/ns#' term='convert'/><title type='text'>JavaScript Dates</title><content type='html'>&lt;pre class="Apple-style-span" style="font-family:'Cousine',courier new;verdana;font-size:1em;line-height:1.25em;"&gt;&lt;a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date"&gt;Dates&lt;/a&gt; contain the number of milliseconds since 1-1-1970 00:00:00 UTC.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Date Constructor&lt;/b&gt;&lt;br /&gt;new Date()  //returns current datetime&lt;br /&gt;new Date(milliseconds)&lt;br /&gt;new Date(dateString)&lt;br /&gt;new Date(year, month, day [, hour, minute, second, millisecond])  //optional time-params default to 0&lt;br /&gt;&lt;br /&gt;Params: milliseconds ms since 1-1-1970 00:00:00 UTC&lt;br /&gt;        dateString   string format&lt;br /&gt;        year         4 digit year&lt;br /&gt;        month        0-11&lt;br /&gt;        day          1-31  day of the month&lt;br /&gt;        hour         0-23  hour of the day&lt;br /&gt;        minute       0-59  minute segment of a time reading&lt;br /&gt;        second       0-59  second segment of a time reading&lt;br /&gt;        millisecond  0-999 ms segment of a time reading&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Static Methods&lt;/b&gt;&lt;br /&gt;These methods return the milliseconds since 1-1-1970&lt;br /&gt;&lt;a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/now"&gt;Date.now()&lt;/a&gt;  //use for timestamps &amp; unique IDs, todo: minimum 15 millisecond resolution on windows?&lt;br /&gt;&lt;a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/parse"&gt;Date.parse(datestring)&lt;/a&gt;&lt;br /&gt;&lt;a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/UTC"&gt;Date.UTC(year, month [, date, hrs, min, sec, ms])&lt;/a&gt;  //universal time&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-family:'Cousine',courier new;font-size:1em;color:#000;background-color:#dcdcdc;padding:0.5em 0em 0.5em 0.75em;margin:-.5em 0em 0em 0em;line-height:1.25em;"&gt;d = new Date("Jan 7, 2011")               //Fri Jan 07 2011 00:00:00 GMT-0700 (Mountain Standard Time)&lt;br /&gt;d.getMonth()                              //0 (0-11)&lt;br /&gt;d.getDay()                                //5 (0-6) friday&lt;br /&gt;d.getDate()                               //7 (1-31)&lt;br /&gt;d.getFullYear()                           //2011&lt;br /&gt;d.getHours()                              //0&lt;br /&gt;&lt;br /&gt;d = new Date("Jan 07 2011 01:02:03")      //Fri Jan 07 2011 01:02:03 GMT-0700 (Mountain Standard Time)&lt;br /&gt;d.getHours()                              //1&lt;br /&gt;d.getMinutes()                            //2&lt;br /&gt;d.getSeconds()                            //3&lt;br /&gt;&lt;br /&gt;d = new Date("Jan 07 2011 01:02:03:456")  //Fri Jan 07 2011 01:02:03 GMT-0700 (Mountain Standard Time)&lt;br /&gt;d = new Date(2011, 0, 7, 1, 2, 3, 456)&lt;br /&gt;d.getMilliseconds()                       //456&lt;br /&gt;d.getTime()                               //1294387323456 milliseconds since 1-1-1970&lt;br /&gt;Date.parse("01-07-2011 01:02:03:456")     //1294387323456 milliseconds since 1-1-1970&lt;br /&gt;Date.UTC(2011, 0, 7, 1, 2, 3, 456)        //1294362123456&lt;br /&gt;&lt;br /&gt;formatDate(d)                             //"1-7-2011"&lt;br /&gt;formatDatePad(d)                          //"01-07-2011"&lt;br /&gt;formatDateTime(d)                         //"1-7-2011 1:2:3:456"&lt;br /&gt;formatDateTime(addMinutes(d, 60))         //"1-7-2011 2:2:3:456"&lt;br /&gt;formatDateTime(addMinutes(d, 10))         //"1-7-2011 1:12:3:456"&lt;br /&gt;formatDateTime(addMinutes(d, 1440))       //"1-8-2011 1:2:3:456"&lt;br /&gt;&lt;br /&gt;//debug&lt;br /&gt;console.log(d.getMonth());console.log(d.getDate());console.log(d.getFullYear());console.log(d.getHours());console.log(d.getMinutes());console.log(d.getSeconds());console.log(d.getMilliseconds())&lt;br /&gt;&lt;br /&gt;//equivalent date constructors, exclude times for date only, string formats can be used with Date.parse()&lt;br /&gt;new Date("01-07-2011 01:02:03")&lt;br /&gt;new Date(2011, 0, 7, 1, 2, 3)&lt;br /&gt;new Date("Jan 07 2011 01:02:03")&lt;br /&gt;new Date("Fri Jan 7 2011 1:2:3")&lt;br /&gt;new Date("Fri Jan 07 2011 01:02:03 GMT-0700")&lt;br /&gt;&lt;br /&gt;//-------------&lt;br /&gt;function addMinutes(date, minutes){  //returns date&lt;br /&gt;  var result = new Date(date.getTime());&lt;br /&gt;  result.setMinutes(result.getMinutes() + parseInt(minutes));&lt;br /&gt;  return result;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function formatDate(date){  //returns string&lt;br /&gt;  return (date.getMonth() + 1) + "-" + date.getDate() + "-" + date.getFullYear();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function formatDatePad(date){  //returns string&lt;br /&gt;  return (pad2(date.getMonth() + 1)) + "-" + pad2(date.getDate()) + "-" + pad2(date.getFullYear());&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function formatDateTime(date){  //returns string&lt;br /&gt;  return (date.getMonth() + 1) + "-" + date.getDate() + "-" + date.getFullYear() + " " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds() + ":" + date.getMilliseconds();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//http://www.electrictoolbox.com/pad-number-two-digits-javascript/&lt;br /&gt;function pad2(number){  //returns string&lt;br /&gt;  return (number &lt; 10 ? "0" : "") + number;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;pre class="Apple-style-span" style="font-family:'Cousine',courier new;verdana;font-size:1em;line-height:1.25em;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Conversions&lt;/b&gt;&lt;br /&gt;INTERVAL       MS   SECS  MINS   HOURS&lt;br /&gt;1 sec        1000      1  1/60  1/3600&lt;br /&gt;1 min       60000     60     1    1/60&lt;br /&gt;10 min     600000    600    10   10/60&lt;br /&gt;1 hour    3600000   3600    60       1&lt;br /&gt;1 day    86400000  86400  1440      24  ms=24*60*60*1000&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-1803345372208782093?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/1803345372208782093/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2011/01/javascript-dates.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/1803345372208782093'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/1803345372208782093'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2011/01/javascript-dates.html' title='JavaScript Dates'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-913560942168873755</id><published>2011-01-23T00:00:00.001-08:00</published><updated>2011-01-23T02:18:20.234-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='tasks'/><category scheme='http://www.blogger.com/atom/ns#' term='parallel'/><category scheme='http://www.blogger.com/atom/ns#' term='actions'/><category scheme='http://www.blogger.com/atom/ns#' term='threading'/><title type='text'>Parallel Programming in .NET 4</title><content type='html'>&lt;pre class="Apple-style-span" style="font-family:'Cousine',courier new;verdana;font-size:1em;line-height:1.25em;"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd460693.aspx"&gt;Parallel Programming in the .NET Framework&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/vstudio/async.aspx"&gt;Async CTP&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Namespaces&lt;/b&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.threading.tasks.aspx"&gt;System.Threading.Tasks&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.collections.concurrent.aspx"&gt;System.Collections.Concurrent&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Classes&lt;/b&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.threading.tasks.task.aspx"&gt;Task&lt;/a&gt; : IAsyncResult, IDisposable&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.threading.tasks.parallel.aspx"&gt;static Parallel&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Task Constructor&lt;/b&gt;&lt;br /&gt;Task(Action action)&lt;br /&gt;Task(Action action, cancellationToken)&lt;br /&gt;Task(Action action, creationOptions)&lt;br /&gt;Task(Action action, cancellationToken, creationOptions)&lt;br /&gt;Task(Action&amp;lt;object&amp;gt; action, state)&lt;br /&gt;Task(Action&amp;lt;object&amp;gt; action, state, cancellationToken)&lt;br /&gt;Task(Action&amp;lt;object&amp;gt; action, state, creationOptions)&lt;br /&gt;Task(Action&amp;lt;object&amp;gt; action, state, cancellationToken, creationOptions)&lt;br /&gt;Params: * action, object state, CancellationToken cancellationToken, TaskCreationOptions creationOptions&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-913560942168873755?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/913560942168873755/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2011/01/net-parallel-programming.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/913560942168873755'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/913560942168873755'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2011/01/net-parallel-programming.html' title='Parallel Programming in .NET 4'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-8510657049519182165</id><published>2011-01-23T00:00:00.000-08:00</published><updated>2011-01-23T02:16:08.396-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lazy'/><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><title type='text'>Lazy Initialization in .NET 4</title><content type='html'>&lt;pre class="Apple-style-span" style="font-family:'Cousine',courier new;verdana;font-size:1em;line-height:1.25em;"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd997286(v=VS.100).aspx"&gt;Lazy Initialization&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/b/pfxteam/archive/2011/01/15/10116210.aspx"&gt;AsyncLazy&amp;lt;T&amp;gt; : Lazy&amp;lt;Task&amp;lt;T&amp;gt;&amp;gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Classes&lt;/b&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd642331.aspx"&gt;Lazy&amp;lt;T&amp;gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd642243.aspx"&gt;ThreadLocal&amp;lt;T&amp;gt;&lt;/a&gt; : IDisposable&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.threading.lazyinitializer.aspx"&gt;static LazyInitializer&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Lazy Constructor&lt;/b&gt;&lt;br /&gt;Lazy&amp;lt;T&amp;gt;()&lt;br /&gt;Lazy&amp;lt;T&amp;gt;(isThreadSafe)&lt;br /&gt;Lazy&amp;lt;T&amp;gt;(valueFactory)&lt;br /&gt;Lazy&amp;lt;T&amp;gt;(mode)&lt;br /&gt;Lazy&amp;lt;T&amp;gt;(valueFactory, isThreadSafe)&lt;br /&gt;Lazy&amp;lt;T&amp;gt;(valueFactory, mode)&lt;br /&gt;Params: bool isThreadSafe, Func&amp;lt;T&amp;gt; valueFactory, LazyThreadSafetyMode mode&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Delegates&lt;/b&gt;&lt;br /&gt;Action delegates do not return a value&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.action.aspx"&gt;delegate void Action()&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/018hxwa8.aspx"&gt;delegate void Action&amp;lt;in T&amp;gt;(T obj)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb549311.aspx"&gt;delegate void Action&amp;lt;in T1, in T2&amp;gt;(T1 arg1, T2 arg2)&lt;/a&gt;  //max params 16&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb534960.aspx"&gt;delegate TResult Func&amp;lt;out TResult&amp;gt;()&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb549151.aspx"&gt;delegate TResult Func&amp;lt;in T, out TResult&amp;gt;(T arg)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb534647.aspx"&gt;delegate TResult Func&amp;lt;in T1, in T2, out TResult&amp;gt;(T1 arg1, T2 arg2)&lt;/a&gt;  //max params 16&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-8510657049519182165?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/8510657049519182165/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2011/01/net-lazy-initialization.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/8510657049519182165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/8510657049519182165'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2011/01/net-lazy-initialization.html' title='Lazy Initialization in .NET 4'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-7889155506143506564</id><published>2011-01-20T21:10:00.000-08:00</published><updated>2011-01-23T00:41:47.625-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='controllers'/><category scheme='http://www.blogger.com/atom/ns#' term='layout'/><category scheme='http://www.blogger.com/atom/ns#' term='mvc'/><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><category scheme='http://www.blogger.com/atom/ns#' term='lekton - google webfonts'/><category scheme='http://www.blogger.com/atom/ns#' term='view'/><title type='text'>ASP.NET MVC 3 Controllers</title><content type='html'>&lt;pre class="Apple-style-span" style="font-family:'Lekton',courier new;verdana;font-size:1em;line-height:1.25em;"&gt;&lt;b&gt;Classes&lt;/b&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd460481(v=VS.98).aspx"&gt;abstract Controller&lt;/a&gt; : ControllerBase, IActionFilter, IAuthorizationFilter, IDisposable, IExceptionFilter, IResultFilter&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.web.mvc.controller.view(v=VS.98).aspx"&gt;Controller.View()&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;View()&lt;br /&gt;View(model)&lt;br /&gt;View(viewName)&lt;br /&gt;View(viewName, masterName)&lt;br /&gt;View(viewName, masterName, model)&lt;br /&gt;View(viewName, model)&lt;br /&gt;View(view)&lt;br /&gt;View(view, model)&lt;br /&gt;Params: object model, string viewName, string masterName, IView view&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Layouts&lt;/b&gt;&lt;br /&gt;Two ways to set the view layout, non-default&lt;br /&gt;&lt;br /&gt;1: Pass the layout mastername to Controller.View()&lt;/pre&gt;&lt;pre style="font-family:'Lekton',courier new;font-size:1em;color:#000;background-color:#dcdcdc;padding:0.5em 0em 0.5em 0.75em;margin:-.5em 0em 0em 0em;line-height:1.25em;"&gt;public ActionResult Default()&lt;br /&gt;{&lt;br /&gt;    return View("default", "_blogLayout");  //masterName&lt;br /&gt;}&lt;/pre&gt;&lt;pre class="Apple-style-span" style="font-family:'Lekton',courier new;verdana;font-size:1em;line-height:1.25em;"&gt;2: Set in the view code&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-family:'Lekton',courier new;font-size:1em;color:#000;background-color:#dcdcdc;padding:0.5em 0em 0.5em 0.75em;margin:-.5em 0em 0em 0em;line-height:1.25em;"&gt;@{&lt;br /&gt;    Layout = "~/views/shared/_blogLayout.cshtml";&lt;br /&gt; }&lt;/pre&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-7889155506143506564?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/7889155506143506564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2011/01/aspnet-mvc-controllers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/7889155506143506564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/7889155506143506564'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2011/01/aspnet-mvc-controllers.html' title='ASP.NET MVC 3 Controllers'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-1812230491644707431</id><published>2011-01-18T00:00:00.000-08:00</published><updated>2011-01-22T20:59:10.308-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='maproute'/><category scheme='http://www.blogger.com/atom/ns#' term='routing'/><category scheme='http://www.blogger.com/atom/ns#' term='mvc'/><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><category scheme='http://www.blogger.com/atom/ns#' term='cousine - google webfonts'/><category scheme='http://www.blogger.com/atom/ns#' term='redirect'/><title type='text'>ASP.NET MVC 3 Routing</title><content type='html'>&lt;pre class="Apple-style-span" style="font-family:'Cousine',courier new;verdana;font-size:1em;line-height:1.25em;"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc668201.aspx"&gt;Routing&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Classes&lt;/b&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.web.routing.route.aspx"&gt;Route&lt;/a&gt; : RouteBase&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.web.routing.routecollection.aspx"&gt;RouteCollection&lt;/a&gt; : Collection&amp;lt;RouteBase&amp;gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.web.mvc.routecollectionextensions.aspx"&gt;static RouteCollectionExtensions&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.web.routing.routevaluedictionary.aspx"&gt;RouteValueDictionary&lt;/a&gt; : IDictionary&amp;lt;string, object&amp;gt;,&lt;br /&gt;                       ICollection&amp;lt;KeyValuePair&amp;lt;string, object&amp;gt;&amp;gt;,&lt;br /&gt;                       IEnumerable&amp;lt;KeyValuePair&amp;lt;string, object&amp;gt;&amp;gt;,&lt;br /&gt;                       IEnumerable&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.web.mvc.mvcroutehandler.aspx"&gt;MvcRouteHandler&lt;/a&gt; : IRouteHandler&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.web.mvc.routecollectionextensions.maproute(v=VS.98).aspx"&gt;RouteCollectionExtensions.MapRoute()&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;MapRoute(name, url)&lt;br /&gt;MapRoute(name, url, defaults)&lt;br /&gt;MapRoute(name, url, namespaces)&lt;br /&gt;MapRoute(name, url, defaults, constraints)&lt;br /&gt;MapRoute(name, url, defaults, namespaces)&lt;br /&gt;MapRoute(name, url, defaults, constraints, namespaces)&lt;br /&gt;Params: string name, string url, object defaults, string[] namespaces, object constraints&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Redirects&lt;/b&gt;&lt;br /&gt;Internal: Use IIS URL rewrite&lt;br /&gt;External: Use Controller.RedirectPermanent() and Controller.Redirect() to redirect to other domains&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-family:'Cousine',courier new;font-size:1em;color:#000;background-color:#dcdcdc;padding:0.5em 0em 0.5em 0.75em;margin:-.5em 0em 0em 0em;line-height:1.25em;"&gt;public RedirectResult RedirectGoogleBuzz()&lt;br /&gt;{&lt;br /&gt;    var url = "http://www.google.com/profiles/110929499197835402914";&lt;br /&gt;    return RedirectPermanent(url);  //301 permanent redirect&lt;br /&gt;    //return Redirect(url);         //302 temporary redirect&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-1812230491644707431?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/1812230491644707431/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2011/01/aspnet-mvc-routing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/1812230491644707431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/1812230491644707431'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2011/01/aspnet-mvc-routing.html' title='ASP.NET MVC 3 Routing'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-3654894463736810919</id><published>2011-01-17T00:00:00.000-08:00</published><updated>2011-09-03T19:06:28.556-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='app pools'/><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><category scheme='http://www.blogger.com/atom/ns#' term='appcmd'/><category scheme='http://www.blogger.com/atom/ns#' term='debug'/><category scheme='http://www.blogger.com/atom/ns#' term='process id'/><category scheme='http://www.blogger.com/atom/ns#' term='config'/><category scheme='http://www.blogger.com/atom/ns#' term='iis'/><category scheme='http://www.blogger.com/atom/ns#' term='w3wp.exe'/><title type='text'>Powershell Appcmd IIS 7 Command Line Tool</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;font-size:1em;"&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc772200(WS.10).aspx"&gt;&lt;b&gt;Appcmd Objects&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;APP&lt;/td&gt;&lt;td&gt;applications&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;APPPOOL&lt;/td&gt;&lt;td&gt;application pools&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BACKUP&lt;/td&gt;&lt;td&gt;server configuration backups&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CONFIG&lt;/td&gt;&lt;td&gt;general configuration sections&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MODULE&lt;/td&gt;&lt;td&gt;server modules&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="padding:0 1em 0 0;"&gt;REQUEST&lt;/td&gt;&lt;td&gt;HTTP requests&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SITE&lt;/td&gt;&lt;td&gt;virtual sites&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TRACE&lt;/td&gt;&lt;td&gt;working with failed request trace logs&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;VDIR&lt;/td&gt;&lt;td&gt;virtual directories&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WP&lt;/td&gt;&lt;td&gt;worker processes&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;font-size:1em;color:#000;margin:-.25em 0 0 0;"&gt;$appcmd = &amp;quot;c:\windows\system32\inetsrv\appcmd.exe&amp;quot;&lt;br /&gt;&amp;amp;$appcmd /?  #help&lt;br /&gt;&lt;br /&gt;#list all sites&lt;br /&gt;&amp;amp;$appcmd list site&lt;br /&gt;&amp;amp;$appcmd list site /xml        #use xml to get attribute names&lt;br /&gt;&amp;amp;$appcmd list site /text:name  #use text to get attribute values&lt;br /&gt;&lt;br /&gt;&amp;amp;$appcmd list site /text:name | sort  #ps sort&lt;br /&gt;&lt;br /&gt;#list all app pools&lt;br /&gt;&amp;amp;$appcmd list apppool&lt;br /&gt;&lt;br /&gt;#list app pool names&lt;br /&gt;&amp;amp;$appcmd list apppool /text:name&lt;br /&gt;&lt;br /&gt;#list app pool .net framework version&lt;br /&gt;&amp;amp;$appcmd list apppool /text:managedRuntimeVersion&lt;br /&gt;&lt;br /&gt;#list all w3wp.exe worker processes, use to debug match process id to iis website&lt;br /&gt;&amp;amp;$appcmd list wp&lt;br /&gt;&lt;br /&gt;#list started sites, running&lt;br /&gt;&amp;amp;$appcmd list site /state:started&lt;br /&gt;&lt;br /&gt;#list stopped app pools&lt;br /&gt;&amp;amp;$appcmd list apppool /state:stopped&lt;br /&gt;&lt;br /&gt;#list all virtual directory/physical paths&lt;br /&gt;&amp;amp;$appcmd list vdir&lt;br /&gt;&lt;br /&gt;#list site bindings ipaddress&lt;br /&gt;(&amp;amp;$appcmd list site prod /text:bindings).split(&amp;quot;,&amp;quot;)&lt;br /&gt;&lt;br /&gt;#list response headers&lt;br /&gt;&amp;amp;$appcmd list config prod /section:httpProtocol&lt;br /&gt;&lt;br /&gt;#add response headers&lt;br /&gt;&amp;amp;$appcmd set config prod /section:httpProtocol /+&amp;quot;customHeaders.[name=&amp;#39;foo&amp;#39;, value=&amp;#39;bar&amp;#39;]&amp;quot;&lt;br /&gt;&lt;br /&gt;#delete response headers&lt;br /&gt;&amp;amp;$appcmd set config prod /section:httpProtocol /-&amp;quot;customHeaders.[name=&amp;#39;foo&amp;#39;]&amp;quot;&lt;br /&gt;&amp;amp;$appcmd set config prod /section:httpProtocol /-&amp;quot;customHeaders.[name=&amp;#39;x-powered-by&amp;#39;]&amp;quot;&lt;br /&gt;&lt;br /&gt;#output site configuration text&lt;br /&gt;&amp;amp;$appcmd list site prod /text:*&lt;br /&gt;&lt;br /&gt;#list website virtual directory/physical path&lt;br /&gt;&amp;amp;$appcmd list vdir prod/&lt;br /&gt;&lt;br /&gt;#stop website&lt;br /&gt;&amp;amp;$appcmd stop apppool prod; &amp;amp;$appcmd stop site prod&lt;br /&gt;&lt;br /&gt;#start website&lt;br /&gt;&amp;amp;$appcmd start apppool prod; &amp;amp;$appcmd start site prod&lt;br /&gt;&lt;br /&gt;#stop all running sites&lt;br /&gt;&amp;amp;$appcmd list site /state:started /xml | &amp;amp;$appcmd stop site /in  &lt;br /&gt;&lt;br /&gt;#stop all running app pools&lt;br /&gt;&amp;amp;$appcmd list apppool /state:started /xml | &amp;amp;$appcmd stop apppool /in&lt;br /&gt;&lt;br /&gt;#list mime types&lt;br /&gt;&amp;amp;$appcmd list config prod /section:system.webServer/staticContent&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;v11.09&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-3654894463736810919?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/3654894463736810919/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2011/01/iis-appcmd.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/3654894463736810919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/3654894463736810919'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2011/01/iis-appcmd.html' title='Powershell Appcmd IIS 7 Command Line Tool'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-8576173516611557775</id><published>2011-01-15T00:00:00.000-08:00</published><updated>2011-02-10T21:25:47.161-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='files'/><category scheme='http://www.blogger.com/atom/ns#' term='online'/><category scheme='http://www.blogger.com/atom/ns#' term='2010'/><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><category scheme='http://www.blogger.com/atom/ns#' term='mvc'/><category scheme='http://www.blogger.com/atom/ns#' term='template'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='code review'/><category scheme='http://www.blogger.com/atom/ns#' term='minimum'/><category scheme='http://www.blogger.com/atom/ns#' term='visual studio'/><category scheme='http://www.blogger.com/atom/ns#' term='3'/><category scheme='http://www.blogger.com/atom/ns#' term='razor'/><title type='text'>ASP.NET MVC 3 - Project Template for Visual Studio 2010</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana,arial;font-size:1em;"&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;Microsoft.CSharp&lt;br /&gt;System&lt;br /&gt;System.Core&lt;br /&gt;System.Web&lt;br /&gt;System.Web.Helpers&lt;br /&gt;System.Web.Mvc&lt;br /&gt;System.Web.Routing&lt;br /&gt;System.Web.Services&lt;br /&gt;System.Web.WebPages&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Folders&lt;/b&gt;&lt;br /&gt;controllers&lt;br /&gt;js&lt;br /&gt;models&lt;br /&gt;properties&lt;br /&gt;ux&lt;br /&gt;views&lt;br /&gt;views\home&lt;br /&gt;views\shared&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Files&lt;/b&gt;&lt;br /&gt;&lt;a href="#homeController.cs"&gt;controllers\homeController.cs&lt;/a&gt;&lt;br /&gt;demo.csproj&lt;br /&gt;demo.csproj.user&lt;br /&gt;&lt;a href="#global.asax"&gt;global.asax&lt;/a&gt;&lt;br /&gt;&lt;a href="#global.asax.cs"&gt;global.asax.cs&lt;/a&gt;&lt;br /&gt;js\alert.js&lt;br /&gt;properties\assemblyInfo.cs&lt;br /&gt;ux\style.css&lt;br /&gt;&lt;a href="#_viewStart.cshtml"&gt;views\_viewStart.cshtml&lt;/a&gt;&lt;br /&gt;&lt;a href="#default.cshtml"&gt;views\home\default.cshtml&lt;/a&gt;&lt;br /&gt;&lt;a href="#error.cshtml"&gt;views\shared\error.cshtml&lt;/a&gt;&lt;br /&gt;&lt;a href="#_layout.cshtml"&gt;views\shared\_layout.cshtml&lt;/a&gt;&lt;br /&gt;&lt;a href="#views-web.config"&gt;views\web.config&lt;/a&gt;&lt;br /&gt;&lt;a href="#web.config"&gt;web.config&lt;/a&gt;&lt;br /&gt;web.debug.config&lt;br /&gt;web.release.config&lt;br /&gt;&lt;br /&gt;&lt;a name="homeController.cs"&gt;&lt;b&gt;controllers\homeController.cs&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:.5em 0em .5em .75em;margin:.5em 0em .2em 0em;"&gt;using System.Web.Mvc;&lt;br /&gt;&lt;br /&gt;namespace Demo.Controllers&lt;br /&gt;{&lt;br /&gt;    public class HomeController : Controller&lt;br /&gt;    {&lt;br /&gt;        public ActionResult Default()&lt;br /&gt;        {&lt;br /&gt;            ViewBag.Message = &amp;quot;ViewBag.Message, set in HomeController&amp;quot;;&lt;br /&gt;&lt;br /&gt;            return View();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;demo.csproj&lt;/b&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:.5em 0em .5em .75em;margin:.5em 0em .2em 0em;"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;&amp;lt;Project ToolsVersion=&amp;quot;4.0&amp;quot; DefaultTargets=&amp;quot;Build&amp;quot; xmlns=&amp;quot;http://schemas.microsoft.com/developer/msbuild/2003&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;PropertyGroup&amp;gt;&lt;br /&gt;    &amp;lt;Configuration Condition=&amp;quot; '$(Configuration)' == '' &amp;quot;&amp;gt;Debug&amp;lt;/Configuration&amp;gt;&lt;br /&gt;    &amp;lt;Platform Condition=&amp;quot; '$(Platform)' == '' &amp;quot;&amp;gt;AnyCPU&amp;lt;/Platform&amp;gt;&lt;br /&gt;    &amp;lt;ProductVersion&amp;gt;&amp;lt;/ProductVersion&amp;gt;&lt;br /&gt;    &amp;lt;SchemaVersion&amp;gt;2.0&amp;lt;/SchemaVersion&amp;gt;&lt;br /&gt;    &amp;lt;ProjectGuid&amp;gt;{A8C1B3E9-6897-4456-A450-2662343B9E6F}&amp;lt;/ProjectGuid&amp;gt;&lt;br /&gt;    &amp;lt;ProjectTypeGuids&amp;gt;{E53F8FEA-EAE0-44A6-8774-FFD645390401};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}&amp;lt;/ProjectTypeGuids&amp;gt;&lt;br /&gt;    &amp;lt;OutputType&amp;gt;Library&amp;lt;/OutputType&amp;gt;&lt;br /&gt;    &amp;lt;AppDesignerFolder&amp;gt;properties&amp;lt;/AppDesignerFolder&amp;gt;&lt;br /&gt;    &amp;lt;RootNamespace&amp;gt;Demo&amp;lt;/RootNamespace&amp;gt;&lt;br /&gt;    &amp;lt;AssemblyName&amp;gt;demo&amp;lt;/AssemblyName&amp;gt;&lt;br /&gt;    &amp;lt;TargetFrameworkVersion&amp;gt;v4.0&amp;lt;/TargetFrameworkVersion&amp;gt;&lt;br /&gt;    &amp;lt;MvcBuildViews&amp;gt;false&amp;lt;/MvcBuildViews&amp;gt;&lt;br /&gt;  &amp;lt;/PropertyGroup&amp;gt;&lt;br /&gt;  &amp;lt;PropertyGroup Condition=&amp;quot; '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' &amp;quot;&amp;gt;&lt;br /&gt;    &amp;lt;DebugSymbols&amp;gt;true&amp;lt;/DebugSymbols&amp;gt;&lt;br /&gt;    &amp;lt;DebugType&amp;gt;full&amp;lt;/DebugType&amp;gt;&lt;br /&gt;    &amp;lt;Optimize&amp;gt;false&amp;lt;/Optimize&amp;gt;&lt;br /&gt;    &amp;lt;OutputPath&amp;gt;bin\&amp;lt;/OutputPath&amp;gt;&lt;br /&gt;    &amp;lt;DefineConstants&amp;gt;DEBUG;TRACE&amp;lt;/DefineConstants&amp;gt;&lt;br /&gt;    &amp;lt;ErrorReport&amp;gt;prompt&amp;lt;/ErrorReport&amp;gt;&lt;br /&gt;    &amp;lt;WarningLevel&amp;gt;4&amp;lt;/WarningLevel&amp;gt;&lt;br /&gt;    &amp;lt;PublishDatabases&amp;gt;false&amp;lt;/PublishDatabases&amp;gt;&lt;br /&gt;  &amp;lt;/PropertyGroup&amp;gt;&lt;br /&gt;  &amp;lt;PropertyGroup Condition=&amp;quot; '$(Configuration)|$(Platform)' == 'Release|AnyCPU' &amp;quot;&amp;gt;&lt;br /&gt;    &amp;lt;DebugType&amp;gt;pdbonly&amp;lt;/DebugType&amp;gt;&lt;br /&gt;    &amp;lt;Optimize&amp;gt;true&amp;lt;/Optimize&amp;gt;&lt;br /&gt;    &amp;lt;OutputPath&amp;gt;bin\&amp;lt;/OutputPath&amp;gt;&lt;br /&gt;    &amp;lt;DefineConstants&amp;gt;TRACE&amp;lt;/DefineConstants&amp;gt;&lt;br /&gt;    &amp;lt;ErrorReport&amp;gt;prompt&amp;lt;/ErrorReport&amp;gt;&lt;br /&gt;    &amp;lt;WarningLevel&amp;gt;4&amp;lt;/WarningLevel&amp;gt;&lt;br /&gt;  &amp;lt;/PropertyGroup&amp;gt;&lt;br /&gt;  &amp;lt;ItemGroup&amp;gt;&lt;br /&gt;    &amp;lt;Reference Include=&amp;quot;Microsoft.CSharp&amp;quot; /&amp;gt;&lt;br /&gt;    &amp;lt;Reference Include=&amp;quot;System&amp;quot; /&amp;gt;&lt;br /&gt;    &amp;lt;Reference Include=&amp;quot;System.Core&amp;quot; /&amp;gt;&lt;br /&gt;    &amp;lt;Reference Include=&amp;quot;System.Web&amp;quot; /&amp;gt;&lt;br /&gt;    &amp;lt;Reference Include=&amp;quot;System.Web.Helpers&amp;quot; /&amp;gt;&lt;br /&gt;    &amp;lt;Reference Include=&amp;quot;System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL&amp;quot; /&amp;gt;&lt;br /&gt;    &amp;lt;Reference Include=&amp;quot;System.Web.Routing&amp;quot; /&amp;gt;&lt;br /&gt;    &amp;lt;Reference Include=&amp;quot;System.Web.Services&amp;quot; /&amp;gt;&lt;br /&gt;    &amp;lt;Reference Include=&amp;quot;System.Web.WebPages&amp;quot; /&amp;gt;&lt;br /&gt;  &amp;lt;/ItemGroup&amp;gt;&lt;br /&gt;  &amp;lt;ItemGroup&amp;gt;&lt;br /&gt;    &amp;lt;Compile Include=&amp;quot;global.asax.cs&amp;quot;&amp;gt;&lt;br /&gt;      &amp;lt;DependentUpon&amp;gt;global.asax&amp;lt;/DependentUpon&amp;gt;&lt;br /&gt;    &amp;lt;/Compile&amp;gt;&lt;br /&gt;    &amp;lt;Compile Include=&amp;quot;properties\assemblyInfo.cs&amp;quot; /&amp;gt;&lt;br /&gt;    &amp;lt;Compile Include=&amp;quot;controllers\homeController.cs&amp;quot; /&amp;gt;&lt;br /&gt;  &amp;lt;/ItemGroup&amp;gt;&lt;br /&gt;  &amp;lt;ItemGroup&amp;gt;&lt;br /&gt;    &amp;lt;Content Include=&amp;quot;global.asax&amp;quot; /&amp;gt;&lt;br /&gt;    &amp;lt;Content Include=&amp;quot;js\alert.js&amp;quot; /&amp;gt;&lt;br /&gt;    &amp;lt;Content Include=&amp;quot;ux\style.css&amp;quot; /&amp;gt;&lt;br /&gt;    &amp;lt;Content Include=&amp;quot;views\_viewStart.cshtml&amp;quot; /&amp;gt;&lt;br /&gt;    &amp;lt;Content Include=&amp;quot;views\home\default.cshtml&amp;quot; /&amp;gt;&lt;br /&gt;    &amp;lt;Content Include=&amp;quot;views\shared\_layout.cshtml&amp;quot; /&amp;gt;&lt;br /&gt;    &amp;lt;Content Include=&amp;quot;views\shared\error.cshtml&amp;quot; /&amp;gt;&lt;br /&gt;    &amp;lt;Content Include=&amp;quot;views\web.config&amp;quot; /&amp;gt;&lt;br /&gt;    &amp;lt;Content Include=&amp;quot;web.config&amp;quot; /&amp;gt;&lt;br /&gt;    &amp;lt;Content Include=&amp;quot;web.Debug.config&amp;quot;&amp;gt;&lt;br /&gt;      &amp;lt;DependentUpon&amp;gt;web.config&amp;lt;/DependentUpon&amp;gt;&lt;br /&gt;    &amp;lt;/Content&amp;gt;&lt;br /&gt;    &amp;lt;Content Include=&amp;quot;web.Release.config&amp;quot;&amp;gt;&lt;br /&gt;      &amp;lt;DependentUpon&amp;gt;web.config&amp;lt;/DependentUpon&amp;gt;&lt;br /&gt;    &amp;lt;/Content&amp;gt;&lt;br /&gt;  &amp;lt;/ItemGroup&amp;gt;&lt;br /&gt;  &amp;lt;ItemGroup&amp;gt;&lt;br /&gt;    &amp;lt;Folder Include=&amp;quot;models\&amp;quot; /&amp;gt;&lt;br /&gt;  &amp;lt;/ItemGroup&amp;gt;&lt;br /&gt;  &amp;lt;Import Project=&amp;quot;$(MSBuildBinPath)\Microsoft.CSharp.targets&amp;quot; /&amp;gt;&lt;br /&gt;  &amp;lt;Import Project=&amp;quot;$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets&amp;quot; /&amp;gt;&lt;br /&gt;  &amp;lt;!-- To modify your build process, add your task inside one of the targets below and uncomment it. &lt;br /&gt;       Other similar extension points exist, see Microsoft.Common.targets.&lt;br /&gt;  &amp;lt;Target Name=&amp;quot;BeforeBuild&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;/Target&amp;gt;&lt;br /&gt;  &amp;lt;Target Name=&amp;quot;AfterBuild&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;/Target&amp;gt; --&amp;gt;&lt;br /&gt;  &amp;lt;Target Name=&amp;quot;MvcBuildViews&amp;quot; AfterTargets=&amp;quot;AfterBuild&amp;quot; Condition=&amp;quot;'$(MvcBuildViews)'=='true'&amp;quot;&amp;gt;&lt;br /&gt;    &amp;lt;AspNetCompiler VirtualPath=&amp;quot;temp&amp;quot; PhysicalPath=&amp;quot;$(WebProjectOutputDir)&amp;quot; /&amp;gt;&lt;br /&gt;  &amp;lt;/Target&amp;gt;&lt;br /&gt;  &amp;lt;ProjectExtensions&amp;gt;&lt;br /&gt;    &amp;lt;VisualStudio&amp;gt;&lt;br /&gt;      &amp;lt;FlavorProperties GUID=&amp;quot;{349c5851-65df-11da-9384-00065b846f21}&amp;quot;&amp;gt;&lt;br /&gt;        &amp;lt;WebProjectProperties&amp;gt;&lt;br /&gt;          &amp;lt;UseIIS&amp;gt;False&amp;lt;/UseIIS&amp;gt;&lt;br /&gt;          &amp;lt;AutoAssignPort&amp;gt;True&amp;lt;/AutoAssignPort&amp;gt;&lt;br /&gt;          &amp;lt;DevelopmentServerPort&amp;gt;1234&amp;lt;/DevelopmentServerPort&amp;gt;&lt;br /&gt;          &amp;lt;DevelopmentServerVPath&amp;gt;/&amp;lt;/DevelopmentServerVPath&amp;gt;&lt;br /&gt;          &amp;lt;IISUrl&amp;gt;&amp;lt;/IISUrl&amp;gt;&lt;br /&gt;          &amp;lt;NTLMAuthentication&amp;gt;False&amp;lt;/NTLMAuthentication&amp;gt;&lt;br /&gt;          &amp;lt;UseCustomServer&amp;gt;True&amp;lt;/UseCustomServer&amp;gt;&lt;br /&gt;          &amp;lt;CustomServerUrl&amp;gt;http://dev.mvcdemo.com/&amp;lt;/CustomServerUrl&amp;gt;&lt;br /&gt;          &amp;lt;SaveServerSettingsInUserFile&amp;gt;False&amp;lt;/SaveServerSettingsInUserFile&amp;gt;&lt;br /&gt;        &amp;lt;/WebProjectProperties&amp;gt;&lt;br /&gt;      &amp;lt;/FlavorProperties&amp;gt;&lt;br /&gt;    &amp;lt;/VisualStudio&amp;gt;&lt;br /&gt;  &amp;lt;/ProjectExtensions&amp;gt;&lt;br /&gt;&amp;lt;/Project&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;demo.csproj.user&lt;/b&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:.5em 0em .5em .75em;margin:.5em 0em .2em 0em;"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;&amp;lt;Project ToolsVersion=&amp;quot;4.0&amp;quot; xmlns=&amp;quot;http://schemas.microsoft.com/developer/msbuild/2003&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;PropertyGroup&amp;gt;&lt;br /&gt;    &amp;lt;ProjectView&amp;gt;ShowAllFiles&amp;lt;/ProjectView&amp;gt;&lt;br /&gt;  &amp;lt;/PropertyGroup&amp;gt;&lt;br /&gt;  &amp;lt;ProjectExtensions&amp;gt;&lt;br /&gt;    &amp;lt;VisualStudio&amp;gt;&lt;br /&gt;      &amp;lt;FlavorProperties GUID=&amp;quot;{349c5851-65df-11da-9384-00065b846f21}&amp;quot;&amp;gt;&lt;br /&gt;        &amp;lt;WebProjectProperties&amp;gt;&lt;br /&gt;          &amp;lt;StartPageUrl&amp;gt;&amp;lt;/StartPageUrl&amp;gt;&lt;br /&gt;          &amp;lt;StartAction&amp;gt;NoStartPage&amp;lt;/StartAction&amp;gt;&lt;br /&gt;          &amp;lt;AspNetDebugging&amp;gt;True&amp;lt;/AspNetDebugging&amp;gt;&lt;br /&gt;          &amp;lt;SilverlightDebugging&amp;gt;False&amp;lt;/SilverlightDebugging&amp;gt;&lt;br /&gt;          &amp;lt;NativeDebugging&amp;gt;False&amp;lt;/NativeDebugging&amp;gt;&lt;br /&gt;          &amp;lt;SQLDebugging&amp;gt;False&amp;lt;/SQLDebugging&amp;gt;&lt;br /&gt;          &amp;lt;ExternalProgram&amp;gt;&amp;lt;/ExternalProgram&amp;gt;&lt;br /&gt;          &amp;lt;StartExternalURL&amp;gt;&amp;lt;/StartExternalURL&amp;gt;&lt;br /&gt;          &amp;lt;StartCmdLineArguments&amp;gt;&amp;lt;/StartCmdLineArguments&amp;gt;&lt;br /&gt;          &amp;lt;StartWorkingDirectory&amp;gt;&amp;lt;/StartWorkingDirectory&amp;gt;&lt;br /&gt;          &amp;lt;EnableENC&amp;gt;False&amp;lt;/EnableENC&amp;gt;&lt;br /&gt;          &amp;lt;AlwaysStartWebServerOnDebug&amp;gt;True&amp;lt;/AlwaysStartWebServerOnDebug&amp;gt;&lt;br /&gt;        &amp;lt;/WebProjectProperties&amp;gt;&lt;br /&gt;      &amp;lt;/FlavorProperties&amp;gt;&lt;br /&gt;    &amp;lt;/VisualStudio&amp;gt;&lt;br /&gt;  &amp;lt;/ProjectExtensions&amp;gt;&lt;br /&gt;&amp;lt;/Project&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;a name="global.asax"&gt;&lt;b&gt;global.asax&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:.5em 0em .5em .75em;margin:.5em 0em .2em 0em;"&gt;&amp;lt;%@ Application Codebehind=&amp;quot;global.asax.cs&amp;quot; Inherits=&amp;quot;Demo.MvcApplication&amp;quot; Language=&amp;quot;C#&amp;quot; %&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;a name="global.asax.cs"&gt;&lt;b&gt;global.asax.cs&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:.5em 0em .5em .75em;margin:.5em 0em .2em 0em;"&gt;using System.Web.Mvc;&lt;br /&gt;using System.Web.Routing;&lt;br /&gt;&lt;br /&gt;namespace Demo&lt;br /&gt;{&lt;br /&gt;    public class MvcApplication : System.Web.HttpApplication&lt;br /&gt;    {&lt;br /&gt;        protected void Application_Start()&lt;br /&gt;        {&lt;br /&gt;            AreaRegistration.RegisterAllAreas();&lt;br /&gt;            RegisterGlobalFilters(GlobalFilters.Filters);&lt;br /&gt;            RegisterRoutes(RouteTable.Routes);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public static void RegisterRoutes(RouteCollection routes)&lt;br /&gt;        {&lt;br /&gt;            routes.IgnoreRoute(&amp;quot;{resource}.axd/{*pathInfo}&amp;quot;);&lt;br /&gt;&lt;br /&gt;            routes.MapRoute(&lt;br /&gt;                &amp;quot;default&amp;quot;,                     // Route name&lt;br /&gt;                &amp;quot;{controller}/{action}/{id}&amp;quot;,  // URL with parameters&lt;br /&gt;                new { controller = &amp;quot;Home&amp;quot;,     // Parameter defaults&lt;br /&gt;                      action     = &amp;quot;Default&amp;quot;, &lt;br /&gt;                      id         = UrlParameter.Optional }&lt;br /&gt;            );&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public static void RegisterGlobalFilters(GlobalFilterCollection filters)&lt;br /&gt;        {&lt;br /&gt;            filters.Add(new HandleErrorAttribute());&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;js\alert.js&lt;/b&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:.5em 0em .5em .75em;margin:.5em 0em .2em 0em;"&gt;//&amp;lt;script src=&amp;quot;/js/alert.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;alert(&amp;quot;/js/alert.js&amp;quot;);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;properties\assemblyInfo.cs&lt;/b&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:.5em 0em .5em .75em;margin:.5em 0em .2em 0em;"&gt;using System.Reflection;&lt;br /&gt;using System.Runtime.CompilerServices;&lt;br /&gt;using System.Runtime.InteropServices;&lt;br /&gt;&lt;br /&gt;[assembly: AssemblyTitle(&amp;quot;MVC Demo&amp;quot;)]&lt;br /&gt;[assembly: AssemblyCompany(&amp;quot;Expression Software&amp;quot;)]&lt;br /&gt;[assembly: ComVisible(false)]&lt;br /&gt;[assembly: Guid(&amp;quot;28bf9b70-c4f2-4007-986f-5598dd52dfa8&amp;quot;)]&lt;br /&gt;[assembly: AssemblyVersion(&amp;quot;1.0.0.0&amp;quot;)]&lt;br /&gt;[assembly: AssemblyFileVersion(&amp;quot;1.0.0.0&amp;quot;)]&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;ux\style.css&lt;/b&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:.5em 0em .5em .75em;margin:.5em 0em .2em 0em;"&gt;body{&lt;br /&gt;background:#000;&lt;br /&gt;color:#fff;&lt;br /&gt;font-family:Verdana, Arial, Helvetica, Sans-Serif;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;a name="_viewStart.cshtml"&gt;&lt;b&gt;views\_viewStart.cshtml&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:.5em 0em .5em .75em;margin:.5em 0em .2em 0em;"&gt;@*file: \views\_viewStart.cshtml&lt;br /&gt;  desc: common view code, executed at the start of View render&lt;br /&gt;*@&lt;br /&gt;&lt;br /&gt;@{&lt;br /&gt;    //set default layout&lt;br /&gt;    Layout = &amp;quot;~/views/shared/_layout.cshtml&amp;quot;;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;a name="default.cshtml"&gt;&lt;b&gt;views\home\default.cshtml&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:.5em 0em .5em .75em;margin:.5em 0em .2em 0em;"&gt;@{&lt;br /&gt;    ViewBag.PageTitle = null;  //breakpoint&lt;br /&gt;    ViewBag.PageTitle += &amp;quot;MVC Demo&amp;quot;;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;@*html body - view source for line breaks &amp;amp; whitespace*@&lt;br /&gt;&amp;lt;h1&amp;gt;@ViewBag.PageTitle&amp;lt;/h1&amp;gt;&lt;br /&gt;ViewBag.PageTitle: @ViewBag.PageTitle&amp;lt;br /&amp;gt;&lt;br /&gt;ViewBag.Message: @ViewBag.Message&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;a name="error.cshtml"&gt;&lt;b&gt;views\shared\error.cshtml&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:.5em 0em .5em .75em;margin:.5em 0em .2em 0em;"&gt;@{&lt;br /&gt;    Layout = null;&lt;br /&gt;}&lt;br /&gt;&amp;lt;!doctype html&amp;gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;  &amp;lt;title&amp;gt;Error&amp;lt;/title&amp;gt;&lt;br /&gt;  &amp;lt;meta charset=utf-8&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;  error...&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;a name="_layout.cshtml"&gt;&lt;b&gt;views\shared\_layout.cshtml&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:.5em 0em .5em .75em;margin:.5em 0em .2em 0em;"&gt;&amp;lt;!doctype html&amp;gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;  &amp;lt;title&amp;gt;@ViewBag.PageTitle - Expression Software&amp;lt;/title&amp;gt;&lt;br /&gt;  &amp;lt;meta charset=utf-8&amp;gt;&lt;br /&gt;  &amp;lt;link href=&amp;quot;/ux/style.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;  &amp;lt;!--&amp;lt;script src=&amp;quot;/js/alert.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;--&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;  @RenderBody()&lt;br /&gt;&lt;br /&gt;  &amp;lt;br /&amp;gt;------------------------&amp;lt;br /&amp;gt;&lt;br /&gt;  @DateTime.Now.ToString(&amp;quot;MM-dd-yy HH:mm:ss:fff&amp;quot;)&lt;br /&gt;&lt;br /&gt;  &amp;lt;br /&amp;gt;------------------------&lt;br /&gt;  @foreach(var x in new [] {0,1,2})&lt;br /&gt;  {&lt;br /&gt;      ;&amp;lt;br /&amp;gt;@x;  //use leading semicolon to prevent generating extra, collapsed, whitespace&lt;br /&gt;  }&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;a name="views-web.config"&gt;&lt;b&gt;views\web.config&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:.5em 0em .5em .75em;margin:.5em 0em .2em 0em;"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;&amp;lt;configuration&amp;gt;&lt;br /&gt;  &amp;lt;configSections&amp;gt;&lt;br /&gt;    &amp;lt;sectionGroup name=&amp;quot;system.web.webPages.razor&amp;quot; type=&amp;quot;System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35&amp;quot;&amp;gt;&lt;br /&gt;      &amp;lt;section name=&amp;quot;host&amp;quot; type=&amp;quot;System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35&amp;quot; requirePermission=&amp;quot;false&amp;quot; /&amp;gt;&lt;br /&gt;      &amp;lt;section name=&amp;quot;pages&amp;quot; type=&amp;quot;System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35&amp;quot; requirePermission=&amp;quot;false&amp;quot; /&amp;gt;&lt;br /&gt;    &amp;lt;/sectionGroup&amp;gt;&lt;br /&gt;  &amp;lt;/configSections&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;system.web.webPages.razor&amp;gt;&lt;br /&gt;    &amp;lt;host factoryType=&amp;quot;System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35&amp;quot; /&amp;gt;&lt;br /&gt;    &amp;lt;pages pageBaseType=&amp;quot;System.Web.Mvc.WebViewPage&amp;quot;&amp;gt;&lt;br /&gt;      &amp;lt;namespaces&amp;gt;&lt;br /&gt;        &amp;lt;add namespace=&amp;quot;System.Web.Mvc&amp;quot; /&amp;gt;&lt;br /&gt;        &amp;lt;add namespace=&amp;quot;System.Web.Mvc.Ajax&amp;quot; /&amp;gt;&lt;br /&gt;        &amp;lt;add namespace=&amp;quot;System.Web.Mvc.Html&amp;quot; /&amp;gt;&lt;br /&gt;        &amp;lt;add namespace=&amp;quot;System.Web.Routing&amp;quot; /&amp;gt;&lt;br /&gt;      &amp;lt;/namespaces&amp;gt;&lt;br /&gt;    &amp;lt;/pages&amp;gt;&lt;br /&gt;  &amp;lt;/system.web.webPages.razor&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;appSettings&amp;gt;&lt;br /&gt;    &amp;lt;add key=&amp;quot;webpages:Enabled&amp;quot; value=&amp;quot;false&amp;quot; /&amp;gt;&lt;br /&gt;  &amp;lt;/appSettings&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;system.web&amp;gt;&lt;br /&gt;    &amp;lt;httpHandlers&amp;gt;&lt;br /&gt;      &amp;lt;add path=&amp;quot;*&amp;quot; verb=&amp;quot;*&amp;quot; type=&amp;quot;System.Web.HttpNotFoundHandler&amp;quot; /&amp;gt;&lt;br /&gt;    &amp;lt;/httpHandlers&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;!-- Enabling request validation in view pages would cause validation to occur after the input has already been processed by the controller.&lt;br /&gt;         By default MVC performs request validation before a controller processes the input. &lt;br /&gt;         To change this behavior apply the ValidateInputAttribute to a controller or action. --&amp;gt;&lt;br /&gt;    &amp;lt;pages&lt;br /&gt;        validateRequest=&amp;quot;false&amp;quot;&lt;br /&gt;        pageParserFilterType=&amp;quot;System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35&amp;quot;&lt;br /&gt;        pageBaseType=&amp;quot;System.Web.Mvc.ViewPage, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35&amp;quot;&lt;br /&gt;        userControlBaseType=&amp;quot;System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35&amp;quot;&amp;gt;&lt;br /&gt;      &amp;lt;controls&amp;gt;&lt;br /&gt;        &amp;lt;add tagPrefix=&amp;quot;mvc&amp;quot; namespace=&amp;quot;System.Web.Mvc&amp;quot; assembly=&amp;quot;System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35&amp;quot; /&amp;gt;&lt;br /&gt;      &amp;lt;/controls&amp;gt;&lt;br /&gt;    &amp;lt;/pages&amp;gt;&lt;br /&gt;  &amp;lt;/system.web&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;system.webServer&amp;gt;&lt;br /&gt;    &amp;lt;validation validateIntegratedModeConfiguration=&amp;quot;false&amp;quot; /&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;handlers&amp;gt;&lt;br /&gt;      &amp;lt;remove name=&amp;quot;BlockViewHandler&amp;quot; /&amp;gt;&lt;br /&gt;      &amp;lt;add name=&amp;quot;BlockViewHandler&amp;quot; &lt;br /&gt;           path=&amp;quot;*&amp;quot; verb=&amp;quot;*&amp;quot;&lt;br /&gt;           preCondition=&amp;quot;integratedMode&amp;quot; &lt;br /&gt;           type=&amp;quot;System.Web.HttpNotFoundHandler&amp;quot; /&amp;gt;&lt;br /&gt;    &amp;lt;/handlers&amp;gt;&lt;br /&gt;  &amp;lt;/system.webServer&amp;gt;&lt;br /&gt;&amp;lt;/configuration&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;a name="web.config"&gt;&lt;b&gt;web.config&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:.5em 0em .5em .75em;margin:.5em 0em .2em 0em;"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;&amp;lt;configuration&amp;gt;&lt;br /&gt;  &amp;lt;appSettings&amp;gt;&lt;br /&gt;    &amp;lt;add key=&amp;quot;ClientValidationEnabled&amp;quot; value=&amp;quot;true&amp;quot;/&amp;gt; &lt;br /&gt;    &amp;lt;add key=&amp;quot;UnobtrusiveJavaScriptEnabled&amp;quot; value=&amp;quot;true&amp;quot;/&amp;gt; &lt;br /&gt;  &amp;lt;/appSettings&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;system.web&amp;gt;&lt;br /&gt;    &amp;lt;compilation debug=&amp;quot;true&amp;quot; targetFramework=&amp;quot;4.0&amp;quot;&amp;gt;&lt;br /&gt;      &amp;lt;assemblies&amp;gt;&lt;br /&gt;        &amp;lt;add assembly=&amp;quot;System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35&amp;quot; /&amp;gt;&lt;br /&gt;        &amp;lt;add assembly=&amp;quot;System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35&amp;quot; /&amp;gt;&lt;br /&gt;        &amp;lt;add assembly=&amp;quot;System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35&amp;quot; /&amp;gt;&lt;br /&gt;        &amp;lt;add assembly=&amp;quot;System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35&amp;quot; /&amp;gt;&lt;br /&gt;        &amp;lt;add assembly=&amp;quot;System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35&amp;quot; /&amp;gt;&lt;br /&gt;      &amp;lt;/assemblies&amp;gt;&lt;br /&gt;    &amp;lt;/compilation&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;authentication mode=&amp;quot;None&amp;quot; /&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;pages&amp;gt;&lt;br /&gt;      &amp;lt;namespaces&amp;gt;&lt;br /&gt;        &amp;lt;add namespace=&amp;quot;System.Web.Helpers&amp;quot; /&amp;gt;&lt;br /&gt;        &amp;lt;add namespace=&amp;quot;System.Web.Mvc&amp;quot; /&amp;gt;&lt;br /&gt;        &amp;lt;add namespace=&amp;quot;System.Web.Mvc.Ajax&amp;quot; /&amp;gt;&lt;br /&gt;        &amp;lt;add namespace=&amp;quot;System.Web.Mvc.Html&amp;quot; /&amp;gt;&lt;br /&gt;        &amp;lt;add namespace=&amp;quot;System.Web.Routing&amp;quot; /&amp;gt;&lt;br /&gt;        &amp;lt;add namespace=&amp;quot;System.Web.WebPages&amp;quot;/&amp;gt;&lt;br /&gt;      &amp;lt;/namespaces&amp;gt;&lt;br /&gt;    &amp;lt;/pages&amp;gt;&lt;br /&gt;  &amp;lt;/system.web&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;system.webServer&amp;gt;&lt;br /&gt;    &amp;lt;validation validateIntegratedModeConfiguration=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;    &amp;lt;modules runAllManagedModulesForAllRequests=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;  &amp;lt;/system.webServer&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;runtime&amp;gt;&lt;br /&gt;    &amp;lt;assemblyBinding xmlns=&amp;quot;urn:schemas-microsoft-com:asm.v1&amp;quot;&amp;gt;&lt;br /&gt;      &amp;lt;dependentAssembly&amp;gt;&lt;br /&gt;        &amp;lt;assemblyIdentity name=&amp;quot;System.Web.Mvc&amp;quot; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; /&amp;gt;&lt;br /&gt;        &amp;lt;bindingRedirect oldVersion=&amp;quot;1.0.0.0-2.0.0.0&amp;quot; newVersion=&amp;quot;3.0.0.0&amp;quot; /&amp;gt;&lt;br /&gt;      &amp;lt;/dependentAssembly&amp;gt;&lt;br /&gt;    &amp;lt;/assemblyBinding&amp;gt;&lt;br /&gt;  &amp;lt;/runtime&amp;gt;&lt;br /&gt;&amp;lt;/configuration&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;web.debug.config&lt;/b&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:.5em 0em .5em .75em;margin:.5em 0em .2em 0em;"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;&amp;lt;configuration xmlns:xdt=&amp;quot;http://schemas.microsoft.com/XML-Document-Transform&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;/configuration&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;web.release.config&lt;/b&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:.5em 0em .5em .75em;margin:.5em 0em .2em 0em;"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;&amp;lt;configuration xmlns:xdt=&amp;quot;http://schemas.microsoft.com/XML-Document-Transform&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;system.web&amp;gt;&lt;br /&gt;    &amp;lt;compilation xdt:Transform=&amp;quot;RemoveAttributes(debug)&amp;quot; /&amp;gt;&lt;br /&gt;  &amp;lt;/system.web&amp;gt;&lt;br /&gt;&amp;lt;/configuration&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_N1voxYOFpac/TTGau0_EJNI/AAAAAAAAALI/8cg0F_nE2Ls/s1600/mvcDemo.png" imageanchor="1" style=""&gt;&lt;img border="0" height="204" width="320" src="http://3.bp.blogspot.com/_N1voxYOFpac/TTGau0_EJNI/AAAAAAAAALI/8cg0F_nE2Ls/s320/mvcDemo.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-8576173516611557775?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/8576173516611557775/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2011/01/aspnet-mvc-min-project.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/8576173516611557775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/8576173516611557775'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2011/01/aspnet-mvc-min-project.html' title='ASP.NET MVC 3 - Project Template for Visual Studio 2010'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_N1voxYOFpac/TTGau0_EJNI/AAAAAAAAALI/8cg0F_nE2Ls/s72-c/mvcDemo.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-6590939235213127945</id><published>2011-01-12T00:00:00.001-08:00</published><updated>2011-01-12T00:58:06.414-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='snippet'/><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='asynchronous'/><category scheme='http://www.blogger.com/atom/ns#' term='analytics'/><title type='text'>Using External JavaScript Files with Google Analytics</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana,arial;font-size:1em;"&gt;For basic page tracking, put the &lt;a href="http://code.google.com/apis/analytics/docs/tracking/asyncTracking.html"&gt;code&lt;/a&gt; in an external file.&lt;br /&gt;&lt;br /&gt;Then you can use this&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:.5em 0em .5em .75em;margin:.5em 0em .2em 0em;"&gt;&amp;lt;script src=&amp;quot;/js/googleAnalytics.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;&lt;br /&gt;instead of&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:.5em 0em .5em .75em;margin:.5em 0em .2em 0em;"&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;  var _gaq = _gaq || [];&lt;br /&gt;  _gaq.push(['_setAccount', 'UA-XXXXX-X']);&lt;br /&gt;  _gaq.push(['_trackPageview']);&lt;br /&gt;  (function() {&lt;br /&gt;    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;&lt;br /&gt;    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';&lt;br /&gt;    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);&lt;br /&gt;  })();&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Add to files, right before the closing head tag.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;googleAnalytics.js&lt;/strong&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:.5em 0em .5em .75em;margin:.5em 0em .2em 0em;"&gt;var _gaq = _gaq || [];&lt;br /&gt;_gaq.push(['_setAccount', 'UA-XXXXX-X']);&lt;br /&gt;_gaq.push(['_trackPageview']);&lt;br /&gt;(function() {&lt;br /&gt;  var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;&lt;br /&gt;  ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';&lt;br /&gt;  var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);&lt;br /&gt;})();&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-6590939235213127945?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/6590939235213127945/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2011/01/google-analytics-external-javascript.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/6590939235213127945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/6590939235213127945'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2011/01/google-analytics-external-javascript.html' title='Using External JavaScript Files with Google Analytics'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-2672332466070433772</id><published>2010-12-30T00:00:00.000-08:00</published><updated>2010-12-30T15:25:43.176-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='2011'/><category scheme='http://www.blogger.com/atom/ns#' term='google translate api'/><category scheme='http://www.blogger.com/atom/ns#' term='languages'/><category scheme='http://www.blogger.com/atom/ns#' term='happy new year'/><title type='text'>Happy New Year!</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:'courier new',arial;font-size:1em;"&gt;Translations by &lt;a href="http://code.google.com/apis/language/translate/overview.html"&gt;Google Translate API&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family:'courier new',arial;font-size:1.2em;"&gt;&lt;table&gt;&lt;tr&gt;&lt;th align=left&gt;Language&lt;/th&gt;&lt;th align=left&gt;Translation&lt;/th&gt;&lt;th align=left&gt;Phonetic Pronunciation&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Afrikaans&lt;/td&gt;&lt;td&gt;Voorspoedige Nuwe Jaar!&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Albanian&lt;/td&gt;&lt;td&gt;Gëzuar Vitin e Ri!&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Arabic&lt;/td&gt;&lt;td&gt;سنة جديدة سعيدة&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Armenian&lt;/td&gt;&lt;td&gt;Շնորհավոր Նոր Տարի&lt;/td&gt;&lt;td&gt;Shnorhavor Nor Tari&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Belarusian&lt;/td&gt;&lt;td&gt;З Новым годам!&lt;/td&gt;&lt;td&gt;Z Novym hodam!&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bulgarian&lt;/td&gt;&lt;td&gt;Честита Нова Година!&lt;/td&gt;&lt;td&gt;Chestita Nova Godina!&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Catalan&lt;/td&gt;&lt;td&gt;Feliç Any Nou!&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Chinese Simplified&lt;/td&gt;&lt;td&gt;新年快乐&lt;/td&gt;&lt;td&gt;Xīnnián kuàilè!&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Chinese Traditional&lt;/td&gt;&lt;td&gt;新年快樂&lt;/td&gt;&lt;td&gt;Xīnnián kuàilè!&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Croatian&lt;/td&gt;&lt;td&gt;Sretna Nova Godina!&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Czech&lt;/td&gt;&lt;td&gt;Šťastný Nový Rok!&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Danish&lt;/td&gt;&lt;td&gt;Godt Nytår!&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dutch&lt;/td&gt;&lt;td&gt;Gelukkig Nieuw Jaar!&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Estonian&lt;/td&gt;&lt;td&gt;Head uut Aastat!&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Filipino&lt;/td&gt;&lt;td&gt;Masaya Bagong Taon!&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Finnish&lt;/td&gt;&lt;td&gt;Hyvää Uutta Vuotta!&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;French&lt;/td&gt;&lt;td&gt;Joyeux Nouvel An!&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Galician&lt;/td&gt;&lt;td&gt;Feliz Ano!&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;German&lt;/td&gt;&lt;td&gt;Glückliches Neues Jahr!&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Greek&lt;/td&gt;&lt;td&gt;Ευτυχισμένο το Νέο Έτος!&lt;/td&gt;&lt;td&gt;Ef̱tychisméno to Néo Étos&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Haitian Creole&lt;/td&gt;&lt;td&gt;Kontan Ane Nouvo!&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Hebrew&lt;/td&gt;&lt;td&gt;שנה טובה&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Hindi&lt;/td&gt;&lt;td&gt;नया साल मुबारक हो!&lt;/td&gt;&lt;td&gt;Nayā sāla mubāraka hō!&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Hungarian&lt;/td&gt;&lt;td&gt;Boldog Új Évet!&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Icelandic&lt;/td&gt;&lt;td&gt;Gleðilegt Nýtt Ár!&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Indonesian&lt;/td&gt;&lt;td&gt;Selamat Tahun Baru!&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Irish&lt;/td&gt;&lt;td&gt;Athbhliain faoi mhaise daoibh!&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Italian&lt;/td&gt;&lt;td&gt;Felice Anno Nuovo!&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Japanese&lt;/td&gt;&lt;td&gt;明けましておめでとうございます&lt;/td&gt;&lt;td&gt;Akemashite omedetōgozaimasu&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Korean&lt;/td&gt;&lt;td&gt;새해 복 많이&lt;/td&gt;&lt;td&gt;saehae bog manh-i&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Latvian&lt;/td&gt;&lt;td&gt;Laimīgu Jauno gadu!&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Lithuanian&lt;/td&gt;&lt;td&gt;Laimingų Naujųjų Metų!&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Macedonian&lt;/td&gt;&lt;td&gt;Среќна Нова Година!&lt;/td&gt;&lt;td&gt;Sreḱna Nova Godina!&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Malay&lt;/td&gt;&lt;td&gt;Selamat Tahun Baru!&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Maltese&lt;/td&gt;&lt;td&gt;Sena l-ġdida Kuntenti!&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Norwegian&lt;/td&gt;&lt;td&gt;Godt Nytt År!&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Persian&lt;/td&gt;&lt;td&gt;رسید سال نوی خوشی&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Polish&lt;/td&gt;&lt;td&gt;Szczęśliwego Nowego Roku!&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Portuguese&lt;/td&gt;&lt;td&gt;Feliz Ano Novo!&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Romanian&lt;/td&gt;&lt;td&gt;An Nou Fericit!&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Russian&lt;/td&gt;&lt;td&gt;С Новым годом!&lt;/td&gt;&lt;td&gt;S Novym godom!&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Serbian&lt;/td&gt;&lt;td&gt;Срећна Нова година!&lt;/td&gt;&lt;td&gt;Srećna Nova godina!&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Slovak&lt;/td&gt;&lt;td&gt;Šťastný Nový Rok!&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Slovenian&lt;/td&gt;&lt;td&gt;Srečno novo leto!&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Spanish&lt;/td&gt;&lt;td&gt;Feliz Año Nuevo!&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Swahili&lt;/td&gt;&lt;td&gt;Furaha ya Mwaka Mpya!&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Swedish&lt;/td&gt;&lt;td&gt;Gott Nytt År!&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Thai&lt;/td&gt;&lt;td&gt;สวัสดีปีใหม่&lt;/td&gt;&lt;td&gt;S̄wạs̄dī pī h̄ım̀&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Turkish&lt;/td&gt;&lt;td&gt;Mutlu yıllar!&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ukrainian&lt;/td&gt;&lt;td&gt;З Новим роком!&lt;/td&gt;&lt;td&gt;Z Novym rokom!&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Vietnamese&lt;/td&gt;&lt;td&gt;Chúc mừng năm mới&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Welsh&lt;/td&gt;&lt;td&gt;Blwyddyn Newydd Dda!&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Yiddish&lt;/td&gt;&lt;td&gt;גליקלעך ניו יאָר&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-2672332466070433772?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/2672332466070433772/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2010/12/happy-new-year.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/2672332466070433772'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/2672332466070433772'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2010/12/happy-new-year.html' title='Happy New Year!'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-7231517680876539810</id><published>2010-12-14T00:00:00.000-08:00</published><updated>2010-12-30T15:32:07.028-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cpu'/><category scheme='http://www.blogger.com/atom/ns#' term='yams internet recipe machine'/><category scheme='http://www.blogger.com/atom/ns#' term='norad'/><category scheme='http://www.blogger.com/atom/ns#' term='workstation'/><category scheme='http://www.blogger.com/atom/ns#' term='hardware'/><title type='text'>cpu</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;I built this system today, click on the power connector to view pictures.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.expressionsoftware.com/hardware/" alt="power connector"&gt;&lt;img class="text-align:left" border="0" height="212" src="http://4.bp.blogspot.com/_zOULbfq7wAM/TQiQhldl55I/AAAAAAAAAJs/cji26CgjZS8/IMG_0106.JPG" width="320" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-7231517680876539810?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/7231517680876539810/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2010/12/cpu.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/7231517680876539810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/7231517680876539810'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2010/12/cpu.html' title='cpu'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_zOULbfq7wAM/TQiQhldl55I/AAAAAAAAAJs/cji26CgjZS8/s72-c/IMG_0106.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-2694243427044787552</id><published>2010-12-05T18:43:00.000-08:00</published><updated>2010-12-05T19:28:38.531-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><category scheme='http://www.blogger.com/atom/ns#' term='sqlcmd'/><category scheme='http://www.blogger.com/atom/ns#' term='utility'/><category scheme='http://www.blogger.com/atom/ns#' term='sqlserver'/><title type='text'>SQL Server Command Line Utility - SqlCmd</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;&lt;b&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms162773.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms162773.aspx&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;path: c:\program files\microsoft sql server\100\tools\binn\sqlcmd.exe&lt;br /&gt;&lt;br /&gt;powershell examples&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;padding:0em 0em 0.5em 0.75em;margin-bottom:0em;"&gt;- execute command-line query, connect using SQL Server Authentication&lt;br /&gt;  &amp;sqlcmd -S SERVER -d DB -U LOGIN -P 'PASSWORD' -q 'select getdate()'&lt;br /&gt;&lt;br /&gt;- execute command-line query, connect using SQL Server Authentication, password prompt&lt;br /&gt;  &amp;sqlcmd -S SERVER -d DB -U LOGIN -q 'select getdate()'&lt;br /&gt;&lt;br /&gt;- execute command-line query, connect using Windows Authentication&lt;br /&gt;  &amp;sqlcmd -S SERVER -d DB -E -q 'select getdate()'&lt;br /&gt;    &lt;br /&gt;- execute sql script file&lt;br /&gt;  &amp;sqlcmd -S SERVER -d DB -E -i x:\sql\script1.sql&lt;br /&gt;&lt;br /&gt;- execute all sql script files in a folder&lt;br /&gt;  gci x:\sql\ *.* | %{ &amp;sqlcmd -S SERVER -d DB -E -i $_.fullname }&lt;br /&gt;  &lt;br /&gt;- exit or quit&lt;br /&gt;&lt;br /&gt;- command-line options&lt;br /&gt;  [-? show syntax summary]&lt;br /&gt;  [-a packetsize]&lt;br /&gt;  [-A dedicated admin connection]&lt;br /&gt;  [-b On error batch abort]&lt;br /&gt;  [-c cmdend]&lt;br /&gt;  [-C Trust Server Certificate]&lt;br /&gt;  [-d use database name]&lt;br /&gt;  [-e echo input]&lt;br /&gt;  [-E trusted connection]&lt;br /&gt;  [-f &amp;lt;codepage&amp;gt; | i:&amp;lt;codepage&amp;gt;[,o:&amp;lt;codepage&amp;gt;]]&lt;br /&gt;  [-h headers]&lt;br /&gt;  [-H hostname]&lt;br /&gt;  [-i inputfile]&lt;br /&gt;  [-I Enable Quoted Identifiers]&lt;br /&gt;  [-k[1|2] remove[replace] control characters]&lt;br /&gt;  [-l login timeout]&lt;br /&gt;  [-L[c] list servers[clean output]]&lt;br /&gt;  [-m errorlevel]&lt;br /&gt;  [-N Encrypt Connection]&lt;br /&gt;  [-o outputfile]&lt;br /&gt;  [-p[1] print statistics[colon format]]&lt;br /&gt;  [-P password]&lt;br /&gt;  [-q "cmdline query"]&lt;br /&gt;  [-Q "cmdline query" and exit]&lt;br /&gt;  [-r[0|1] msgs to stderr]&lt;br /&gt;  [-R use client regional setting]&lt;br /&gt;  [-s colseparator]&lt;br /&gt;  [-S server]&lt;br /&gt;  [-t query timeout]&lt;br /&gt;  [-u unicode output]&lt;br /&gt;  [-U login id]&lt;br /&gt;  [-v var = "value"...]&lt;br /&gt;  [-V severitylevel]&lt;br /&gt;  [-w screen width]&lt;br /&gt;  [-W remove trailing spaces]&lt;br /&gt;  [-x disable variable substitution]&lt;br /&gt;  [-X[1] disable commands, startup script, enviroment variables [and exit]]&lt;br /&gt;  [-y variable length type display width]&lt;br /&gt;  [-Y fixed length type display width]&lt;br /&gt;  [-z new password]&lt;br /&gt;  [-Z new password and exit]&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-2694243427044787552?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/2694243427044787552/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2010/12/sql-command-line-utility-sqlcmd.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/2694243427044787552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/2694243427044787552'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2010/12/sql-command-line-utility-sqlcmd.html' title='SQL Server Command Line Utility - SqlCmd'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-995260230664002215</id><published>2010-11-25T00:00:00.000-08:00</published><updated>2010-12-05T20:13:43.017-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ralph'/><category scheme='http://www.blogger.com/atom/ns#' term='webfonts'/><title type='text'>IM Fell English? That's Unpossible.</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:'IM Fell English';font-size:2em;"&gt;&lt;a href="http://code.google.com/webfonts/family?family=IM+Fell+English&amp;subset=latin"&gt;Web Font: IM Fell English&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family:'IM Fell English';font-size:3em;letter-spacing:.1em;"&gt;abcdefghijklmnopqrstuvwxyz&lt;br /&gt;ABCDEFGHIJKLMNOPQRSTUVWXYZ&lt;br /&gt;&amp;nbsp;`!@#$%^&amp;*()-=[]\;',./~_+{}|:"&amp;lt;&amp;gt;?&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family:'IM Fell English';font-size:6em;letter-spacing:.1em;"&gt;0123456789&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-995260230664002215?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/995260230664002215/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2010/11/im-fell-english-thats-unpossible.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/995260230664002215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/995260230664002215'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2010/11/im-fell-english-thats-unpossible.html' title='IM Fell English? That&apos;s Unpossible.'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-678000656905542633</id><published>2010-11-21T00:00:00.000-08:00</published><updated>2010-11-21T22:46:54.610-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='feeds'/><title type='text'>blog is moving</title><content type='html'>&lt;strong&gt;new site:&lt;/strong&gt; &lt;a href="http://blog.expressionsoftware.com"&gt;http://blog.expressionsoftware.com&lt;/a&gt;&lt;br /&gt;feeds: &lt;a href="http://blog.expressionsoftware.com/feeds/posts/default"&gt;atom&lt;/a&gt;, &lt;a href="http://blog.expressionsoftware.com/feeds/posts/default?alt=rss"&gt;rss&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;old: http://expressionsoftware.blogspot.com&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-678000656905542633?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/678000656905542633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/678000656905542633'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2010/11/blog-is-moving.html' title='blog is moving'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-4362881084007305293</id><published>2010-11-15T00:00:00.000-08:00</published><updated>2010-11-15T21:00:05.811-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><category scheme='http://www.blogger.com/atom/ns#' term='add-type'/><category scheme='http://www.blogger.com/atom/ns#' term='api'/><category scheme='http://www.blogger.com/atom/ns#' term='setwindowtext'/><category scheme='http://www.blogger.com/atom/ns#' term='interop'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><category scheme='http://www.blogger.com/atom/ns#' term='pinvoke'/><category scheme='http://www.blogger.com/atom/ns#' term='handle'/><title type='text'>PInvoke SetWindowText PowerShell Script</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;P/Invoke examples for the &lt;a href="http://msdn.microsoft.com/en-us/library/ms633546(VS.85).aspx"&gt;SetWindowText&lt;/a&gt;  Windows API Function.&lt;br /&gt;These examples set the window text/title for Notepad.exe.&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:0.5em 0em 0.5em 0.75em;margin:.7em 0em;"&gt;#get notepad window handle&lt;br /&gt;$notepad = get-process notepad&lt;br /&gt;$notepad.mainWindowHandle  //100000, intptr structure&lt;br /&gt;&lt;br /&gt;$pinvoke::setWindowText($notepad.mainWindowHandle, "a")&lt;br /&gt;&lt;br /&gt;#auto-convert int to intptr&lt;br /&gt;$pinvoke::setWindowText(100000, "b")&lt;br /&gt;&lt;br /&gt;#create intptr&lt;br /&gt;#out-null to suppress bool result&lt;br /&gt;$pinvoke::setWindowText((new-object intPtr(100000)), "c") | out-null&lt;br /&gt;&lt;br /&gt;$pinvoke::setWindowTextCustomWrapper(100000)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Implementation #1 simply exposes the SetWindowText method, the member definition uses C# syntax.&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:0.5em 0em 0.5em 0.75em;margin:.7em 0em;"&gt;$pinvoke = add-type -name pinvoke -passThru -memberDefinition @'&lt;br /&gt;&lt;br /&gt;[DllImport("user32.dll", CharSet = CharSet.Auto)]&lt;br /&gt;public static extern bool SetWindowText(IntPtr hwnd, String lpString);&lt;br /&gt;&lt;br /&gt;'@&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Implementation #2, same as #1 but written on one line.&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:0.5em 0em 0.5em 0.75em;margin:.7em 0em;"&gt;$pinvoke = add-type -name pinvoke -passThru -memberDefinition '[DllImport("user32.dll", CharSet = CharSet.Auto)]public static extern bool SetWindowText(IntPtr hwnd, String lpString);'&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Implementation #3, SetWindowText is private, add custom wrapper method.&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:0.5em 0em 0.5em 0.75em;margin:.7em 0em;"&gt;$pinvoke = add-type -name pinvoke -passThru -memberDefinition @'&lt;br /&gt;&lt;br /&gt;[DllImport("user32.dll", CharSet = CharSet.Auto)]&lt;br /&gt;private static extern bool SetWindowText(IntPtr hwnd, String lpString);&lt;br /&gt;&lt;br /&gt;public static void SetWindowTextCustomWrapper(IntPtr handle)&lt;br /&gt;{&lt;br /&gt;  string customText = string.Format("handle: {0}", handle);&lt;br /&gt;  SetWindowText(handle, customText);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;'@&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-4362881084007305293?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/4362881084007305293/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2010/11/pinvoke-setwindowtext-powershell-script.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/4362881084007305293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/4362881084007305293'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2010/11/pinvoke-setwindowtext-powershell-script.html' title='PInvoke SetWindowText PowerShell Script'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-5378457692513108742</id><published>2010-11-03T00:00:00.001-07:00</published><updated>2010-11-04T17:05:17.856-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='custom'/><category scheme='http://www.blogger.com/atom/ns#' term='git'/><category scheme='http://www.blogger.com/atom/ns#' term='difftool'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='examdiffpro'/><category scheme='http://www.blogger.com/atom/ns#' term='config'/><title type='text'>Git Custom Difftool Configuration</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;Original solution by David Tchepak: &lt;a href="http://www.davesquared.net/2009/05/setting-up-git-difftool-on-windows.html"&gt;Setting up Git difftool on Windows&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This example shows the configuration for &lt;a href="http://www.prestosoft.com/edp_examdiffpro.asp"&gt;ExamDiff Pro&lt;/a&gt;.&lt;br /&gt;Tested on Windows 7 and msysgit version 1.7.3.1&lt;br /&gt;&lt;br /&gt;1. Set the path environment variable to include "c:\program files\git\cmd\;"&lt;br /&gt;2. Create a shell script wrapper file, note the forward slashes in the executable path&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:0.5em 0em 0.5em 0.75em;margin-left:1.25em;margin-bottom:0em;"&gt;#c:\program files\git\cmd\diff.sh&lt;br /&gt;#!/bin/sh&lt;br /&gt;"c:/program files/examdiff pro/examdiff.exe" "$1" "$2" | cat&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;3. Edit the .gitconfig file&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:0.5em 0em 0.5em 0.75em;margin-left:1.25em;margin-bottom:0em;"&gt;#c:\users\john\.gitconfig&lt;br /&gt;[diff]&lt;br /&gt;    tool = examdiff&lt;br /&gt;&lt;br /&gt;[difftool "examdiff"]&lt;br /&gt;    cmd = diff.sh "$LOCAL" "$REMOTE"&lt;br /&gt;...&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;4. Verify it works, run the difftool command: git difftool --no-prompt&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-5378457692513108742?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/5378457692513108742/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2010/11/git-custom-difftool-configuration.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/5378457692513108742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/5378457692513108742'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2010/11/git-custom-difftool-configuration.html' title='Git Custom Difftool Configuration'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-8368164185989649419</id><published>2010-11-03T00:00:00.000-07:00</published><updated>2010-11-03T11:21:13.446-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='environment'/><category scheme='http://www.blogger.com/atom/ns#' term='variables'/><category scheme='http://www.blogger.com/atom/ns#' term='path'/><title type='text'>Setting Windows Path Environment Variable with PowerShell</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:0.5em 0em 0.5em 0.75em;margin-bottom:0em;"&gt;#get all environment vars&lt;br /&gt;gi env:&lt;br /&gt;(gi env:) | sort name&lt;br /&gt;&lt;br /&gt;#get path value&lt;br /&gt;gi env:path&lt;br /&gt;(gi env:path).value&lt;br /&gt;(gi env:path).value.split(';')&lt;br /&gt;(gi env:path).value.split(';') | sort&lt;br /&gt;&lt;br /&gt;#set path value (note the "$" prefix)&lt;br /&gt;$env:path = 'c:\windows;c:\windows\system32;'&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-8368164185989649419?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/8368164185989649419/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2010/11/setting-windows-path-environment.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/8368164185989649419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/8368164185989649419'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2010/11/setting-windows-path-environment.html' title='Setting Windows Path Environment Variable with PowerShell'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-8760900105865875080</id><published>2010-09-05T00:00:00.000-07:00</published><updated>2010-09-05T08:53:38.755-07:00</updated><title type='text'>Creating Folders and Files with PowerShell New-Item Cmdlet</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:0.5em 0em 0.5em 0.75em;margin-bottom:0em;"&gt;ni x:\docs\         -type d  #directory&lt;br /&gt;ni x:\docs\file.txt -type f  #file&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-8760900105865875080?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/8760900105865875080/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2010/09/powershell-new-item-cmdlet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/8760900105865875080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/8760900105865875080'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2010/09/powershell-new-item-cmdlet.html' title='Creating Folders and Files with PowerShell New-Item Cmdlet'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-371461773015773947</id><published>2010-09-04T00:00:00.000-07:00</published><updated>2010-09-05T08:37:42.665-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='html5'/><category scheme='http://www.blogger.com/atom/ns#' term='templates'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><title type='text'>HTML Templates</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;&lt;b&gt;HTML 5&lt;/b&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:0.5em 0em 0.5em 0.75em;margin-bottom:0em;"&gt;&amp;lt;!doctype html&amp;gt;&lt;br /&gt;&amp;lt;html lang=en&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;meta charset=utf-8&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-371461773015773947?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/371461773015773947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2010/09/html-templates.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/371461773015773947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/371461773015773947'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2010/09/html-templates.html' title='HTML Templates'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-3605538015603788847</id><published>2010-08-27T00:00:00.000-07:00</published><updated>2010-08-28T23:05:14.119-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='command'/><category scheme='http://www.blogger.com/atom/ns#' term='viewsource'/><category scheme='http://www.blogger.com/atom/ns#' term='browser'/><title type='text'>Browser View-Source Command</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana"&gt;&lt;a style="font-family:courier new;font-weight:normal" href="view-source:http://www.google.com/"&gt;view-source:http://www.google.com/&lt;/a&gt;&lt;br /&gt;&lt;a style="font-family:courier new;font-weight:normal" href="view-source:http://www.expressionsoftware.com/sitemap.xml"&gt;view-source:http://www.expressionsoftware.com/sitemap.xml&lt;/a&gt;&lt;br /&gt;&lt;a style="font-family:courier new;font-weight:normal" href="view-source:http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.js"&gt;view-source:http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.js&lt;/a&gt;&lt;br /&gt;&lt;a style="font-family:courier new;font-weight:normal" href="view-source:http://www.css3.info/wp-content/themes/new_css3/style.css"&gt;view-source:http://www.css3.info/wp-content/themes/new_css3/style.css&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;#1 Chrome shows line numbers&lt;br /&gt;Safari, cmd + opt + U&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-3605538015603788847?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/3605538015603788847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2010/08/browser-view-source-command.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/3605538015603788847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/3605538015603788847'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2010/08/browser-view-source-command.html' title='Browser View-Source Command'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-7239246943493500774</id><published>2010-08-25T00:00:00.000-07:00</published><updated>2010-08-26T12:37:58.626-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='files'/><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><category scheme='http://www.blogger.com/atom/ns#' term='invoke-item'/><category scheme='http://www.blogger.com/atom/ns#' term='open'/><category scheme='http://www.blogger.com/atom/ns#' term='cmdlet'/><title type='text'>Opening Files with PowerShell Invoke-Item Cmdlet</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:0.5em 0em 0.5em 0.75em;margin-bottom:0em;"&gt;#open file in default text editor, eg notepad&lt;br /&gt;ii x:\temp\foo.txt&lt;br /&gt;&lt;br /&gt;#open all text files  &lt;br /&gt;gci x:\temp\* -inc *.txt -rec -force | %{ii $_.fullname}&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-7239246943493500774?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/7239246943493500774/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2010/08/powershell-open-files-script.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/7239246943493500774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/7239246943493500774'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2010/08/powershell-open-files-script.html' title='Opening Files with PowerShell Invoke-Item Cmdlet'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-3344426841879239284</id><published>2010-08-24T08:39:00.000-07:00</published><updated>2010-08-24T08:41:50.866-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='files'/><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><category scheme='http://www.blogger.com/atom/ns#' term='delete'/><category scheme='http://www.blogger.com/atom/ns#' term='remove-item'/><category scheme='http://www.blogger.com/atom/ns#' term='cmdlet'/><category scheme='http://www.blogger.com/atom/ns#' term='folders'/><title type='text'>Deleting Files &amp; Folders with PowerShell Remove-Item Cmdlet</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:0.5em 0em 0.5em 0.75em;margin-bottom:0em;"&gt;#delete folder contents&lt;br /&gt;ri x:\temp\* -recurse -force #-whatif&lt;br /&gt;  &lt;br /&gt;#delete folder AND contents&lt;br /&gt;ri x:\temp\ -recurse -force #-whatif&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-3344426841879239284?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/3344426841879239284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2010/08/powershell-delete-files-folders.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/3344426841879239284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/3344426841879239284'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2010/08/powershell-delete-files-folders.html' title='Deleting Files &amp; Folders with PowerShell Remove-Item Cmdlet'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-8575591452881359485</id><published>2010-08-20T00:00:00.000-07:00</published><updated>2011-05-16T20:01:52.850-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='visual studio'/><category scheme='http://www.blogger.com/atom/ns#' term='no-more-doc'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft-can-we-get-a-text-version-please?'/><category scheme='http://www.blogger.com/atom/ns#' term='no-more-pdf'/><category scheme='http://www.blogger.com/atom/ns#' term='no-more-docx'/><category scheme='http://www.blogger.com/atom/ns#' term='keyboard'/><category scheme='http://www.blogger.com/atom/ns#' term='text'/><category scheme='http://www.blogger.com/atom/ns#' term='print'/><category scheme='http://www.blogger.com/atom/ns#' term='shortcuts'/><title type='text'>Visual Studio 2010 Keyboard Shortcuts</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;&lt;pre style="font-family:courier new;color:black;padding:0.5em 0em 0.5em 0.75em;margin-bottom:0em;"&gt;v5-11&lt;br /&gt;&lt;br /&gt;ctl + R, ctl + R         refactor rename&lt;br /&gt;&lt;br /&gt;ctl + alt + R            view web browser&lt;br /&gt;&lt;br /&gt;ctl + R, T               run tests in current context&lt;br /&gt;ctl + R, ctl + T         debug tests in current context&lt;br /&gt;ctl + R, A               run all tests in solution&lt;br /&gt;ctl + R, ctl + A         debug all tests in solution&lt;br /&gt;&lt;br /&gt;ctl + \, ctl + M         tfs team explorer&lt;br /&gt;alt + V, E, I            tfs view history&lt;br /&gt;alt + V, E, H            tfs view pending changes&lt;br /&gt;alt + V, E, S            tfs view source code explorer&lt;br /&gt;&lt;br /&gt;ctl + M, ctl + G         goto mvc view/controller&lt;br /&gt;&lt;br /&gt;ctl + I                  incremental search&lt;br /&gt;ctl + shf + I            reverse incremental search&lt;br /&gt;ctl + F3                 find using current selection&lt;br /&gt;ctl + ]                  match braces, opening &amp; closing&lt;br /&gt;ctl + shf + ]            select code between braces&lt;br /&gt;&lt;br /&gt;ctl + M, ctl + H         hide selection&lt;br /&gt;ctl + M, ctl + U         unhide selection&lt;br /&gt;ctl + M, ctl + O         collapse to definitions&lt;br /&gt;ctl + M, ctl + T         collapse tag - htm, aspx&lt;br /&gt;ctl + M, ctl + M         toggle outline expansion, current section&lt;br /&gt;ctl + M, ctl + L         toggle all outlining&lt;br /&gt;ctl + K, ctl + K         toggle bookmark&lt;br /&gt;ctl + E, ctl + W         toggle word wrap&lt;br /&gt;&lt;br /&gt;ctl + K, ctl + C         comment selection&lt;br /&gt;ctl + K, ctl + U         uncomment selection&lt;br /&gt;&lt;br /&gt;ctl + K, ctl + X         code snippet&lt;br /&gt;ctl + K, ctl + B         code snippet manager&lt;br /&gt;ctl + shf + U            uppercase selection&lt;br /&gt;ctl + U                  lowercase selection&lt;br /&gt;&lt;br /&gt;ctl + alt + O            output window&lt;br /&gt;ctl + alt + C            call stack&lt;br /&gt;ctl + alt + I            immediate window&lt;br /&gt;ctl + alt + A            command window&lt;br /&gt;&lt;br /&gt;ctl + alt + T            document outline window, use w/htm files&lt;br /&gt;ctl + alt + U            modules window&lt;br /&gt;&lt;br /&gt;ctl + \, E               error list window&lt;br /&gt;ctl + \, ctl + E         error list window&lt;br /&gt;&lt;br /&gt;ctl + alt + V, A         autos window&lt;br /&gt;ctl + alt + V, L         locals window&lt;br /&gt;shf + F9                 quick watch&lt;br /&gt;ctl + alt + W, 1         watch 1 window (1-4)&lt;br /&gt;ctl + alt + B            breakpoints window&lt;br /&gt;ctl + F9                 toggle enable breakpoint&lt;br /&gt;ctl + shf + F9           delete all breakpoints&lt;br /&gt;&lt;br /&gt;ctl + K, ctl + W         bookmark window&lt;br /&gt;ctr + \, D               code definition window&lt;br /&gt;&lt;br /&gt;ctl + -                  navigate backward&lt;br /&gt;ctl + shf + -            navigate forward&lt;br /&gt;ctl + F6                 navigate open windows forward&lt;br /&gt;ctl + shf + F6           navigate open windows backward&lt;br /&gt;&lt;br /&gt;ctl + tab                select open windows dialog&lt;br /&gt;ctl + shf + tab          select open windows dialog backward&lt;br /&gt;ctl + alt + down arrow   list open documents&lt;br /&gt;ctl + alt + P            attach to process&lt;br /&gt;&lt;br /&gt;shf + alt + enter        toggle full screen&lt;br /&gt;alt + U                  restore from full screen&lt;br /&gt;ctl + f2                 focus on navigation bar&lt;br /&gt;alt + W, W               show windows window&lt;br /&gt;alt + -                  show float/dock window menu&lt;br /&gt;&lt;br /&gt;F5                       start debugging&lt;br /&gt;ctl + F5                 start without debugging&lt;br /&gt;shf + F5                 stop debugging&lt;br /&gt;alt + num + *            show next statement&lt;br /&gt;ctl + shf + F10          set next statement&lt;br /&gt;ctl + F10                run to cursor&lt;br /&gt;shf + F10                context menu, popup&lt;br /&gt;&lt;br /&gt;ctl + shf + B            build solution&lt;br /&gt;alt + B, R               rebuild solution&lt;br /&gt;alt + B, U               build current project&lt;br /&gt;alt + B, E               rebuild current project&lt;br /&gt;alt + B, G               build webform page/user control&lt;br /&gt;ctl + break              cancel build&lt;br /&gt;&lt;br /&gt;ctl + alt + L            view solution explorer, highlight active file&lt;br /&gt;alt + enter              show file properties/property pages for active item in solution explorer&lt;br /&gt;shf + F4                 show property pages for active project/solution in solution explorer&lt;br /&gt;F4                       show file properties for active item in solution explorer&lt;br /&gt;&lt;br /&gt;ctl + F4                 close active code window&lt;br /&gt;F9                       toggle breakpoint&lt;br /&gt;F10                      debug step over&lt;br /&gt;F11                      debug step into&lt;br /&gt;shf + F11                debug step out&lt;br /&gt;f12                      goto definition&lt;br /&gt;ctl + alt + J            object browser&lt;br /&gt;ctl + alt + S            server explorer&lt;br /&gt;&lt;br /&gt;//command window (ctl + alt + A)&lt;br /&gt;File.Close               closes currently selected window, including solution explorer&lt;br /&gt;File.TfsHistory          tfs history for currently selected file&lt;br /&gt;View.F#Interactive       f# interactive&lt;br /&gt;&lt;br /&gt;//F#&lt;br /&gt;ctl + alt + F            f# interactive&lt;br /&gt;alt + enter              send selected code to f# interactive&lt;br /&gt;&lt;br /&gt;//SQL&lt;br /&gt;ctl + shf + E            execute sql&lt;br /&gt;ctl + F5                 validate sql syntax&lt;br /&gt;ctl + shf + alt + R      show/hide sql results pane, toggle&lt;br /&gt;ctl + T                  show results as text&lt;br /&gt;ctl + shf + E            show results as grid&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-8575591452881359485?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/8575591452881359485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2010/08/visual-studio-keyboard-shortcuts.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/8575591452881359485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/8575591452881359485'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2010/08/visual-studio-keyboard-shortcuts.html' title='Visual Studio 2010 Keyboard Shortcuts'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-5311991017657829178</id><published>2010-08-19T11:16:00.000-07:00</published><updated>2010-08-19T11:21:12.153-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><category scheme='http://www.blogger.com/atom/ns#' term='permissions'/><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><category scheme='http://www.blogger.com/atom/ns#' term='iis'/><title type='text'>Setting Website Folder Permissions</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;Script for &lt;a href="http://expressionsoftware.blogspot.com/2010/04/http-error-codes-401-and-500-on-iis.html"&gt;HTTP errors 401.3 and 500.19&lt;/a&gt;.&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:0.5em 0em 0.5em 0.75em;margin-bottom:0em;"&gt;$folder = 'x:\web\website1\'&lt;br /&gt;setAcl 'IIS_IUSRS' $folder          #HTTP Error 500.19 - Internal Server Error&lt;br /&gt;setAcl 'NT AUTHORITY\IUSR' $folder  #HTTP Error 401.3 - Unauthorized&lt;br /&gt;&lt;br /&gt;function setAcl($user, $folder)&lt;br /&gt;{&lt;br /&gt;  $accessRule = new-object system.security.accessControl.fileSystemAccessRule(&lt;br /&gt;    $user,&lt;br /&gt;    [security.accessControl.fileSystemRights]::readAndExecute,&lt;br /&gt;    ([system.security.accessControl.inheritanceFlags]::containerInherit -bor&lt;br /&gt;     [system.security.accessControl.inheritanceFlags]::objectInherit),&lt;br /&gt;    [system.security.accessControl.propagationFlags]::none,&lt;br /&gt;    [system.security.accessControl.accessControlType]::allow)&lt;br /&gt;&lt;br /&gt;  $acl = get-acl $folder&lt;br /&gt;  $acl.AddAccessRule($accessRule)&lt;br /&gt;  set-acl $folder $acl&lt;br /&gt;}&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-5311991017657829178?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/5311991017657829178/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2010/08/website-folder-permissions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/5311991017657829178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/5311991017657829178'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2010/08/website-folder-permissions.html' title='Setting Website Folder Permissions'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-1482134222294113164</id><published>2010-08-18T20:24:00.000-07:00</published><updated>2010-08-20T10:22:14.850-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><category scheme='http://www.blogger.com/atom/ns#' term='minifier'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>MS AJAX Minifier - Form of Minification</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:0.5em 0em 0.5em 0.75em;margin-bottom:0em;"&gt;$infile = 'x:\file.debug.js'&lt;br /&gt;$outfile = 'x:\file.js'&lt;br /&gt;$m = 'x:\lib\microsoftAjaxMinifier\v4\ajaxMin.exe'&lt;br /&gt;&amp;$m -js -clobber $infile -out $outfile -enc:out 'utf-8'&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-1482134222294113164?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/1482134222294113164/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2010/08/ms-ajax-minifier.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/1482134222294113164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/1482134222294113164'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2010/08/ms-ajax-minifier.html' title='MS AJAX Minifier - Form of Minification'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-767814241255039805</id><published>2010-05-18T21:53:00.000-07:00</published><updated>2011-01-29T22:53:52.368-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pixel'/><category scheme='http://www.blogger.com/atom/ns#' term='dns'/><category scheme='http://www.blogger.com/atom/ns#' term='malware'/><category scheme='http://www.blogger.com/atom/ns#' term='file'/><category scheme='http://www.blogger.com/atom/ns#' term='ads'/><category scheme='http://www.blogger.com/atom/ns#' term='tracking'/><category scheme='http://www.blogger.com/atom/ns#' term='block'/><category scheme='http://www.blogger.com/atom/ns#' term='host'/><category scheme='http://www.blogger.com/atom/ns#' term='ip address'/><category scheme='http://www.blogger.com/atom/ns#' term='adware'/><category scheme='http://www.blogger.com/atom/ns#' term='privacy'/><title type='text'>Blocking Websites with the Hosts File</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana,arial;"&gt;Add an entry to the hosts file, point the host to the local host IP address.&lt;br /&gt;Use this to block sites that serve ads, banners, pixel tracking, etc.&lt;br /&gt;&lt;pre class="Apple-style-span" style="font-family:courier new,verdana;"&gt;#v1.29&lt;br /&gt;#http://blog.expressionsoftware.com/2010/05/ad-block-host-file-entries.html&lt;br /&gt;&lt;br /&gt;#C:\windows\system32\drivers\etc\hosts&lt;br /&gt;&lt;br /&gt;127.0.0.1 30boxes.com&lt;br /&gt;127.0.0.1 4c28d6.r.axf8.net&lt;br /&gt;127.0.0.1 a.abcnews.com&lt;br /&gt;127.0.0.1 a.analytics.yahoo.com&lt;br /&gt;127.0.0.1 a.collective-media.net&lt;br /&gt;127.0.0.1 a.lakequincy.com&lt;br /&gt;127.0.0.1 a.netmng.com&lt;br /&gt;127.0.0.1 a0.twimg.com&lt;br /&gt;127.0.0.1 a1.twimg.com&lt;br /&gt;127.0.0.1 a3.twimg.com&lt;br /&gt;127.0.0.1 ac.tynt.com&lt;br /&gt;127.0.0.1 action.vmm-satellite1.com&lt;br /&gt;127.0.0.1 ad.br.doubleclick.net&lt;br /&gt;127.0.0.1 ad.doubleclick.net&lt;br /&gt;127.0.0.1 ad.doubleclick.net&lt;br /&gt;127.0.0.1 ad.technoratimedia.com&lt;br /&gt;127.0.0.1 ad.wsod.com&lt;br /&gt;127.0.0.1 ad.yieldmanager.com&lt;br /&gt;127.0.0.1 adadvisor.net&lt;br /&gt;127.0.0.1 add.my.yahoo.com&lt;br /&gt;127.0.0.1 adimg.cnet.com&lt;br /&gt;127.0.0.1 adlog.com.com&lt;br /&gt;127.0.0.1 admedia.wsod.com&lt;br /&gt;127.0.0.1 admin.brightcove.com&lt;br /&gt;127.0.0.1 ads.bluelithium.com&lt;br /&gt;127.0.0.1 ads.doclix.com&lt;br /&gt;127.0.0.1 ads.pheedo.com&lt;br /&gt;127.0.0.1 ads.stackoverflow.com&lt;br /&gt;127.0.0.1 ads.yldmgrimg.net&lt;br /&gt;127.0.0.1 ads1.msads.net&lt;br /&gt;127.0.0.1 ads1.msn.com&lt;br /&gt;127.0.0.1 ads2.msads.net&lt;br /&gt;127.0.0.1 adsyndication.msn.com&lt;br /&gt;127.0.0.1 ak1.abmr.net&lt;br /&gt;127.0.0.1 allprojectstats.com&lt;br /&gt;127.0.0.1 altfarm.mediaplex.com&lt;br /&gt;127.0.0.1 amer.rel.msn.com&lt;br /&gt;127.0.0.1 an.tacoda.net&lt;br /&gt;127.0.0.1 analytics.atdmt.com&lt;br /&gt;127.0.0.1 analytics.live.com&lt;br /&gt;127.0.0.1 analytics.msn.com&lt;br /&gt;127.0.0.1 api.ak.facebook.com&lt;br /&gt;127.0.0.1 api.bing.com&lt;br /&gt;127.0.0.1 api.bizographics.com&lt;br /&gt;127.0.0.1 api.js-kit.com&lt;br /&gt;127.0.0.1 api.tweetmeme.com&lt;br /&gt;127.0.0.1 arcsmedia01.s3.amazonaws.com&lt;br /&gt;127.0.0.1 as.casalemedia.com&lt;br /&gt;127.0.0.1 associates.designpublic.com&lt;br /&gt;127.0.0.1 associates.designpublic.com&lt;br /&gt;127.0.0.1 avatars.vrforums.com&lt;br /&gt;127.0.0.1 b.scorecardresearch.com&lt;br /&gt;127.0.0.1 b.scorecardresearch.com&lt;br /&gt;127.0.0.1 b.static.ak.fbcdn.net&lt;br /&gt;127.0.0.1 baymsg1020130.by2.gateway.edge.messenger.live.com&lt;br /&gt;127.0.0.1 bit.ly&lt;br /&gt;127.0.0.1 blst.msn.com&lt;br /&gt;127.0.0.1 brightcove.vo.llnwd.net&lt;br /&gt;127.0.0.1 bs.serving-sys.com&lt;br /&gt;127.0.0.1 btn.clickability.com&lt;br /&gt;127.0.0.1 bwp.news.com&lt;br /&gt;127.0.0.1 by.optimost.com&lt;br /&gt;127.0.0.1 c.atdmt.com&lt;br /&gt;127.0.0.1 c.brightcove.com&lt;br /&gt;127.0.0.1 c.microsoft.com&lt;br /&gt;127.0.0.1 c.msn.com&lt;br /&gt;127.0.0.1 c.statcounter.com&lt;br /&gt;127.0.0.1 c1.navrcholu.cz&lt;br /&gt;127.0.0.1 cdn.gigya.com&lt;br /&gt;127.0.0.1 cdn.js-kit.com&lt;br /&gt;127.0.0.1 cdn.stumble-upon.com&lt;br /&gt;127.0.0.1 cdn.wibiya.com&lt;br /&gt;127.0.0.1 cdn.widgetserver.com&lt;br /&gt;127.0.0.1 certify.alexametrics.com&lt;br /&gt;127.0.0.1 cf.addthis.com&lt;br /&gt;127.0.0.1 clickstream.loomia.com&lt;br /&gt;127.0.0.1 client-log.amazon.com&lt;br /&gt;127.0.0.1 clientscript.vrforums.com&lt;br /&gt;127.0.0.1 cm.g.doubleclick.net&lt;br /&gt;127.0.0.1 cm.newegg.com&lt;br /&gt;127.0.0.1 cm.npc-denvernews.overture.com&lt;br /&gt;127.0.0.1 codeguru.us.intellitxt.com&lt;br /&gt;127.0.0.1 col.stb.s-msn.com&lt;br /&gt;127.0.0.1 col.stc.s-msn.com&lt;br /&gt;127.0.0.1 col.stj.s-msn.com&lt;br /&gt;127.0.0.1 colardyn-it.be&lt;br /&gt;127.0.0.1 commerce.wsj.com&lt;br /&gt;127.0.0.1 community.apartmenttherapy.com&lt;br /&gt;127.0.0.1 compose.mail.yahoo.com&lt;br /&gt;127.0.0.1 connect.facebook.net&lt;br /&gt;127.0.0.1 content.dl-rms.com&lt;br /&gt;127.0.0.1 content.newegg.com&lt;br /&gt;127.0.0.1 conversion-pixel.invitemedia.com&lt;br /&gt;127.0.0.1 cookex.amp.yahoo.com&lt;br /&gt;127.0.0.1 core.insightexpressai.com&lt;br /&gt;127.0.0.1 csc.beap.ad.yieldmanager.net&lt;br /&gt;127.0.0.1 cspix.media6degrees.com&lt;br /&gt;127.0.0.1 css2.blurtit.com&lt;br /&gt;127.0.0.1 d.101m3.com&lt;br /&gt;127.0.0.1 d.yimg.com&lt;br /&gt;127.0.0.1 denverpost.112.2o7.net&lt;br /&gt;127.0.0.1 designbloxlive.com&lt;br /&gt;127.0.0.1 dg.specificclick.net&lt;br /&gt;127.0.0.1 dis.us.criteo.com&lt;br /&gt;127.0.0.1 dotnetkicks.com&lt;br /&gt;127.0.0.1 doug1izaerwt3.cloudfront.net&lt;br /&gt;127.0.0.1 dpphoto.slideshowpro.com&lt;br /&gt;127.0.0.1 ds.serving-sys.com&lt;br /&gt;127.0.0.1 dw.com.com&lt;br /&gt;127.0.0.1 dynamic1.anandtech.com&lt;br /&gt;127.0.0.1 e.yieldmanager.net&lt;br /&gt;127.0.0.1 e1.cdn.qnsr.com&lt;br /&gt;127.0.0.1 edge.quantserve.com&lt;br /&gt;127.0.0.1 edge.quantserve.com&lt;br /&gt;127.0.0.1 edge.sharethis.com&lt;br /&gt;127.0.0.1 embed.onespot.com&lt;br /&gt;127.0.0.1 engine2.adzerk.net&lt;br /&gt;127.0.0.1 es.optimost.com&lt;br /&gt;127.0.0.1 exp.www.msn.com&lt;br /&gt;127.0.0.1 extras.denverpost.com&lt;br /&gt;127.0.0.1 extras.mnginteractive.com&lt;br /&gt;127.0.0.1 fast.varickmm.demdex.net&lt;br /&gt;127.0.0.1 fdaci.rsvpgenius.com&lt;br /&gt;127.0.0.1 feedads.g.doubleclick.net&lt;br /&gt;127.0.0.1 feeds.bbci.co.uk&lt;br /&gt;127.0.0.1 files.internet.com&lt;br /&gt;127.0.0.1 flash.quantserve.com&lt;br /&gt;127.0.0.1 fls.doubleclick.net&lt;br /&gt;127.0.0.1 fls.doubleclick.net&lt;br /&gt;127.0.0.1 folding.extremeoverclocking.com&lt;br /&gt;127.0.0.1 forums.vr-zone.com&lt;br /&gt;127.0.0.1 friendfeed.com&lt;br /&gt;127.0.0.1 fugger.ipage.com&lt;br /&gt;127.0.0.1 fxfeeds.mozilla.com&lt;br /&gt;127.0.0.1 g.bfbcs.com&lt;br /&gt;127.0.0.1 gcm.netmng.com&lt;br /&gt;127.0.0.1 geo.messenger.services.live.com&lt;br /&gt;127.0.0.1 geo.yahoo.com&lt;br /&gt;127.0.0.1 geoiplookup.wikimedia.org&lt;br /&gt;127.0.0.1 getclicky.com&lt;br /&gt;127.0.0.1 goku.brightcove.com&lt;br /&gt;127.0.0.1 googleads.g.doubleclick.net&lt;br /&gt;127.0.0.1 g-pixel.invitemedia.com&lt;br /&gt;127.0.0.1 group11.iperceptions.com&lt;br /&gt;127.0.0.1 hits.dealer.com&lt;br /&gt;127.0.0.1 hosted2.ap.org&lt;br /&gt;127.0.0.1 hosted2-static.ap.org&lt;br /&gt;127.0.0.1 i.abimg.net&lt;br /&gt;127.0.0.1 i.friendfeed.com&lt;br /&gt;127.0.0.1 i.i.com.com&lt;br /&gt;127.0.0.1 i.xx.openx.com&lt;br /&gt;127.0.0.1 i.ytimg.com&lt;br /&gt;127.0.0.1 i1.social.microsoft.com&lt;br /&gt;127.0.0.1 i1.ytimg.com&lt;br /&gt;127.0.0.1 i2.ytimg.com&lt;br /&gt;127.0.0.1 i3.ytimg.com&lt;br /&gt;127.0.0.1 i4.ytimg.com&lt;br /&gt;127.0.0.1 ib.adnxs.com&lt;br /&gt;127.0.0.1 images.intellitxt.com&lt;br /&gt;127.0.0.1 images.scanalert.com&lt;br /&gt;127.0.0.1 images10.newegg.com&lt;br /&gt;127.0.0.1 images17.newegg.com&lt;br /&gt;127.0.0.1 imagesak.securepaynet.net&lt;br /&gt;127.0.0.1 img.godaddy.com&lt;br /&gt;127.0.0.1 img.pheedo.com&lt;br /&gt;127.0.0.1 img.vrforums.com&lt;br /&gt;127.0.0.1 img1.blogblog.com&lt;br /&gt;127.0.0.1 img1.meetupstatic.com&lt;br /&gt;127.0.0.1 img1.wsimg.com&lt;br /&gt;127.0.0.1 img171.imageshack.us&lt;br /&gt;127.0.0.1 img3.wsimg.com&lt;br /&gt;127.0.0.1 img5.wsimg.com&lt;br /&gt;127.0.0.1 imog.us&lt;br /&gt;127.0.0.1 in.getclicky.com&lt;br /&gt;127.0.0.1 jlinks.industrybrains.com&lt;br /&gt;127.0.0.1 js.revsci.net&lt;br /&gt;127.0.0.1 js-kit.com&lt;br /&gt;127.0.0.1 keywordmax.com&lt;br /&gt;127.0.0.1 kona.kontera.com&lt;br /&gt;127.0.0.1 kona32.kontera.com&lt;br /&gt;127.0.0.1 kona5.kontera.com&lt;br /&gt;127.0.0.1 l.addthiscdn.com&lt;br /&gt;127.0.0.1 l.sharethis.com&lt;br /&gt;127.0.0.1 l1.cdn.qnsr.com&lt;br /&gt;127.0.0.1 leadback.advertising.com&lt;br /&gt;127.0.0.1 lh5.googleusercontent.com&lt;br /&gt;127.0.0.1 lh6.googleusercontent.com&lt;br /&gt;127.0.0.1 load.tubemogul.com&lt;br /&gt;127.0.0.1 log.enquisite.com&lt;br /&gt;127.0.0.1 log.go.com&lt;br /&gt;127.0.0.1 m.webtrends.com&lt;br /&gt;127.0.0.1 m.wsj.net&lt;br /&gt;127.0.0.1 mads.cnet.com&lt;br /&gt;127.0.0.1 marketplace.apartmenttherapy.com&lt;br /&gt;127.0.0.1 markets.on.nytimes.com&lt;br /&gt;127.0.0.1 media.denverpost.com&lt;br /&gt;127.0.0.1 media.disqus.com&lt;br /&gt;127.0.0.1 media.fastclick.net&lt;br /&gt;127.0.0.1 media.wekeroad.com&lt;br /&gt;127.0.0.1 mediacdn.disqus.com&lt;br /&gt;127.0.0.1 mediacdn.disqus.com&lt;br /&gt;127.0.0.1 meter-svc.nytimes.com&lt;br /&gt;127.0.0.1 metrics.fedex.com&lt;br /&gt;127.0.0.1 metrics.kbb.com&lt;br /&gt;127.0.0.1 metrics.toyota.com&lt;br /&gt;127.0.0.1 mi.adinterax.com&lt;br /&gt;127.0.0.1 microsoftsto.112.2o7.net&lt;br /&gt;127.0.0.1 mjxads.internet.com&lt;br /&gt;127.0.0.1 mp.apmebf.com&lt;br /&gt;127.0.0.1 mv.trb.com&lt;br /&gt;127.0.0.1 my-gamebox.com&lt;br /&gt;127.0.0.1 network.realmedia.com&lt;br /&gt;127.0.0.1 newsrss.bbc.co.uk&lt;br /&gt;127.0.0.1 nm.newegg.com&lt;br /&gt;127.0.0.1 now.eloqua.com&lt;br /&gt;127.0.0.1 o1.qnsr.com&lt;br /&gt;127.0.0.1 objects.tremormedia.com&lt;br /&gt;127.0.0.1 ocsp.godaddy.com&lt;br /&gt;127.0.0.1 om.dowjoneson.com&lt;br /&gt;127.0.0.1 onespot.wsj.com&lt;br /&gt;127.0.0.1 online.wsj.com&lt;br /&gt;127.0.0.1 open.ad.yieldmanager.net&lt;br /&gt;127.0.0.1 p.ic.tynt.com&lt;br /&gt;127.0.0.1 p.opt.fimserve.com&lt;br /&gt;127.0.0.1 pagead2.googlesyndication.com&lt;br /&gt;127.0.0.1 pagead2.googlesyndication.com&lt;br /&gt;127.0.0.1 partner.googleadservices.com&lt;br /&gt;127.0.0.1 partner.googleadservices.com&lt;br /&gt;127.0.0.1 photos.denverpost.com&lt;br /&gt;127.0.0.1 pikachu.vr-zone.com.sg&lt;br /&gt;127.0.0.1 ping.chartbeat.net&lt;br /&gt;127.0.0.1 pix04.revsci.net&lt;br /&gt;127.0.0.1 pixel.mathtag.com&lt;br /&gt;127.0.0.1 pixel.quantserve.com&lt;br /&gt;127.0.0.1 pixel.vmm-satellite1.com&lt;br /&gt;127.0.0.1 platform.twitter.com&lt;br /&gt;127.0.0.1 platform0.twitter.com&lt;br /&gt;127.0.0.1 profile.ak.fbcdn.net&lt;br /&gt;127.0.0.1 pt.rewardtv.com&lt;br /&gt;127.0.0.1 pub.widgetbox.com&lt;br /&gt;127.0.0.1 pubads.g.doubleclick.net&lt;br /&gt;127.0.0.1 q1.checkm8.com&lt;br /&gt;127.0.0.1 q1digital.checkm8.com&lt;br /&gt;127.0.0.1 r.nexac.com&lt;br /&gt;127.0.0.1 r.turn.com  #:443&lt;br /&gt;127.0.0.1 rad.msn.com&lt;br /&gt;127.0.0.1 rcm.amazon.com&lt;br /&gt;127.0.0.1 rcv-srv31.inplay.tubemogul.com&lt;br /&gt;127.0.0.1 receive.inplay.tubemogul.com&lt;br /&gt;127.0.0.1 redirectingat.com&lt;br /&gt;127.0.0.1 resources.infolinks.com&lt;br /&gt;127.0.0.1 s.skimresources.com&lt;br /&gt;127.0.0.1 s.twimg.com&lt;br /&gt;127.0.0.1 s.wsj.net&lt;br /&gt;127.0.0.1 s.ytimg.com&lt;br /&gt;127.0.0.1 s.ytimg.com&lt;br /&gt;127.0.0.1 s0.2mdn.net&lt;br /&gt;127.0.0.1 s1.wsj.net&lt;br /&gt;127.0.0.1 s12.sitemeter.com&lt;br /&gt;127.0.0.1 s2.wsj.net&lt;br /&gt;127.0.0.1 s3.polldaddy.com&lt;br /&gt;127.0.0.1 s3.wsj.net&lt;br /&gt;127.0.0.1 s4.wsj.net&lt;br /&gt;127.0.0.1 s7.addthis.com&lt;br /&gt;127.0.0.1 s7.addthis.com&lt;br /&gt;127.0.0.1 s7d3.scene7.com&lt;br /&gt;127.0.0.1 s9.addthis.com&lt;br /&gt;127.0.0.1 s9.addthis.com&lt;br /&gt;127.0.0.1 sc.wsj.net&lt;br /&gt;127.0.0.1 script2.blurtit.com&lt;br /&gt;127.0.0.1 seals.websiteprotection.com&lt;br /&gt;127.0.0.1 secure-us.imrworldwide.com&lt;br /&gt;127.0.0.1 seg.sharethis.com&lt;br /&gt;127.0.0.1 service.twistage.com&lt;br /&gt;127.0.0.1 services.msn.com  #http://services.msn.com/svcs/hotmail/httpmail.asp&lt;br /&gt;127.0.0.1 sg.wsj.net&lt;br /&gt;127.0.0.1 si.wsj.net&lt;br /&gt;127.0.0.1 sj.wsj.net&lt;br /&gt;127.0.0.1 skype.com&lt;br /&gt;127.0.0.1 smarticon.geotrust.com&lt;br /&gt;127.0.0.1 stackauth.com&lt;br /&gt;127.0.0.1 static.addtoany.com&lt;br /&gt;127.0.0.1 static.adzerk.net&lt;br /&gt;127.0.0.1 static.ak.connect.facebook.com&lt;br /&gt;127.0.0.1 static.ak.facebook.com&lt;br /&gt;127.0.0.1 static.ak.fbcdn.net&lt;br /&gt;127.0.0.1 static.chartbeat.com&lt;br /&gt;127.0.0.1 static.chartbeat.com&lt;br /&gt;127.0.0.1 static.criteo.com&lt;br /&gt;127.0.0.1 static.fmpub.net&lt;br /&gt;127.0.0.1 static.foxsports.com&lt;br /&gt;127.0.0.1 static.inplay.tubemogul.com&lt;br /&gt;127.0.0.1 static.slidesharecdn.com&lt;br /&gt;127.0.0.1 statistics.wibiya.com&lt;br /&gt;127.0.0.1 stats.wordpress.com&lt;br /&gt;127.0.0.1 statse.webtrendslive.com&lt;br /&gt;127.0.0.1 support.designpublic.com&lt;br /&gt;127.0.0.1 tacoda.at.atwola.com&lt;br /&gt;127.0.0.1 tags.bluekai.com&lt;br /&gt;127.0.0.1 tcr.tynt.com&lt;br /&gt;127.0.0.1 te.kontera.com&lt;br /&gt;127.0.0.1 tenzing.fmpub.net&lt;br /&gt;127.0.0.1 test.coremetrics.com&lt;br /&gt;127.0.0.1 thirdparty.fmpub.net&lt;br /&gt;127.0.0.1 timespeople.nytimes.com&lt;br /&gt;127.0.0.1 toyota.tt.omtrdc.net&lt;br /&gt;127.0.0.1 tr.adinterax.com&lt;br /&gt;127.0.0.1 track.searchignite.com&lt;br /&gt;127.0.0.1 track4.mybloglog.com&lt;br /&gt;127.0.0.1 tracking.hubspot.com&lt;br /&gt;127.0.0.1 tracking.keywordmax.com&lt;br /&gt;127.0.0.1 tr-recs.loomia.com&lt;br /&gt;127.0.0.1 tweetmeme.com&lt;br /&gt;127.0.0.1 udc.msn.com&lt;br /&gt;127.0.0.1 ui.abimg.net&lt;br /&gt;127.0.0.1 up.nytimes.com&lt;br /&gt;127.0.0.1 urls.api.twitter.com&lt;br /&gt;127.0.0.1 us.bc.yahoo.com&lt;br /&gt;127.0.0.1 usa.kaspersky.com&lt;br /&gt;127.0.0.1 use.typekit.com&lt;br /&gt;127.0.0.1 valid.canardpc.com&lt;br /&gt;127.0.0.1 var2.blurtit.com&lt;br /&gt;127.0.0.1 varickmm.demdex.net&lt;br /&gt;127.0.0.1 view.atdmt.com&lt;br /&gt;127.0.0.1 vox-static.liverail.com&lt;br /&gt;127.0.0.1 vs.dmtracker.com&lt;br /&gt;127.0.0.1 w.sharethis.com&lt;br /&gt;127.0.0.1 w88.go.com&lt;br /&gt;127.0.0.1 wd.sharethis.com&lt;br /&gt;127.0.0.1 whos.amung.us&lt;br /&gt;127.0.0.1 widget-cache.loomia.com&lt;br /&gt;127.0.0.1 widgets.digg.com&lt;br /&gt;127.0.0.1 windowsguides.disqus.com&lt;br /&gt;127.0.0.1 wsj.vo.llnwd.net&lt;br /&gt;127.0.0.1 wstat.wibiya.com&lt;br /&gt;127.0.0.1 wt.o.nytimes.com&lt;br /&gt;127.0.0.1 www.adelixir.com&lt;br /&gt;127.0.0.1 www.bizographics.com&lt;br /&gt;127.0.0.1 www.facebook.com&lt;br /&gt;127.0.0.1 www.googleadservices.com&lt;br /&gt;127.0.0.1 www.gravatar.com&lt;br /&gt;127.0.0.1 www.hwbot.org&lt;br /&gt;127.0.0.1 www.inetinteractive.com&lt;br /&gt;127.0.0.1 www.internet.com&lt;br /&gt;127.0.0.1 www.keywordmax.com&lt;br /&gt;127.0.0.1 www.meetup.com&lt;br /&gt;127.0.0.1 www.msn.com  #hotmail-logout-spam-redirect-to-msn, hmmm doesnt block?&lt;br /&gt;127.0.0.1 www.pheedcontent.com&lt;br /&gt;127.0.0.1 www.pheedo.com&lt;br /&gt;127.0.0.1 www.qsstats.com&lt;br /&gt;127.0.0.1 www.res-x.com&lt;br /&gt;127.0.0.1 www.statcounter.com&lt;br /&gt;127.0.0.1 www.stumbleupon.com&lt;br /&gt;127.0.0.1 www-origin.xmradio.com  #:8081&lt;br /&gt;127.0.0.1 zulu.tweetmeme.com&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-767814241255039805?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/767814241255039805/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2010/05/ad-block-host-file-entries.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/767814241255039805'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/767814241255039805'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2010/05/ad-block-host-file-entries.html' title='Blocking Websites with the Hosts File'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-941439935316954491</id><published>2010-05-11T22:05:00.000-07:00</published><updated>2010-05-12T15:23:35.398-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><category scheme='http://www.blogger.com/atom/ns#' term='sliksvn'/><category scheme='http://www.blogger.com/atom/ns#' term='checkout'/><category scheme='http://www.blogger.com/atom/ns#' term='svn'/><title type='text'>Checkout One File from SVN</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;A &lt;a href="http://www.sliksvn.com/"&gt;Slik SVN&lt;/a&gt;/PowerShell workaround for the SVN missing feature - checking out just a few select files instead of the entire folder.&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:0.5em 0em 0.5em 0.75em;margin-right:30%;margin-bottom:0em;"&gt;$svnFolder = 'https://dev.co.com/svn/project1'&lt;br /&gt;$workingFolder = 'c:\temp\svn'&lt;br /&gt;$file = 'foo.cs'&lt;br /&gt;&lt;br /&gt;#checkout just the folder, checkout depth "only this item"&lt;br /&gt;&amp;svn checkout $svnFolder $workingFolder --depth=empty&lt;br /&gt;&lt;br /&gt;#method 1: cd to working folder, update using file name&lt;br /&gt;cd $workingFolder&lt;br /&gt;&amp;svn update $file&lt;br /&gt;&lt;br /&gt;#method 2: update using file full path name&lt;br /&gt;$file = join-path $workingFolder $file&lt;br /&gt;&amp;svn update $file&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-941439935316954491?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/941439935316954491/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2010/05/checkout-one-file-from-svn.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/941439935316954491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/941439935316954491'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2010/05/checkout-one-file-from-svn.html' title='Checkout One File from SVN'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-2544861331084858521</id><published>2010-05-08T12:29:00.000-07:00</published><updated>2010-05-08T12:58:31.045-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><category scheme='http://www.blogger.com/atom/ns#' term='registry'/><title type='text'>PowerShell Registry Script</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;Four variations for reading registry keys.&lt;br /&gt;HKLM and HKCU are PowerShell drives for HKEY_LOCAL_MACHINE and HKEY_CURRENT_USER registry hives.&lt;br /&gt;&lt;br /&gt;Windows startup entries.&lt;pre style="font-family:courier new;color:black;padding:0em 0em 0.5em 0em;margin-top:0.1em;margin-bottom:0em;"&gt;getRegistryV1 hklm:\software\microsoft\windows\currentversion\run&lt;br /&gt;getRegistryV1 hkcu:\software\microsoft\windows\currentversion\run&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:0.5em 0em 0.5em 0.75em;margin-right:5%;margin-bottom:0em;"&gt;function getRegistryV1($key)&lt;br /&gt;{&lt;br /&gt;  $key = get-item $key&lt;br /&gt;  $values = get-itemProperty $key.psPath  #gp alias for get-itemProperty&lt;br /&gt;  $values&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function getRegistryV2($key)&lt;br /&gt;{&lt;br /&gt;  $key = get-item $key&lt;br /&gt;  $values = get-itemProperty $key.psPath&lt;br /&gt;  foreach ($value in $key.property)&lt;br /&gt;  {&lt;br /&gt;    "$value = $($values.$value)"  #subexpression $()&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function getRegistryV3($key)&lt;br /&gt;{&lt;br /&gt;  $key = get-item $key&lt;br /&gt;  $maxKeyNameLen = ($key.property | %{$_.length} | measure -max).maximum&lt;br /&gt;  $values = get-itemProperty $key.psPath&lt;br /&gt;  foreach ($value in $key.property)&lt;br /&gt;  {&lt;br /&gt;    "{0,-$maxKeyNameLen} = {1}" -f $value, $values.$value  #format left-aligned width&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function getRegistryV4($key)&lt;br /&gt;{&lt;br /&gt;  $key = get-item $key&lt;br /&gt;  $maxKeyNameLen = ($key.property | %{$_.length} | measure -max).maximum&lt;br /&gt;  $values = get-itemProperty $key.psPath&lt;br /&gt;  $key.property | %{"{0,-$maxKeyNameLen} = {1}" -f $_, $values.$_}  #format left-aligned width&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-2544861331084858521?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/2544861331084858521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2010/05/powershell-registry-script.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/2544861331084858521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/2544861331084858521'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2010/05/powershell-registry-script.html' title='PowerShell Registry Script'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-7009786569995129564</id><published>2010-05-05T22:56:00.001-07:00</published><updated>2010-05-08T12:57:09.988-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><category scheme='http://www.blogger.com/atom/ns#' term='iis'/><category scheme='http://www.blogger.com/atom/ns#' term='4.0'/><title type='text'>ASP.NET 4/IIS ManagedPipelineHandler Error</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;ASP.NET 4 error on Windows 7/IIS 7.5&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;padding:0em 0em 0.5em 0em;margin-top:0.1em;margin-bottom:0em;"&gt;HTTP Error 500.21 - Internal Server Error&lt;br /&gt;Handler "PageHandlerFactory-Integrated" has a bad module "ManagedPipelineHandler" in its module list.&lt;/pre&gt;&lt;br /&gt;To fix, install ASP.NET 4 using the &lt;a href="http://msdn.microsoft.com/en-us/library/k6h9cz8h.aspx"&gt;.NET 4 ASP.NET IIS Registration Tool&lt;/a&gt;.&lt;br /&gt;See documentation for differences between the -i and -ir options.&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:0.5em 0em 0.5em 0.75em;margin-right:30%;margin-bottom:0em;"&gt;c:\windows\microsoft.net\framework\v4.0.30319\aspnet_regiis.exe -i&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-7009786569995129564?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/7009786569995129564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2010/05/aspnet-4iis-managedpipelinehandler.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/7009786569995129564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/7009786569995129564'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2010/05/aspnet-4iis-managedpipelinehandler.html' title='ASP.NET 4/IIS ManagedPipelineHandler Error'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-7399584934214676205</id><published>2010-05-02T00:29:00.000-07:00</published><updated>2010-05-02T11:35:39.907-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><title type='text'>Testing String Format in PowerShell</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:0.5em 0em 0.5em 0.75em;margin-right:50%;margin-bottom:0em;"&gt;'{0:x2}' -f 10&lt;br /&gt;[string]::format('{0:x2}', 10)&lt;br /&gt;0a&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-7399584934214676205?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/7399584934214676205/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2010/05/testing-string-format-in-powershell.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/7399584934214676205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/7399584934214676205'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2010/05/testing-string-format-in-powershell.html' title='Testing String Format in PowerShell'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-2917036959447943465</id><published>2010-05-02T00:22:00.001-07:00</published><updated>2010-05-02T11:33:26.111-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='f#'/><title type='text'>Testing String Format in F# Interactive</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:0.5em 0em 0.5em 0.75em;margin-right:50%;margin-bottom:0em;"&gt;printf "%02x" 10;;&lt;br /&gt;System.String.Format("{0:x2}", 10);;&lt;br /&gt;open System;;&lt;br /&gt;String.Format("{0:x2}", 10);;&lt;br /&gt;val it : string = "0a"&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-2917036959447943465?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/2917036959447943465/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2010/05/testing-string-format-in-fs-interactive.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/2917036959447943465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/2917036959447943465'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2010/05/testing-string-format-in-fs-interactive.html' title='Testing String Format in F# Interactive'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-8702978928365654696</id><published>2010-04-25T19:19:00.000-07:00</published><updated>2010-04-25T19:22:16.699-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='certifications'/><title type='text'>.NET 4 Visual Studio 2010 Certification Exams</title><content type='html'>&lt;a href="http://www.microsoft.com/learning/en/us/exam.aspx?ID=70-513"&gt;Exam 70-513 - WCF .NET 4&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/learning/en/us/exam.aspx?ID=70-515"&gt;Exam 70-515 - Web Application Development .NET 4&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/learning/en/us/exam.aspx?ID=70-519"&gt;Exam 70-519 - Pro Designing and Developing Web Applications .NET 4&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;!--&lt; b r /&gt;--&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-8702978928365654696?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/8702978928365654696/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2010/04/net-4-visual-studio-2010-certification.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/8702978928365654696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/8702978928365654696'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2010/04/net-4-visual-studio-2010-certification.html' title='.NET 4 Visual Studio 2010 Certification Exams'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-6617446990078673129</id><published>2010-04-19T15:47:00.000-07:00</published><updated>2010-08-20T10:29:45.863-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='visual studio'/><category scheme='http://www.blogger.com/atom/ns#' term='stathread'/><category scheme='http://www.blogger.com/atom/ns#' term='2010'/><category scheme='http://www.blogger.com/atom/ns#' term='watin'/><title type='text'>WatiN Internet Explorer Single Threaded Apartment Error</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;WatiN IE thread state exception on Windows 7 with Visual Studio 2010.&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;padding:0em 0em 0.5em 0em;margin-bottom:0em;"&gt;Failed: System.Threading.ThreadStateException:&lt;br /&gt;  The CurrentThread needs to have it's ApartmentState set to ApartmentState.STA to be able to automate Internet Explorer.&lt;br /&gt;  at WatiN.Core.IE.CheckThreadApartmentStateIsSTA()&lt;br /&gt;  at WatiN.Core.IE.CreateNewIEAndGoToUri(Uri uri, LogonDialogHandler logonDialogHandler, Boolean createInNewProcess)&lt;br /&gt;  at WatiN.Core.IE..ctor()&lt;br /&gt;  at WatiN.Core.BrowserFactory.Create(BrowserType browserType)&lt;br /&gt;  watin.cs(42,0): at WebTest.TestFoo()&lt;/pre&gt;&lt;br /&gt;To fix, add a STAThread attribute to the method.&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:0.5em 0em 0.5em 0.75em;margin-bottom:0em;"&gt;[Test]&lt;br /&gt;[STAThread]&lt;br /&gt;public void TestFoo()&lt;br /&gt;{&lt;br /&gt;    using (IBrowser browser = BrowserFactory.Create(BrowserType.InternetExplorer))&lt;br /&gt;    {&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-6617446990078673129?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/6617446990078673129/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2010/04/watin-internet-explorer-single-threaded.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/6617446990078673129'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/6617446990078673129'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2010/04/watin-internet-explorer-single-threaded.html' title='WatiN Internet Explorer Single Threaded Apartment Error'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-6064612160273023560</id><published>2010-04-19T14:45:00.000-07:00</published><updated>2010-05-08T12:44:50.796-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><title type='text'>PowerShell List Dates Script</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;&lt;pre style="font-family:courier new;color:black;padding:0em 0em 0.5em 0em;margin-bottom:0em;"&gt;listDates '01-01' 7                       #01-01-2010&lt;br /&gt;listDates '01-01' 7 'M-d'                 #1-1&lt;br /&gt;listDates '01-01' 14 'ddd MM-dd'          #Fri 01-01&lt;br /&gt;listDates '01-01-2011' 30                 #01-01-2011&lt;br /&gt;listDates '01-01' 60 'MMM dd yyyy - ddd'  #Jan 01 2010 - Fri&lt;/pre&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:0.5em 0em 0.5em 0.75em;margin-right:35%;margin-bottom:0em;"&gt;function listDates($startDate, $daysCount, $format='MM-dd-yyyy')&lt;br /&gt;{&lt;br /&gt;  $startDate = [datetime]$startDate&lt;br /&gt;  0..($daysCount-1) |&lt;br /&gt;    %{&lt;br /&gt;        $startDate.addDays($_).toString($format)  #console - show date&lt;br /&gt;     }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-6064612160273023560?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/6064612160273023560/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2010/04/powershell-list-dates-script.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/6064612160273023560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/6064612160273023560'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2010/04/powershell-list-dates-script.html' title='PowerShell List Dates Script'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-7436961551324586225</id><published>2010-04-09T15:52:00.000-07:00</published><updated>2010-04-09T23:43:24.660-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='permissions'/><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><category scheme='http://www.blogger.com/atom/ns#' term='iis'/><title type='text'>HTTP Error Codes 401 and 500 on IIS 7 and ASP.NET</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;To fix these errors on Windows 7 Pro, add the user group/account to the web folder and set permissions.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;HTTP Error 500.19 - Internal Server Error&lt;/b&gt;&lt;br /&gt;The requested page cannot be accessed because the related configuration data for the page is invalid.&lt;br /&gt;User Group: &lt;a href="http://learn.iis.net/page.aspx/140/understanding-built-in-user-and-group-accounts-in-iis-7/"&gt;IIS_IUSRS&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;HTTP Error 401.3 - Unauthorized&lt;/b&gt;&lt;br /&gt;You do not have permission to view this directory or page because of the access control list (ACL) configuration or encryption settings for this resource on the Web server.&lt;br /&gt;User Account: &lt;a href="http://learn.iis.net/page.aspx/140/understanding-built-in-user-and-group-accounts-in-iis-7/"&gt;IUSR&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Permissions:&lt;br /&gt;read&lt;br /&gt;read and execute&lt;br /&gt;list folder contents&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-7436961551324586225?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/7436961551324586225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2010/04/http-error-codes-401-and-500-on-iis.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/7436961551324586225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/7436961551324586225'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2010/04/http-error-codes-401-and-500-on-iis.html' title='HTTP Error Codes 401 and 500 on IIS 7 and ASP.NET'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-6245579067501765526</id><published>2010-04-08T12:32:00.000-07:00</published><updated>2011-03-19T15:36:09.406-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><category scheme='http://www.blogger.com/atom/ns#' term='index'/><category scheme='http://www.blogger.com/atom/ns#' term='file'/><category scheme='http://www.blogger.com/atom/ns#' term='text-zip'/><category scheme='http://www.blogger.com/atom/ns#' term='print'/><category scheme='http://www.blogger.com/atom/ns#' term='concat'/><category scheme='http://www.blogger.com/atom/ns#' term='concatenate'/><title type='text'>PowerShell File Concatenation Script</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;Concatenates text files into a single file for printing, text-zip-attachments, etc.&lt;br /&gt;File index is included at the top of the output file.&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:.5em 0em .5em .75em;margin:.5em 25% .2em 0em;"&gt;function concatFiles($outFile)&lt;br /&gt;{&lt;br /&gt;  begin&lt;br /&gt;  {&lt;br /&gt;    $date = get-date&lt;br /&gt;    [string[]] $filelist = @()  #empty string array&lt;br /&gt;    $filebreak = '-'*32&lt;br /&gt;  }&lt;br /&gt;  process&lt;br /&gt;  {&lt;br /&gt;    #for process-block vars, append data using +=&lt;br /&gt;    $_.fullname  #or "$_", console - show file name&lt;br /&gt;    $filelist += $_.fullname&lt;br /&gt;    $filedata += "$filebreak`nfile: $_`n"&lt;br /&gt;    $filedata += gc $_.fullname | out-string  #use out-string to restore linebreaks&lt;br /&gt;  }&lt;br /&gt;  end&lt;br /&gt;  {&lt;br /&gt;    $filecount = $filelist.length&lt;br /&gt;    "{0} files" -f $filecount  #console - show file count&lt;br /&gt;    $fileheader = "{0}`n" -f $date.toString('MM-dd-yy HH:mm:ss')&lt;br /&gt;    $fileheader += "concat output file: {0}`n{1} files" -f $outFile, $filecount&lt;br /&gt;    $fileheader            &gt;&gt; $outFile&lt;br /&gt;    $filelist              &gt;&gt; $outFile&lt;br /&gt;    $filedata + $filebreak &gt;&gt; $outFile&lt;br /&gt;  }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Concatenate all text files&lt;/b&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:.5em 0em .5em .75em;margin:.5em 25% .2em 0em;"&gt;gci c:\docs\* -inc *.txt -rec | concatFiles c:\temp\out.txt&lt;br /&gt;&lt;br /&gt;#powershell console output&lt;br /&gt;C:\docs\file1.txt&lt;br /&gt;C:\docs\file7.txt&lt;br /&gt;2 files&lt;br /&gt;&lt;br /&gt;#file output&lt;br /&gt;03-01-11 14:09:22&lt;br /&gt;concat output file: c:\temp\out.txt&lt;br /&gt;2 files&lt;br /&gt;C:\docs\file1.txt&lt;br /&gt;C:\docs\file7.txt&lt;br /&gt;--------------------------------&lt;br /&gt;file: C:\docs\file1.txt&lt;br /&gt;file 1&lt;br /&gt;...&lt;br /&gt;--------------------------------&lt;br /&gt;file: C:\docs\file7.txt&lt;br /&gt;file 7&lt;br /&gt;...&lt;br /&gt;--------------------------------&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Concatenate files modified on Jan 1 2011 or later&lt;/b&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:.5em 0em .5em .75em;margin:.5em 25% .2em 0em;"&gt;$files = "*.htm","*.css","*.js"&lt;br /&gt;gci c:\docs\* -inc $files -rec -force -ea silentlycontinue |&lt;br /&gt;  ?{$_.lastwritetime -gt [datetime]'01-01-2011'} | concatFiles c:\temp\out.txt&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-6245579067501765526?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/6245579067501765526/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2010/04/powershell-file-concatenation-script.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/6245579067501765526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/6245579067501765526'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2010/04/powershell-file-concatenation-script.html' title='PowerShell File Concatenation Script'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-852502350444052515</id><published>2010-03-31T00:24:00.000-07:00</published><updated>2010-03-31T10:25:38.068-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><title type='text'>Insert String Every N Characters</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;This PowerShell v2 script inserts a string every N characters. The interval is specified using the regex repetition operator, {min,max}.&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:0.5em 0em 0.5em 0.75em;margin-right:30%;margin-bottom:0em;"&gt;$a = 'abcdefghijklmnopqrstuvwxyz'&lt;br /&gt;([regex]::matches($a, '.{1,3}') | %{$_.value}) -join ' '&lt;br /&gt;([regex]::matches($a, '.{1,8}') | %{$_.value}) -join '..'&lt;br /&gt;([regex]::matches($a, '.{1}') | %{$_.value}) -join '-'&lt;br /&gt;&lt;br /&gt;#output&lt;br /&gt;abc def ghi jkl mno pqr stu vwx yz&lt;br /&gt;abcdefgh..ijklmnop..qrstuvwx..yz&lt;br /&gt;a-b-c-d-e-f-g-h-i-j-k-l-m-n-o-p-q-r-s-t-u-v-w-x-y-z&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-852502350444052515?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/852502350444052515/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2010/03/insert-string-every-n-characters.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/852502350444052515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/852502350444052515'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2010/03/insert-string-every-n-characters.html' title='Insert String Every N Characters'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-696532349151035172</id><published>2010-03-25T17:19:00.000-07:00</published><updated>2010-03-26T00:04:36.078-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='visual studio'/><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><title type='text'>.NET 4 Visual Studio 2010 Installation</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;This install order works for .NET 4 RC and Visual Studio 2010 Ultimate RC on Windows Server 2008 R2.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Installation Order&lt;/b&gt;&lt;br /&gt;1. .NET 4.0 RC&lt;br /&gt;2. Visual Studio 2010 RC*&lt;br /&gt;&lt;br /&gt;*Visual Studio custom install of C#, F#, Web Developer, &amp; Graphics Library. Requires 2.9GB of disk space.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-696532349151035172?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/696532349151035172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2010/03/net-4-visual-studio-2010-installation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/696532349151035172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/696532349151035172'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2010/03/net-4-visual-studio-2010-installation.html' title='.NET 4 Visual Studio 2010 Installation'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-8472545802805133544</id><published>2010-03-24T15:57:00.000-07:00</published><updated>2010-03-25T14:09:31.295-07:00</updated><title type='text'>Windows Server 2008 R2 Development Configuration</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;&lt;h3&gt;Roles&lt;/h3&gt;&lt;pre style="font-family:courier new;color:black;font-size:1.09em;margin-top:-1em;"&gt;IIS Web Server&lt;br /&gt;  Common HTTP Features&lt;br /&gt;    Static Content&lt;br /&gt;    Default Document&lt;br /&gt;    Directory Browsing&lt;br /&gt;    HTTP Errors&lt;br /&gt;    HTTP Redirection&lt;br /&gt;    &lt;br /&gt;  Application Development&lt;br /&gt;    ASP.NET&lt;br /&gt;    .NET Extensibility&lt;br /&gt;    ISAPI Extensions&lt;br /&gt;    ISAPI Filters  &lt;br /&gt;&lt;br /&gt;  Health and Diagnostics&lt;br /&gt;    HTTP Logging&lt;br /&gt;&lt;br /&gt;  Security&lt;br /&gt;    Request Filtering (required)  &lt;br /&gt;&lt;br /&gt;  Performance&lt;br /&gt;    Static Content Compression&lt;br /&gt;&lt;br /&gt;  Management Tools&lt;br /&gt;    IIS Management Console&lt;br /&gt;    IIS Management Scripts and Tools&lt;br /&gt;&lt;/pre&gt;&lt;h3&gt;Features&lt;/h3&gt;&lt;pre style="font-family:courier new;color:black;font-size:1.09em;margin-top:-1em;"&gt;Windows Process Activation Service (installed with web server role)&lt;br /&gt;  Process Model&lt;br /&gt;  .NET Environment&lt;br /&gt;  Configuration APIs&lt;br /&gt;&lt;br /&gt;WCF Activation (.NET 3, enable before installing .NET 4)&lt;br /&gt;  HTTP Activation&lt;br /&gt;  Non-HTTP Activation&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-8472545802805133544?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/8472545802805133544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2010/03/windows-server-2008-development.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/8472545802805133544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/8472545802805133544'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2010/03/windows-server-2008-development.html' title='Windows Server 2008 R2 Development Configuration'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-282279234436372938</id><published>2010-03-22T21:35:00.000-07:00</published><updated>2010-04-19T15:22:19.512-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><category scheme='http://www.blogger.com/atom/ns#' term='download'/><title type='text'>PowerShell Download File Script</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;This script downloads files asynchronously. It uses the .NET WebClient &lt;a href="http://msdn.microsoft.com/en-us/library/ms144196(VS.100).aspx" target="_blank"&gt;DownloadFileAsync&lt;/a&gt; method.&lt;br /&gt;Note that the download file path must exist.&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:0.5em 0em 0.5em 0.75em;margin-right:35%;margin-bottom:0em;"&gt;downloadFile 'http://www.foo.com/foo.iso' 'c:\temp\foo.iso'&lt;br /&gt;&lt;br /&gt;function downloadFile($uri, $filename)&lt;br /&gt;{&lt;br /&gt;  $webClient = new-object net.webclient&lt;br /&gt;  $webClient.downloadFileAsync($uri, $filename)&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-282279234436372938?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/282279234436372938/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2010/03/powershell-download-file-script.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/282279234436372938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/282279234436372938'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2010/03/powershell-download-file-script.html' title='PowerShell Download File Script'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-3412417745631158277</id><published>2010-03-15T01:10:00.000-07:00</published><updated>2010-03-15T21:41:28.740-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>JavaScript Namespaces</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;Two variations for implementing JavaScript namespaces.&lt;br /&gt;The &lt;b&gt;abc namespace&lt;/b&gt; syntax is the simplest and useful when only public members are being wrapped.&lt;br /&gt;The &lt;b&gt;xyz namespace&lt;/b&gt; syntax can be used for public and private members.&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:0.5em 0em 0.5em 0.75em;"&gt;var abc =&lt;br /&gt;{&lt;br /&gt;  version: '1.0',&lt;br /&gt;  foo: function()&lt;br /&gt;  {&lt;br /&gt;    return 'abc.foo';&lt;br /&gt;  }&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;var xyz = function()&lt;br /&gt;{&lt;br /&gt;  //private&lt;br /&gt;  var _version = '2.0';&lt;br /&gt;  function _foo()&lt;br /&gt;  {&lt;br /&gt;    return 'xyz.foo';&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  //public&lt;br /&gt;  return {&lt;br /&gt;    version: _version,  //access private var&lt;br /&gt;    foo: function()&lt;br /&gt;    {&lt;br /&gt;      return _foo();  //access private fx&lt;br /&gt;    },&lt;br /&gt;    bar: function(text)&lt;br /&gt;    {&lt;br /&gt;      return 'xyz.bar ' + text;&lt;br /&gt;    }&lt;br /&gt;  };&lt;br /&gt;}();  //self invoking fx&lt;/pre&gt;&lt;br /&gt;Examples&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:0.5em 0em 0.5em 0.75em;"&gt;abc.foo();&lt;br /&gt;abc.version;&lt;br /&gt;&lt;br /&gt;xyz.foo();&lt;br /&gt;xyz.bar('test');&lt;br /&gt;xyz.version;&lt;br /&gt;&lt;br /&gt;//output&lt;br /&gt;abc.foo&lt;br /&gt;1.0&lt;br /&gt;&lt;br /&gt;xyz.foo&lt;br /&gt;xyz.bar test&lt;br /&gt;2.0&lt;/pre&gt;&lt;br /&gt;Object Graphs in Firebug Watch Window&lt;br /&gt;&lt;div class="separator" style="clear:both;margin-top:0.7em;margin-bottom:0.7em;"&gt;&lt;a href="http://1.bp.blogspot.com/_N1voxYOFpac/S57x4IqkBtI/AAAAAAAAAII/ITuhHfoaRU8/s1600-h/jsNamespace.PNG" imageanchor="1"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_N1voxYOFpac/S57x4IqkBtI/AAAAAAAAAII/ITuhHfoaRU8/s640/jsNamespace.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;A slightly modified version showing sub namespaces, eg abc.demo.foo()&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:0.5em 0em 0.5em 0.75em;"&gt;var abc = {};&lt;br /&gt;abc.demo =&lt;br /&gt;{&lt;br /&gt;  version: '1.1',&lt;br /&gt;  foo: function()&lt;br /&gt;  {&lt;br /&gt;    return 'abc.demo.foo';&lt;br /&gt;  }&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;var xyz = {};&lt;br /&gt;xyz.demo = function()&lt;br /&gt;{&lt;br /&gt;  //private&lt;br /&gt;  var _version = '2.1';&lt;br /&gt;  function _foo()&lt;br /&gt;  {&lt;br /&gt;    return 'xyz.demo.foo';&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  //public&lt;br /&gt;  return {&lt;br /&gt;    version: _version,  //access private var&lt;br /&gt;    foo: function()&lt;br /&gt;    {&lt;br /&gt;      return _foo();  //access private fx&lt;br /&gt;    },&lt;br /&gt;    bar: function(text)&lt;br /&gt;    {&lt;br /&gt;      return 'xyz.demo.bar ' + text;&lt;br /&gt;    }&lt;br /&gt;  };&lt;br /&gt;}();  //self invoking fx&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;If you use libraries with nested namespaces, local references improve performance by minimizing member lookup.&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:0.5em 0em 0.5em 0.75em;"&gt;var abcd = abc.demo;&lt;br /&gt;abcd.foo();&lt;br /&gt;abcd.version;&lt;/pre&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-3412417745631158277?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/3412417745631158277/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2010/03/javascript-namespaces.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/3412417745631158277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/3412417745631158277'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2010/03/javascript-namespaces.html' title='JavaScript Namespaces'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_N1voxYOFpac/S57x4IqkBtI/AAAAAAAAAII/ITuhHfoaRU8/s72-c/jsNamespace.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-1178157213120729543</id><published>2010-03-13T09:26:00.000-08:00</published><updated>2010-03-14T13:28:40.794-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cryptography'/><category scheme='http://www.blogger.com/atom/ns#' term='hash'/><title type='text'>Hash Message Digest Comparisons</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;&lt;pre style="font-family:courier new;color:black;font-size:1.09em;"&gt;Hash    Bits  Bytes&lt;br /&gt;MD5     128   16  (128/8 = 16)&lt;br /&gt;SHA1    160   20&lt;br /&gt;SHA224  224   28&lt;br /&gt;SHA256  256   32&lt;br /&gt;SHA384  384   48&lt;br /&gt;SHA512  512   64&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-1178157213120729543?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/1178157213120729543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2010/03/hash-message-digest-comparisons.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/1178157213120729543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/1178157213120729543'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2010/03/hash-message-digest-comparisons.html' title='Hash Message Digest Comparisons'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-224006479682344067</id><published>2010-03-09T01:17:00.000-08:00</published><updated>2010-03-15T18:12:46.166-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='entropy'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>Password Entropy</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;&lt;a href="http://en.wikipedia.org/wiki/Information_entropy" target="_blank"&gt;Entropy Information Theory - Wikipedia&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Password_strength#Entropy.2C_or_bit_strength" target="_blank"&gt;Password Strength - Wikipedia&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Entropy Bits Formula&lt;/b&gt;&lt;br /&gt;log N / log 2&lt;br /&gt;N is the number of possible symbols in set&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding:0.5em 0em 0.5em 0.75em;margin-right:60%;margin-bottom:1.5em"&gt;#PowerShell&lt;br /&gt;[math]::log($N)/[math]::log(2)&lt;br /&gt;&lt;/pre&gt;&lt;b&gt;Entropy Table to 256 Bits&lt;/b&gt;&lt;pre style="font-family:courier new;color:black;font-size:1.09em;margin-top:0.3em;"&gt;Set Count  Bits Per Char  Set Characters&lt;br /&gt;10         3.322          numeric 0-9&lt;br /&gt;26         4.7            case insensitive alpha a-z&lt;br /&gt;36         5.17           case insensitive alphanumeric a-z, 0-9&lt;br /&gt;52         5.7            case sensitive alpha a-z, A-Z&lt;br /&gt;62         5.954          case sensitive alphanumeric a-z, A-Z, 0-9&lt;br /&gt;94         6.555          ascii characters a-z, A-Z, 0-9, symbols&lt;br /&gt;95         6.57           ascii characters a-z, A-Z, 0-9, symbols including space&lt;br /&gt;&lt;br /&gt;Len N=10     N=26     N=36     N=52     N=62     N=94     N=95&lt;br /&gt;1   3.322    4.7      5.17     5.7      5.954    6.555    6.57&lt;br /&gt;2   6.644    9.401    10.34    11.401   11.908   13.109   13.14&lt;br /&gt;3   9.966    14.101   15.51    17.101   17.863   19.664   19.71&lt;br /&gt;4   13.288   18.802   20.68    22.802   23.817   26.218   26.279&lt;br /&gt;5   16.61    23.502   25.85    28.502   29.771   32.773   32.849&lt;br /&gt;6   19.932   28.203   31.02    34.203   35.725   39.328   39.419&lt;br /&gt;7   23.253   32.903   36.189   39.903   41.679   45.882   45.989&lt;br /&gt;8   26.575   37.604   41.359   45.604   47.634   52.437   52.559&lt;br /&gt;9   29.897   42.304   46.529   51.304   53.588   58.991   59.129&lt;br /&gt;10  33.219   47.004   51.699   57.004   59.542   65.546   65.699&lt;br /&gt;11  36.541   51.705   56.869   62.705   65.496   72.1     72.268&lt;br /&gt;12  39.863   56.405   62.039   68.405   71.45    78.655   78.838&lt;br /&gt;13  43.185   61.106   67.209   74.106   77.405   85.21    85.408&lt;br /&gt;14  46.507   65.806   72.379   79.806   83.359   91.764   91.978&lt;br /&gt;15  49.829   70.507   77.549   85.507   89.313   98.319   98.548&lt;br /&gt;16  53.151   75.207   82.719   91.207   95.267   104.873  105.118&lt;br /&gt;17  56.473   79.907   87.889   96.907   101.221  111.428  111.688&lt;br /&gt;18  59.795   84.608   93.059   102.608  107.176  117.983  118.257&lt;br /&gt;19  63.117   89.308   98.229   108.308  113.13   124.537  124.827&lt;br /&gt;20  66.439   94.009   103.399  114.009  119.084  131.092  131.397&lt;br /&gt;21  69.76    98.709   108.568  119.709  125.038  137.646  137.967&lt;br /&gt;22  73.082   103.41   113.738  125.41   130.992  144.201  144.537&lt;br /&gt;23  76.404   108.11   118.908  131.11   136.947  150.756  151.107&lt;br /&gt;24  79.726   112.811  124.078  136.811  142.901  157.31   157.677&lt;br /&gt;25  83.048   117.511  129.248  142.511  148.855  163.865  164.246&lt;br /&gt;26  86.37    122.211  134.418  148.211  154.809  170.419  170.816&lt;br /&gt;27  89.692   126.912  139.588  153.912  160.763  176.974  177.386&lt;br /&gt;28  93.014   131.612  144.758  159.612  166.717  183.528  183.956&lt;br /&gt;29  96.336   136.313  149.928  165.313  172.672  190.083  190.526&lt;br /&gt;30  99.658   141.013  155.098  171.013  178.626  196.638  197.096&lt;br /&gt;31  102.98   145.714  160.268  176.714  184.58   203.192  203.666&lt;br /&gt;32  106.302  150.414  165.438  182.414  190.534  209.747  210.235&lt;br /&gt;33  109.624  155.115  170.608  188.115  196.488  216.301  216.805&lt;br /&gt;34  112.946  159.815  175.777  193.815  202.443  222.856  223.375&lt;br /&gt;35  116.267  164.515  180.947  199.515  208.397  229.411  229.945&lt;br /&gt;36  119.589  169.216  186.117  205.216  214.351  235.965  236.515&lt;br /&gt;37  122.911  173.916  191.287  210.916  220.305  242.52   243.085&lt;br /&gt;38  126.233  178.617  196.457  216.617  226.259  249.074  249.655&lt;br /&gt;39  129.555  183.317  201.627  222.317  232.214  255.629  256.224&lt;br /&gt;40  132.877  188.018  206.797  228.018  238.168  262.184&lt;br /&gt;41  136.199  192.718  211.967  233.718  244.122&lt;br /&gt;42  139.521  197.418  217.137  239.418  250.076&lt;br /&gt;43  142.843  202.119  222.307  245.119  256.03&lt;br /&gt;44  146.165  206.819  227.477  250.819&lt;br /&gt;45  149.487  211.52   232.647  256.52&lt;br /&gt;46  152.809  216.22   237.817&lt;br /&gt;47  156.131  220.921  242.986&lt;br /&gt;48  159.453  225.621  248.156&lt;br /&gt;49  162.774  230.322  253.326&lt;br /&gt;50  166.096  235.022  258.496&lt;br /&gt;51  169.418  239.722&lt;br /&gt;52  172.74   244.423&lt;br /&gt;53  176.062  249.123&lt;br /&gt;54  179.384  253.824&lt;br /&gt;55  182.706  258.524&lt;br /&gt;56  186.028&lt;br /&gt;57  189.35&lt;br /&gt;58  192.672&lt;br /&gt;59  195.994&lt;br /&gt;60  199.316&lt;br /&gt;61  202.638&lt;br /&gt;62  205.96&lt;br /&gt;63  209.281&lt;br /&gt;64  212.603&lt;br /&gt;65  215.925&lt;br /&gt;66  219.247&lt;br /&gt;67  222.569&lt;br /&gt;68  225.891&lt;br /&gt;69  229.213&lt;br /&gt;70  232.535&lt;br /&gt;71  235.857&lt;br /&gt;72  239.179&lt;br /&gt;73  242.501&lt;br /&gt;74  245.823&lt;br /&gt;75  249.145&lt;br /&gt;76  252.467&lt;br /&gt;77  255.788&lt;br /&gt;78  259.11&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-224006479682344067?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/224006479682344067/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2010/03/password-entropy.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/224006479682344067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/224006479682344067'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2010/03/password-entropy.html' title='Password Entropy'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-4017325591962427871</id><published>2010-03-08T11:53:00.000-08:00</published><updated>2010-03-13T10:29:05.064-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='alpha'/><title type='text'>Alpha</title><content type='html'>95 characters, including space&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family:courier new;font-size:2.75em;letter-spacing:.1em;"&gt;0123456789&lt;br /&gt;abcdefghijklmnopqrstuvwxyz&lt;br /&gt;ABCDEFGHIJKLMNOPQRSTUVWXYZ&lt;br /&gt;&amp;nbsp;`!@#$%^&amp;*()-=[]\;',./~_+{}|:"&amp;lt;&amp;gt;?&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-4017325591962427871?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/4017325591962427871/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2010/03/alpha.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/4017325591962427871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/4017325591962427871'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2010/03/alpha.html' title='Alpha'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-391587918402576424</id><published>2010-02-06T21:25:00.000-08:00</published><updated>2010-02-06T23:54:58.724-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><title type='text'>PowerShell Asynchronous Background Jobs</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd878288(VS.85).aspx" target="_blank"&gt;PowerShell Background Jobs - MSDN&lt;/a&gt;.&lt;br /&gt;Requires &lt;a href="http://support.microsoft.com/kb/968929" target="_blank"&gt;PowerShell v2&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Job Cmdlets&lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/dd347692.aspx" target="_blank"&gt;start-job&lt;/a&gt;&lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/dd315354.aspx" target="_blank"&gt;get-job&lt;/a&gt;&lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/dd347597.aspx" target="_blank"&gt;receive-job&lt;/a&gt;&lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/dd315361.aspx" target="_blank"&gt;stop-job&lt;/a&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding-left:0.75em;padding-top:0.5em;padding-bottom:0.5em;margin-bottom:0em;"&gt;start-job {&lt;br /&gt;  #...&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding-left:0.75em;padding-top:0.5em;padding-bottom:0.5em;margin-top:0em;margin-bottom:0em;"&gt;#with parameters&lt;br /&gt;start-job {param($p1, $p2)&lt;br /&gt;  $p1&lt;br /&gt;  $p2&lt;br /&gt;} -argumentList 'foo', 123&lt;br /&gt;&lt;br /&gt;#output&lt;br /&gt;foo&lt;br /&gt;123&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding-left:0.75em;padding-top:0.5em;padding-bottom:0.5em;margin-top:0em;margin-bottom:0em;"&gt;#execute N times&lt;br /&gt;start-job {&lt;br /&gt;  1..3 |&lt;br /&gt;    %{&lt;br /&gt;        (get-date).toString('HH:mm:ss')&lt;br /&gt;        sleep 1&lt;br /&gt;     }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#output&lt;br /&gt;20:32:51&lt;br /&gt;20:32:52&lt;br /&gt;20:32:53&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding-left:0.75em;padding-top:0.5em;padding-bottom:0.5em;margin-top:0em;margin-bottom:0em;"&gt;#execute N times with script block begin-process-end clause&lt;br /&gt;start-job {&lt;br /&gt;  begin&lt;br /&gt;  {&lt;br /&gt;    'begin script...'&lt;br /&gt;  }&lt;br /&gt;  process&lt;br /&gt;  {&lt;br /&gt;    1..3 | %{(get-date).toString('HH:mm:ss'); sleep 1;}&lt;br /&gt;  }&lt;br /&gt;  end&lt;br /&gt;  {&lt;br /&gt;    'end script...'&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#output&lt;br /&gt;begin script...&lt;br /&gt;20:35:42&lt;br /&gt;20:35:43&lt;br /&gt;20:35:44&lt;br /&gt;end script...&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding-left:0.75em;padding-top:0.5em;padding-bottom:0.5em;margin-top:0em;"&gt;#infinite loop, stop job during sleep interval&lt;br /&gt;start-job {param($sleep)&lt;br /&gt;  while ($true)&lt;br /&gt;  {&lt;br /&gt;    #...&lt;br /&gt;&lt;br /&gt;    $now = get-date&lt;br /&gt;    'sleep {0}, {1} - {2}' -f $sleep, $now.toString('HH:mm:ss'), $now.addSeconds($sleep).toString('HH:mm:ss')&lt;br /&gt;    sleep $sleep&lt;br /&gt;  }&lt;br /&gt;} -argumentList 60&lt;br /&gt;&lt;br /&gt;#output&lt;br /&gt;sleep 60, 20:41:06 - 20:42:06&lt;br /&gt;sleep 60, 20:42:06 - 20:43:06&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-391587918402576424?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/391587918402576424/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2010/02/powershell-asynchronous-background-jobs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/391587918402576424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/391587918402576424'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2010/02/powershell-asynchronous-background-jobs.html' title='PowerShell Asynchronous Background Jobs'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-5800751951770085116</id><published>2010-02-05T12:32:00.000-08:00</published><updated>2010-04-28T16:01:37.425-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><category scheme='http://www.blogger.com/atom/ns#' term='generic'/><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='f#'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><title type='text'>Generic Array to String Function</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;&lt;b&gt;ArrayToString&lt;/b&gt; returns an array as a formatted string. This generic function works with arrays of all types.&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding-left:0.75em;padding-top:0.5em;padding-bottom:0.5em;margin-bottom:0em;"&gt;//C#&lt;br /&gt;using System.Text;&lt;br /&gt;&lt;br /&gt;namespace ExpressionSoftware.System&lt;br /&gt;{&lt;br /&gt;    public static class Array&lt;br /&gt;    {&lt;br /&gt;        public static string ArrayToString&amp;lt;T&amp;gt;(T[] array, string format)&lt;br /&gt;        {&lt;br /&gt;            return ArrayToString(array, format, 16);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public static string ArrayToString&amp;lt;T&amp;gt;(T[] array, string format, int stringBuilderItemCapacity)&lt;br /&gt;        {&lt;br /&gt;            var sb = new StringBuilder(array.Length * stringBuilderItemCapacity);&lt;br /&gt;            foreach (T item in array)&lt;br /&gt;            {&lt;br /&gt;                sb.AppendFormat(format, item);&lt;br /&gt;            }&lt;br /&gt;            return sb.ToString();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding-left:0.75em;padding-top:0.5em;padding-bottom:0.5em;margin-top:0em;margin-bottom:0em;"&gt;//F# v1.9.7.8&lt;br /&gt;namespace ExpressionSoftware.System&lt;br /&gt;open System.Text&lt;br /&gt;&lt;br /&gt;type Array =&lt;br /&gt;  &lt;br /&gt;  //stringBuilderItemCapacity is an optional int parameter&lt;br /&gt;  static member ArrayToString(array:'a[], format:string, ?stringBuilderItemCapacity:int) =&lt;br /&gt;    &lt;br /&gt;    let stringBuilderItemCapacity =&lt;br /&gt;      match stringBuilderItemCapacity with&lt;br /&gt;        | Some(stringBuilderItemCapacity) -&gt; stringBuilderItemCapacity&lt;br /&gt;        | None -&gt; 16&lt;br /&gt;&lt;br /&gt;    let sb = new StringBuilder(array.Length * stringBuilderItemCapacity)&lt;br /&gt;    array |&gt; Array.iter(fun b -&gt; sb.AppendFormat(format, b) |&gt; ignore)&lt;br /&gt;    sb.ToString()&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding-left:0.75em;padding-top:0.5em;padding-bottom:0.5em;margin-top:0em;"&gt;#PowerShell&lt;br /&gt;function arrayToString($array, $format)&lt;br /&gt;{&lt;br /&gt;  $array | %{$result += ($format -f $_)}&lt;br /&gt;  $result&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Examples&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding-left:0.75em;padding-top:0.5em;padding-bottom:0.5em;margin-bottom:0em;"&gt;//C#&lt;br /&gt;byte[] bytes = { 0, 1, 255 };&lt;br /&gt;int[] ints = { int.MinValue, -1, 0, 256, int.MaxValue };&lt;br /&gt;float[] floats = { -9.99f, 0f, 3.14159f };&lt;br /&gt;char[] chars = { 'a', 'b', 'c', '1', '2', '3' };&lt;br /&gt;string[] strings = { "xyz", "789" };&lt;br /&gt;&lt;br /&gt;Debug.WriteLine(Array.ArrayToString(bytes, "{0}", 3));&lt;br /&gt;Debug.WriteLine(Array.ArrayToString(bytes, "{0} "));&lt;br /&gt;Debug.WriteLine(Array.ArrayToString(ints, "{0} "));&lt;br /&gt;Debug.WriteLine(Array.ArrayToString(floats, "{0} "));&lt;br /&gt;Debug.WriteLine(Array.ArrayToString(chars, "{0}", 1));&lt;br /&gt;Debug.WriteLine(Array.ArrayToString(chars, "{0},", 2));&lt;br /&gt;Debug.WriteLine(Array.ArrayToString(strings, "{0} ", 4));&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding-left:0.75em;padding-top:0.5em;padding-bottom:0.5em;margin-top:0em;margin-bottom:0em;"&gt;//F#&lt;br /&gt;let bytes = [|0uy; 1uy; 255uy|]&lt;br /&gt;let ints = [|Int32.MinValue; -1; 0; 256; Int32.MaxValue|]&lt;br /&gt;let floats = [|-9.99f; 0.0f; 3.14159f|]&lt;br /&gt;let chars = [|'a'; 'b'; 'c'; '1'; '2'; '3'|]&lt;br /&gt;let strings = [|"xyz"; "789"|]&lt;br /&gt;&lt;br /&gt;Array.ArrayToString(bytes, "{0}", 3) |&gt; (fun s -&gt; printfn "%s" s)&lt;br /&gt;Array.ArrayToString(bytes, "{0} ") |&gt; (fun s -&gt; printfn "%s" s)&lt;br /&gt;Array.ArrayToString(ints, "{0} ") |&gt; (fun s -&gt; printfn "%s" s)&lt;br /&gt;Array.ArrayToString(floats, "{0} ") |&gt; (fun s -&gt; printfn "%s" s)&lt;br /&gt;Array.ArrayToString(chars, "{0}", 1) |&gt; (fun s -&gt; printfn "%s" s)&lt;br /&gt;Array.ArrayToString(chars, "{0},", 2) |&gt; (fun s -&gt; printfn "%s" s)&lt;br /&gt;Array.ArrayToString(strings, "{0} ", 4) |&gt; (fun s -&gt; printfn "%s" s)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding-left:0.75em;padding-top:0.5em;padding-bottom:0.5em;margin-top:0em;"&gt;#PowerShell&lt;br /&gt;[byte[]]$bytes = 0, 1, 255&lt;br /&gt;[int[]] $ints = [int32]::MinValue, -1, 0, 256, [int32]::MaxValue&lt;br /&gt;[single[]] $floats = -9.99, 0, 3.14159&lt;br /&gt;[char[]] $chars = 'a', 'b', 'c', '1', '2', '3'&lt;br /&gt;[string[]] $strings = 'xyz', '789'&lt;br /&gt;&lt;br /&gt;arrayToString $bytes '{0}'&lt;br /&gt;arrayToString $bytes '{0} '&lt;br /&gt;arrayToString $ints '{0} '&lt;br /&gt;arrayToString $floats '{0} '&lt;br /&gt;arrayToString $chars '{0}'&lt;br /&gt;arrayToString $chars '{0},'&lt;br /&gt;arrayToString $strings '{0} '&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Output&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding-left:0.75em;padding-top:0.5em;padding-bottom:0.5em;margin-bottom:0em;"&gt;01255&lt;br /&gt;0 1 255 &lt;br /&gt;-2147483648 -1 0 256 2147483647 &lt;br /&gt;-9.99 0 3.14159 &lt;br /&gt;abc123&lt;br /&gt;a,b,c,1,2,3,&lt;br /&gt;xyz 789 &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-5800751951770085116?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/5800751951770085116/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2010/02/generic-array-to-string-function.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/5800751951770085116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/5800751951770085116'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2010/02/generic-array-to-string-function.html' title='Generic Array to String Function'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-5049784892216626030</id><published>2010-01-31T23:06:00.000-08:00</published><updated>2010-03-14T13:26:51.553-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><title type='text'>jQuery Template Page</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;This page can be used for quick-start jQuery development.&lt;br /&gt;&lt;a href="http://api.jquery.com/" target="_blank"&gt;jQuery v1.4.x&lt;/a&gt; is loaded from the &lt;a href="http://code.google.com/apis/ajaxlibs/" target="_blank"&gt;Google AJAX Libraries API&lt;/a&gt; site.&lt;br /&gt;Page caching is disabled via meta tags to make it easy to test changes.&lt;br /&gt;&lt;pre style="background-color:gainsboro; color:black; font-family:courier new; padding-bottom:0.5em; padding-left:0.75em; padding-top:0.5em;"&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml"&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;jQuery Template&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;meta http-equiv="Pragma" content="no-cache" /&amp;gt;&lt;br /&gt;&amp;lt;meta http-equiv="Expires" content="-1" /&amp;gt;&lt;br /&gt;&amp;lt;style type="text/css"&amp;gt;body,input,button{font-family:Verdana,Sans-Serif;font-size:.9em;}&amp;lt;/style&amp;gt;&lt;br /&gt;&amp;lt;script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js" type="text/javascript"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;  //$(document).ready(function(){alert('DOM ready');});&lt;br /&gt;  //$(document).ready(f1);&lt;br /&gt;  function f1()&lt;br /&gt;  {&lt;br /&gt;    alert('f1() - DOM ready');&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  function f2()&lt;br /&gt;  {&lt;br /&gt;    var input = $.trim($("#input1").val());&lt;br /&gt;    $("#label1").text(input);&lt;br /&gt;  }&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;  &amp;lt;!--form &amp;amp; submit button allows user to submit by pressing enter key &lt;br /&gt;    while input text box has focus - instead of having to manually click &lt;br /&gt;    button or tabbing to button and pressing space key--&amp;gt;&lt;br /&gt;  &amp;lt;form action=""&amp;gt;&lt;br /&gt;    &amp;lt;label id="label1"&amp;gt;label1&amp;lt;/label&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;    &amp;lt;input id="input1" type="text" maxlength="32" title="input" /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;    &amp;lt;input type="submit" /&amp;gt;&lt;br /&gt;  &amp;lt;/form&amp;gt;&lt;br /&gt;  &lt;br /&gt;  &amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;    $("form").submit(function(){f2(); return false;});&lt;br /&gt;  &amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear:both; text-align:center;"&gt;&lt;a href="http://1.bp.blogspot.com/_N1voxYOFpac/S2akUH3ABAI/AAAAAAAAAHA/-MKWAkucSx0/s1600-h/jqueryTemplate.PNG" imageanchor="1" style="clear:left;float:left;margin-bottom:1em;margin-right:1em;"&gt;&lt;img border="0" height="216" width="476"  src="http://1.bp.blogspot.com/_N1voxYOFpac/S2akUH3ABAI/AAAAAAAAAHA/-MKWAkucSx0/s640/jqueryTemplate.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-5049784892216626030?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/5049784892216626030/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2010/02/jquery-template-page.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/5049784892216626030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/5049784892216626030'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2010/02/jquery-template-page.html' title='jQuery Template Page'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_N1voxYOFpac/S2akUH3ABAI/AAAAAAAAAHA/-MKWAkucSx0/s72-c/jqueryTemplate.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-4454377346040277574</id><published>2009-11-29T09:20:00.000-08:00</published><updated>2010-02-05T14:33:49.676-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><title type='text'>PowerShell Load Assembly Function</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;&lt;b&gt;LoadAssembly&lt;/b&gt; loads an assembly into the PowerShell session.&lt;br /&gt;&lt;br /&gt;Note that unloading an assembly from PowerShell requires closing the PowerShell window, so close the window before trying to rebuild or delete a loaded assembly.&lt;pre style="font-family:courier new;color:black;background-color:rgb(220, 220, 220);padding-left:0.75em;padding-top:0.5em;padding-bottom:0.5em;"&gt;function loadAssembly($file)&lt;br /&gt;{&lt;br /&gt;  [system.reflection.assembly]::loadfile($file) | out-null&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;Example&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220, 220, 220);padding-left:0.75em;padding-top:0.5em;padding-bottom:0.5em;"&gt;loadAssembly c:\lib\file.dll&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-4454377346040277574?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/4454377346040277574/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2009/11/powershell-load-assembly-function.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/4454377346040277574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/4454377346040277574'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2009/11/powershell-load-assembly-function.html' title='PowerShell Load Assembly Function'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-2442433792112917568</id><published>2009-11-27T21:50:00.001-08:00</published><updated>2009-11-28T00:02:27.221-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><category scheme='http://www.blogger.com/atom/ns#' term='compression'/><title type='text'>YUI Compressor for JavaScript and CSS</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;The &lt;a href="http://developer.yahoo.com/yui/compressor/" target="_blank"&gt;YUI Compressor&lt;/a&gt; can be used to compress JavaScript and CSS files. It also offers a low-security JavaScript obfuscation option via local symbol renaming - it does not rename functions.&lt;br /&gt;&lt;br /&gt;The tool requires the Java SDK 1.4 or later and can be run from the command line. The command line is useful because formatted, commented JavaScript can be used for development and compressed versions can be easily generated for test and prod.&lt;br /&gt;&lt;br /&gt;To avoid compression build errors, verify your file text encoding. For Visual Studio UTF-8, make sure to select the "Unicode UTF-8 without signature" encoding from the File - Advanced Save Options menu. Then include the charset UTF-8 option in the command.&lt;br /&gt;&lt;br /&gt;Example - run as one line&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220, 220, 220);padding-left:0.75em;padding-top:0.5em;padding-bottom:0.5em;"&gt;java -jar c:\lib\yui\yuicompressor-2.4.2.jar&lt;br /&gt;c:\code\web\scripts\file.js&lt;br /&gt;-o c:\code\web\scripts\file.min.js&lt;br /&gt;--charset utf-8&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-2442433792112917568?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/2442433792112917568/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2009/11/yui-compressor-for-javascript-and-css.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/2442433792112917568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/2442433792112917568'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2009/11/yui-compressor-for-javascript-and-css.html' title='YUI Compressor for JavaScript and CSS'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-8739741516791434129</id><published>2009-11-22T13:40:00.001-08:00</published><updated>2010-02-05T13:34:18.905-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><category scheme='http://www.blogger.com/atom/ns#' term='zip'/><category scheme='http://www.blogger.com/atom/ns#' term='sharpZipLib'/><title type='text'>PowerShell SharpZipLib Script</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;These PowerShell scripts can be used to zip and unzip files.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Zip&lt;/b&gt; operates on file lists such as output from the Get-ChildItem cmdlet. You can set the zip file root folder by specifying the leading folder path to remove. The Where-Object cmdlet can be used for advanced filtering. This function does not zip empty folders. See the &lt;a href="http://wiki.sharpdevelop.net/" target="_blank"&gt;SharpZipLib wiki&lt;/a&gt; for examples of zipping empty folders. Also, this function does not work with files that are locked, such as log files that are being written.&lt;br /&gt;&lt;br /&gt;The free &lt;a href="http://www.icsharpcode.net/openSource/sharpZipLib/" target="_blank"&gt;SharpZipLib .NET Zip assembly&lt;/a&gt; is used for zip functionality. You'll need to download the assembly and load it into PowerShell to run the scripts. Note that after you download or copy the assembly locally, you may have to trust the assembly. To do this, right-click the assembly and trust (unblock) it. Other related info can be found the &lt;a href="http://wiki.sharpdevelop.net/" target="_blank"&gt;SharpZipLib&lt;/a&gt; wiki.&lt;br /&gt;&lt;br /&gt;These PowerShell scripts were tested using SharpZipLib version 0.85.5.&lt;br /&gt;Strong name: ICSharpCode.SharpZipLib, Version=0.85.5.452, Culture=neutral, PublicKeyToken=1b03e6acf1164f73&lt;pre style="font-family:courier new;color:black;background-color:rgb(220, 220, 220);padding-left:0.75em;padding-top:0.5em;padding-bottom:0.5em;"&gt;function zip($zipFile, $leadingFolderPathToRemove)&lt;br /&gt;{&lt;br /&gt;  begin&lt;br /&gt;  {&lt;br /&gt;    $zip = [icSharpCode.sharpZipLib.zip.zipFile]::create($zipFile)&lt;br /&gt;    $zip.beginUpdate()&lt;br /&gt;  &lt;br /&gt;    #add trailing backslash if necessary&lt;br /&gt;    $leadingFolderPathToRemove = (join-path $leadingFolderPathToRemove '\')&lt;br /&gt;  }&lt;br /&gt;  process&lt;br /&gt;  {&lt;br /&gt;    #remove leading folder path from file name&lt;br /&gt;    $file = $_.fullName.remove(0, $leadingFolderPathToRemove.length)&lt;br /&gt;    $zip.add($_.fullName, $file)&lt;br /&gt;  }&lt;br /&gt;  end&lt;br /&gt;  {&lt;br /&gt;    $zip.commitUpdate()&lt;br /&gt;    '{0} files zipped' -f $zip.count&lt;br /&gt;    $zip.close()&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function unzip($zipFile, $unzipToFolder)&lt;br /&gt;{&lt;br /&gt;  $zip = new-object icSharpCode.sharpZipLib.zip.fastZip&lt;br /&gt;  $zip.extractZip($zipFile, $unzipToFolder, $null)&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;Examples&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220, 220, 220);padding-left:0.75em;padding-top:0.5em;padding-bottom:0.5em;"&gt;loadAssembly c:\lib\sharpZipLib\ICSharpCode.SharpZipLib.dll&lt;br /&gt;&lt;br /&gt;#zip all files from folder c:\code\web\ into c:\temp\web.zip&lt;br /&gt;gci c:\code\web\* -include *.* -recurse -force | zip c:\temp\web.zip c:\code\web\&lt;br /&gt;&lt;br /&gt;#only files modified 11-22-2009 or later&lt;br /&gt;gci c:\code\web\* -include *.* -recurse -force |&lt;br /&gt;where {$_.lastWriteTime -ge [dateTime]"11-22-2009 00:00"} |&lt;br /&gt;zip c:\temp\web.zip c:\code\web\&lt;br /&gt;&lt;br /&gt;#exclude files: *.csproj*, *.pdb, *.refresh, *.sln, *.suo&lt;br /&gt;#exclude folders: debug, obj, release, properties&lt;br /&gt;$excludeRegex = '(\.(csproj(.*)|pdb|refresh|sln|suo)$)|(\\(debug|obj|release|properties)(\\|$))'&lt;br /&gt;gci c:\code\web\* -include *.* -recurse -force |&lt;br /&gt;where {$_.fullName -notMatch $excludeRegex} |&lt;br /&gt;zip c:\temp\web.zip c:\code\web\&lt;br /&gt;&lt;br /&gt;#unzip c:\temp\web.zip into folder c:\temp\unzip\web\&lt;br /&gt;unzip c:\temp\web.zip c:\temp\unzip\web&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-8739741516791434129?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/8739741516791434129/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2009/11/powershell-sharpziplib-script.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/8739741516791434129'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/8739741516791434129'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2009/11/powershell-sharpziplib-script.html' title='PowerShell SharpZipLib Script'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-2878238427991537118</id><published>2009-11-15T19:58:00.000-08:00</published><updated>2009-11-16T01:06:46.536-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><category scheme='http://www.blogger.com/atom/ns#' term='search'/><category scheme='http://www.blogger.com/atom/ns#' term='regular expressions'/><title type='text'>PowerShell Find Files Script</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;&lt;b&gt;FindFiles&lt;/b&gt; returns a list of files that contain the search text. The search can be plain text or a regular expression.&lt;br/&gt;&lt;br /&gt;This function is similar to using the &lt;b&gt;Select-String&lt;/b&gt; cmdlet with the -list switch parameter. The difference is that FindFiles supports searching across line breaks. See the examples that use the "dot matches line breaks" regex pattern (?s).&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding-left:0.75em;padding-top:0.5em;padding-bottom:0.5em;"&gt;function findFiles($text)&lt;br /&gt;{&lt;br /&gt;  begin&lt;br /&gt;  {&lt;br /&gt;    $count = 0&lt;br /&gt;  }&lt;br /&gt;  process&lt;br /&gt;  {&lt;br /&gt;    $data = [system.io.file]::readAllText($_.fullname)&lt;br /&gt;    if ($data -match $text)  #if matches at least once...&lt;br /&gt;    {&lt;br /&gt;      $_.fullname&lt;br /&gt;      $count += 1 &lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;  end&lt;br /&gt;  {&lt;br /&gt;    "$count files found"&lt;br /&gt;  }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;Examples&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220, 220, 220);padding-left:0.75em;padding-top:0.5em;padding-bottom:0.5em;"&gt;#find files containing "abc"&lt;br /&gt;gci c:\* -include *.txt | findFiles 'abc'&lt;br /&gt;&lt;br /&gt;#find files containing "abc" or "xyz"&lt;br /&gt;gci c:\* -include *.txt | findFiles 'abc|xyz'&lt;br /&gt;&lt;br /&gt;#find files containing "abc", including across line breaks&lt;br /&gt;gci c:\* -include *.txt | findFiles '(?s)a.*bc|ab.*c'&lt;br /&gt;&lt;br /&gt;#find files containing "&amp;lt;abc&amp;gt;" tags, including across line breaks, and empty tags&lt;br /&gt;gci c:\* -include *.txt | findfiles '(?s)&amp;lt;abc&amp;gt;.*&amp;lt;/abc&amp;gt;|&amp;lt;abc/&amp;gt;'&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-2878238427991537118?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/2878238427991537118/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2009/11/powershell-find-files-script.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/2878238427991537118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/2878238427991537118'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2009/11/powershell-find-files-script.html' title='PowerShell Find Files Script'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-7961967104321847976</id><published>2009-08-19T19:55:00.000-07:00</published><updated>2010-02-05T15:23:52.513-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><category scheme='http://www.blogger.com/atom/ns#' term='cryptography'/><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='hash'/><category scheme='http://www.blogger.com/atom/ns#' term='f#'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>Hash Functions</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;&lt;b&gt;GetHash&lt;/b&gt; returns the hash value of a byte array.&lt;br /&gt;&lt;b&gt;GetHashStr&lt;/b&gt; returns the hash value of a string.&lt;br /&gt;&lt;br /&gt;These functions can use any of the hash classes from the System.Security.Cryptography namespace, e.g. MD5, SHA1, SHA256, SHA512.&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding-left:0.75em;padding-top:0.5em;padding-bottom:0.5em;margin-bottom:0em;"&gt;//C#&lt;br /&gt;using System;&lt;br /&gt;using System.Security.Cryptography;&lt;br /&gt;using System.Text;&lt;br /&gt;&lt;br /&gt;namespace ExpressionSoftware.Security.Crypt&lt;br /&gt;{&lt;br /&gt;    public static class Hash&lt;br /&gt;    {&lt;br /&gt;        public static byte[] GetHash(byte[] bs, Type hashType)&lt;br /&gt;        {&lt;br /&gt;            return HashAlgorithm.Create(hashType.Name).ComputeHash(bs);&lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;        public static byte[] GetHashStr(string input, Type hashType)&lt;br /&gt;        {&lt;br /&gt;            byte[] bs = Encoding.UTF8.GetBytes(input);&lt;br /&gt;            return GetHash(bs, hashType);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding-left:0.75em;padding-top:0.5em;padding-bottom:0.5em;margin-top:0em;margin-bottom:0em;"&gt;//F# v1.9.7.8&lt;br /&gt;namespace ExpressionSoftware.Security.Crypt&lt;br /&gt;open System&lt;br /&gt;open System.Security.Cryptography&lt;br /&gt;open System.Text&lt;br /&gt;&lt;br /&gt;module Hash =&lt;br /&gt;  let GetHash(bs:byte[], hashType:Type) =&lt;br /&gt;    HashAlgorithm.Create(hashType.Name).ComputeHash bs&lt;br /&gt;&lt;br /&gt;  let GetHashStr(input:string, hashType:Type) =&lt;br /&gt;    Encoding.UTF8.GetBytes input&lt;br /&gt;    |&gt; (fun bs -&gt; GetHash(bs, hashType))&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding-left:0.75em;padding-top:0.5em;padding-bottom:0.5em;margin-top:0em;"&gt;#PowerShell&lt;br /&gt;function getHash($bs, $hashType)&lt;br /&gt;{&lt;br /&gt;  $hashType::create().computeHash($bs)&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function getHashStr($inputStr, $hashType)&lt;br /&gt;{&lt;br /&gt;  getHash ([system.text.encoding]::utf8.getBytes($inputStr)) $hashType&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Examples&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding-left:0.75em;padding-top:0.5em;padding-bottom:0.5em;margin-bottom:0em;"&gt;//C#&lt;br /&gt;byte[] bs = Encoding.UTF8.GetBytes("foo");&lt;br /&gt;byte[] hash = Hash.GetHash(bs, typeof(SHA1));&lt;br /&gt;Debug.WriteLine(Byte.BytesToString(hash, "{0} "));&lt;br /&gt;11 238 199 181 234 63 15 219 201 93 13 212 127 60 91 194 117 218 138 51  //output&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding-left:0.75em;padding-top:0.5em;padding-bottom:0.5em;margin-top:0em;margin-bottom:0em;"&gt;//F#&lt;br /&gt;let hash = Hash.GetHashStr("foo", typeof&amp;lt;SHA1&amp;gt;)&lt;br /&gt;Byte.BytesToString(hash, "{0:x} ")&lt;br /&gt;|&gt; (fun s -&gt; printfn "%s" s)&lt;br /&gt;b ee c7 b5 ea 3f f db c9 5d d d4 7f 3c 5b c2 75 da 8a 33  //output&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding-left:0.75em;padding-top:0.5em;padding-bottom:0.5em;margin-top:0em;"&gt;#PowerShell&lt;br /&gt;$hashType = [system.security.cryptography.SHA1]&lt;br /&gt;$hash = getHashStr 'foo' $hashType&lt;br /&gt;bytesToString $hash '{0:X}'&lt;br /&gt;BEEC7B5EA3FFDBC95DDD47F3C5BC275DA8A33  #output&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-7961967104321847976?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/7961967104321847976/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2009/08/hash-functions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/7961967104321847976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/7961967104321847976'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2009/08/hash-functions.html' title='Hash Functions'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-743560501042461437</id><published>2009-08-18T18:42:00.000-07:00</published><updated>2010-02-05T13:49:43.399-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='f#'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><title type='text'>Bytes to String Function</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;&lt;b&gt;BytesToString&lt;/b&gt; returns a byte array as a formatted string.&lt;br /&gt;&lt;br /&gt;02-05-10 This function has been replaced with a generic version - &lt;a href="http://expressionsoftware.blogspot.com/2010/02/generic-array-to-string-function.html"&gt;Generic Array to String Function&lt;/a&gt;.&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding-left:0.75em;padding-top:0.5em;padding-bottom:0.5em;margin-bottom:0em;"&gt;//C#&lt;br /&gt;using System.Text;&lt;br /&gt;&lt;br /&gt;namespace ExpressionSoftware.System&lt;br /&gt;{&lt;br /&gt;    public static class Byte&lt;br /&gt;    {&lt;br /&gt;        public static string BytesToString(byte[] bs, string format)&lt;br /&gt;        {&lt;br /&gt;            var sb = new StringBuilder(bs.Length * 4);&lt;br /&gt;            foreach (byte b in bs)&lt;br /&gt;            {&lt;br /&gt;                sb.AppendFormat(format, b);&lt;br /&gt;            }&lt;br /&gt;            return sb.ToString();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding-left:0.75em;padding-top:0.5em;padding-bottom:0.5em;margin-top:0em;margin-bottom:0em;"&gt;//F# v1.9.7.8&lt;br /&gt;namespace ExpressionSoftware.System&lt;br /&gt;open System.Text&lt;br /&gt;&lt;br /&gt;module Byte =&lt;br /&gt;  let BytesToString(bs:byte[], format:string) =&lt;br /&gt;    let sb = new StringBuilder(bs.Length * 4)&lt;br /&gt;    bs |&gt; Array.iter(fun b -&gt; sb.AppendFormat(format, b) |&gt; ignore)&lt;br /&gt;    sb.ToString()&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding-left:0.75em;padding-top:0.5em;padding-bottom:0.5em;margin-top:0em;"&gt;#PowerShell&lt;br /&gt;function bytesToString($bs, $format)&lt;br /&gt;{&lt;br /&gt;  $bs | %{$result += ($format -f $_)}&lt;br /&gt;  $result&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Examples&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding-left:0.75em;padding-top:0.5em;padding-bottom:0.5em;margin-bottom:0em;"&gt;//C#&lt;br /&gt;byte[] bs = { 102, 111, 111 };&lt;br /&gt;Debug.WriteLine(Byte.BytesToString(bs, "{0}"));  //default format&lt;br /&gt;102111111  //output&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding-left:0.75em;padding-top:0.5em;padding-bottom:0.5em;margin-top:0em;margin-bottom:0em;"&gt;//F#&lt;br /&gt;let bs = [|102uy; 111uy; 111uy|]&lt;br /&gt;Byte.BytesToString(bs, "{0:d4}-")  //4 digit width format&lt;br /&gt;|&gt; (fun s -&gt; printfn "%s" s)&lt;br /&gt;0102-0111-0111-  //output&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding-left:0.75em;padding-top:0.5em;padding-bottom:0.5em;margin-top:0em;"&gt;#PowerShell&lt;br /&gt;[byte[]]$bs = 102,111,111&lt;br /&gt;bytesToString $bs '{0:x} ' #hex format&lt;br /&gt;66 6f 6f  #output&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-743560501042461437?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/743560501042461437/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2009/08/bytes-to-string-function.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/743560501042461437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/743560501042461437'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2009/08/bytes-to-string-function.html' title='Bytes to String Function'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-2601878782368334902</id><published>2009-08-14T15:38:00.001-07:00</published><updated>2010-02-05T22:45:35.102-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='search'/><category scheme='http://www.blogger.com/atom/ns#' term='f#'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><title type='text'>Listing Users From the Windows Event Log</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;&lt;b&gt;GetEventLogUsers&lt;/b&gt; returns a list of users from the Windows EventLogs, e.g. Application, Security, System. This function returns the entire dataset, unsorted. See examples for sorting and returning distinct lists.&lt;br /&gt;&lt;br /&gt;Note: This function works on Windows XP, but not Window Server 2008.&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding-left:0.75em;padding-top:0.5em;padding-bottom:0.5em;margin-bottom:0em;"&gt;//C#&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Diagnostics;&lt;br /&gt;using System.Linq;&lt;br /&gt;&lt;br /&gt;namespace ExpressionSoftware.EventLogs&lt;br /&gt;{&lt;br /&gt;    public static class EventLogQuery&lt;br /&gt;    {&lt;br /&gt;        public static IEnumerable&lt;string&gt; GetEventLogUsers(string logName)&lt;br /&gt;        {&lt;br /&gt;            EventLog log = new EventLog(logName);&lt;br /&gt;            var users = from e in log.Entries.Cast&lt;eventlogentry&gt;()&lt;br /&gt;                        select e.UserName;&lt;br /&gt;            return users;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding-left:0.75em;padding-top:0.5em;padding-bottom:0.5em;margin-top:0em;margin-bottom:0em;"&gt;//F# v1.9.7.8&lt;br /&gt;namespace ExpressionSoftware.EventLogs&lt;br /&gt;open System.Diagnostics&lt;br /&gt;&lt;br /&gt;module EventLogQuery =&lt;br /&gt;  let GetEventLogUsers logName =&lt;br /&gt;    let log = new EventLog(logName)&lt;br /&gt;    log.Entries&lt;br /&gt;    |&gt; Seq.cast&lt;br /&gt;    |&gt; Seq.map (fun x -&gt; x.UserName)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding-left:0.75em;padding-top:0.5em;padding-bottom:0.5em;margin-top:0em;"&gt;#PowerShell&lt;br /&gt;function getEventLogUsers($logName)&lt;br /&gt;{&lt;br /&gt;  $log = new-object system.diagnostics.eventLog($logName)&lt;br /&gt;  $log.entries | %{$_.username}&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Examples&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding-left:0.75em;padding-top:0.5em;padding-bottom:0.5em;margin-bottom:0em;"&gt;//C#&lt;br /&gt;var users = EventLogQuery.GetEventLogUsers("security");&lt;br /&gt;users = users.Distinct().OrderBy(u =&gt; u);&lt;br /&gt;foreach (string user in users)&lt;br /&gt;{&lt;br /&gt;    Debug.WriteLine(user);&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding-left:0.75em;padding-top:0.5em;padding-bottom:0.5em;margin-top:0em;margin-bottom:0em;"&gt;//F#&lt;br /&gt;let users = EventLogQuery.GetEventLogUsers "security" |&gt; Seq.distinct |&gt; Seq.sort&lt;br /&gt;for user in users do&lt;br /&gt;  printfn "%s" user&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding-left:0.75em;padding-top:0.5em;padding-bottom:0.5em;margin-top:0em;"&gt;#PowerShell&lt;br /&gt;getEventLogUsers 'security' | sort-object | get-unique&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Output&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220, 220, 220);padding-left:0.75em;padding-top:0.5em;padding-bottom:0.5em;"&gt;DEV\john&lt;br /&gt;NT AUTHORITY\ANONYMOUS LOGON&lt;br /&gt;NT AUTHORITY\LOCAL SERVICE&lt;br /&gt;NT AUTHORITY\NETWORK SERVICE&lt;br /&gt;NT AUTHORITY\SYSTEM&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-2601878782368334902?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/2601878782368334902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2009/08/listing-users-from-windows-event-log.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/2601878782368334902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/2601878782368334902'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2009/08/listing-users-from-windows-event-log.html' title='Listing Users From the Windows Event Log'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-9147707930988104059</id><published>2009-05-30T15:47:00.000-07:00</published><updated>2009-11-16T00:11:59.577-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><category scheme='http://www.blogger.com/atom/ns#' term='cryptography'/><category scheme='http://www.blogger.com/atom/ns#' term='hash'/><category scheme='http://www.blogger.com/atom/ns#' term='md5'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='sha'/><title type='text'>PowerShell Hash Scripts for File Comparisons</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;See the Windows PowerShell Cookbook recipe 17.10 "Get the MD5 or SHA1 Hash of a File", for original script.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;GetFileHash&lt;/b&gt; returns the hash value for a file. The hash type can be any hash class from the System.Security.Cryptography namespace, e.g. MD5, SHA1, SHA256, SHA512.&lt;br /&gt;&lt;b&gt;CompareFileHash&lt;/b&gt; returns true if the files have the same hash.&lt;br /&gt;&lt;b&gt;CompareFileHashInfo&lt;/b&gt; returns the hash comparison information.&lt;br /&gt;&lt;b&gt;GetFileHashObject&lt;/b&gt; returns a file hash wrapper object.&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding-left:0.75em;padding-top:0.5em;padding-bottom:0.5em;"&gt;function getFileHash($file, $hashType)&lt;br /&gt;{&lt;br /&gt;  $stream = new-object io.streamReader $file&lt;br /&gt;  $hash = $hashType::create().computeHash($stream.baseStream)&lt;br /&gt;  $stream.close()&lt;br /&gt;  trap&lt;br /&gt;  {&lt;br /&gt;    if ($stream -ne $null)&lt;br /&gt;    {&lt;br /&gt;      $stream.close()&lt;br /&gt;    }&lt;br /&gt;    break&lt;br /&gt;  }&lt;br /&gt;  [string] $hash&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function compareFileHash($file1, $file2, $hashType)&lt;br /&gt;{&lt;br /&gt;  (getFileHash $file1 $hashType) -eq (getFileHash $file2 $hashType)&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function compareFileHashInfo($file1, $file2, $hashType)&lt;br /&gt;{&lt;br /&gt;  $f1 = getFileHashObject $file1 $hashType&lt;br /&gt;  $f2 = getFileHashObject $file2 $hashType&lt;br /&gt;&lt;br /&gt;  $f1&lt;br /&gt;  $f2&lt;br /&gt;  "Hash Type: " + $hashType.name&lt;br /&gt;  "Duplicate Files: " + ($f1.hash -eq $f2.hash)&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function getFileHashObject($file, $hashType)&lt;br /&gt;{&lt;br /&gt;  $fileHash = new-object psObject&lt;br /&gt;  $fileHash | add-member noteProperty file $file&lt;br /&gt;  $fileHash | add-Member noteProperty hash (getFileHash $file $hashType)&lt;br /&gt;  return $fileHash&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;Examples&lt;br /&gt;&lt;pre style="font-family:courier new;color:black;background-color:rgb(220, 220, 220);padding-left:0.75em;padding-top:0.5em;padding-bottom:0.5em;"&gt;&gt;&gt; $hashType = [system.security.cryptography.MD5]&lt;br /&gt;&gt;&gt; getFileHash c:\file1.txt $hashType&lt;br /&gt;   52 85 168 127 81 223 163 157 187 191 244 34 221 99 48 201&lt;br /&gt;&lt;br /&gt;&gt;&gt; compareFileHash c:\file1.txt c:\file2.txt $hashType&lt;br /&gt;   False&lt;br /&gt;&lt;br /&gt;&gt;&gt; compareFileHashInfo c:\file1.txt c:\file2.txt $hashType | fl&lt;br /&gt;   file : c:\file1.txt&lt;br /&gt;   hash : 52 85 168 127 81 223 163 157 187 191 244 34 221 99 48 201&lt;br /&gt;   &lt;br /&gt;   file : c:\file2.txt&lt;br /&gt;   hash : 100 221 101 253 63 62 26 193 155 80 181 198 78 247 255 196&lt;br /&gt;   &lt;br /&gt;   Hash Type: MD5&lt;br /&gt;   Duplicate Files: False&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-9147707930988104059?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/9147707930988104059/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2009/08/powershell-hash-scripts-file-comparison.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/9147707930988104059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/9147707930988104059'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2009/08/powershell-hash-scripts-file-comparison.html' title='PowerShell Hash Scripts for File Comparisons'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-5348622628663883235</id><published>2009-01-15T12:20:00.000-08:00</published><updated>2009-08-20T18:04:38.635-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='silverlight'/><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><title type='text'>Adding Silverlight to an Existing Website</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;Minimum requirements for adding a Silverlight 2.0 application to an existing website.&lt;br /&gt;&lt;br /&gt;These requirements are specific to ASP.NET ASPX pages. We'll review the requirements for HTML pages in another post.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. Add a Silverlight assembly reference to the website&lt;/b&gt;&lt;br /&gt;Path: c:\program files\microsoft sdks\silverlight\v2.0\libraries\server\system.web.silverlight.dll&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. Register the Silverlight assembly controls in the web.config or the page&lt;/b&gt;&lt;br /&gt;Registering in the web.config eliminates having to use a Register directive on each page.&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding-left:0.75em;padding-top:0.5em;padding-bottom:0.5em;"&gt;//web.config&lt;br /&gt;&amp;lt;pages&amp;gt;&lt;br /&gt;    &amp;lt;controls&amp;gt;&lt;br /&gt;        ...&lt;br /&gt;        &amp;lt;add tagPrefix="asp" namespace="System.Web.UI.SilverlightControls" assembly="System.Web.Silverlight, Version=2.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/&amp;gt;&lt;br /&gt;    &amp;lt;/controls&amp;gt;&lt;br /&gt;&amp;lt;/pages&amp;gt;&lt;br /&gt;&lt;br /&gt;//page&lt;br /&gt;&amp;lt;%@ Register TagPrefix="asp" Namespace="System.Web.UI.SilverlightControls" Assembly="System.Web.Silverlight, Version=2.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %&amp;gt;&lt;/pre&gt;&lt;b&gt;3. Add the Silverlight application to the website&lt;/b&gt;&lt;br /&gt;Add the Silverlight application XAP file to the website, e.g. \silverlight\silverlightApp.xap&lt;br /&gt;&lt;br /&gt;&lt;b&gt;4. Add the Silverlight application control to a new or existing page&lt;/b&gt;&lt;br /&gt;Additionally, an AJAX ScriptManager control is required in the Master page or the actual page itself.&lt;pre style="font-family:courier new;color:black;background-color:rgb(220,220,220);padding-left:0.75em;padding-top:0.5em;padding-bottom:0.5em;"&gt;&amp;lt;%@ Page Language="C#" %&amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml"&amp;gt;&lt;br /&gt;&amp;lt;head runat="server"&amp;gt;&lt;br /&gt;    &amp;lt;title&amp;gt;Silverlight Demo&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;    &amp;lt;form id="form1" runat="server"&amp;gt;&lt;br /&gt;        &amp;lt;asp:ScriptManager ID="scriptManager" runat="server"/&amp;gt;&lt;br /&gt;        &amp;lt;div style="height:100%;"&amp;gt;&lt;br /&gt;            &amp;lt;asp:Silverlight ID="silverlightControl" runat="server"&lt;br /&gt;              Source="~/silverlight/silverlightApp.xap" &lt;br /&gt;              MinimumVersion="2.0.31005.0" &lt;br /&gt;              Width="100%" Height="100%"/&amp;gt;&lt;br /&gt;        &amp;lt;/div&amp;gt;&lt;br /&gt;    &amp;lt;/form&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-5348622628663883235?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/5348622628663883235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2009/01/adding-silverlight-to-existing-website.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/5348622628663883235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/5348622628663883235'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2009/01/adding-silverlight-to-existing-website.html' title='Adding Silverlight to an Existing Website'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-717253427155769963</id><published>2009-01-10T11:02:00.000-08:00</published><updated>2009-08-14T15:58:42.070-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='silverlight'/><category scheme='http://www.blogger.com/atom/ns#' term='debug'/><category scheme='http://www.blogger.com/atom/ns#' term='isolated storage'/><title type='text'>Debugging Silverlight - Reading Files from Isolated Storage</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;If you need to read a data file during a Silverlight debug session, you'll have to work around the Silverlight security model which limits file IO to isolated storage.&lt;br /&gt;&lt;br /&gt;One option is to use a file upload dialog, another is to identify the isolated storage folder, copy the file to the store, and then just read it.&lt;br /&gt;&lt;br /&gt;The trick to identifying the isolated storage folder is to use the IsolatedStorageFile.RootDirectory property. This property is private, but accessible while debugging. &lt;br /&gt;&lt;br /&gt;The Silverlight utility class below has a DebugRootDirectory() method that can be used for this purpose. Simply call the DebugRootDirectory() method and the code will automatically stop on the programmatic breakpoint. At that point, you can inspect the store and get the value.&lt;br /&gt;&lt;br /&gt;The class has a number of other related utility methods.&lt;pre style="font-family:courier new;color:black;background-color:rgb(220, 220, 220);padding-left:0.75em;padding-top:0.5em;padding-bottom:0.5em;"&gt;using System;&lt;br /&gt;using System.Diagnostics;&lt;br /&gt;using System.IO;&lt;br /&gt;using System.IO.IsolatedStorage;&lt;br /&gt;&lt;br /&gt;namespace ExpressionSoftware.Silverlight.Utility&lt;br /&gt;{&lt;br /&gt;    public static class IsolatedStorage&lt;br /&gt;    {&lt;br /&gt;        public static void DebugRootDirectory()&lt;br /&gt;        {&lt;br /&gt;            using (IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication())&lt;br /&gt;            {&lt;br /&gt;                Debugger.Break();&lt;br /&gt;                //inspect store variable here, get the isolated storage folder path from private RootDirectory property&lt;br /&gt;                //store.RootDirectory&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        //Read a file from Isolated Storage.&lt;br /&gt;        //The file path parameter must specify the full path, use the DebugRootDirectory() method&lt;br /&gt;        //to get the isolated storage folder path.&lt;br /&gt;        public static string ReadFile(string filePath)&lt;br /&gt;        {&lt;br /&gt;            using (IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication())&lt;br /&gt;            {&lt;br /&gt;                Debug.Assert(store.FileExists(filePath), "File does not exist in Isolated Storage.");&lt;br /&gt;                using (StreamReader reader = new StreamReader(store.OpenFile(filePath, FileMode.Open, FileAccess.Read)))&lt;br /&gt;                {&lt;br /&gt;                    return reader.ReadToEnd();&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        //Default quota is 1MB.&lt;br /&gt;        public static long GetStoreQuota()&lt;br /&gt;        {&lt;br /&gt;            using (IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication())&lt;br /&gt;            {&lt;br /&gt;                return store.Quota;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public static long GetAvailableFreeSpace()&lt;br /&gt;        {&lt;br /&gt;            using (IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication())&lt;br /&gt;            {&lt;br /&gt;                return store.AvailableFreeSpace;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        //Default quota is 1MB.&lt;br /&gt;        //The new quota must be larger than the old quota or an exception will be thrown.&lt;br /&gt;        public static bool IncreaseQuota(long newQuotaSize)&lt;br /&gt;        {&lt;br /&gt;            using (IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication())&lt;br /&gt;            {&lt;br /&gt;                return store.IncreaseQuotaTo(newQuotaSize);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-717253427155769963?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/717253427155769963/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2009/01/debugging-silverlight-reading-files.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/717253427155769963'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/717253427155769963'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2009/01/debugging-silverlight-reading-files.html' title='Debugging Silverlight - Reading Files from Isolated Storage'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2362511696290915939.post-2406077537754590164</id><published>2009-01-01T12:14:00.000-08:00</published><updated>2009-11-16T00:04:50.356-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='namespace'/><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='framework'/><category scheme='http://www.blogger.com/atom/ns#' term='3.5'/><category scheme='http://www.blogger.com/atom/ns#' term='f#'/><title type='text'>.NET Framework 3.5 Namespace List</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;Source: &lt;a href="http://msdn.microsoft.com/en-us/library/ms229335.aspx" target="_blank"&gt;http://msdn.microsoft.com/en-us/library/ms229335.aspx&lt;/a&gt;&lt;br /&gt;F# namespaces: &lt;a href="http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/manual/namespaces.html" target="_blank"&gt;http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/manual/namespaces.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family:courier new;"&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/accessibility.aspx" target="_blank"&gt;Accessibility&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/iehost.execute.aspx" target="_blank"&gt;IEHost.Execute&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.aspnet.snapin.aspx" target="_blank"&gt;Microsoft.Aspnet.Snapin&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.build.buildengine.aspx" target="_blank"&gt;Microsoft.Build.BuildEngine&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.build.conversion.aspx" target="_blank"&gt;Microsoft.Build.Conversion&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.build.framework.aspx" target="_blank"&gt;Microsoft.Build.Framework&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.build.tasks.aspx" target="_blank"&gt;Microsoft.Build.Tasks&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.build.tasks.deployment.bootstrapper.aspx" target="_blank"&gt;Microsoft.Build.Tasks.Deployment.Bootstrapper&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.build.tasks.deployment.manifestutilities.aspx" target="_blank"&gt;Microsoft.Build.Tasks.Deployment.ManifestUtilities&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.build.tasks.hosting.aspx" target="_blank"&gt;Microsoft.Build.Tasks.Hosting&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.build.tasks.windows.aspx" target="_blank"&gt;Microsoft.Build.Tasks.Windows&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.build.utilities.aspx" target="_blank"&gt;Microsoft.Build.Utilities&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.clradmin.aspx" target="_blank"&gt;Microsoft.CLRAdmin&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.csharp.aspx" target="_blank"&gt;Microsoft.CSharp&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.data.entity.build.tasks.aspx" target="_blank"&gt;Microsoft.Data.Entity.Build.Tasks&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.ie.aspx" target="_blank"&gt;Microsoft.IE&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.ink.aspx" target="_blank"&gt;Microsoft.Ink&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.ink.textinput.aspx" target="_blank"&gt;Microsoft.Ink.TextInput&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.jscript.aspx" target="_blank"&gt;Microsoft.JScript&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.jscript.vsa.aspx" target="_blank"&gt;Microsoft.JScript.Vsa&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.managementconsole.aspx" target="_blank"&gt;Microsoft.ManagementConsole&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.managementconsole.advanced.aspx" target="_blank"&gt;Microsoft.ManagementConsole.Advanced&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.managementconsole.internal.aspx" target="_blank"&gt;Microsoft.ManagementConsole.Internal&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.servicemodel.channels.mail.aspx" target="_blank"&gt;Microsoft.ServiceModel.Channels.Mail&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.servicemodel.channels.mail.exchangewebservice.aspx" target="_blank"&gt;Microsoft.ServiceModel.Channels.Mail.ExchangeWebService&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.servicemodel.channels.mail.exchangewebservice.exchange2007.aspx" target="_blank"&gt;Microsoft.ServiceModel.Channels.Mail.ExchangeWebService.Exchange2007&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.servicemodel.channels.mail.windowsmobile.aspx" target="_blank"&gt;Microsoft.ServiceModel.Channels.Mail.WindowsMobile&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.sqlserver.server.aspx" target="_blank"&gt;Microsoft.SqlServer.Server&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.stylusinput.aspx" target="_blank"&gt;Microsoft.StylusInput&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.stylusinput.plugindata.aspx" target="_blank"&gt;Microsoft.StylusInput.PluginData&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.aspx" target="_blank"&gt;Microsoft.VisualBasic&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.applicationservices.aspx" target="_blank"&gt;Microsoft.VisualBasic.ApplicationServices&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.compatibility.vb6.aspx" target="_blank"&gt;Microsoft.VisualBasic.Compatibility.VB6&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.compilerservices.aspx" target="_blank"&gt;Microsoft.VisualBasic.CompilerServices&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.devices.aspx" target="_blank"&gt;Microsoft.VisualBasic.Devices&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.fileio.aspx" target="_blank"&gt;Microsoft.VisualBasic.FileIO&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.logging.aspx" target="_blank"&gt;Microsoft.VisualBasic.Logging&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.myservices.aspx" target="_blank"&gt;Microsoft.VisualBasic.MyServices&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.myservices.internal.aspx" target="_blank"&gt;Microsoft.VisualBasic.MyServices.Internal&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.vsa.aspx" target="_blank"&gt;Microsoft.VisualBasic.Vsa&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.visualc.aspx" target="_blank"&gt;Microsoft.VisualC&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.visualc.stlclr.aspx" target="_blank"&gt;Microsoft.VisualC.StlClr&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.visualc.stlclr.generic.aspx" target="_blank"&gt;Microsoft.VisualC.StlClr.Generic&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.vsa.aspx" target="_blank"&gt;Microsoft.Vsa&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.vsa.vb.codedom.aspx" target="_blank"&gt;Microsoft.Vsa.Vb.CodeDOM&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.win32.aspx" target="_blank"&gt;Microsoft.Win32&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.win32.safehandles.aspx" target="_blank"&gt;Microsoft.Win32.SafeHandles&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.windows.themes.aspx" target="_blank"&gt;Microsoft.Windows.Themes&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.windowsce.forms.aspx" target="_blank"&gt;Microsoft.WindowsCE.Forms&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.windowsmobile.directx.aspx" target="_blank"&gt;Microsoft.WindowsMobile.DirectX&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft.windowsmobile.directx.direct3d.aspx" target="_blank"&gt;Microsoft.WindowsMobile.DirectX.Direct3D&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/microsoft_vsavb.aspx" target="_blank"&gt;Microsoft_VsaVb&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/regcode.aspx" target="_blank"&gt;RegCode&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.aspx" target="_blank"&gt;System&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.addin.aspx" target="_blank"&gt;System.AddIn&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.addin.contract.aspx" target="_blank"&gt;System.AddIn.Contract&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.addin.contract.automation.aspx" target="_blank"&gt;System.AddIn.Contract.Automation&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.addin.contract.collections.aspx" target="_blank"&gt;System.AddIn.Contract.Collections&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.addin.hosting.aspx" target="_blank"&gt;System.AddIn.Hosting&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.addin.pipeline.aspx" target="_blank"&gt;System.AddIn.Pipeline&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.codedom.aspx" target="_blank"&gt;System.CodeDom&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.codedom.compiler.aspx" target="_blank"&gt;System.CodeDom.Compiler&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.collections.aspx" target="_blank"&gt;System.Collections&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.collections.generic.aspx" target="_blank"&gt;System.Collections.Generic&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.collections.objectmodel.aspx" target="_blank"&gt;System.Collections.ObjectModel&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.collections.specialized.aspx" target="_blank"&gt;System.Collections.Specialized&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.componentmodel.aspx" target="_blank"&gt;System.ComponentModel&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.aspx" target="_blank"&gt;System.ComponentModel.DataAnnotations&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.componentmodel.design.aspx" target="_blank"&gt;System.ComponentModel.Design&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.componentmodel.design.data.aspx" target="_blank"&gt;System.ComponentModel.Design.Data&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.componentmodel.design.serialization.aspx" target="_blank"&gt;System.ComponentModel.Design.Serialization&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.configuration.aspx" target="_blank"&gt;System.Configuration&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.configuration.assemblies.aspx" target="_blank"&gt;System.Configuration.Assemblies&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.configuration.install.aspx" target="_blank"&gt;System.Configuration.Install&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.configuration.internal.aspx" target="_blank"&gt;System.Configuration.Internal&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.configuration.provider.aspx" target="_blank"&gt;System.Configuration.Provider&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.data.aspx" target="_blank"&gt;System.Data&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.data.common.aspx" target="_blank"&gt;System.Data.Common&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.data.common.commandtrees.aspx" target="_blank"&gt;System.Data.Common.CommandTrees&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.data.design.aspx" target="_blank"&gt;System.Data.Design&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.data.entity.design.aspx" target="_blank"&gt;System.Data.Entity.Design&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.data.entity.design.aspnet.aspx" target="_blank"&gt;System.Data.Entity.Design.AspNet&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.data.entityclient.aspx" target="_blank"&gt;System.Data.EntityClient&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.data.linq.aspx" target="_blank"&gt;System.Data.Linq&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.data.linq.mapping.aspx" target="_blank"&gt;System.Data.Linq.Mapping&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.data.linq.sqlclient.aspx" target="_blank"&gt;System.Data.Linq.SqlClient&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.data.linq.sqlclient.implementation.aspx" target="_blank"&gt;System.Data.Linq.SqlClient.Implementation&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.data.mapping.aspx" target="_blank"&gt;System.Data.Mapping&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.data.metadata.edm.aspx" target="_blank"&gt;System.Data.Metadata.Edm&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.data.objects.aspx" target="_blank"&gt;System.Data.Objects&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.data.objects.dataclasses.aspx" target="_blank"&gt;System.Data.Objects.DataClasses&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.data.odbc.aspx" target="_blank"&gt;System.Data.Odbc&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.data.oledb.aspx" target="_blank"&gt;System.Data.OleDb&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.data.oracleclient.aspx" target="_blank"&gt;System.Data.OracleClient&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.data.services.aspx" target="_blank"&gt;System.Data.Services&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.data.services.client.aspx" target="_blank"&gt;System.Data.Services.Client&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.data.services.common.aspx" target="_blank"&gt;System.Data.Services.Common&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.data.services.design.aspx" target="_blank"&gt;System.Data.Services.Design&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.data.services.internal.aspx" target="_blank"&gt;System.Data.Services.Internal&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.data.sql.aspx" target="_blank"&gt;System.Data.Sql&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.data.sqlclient.aspx" target="_blank"&gt;System.Data.SqlClient&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.data.sqltypes.aspx" target="_blank"&gt;System.Data.SqlTypes&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.deployment.application.aspx" target="_blank"&gt;System.Deployment.Application&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.deployment.internal.aspx" target="_blank"&gt;System.Deployment.Internal&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.diagnostics.aspx" target="_blank"&gt;System.Diagnostics&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.diagnostics.codeanalysis.aspx" target="_blank"&gt;System.Diagnostics.CodeAnalysis&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.diagnostics.design.aspx" target="_blank"&gt;System.Diagnostics.Design&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.diagnostics.eventing.aspx" target="_blank"&gt;System.Diagnostics.Eventing&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.diagnostics.eventing.reader.aspx" target="_blank"&gt;System.Diagnostics.Eventing.Reader&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.diagnostics.performancedata.aspx" target="_blank"&gt;System.Diagnostics.PerformanceData&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.diagnostics.symbolstore.aspx" target="_blank"&gt;System.Diagnostics.SymbolStore&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.directoryservices.aspx" target="_blank"&gt;System.DirectoryServices&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.directoryservices.accountmanagement.aspx" target="_blank"&gt;System.DirectoryServices.AccountManagement&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.directoryservices.activedirectory.aspx" target="_blank"&gt;System.DirectoryServices.ActiveDirectory&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.directoryservices.protocols.aspx" target="_blank"&gt;System.DirectoryServices.Protocols&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.drawing.aspx" target="_blank"&gt;System.Drawing&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.drawing.design.aspx" target="_blank"&gt;System.Drawing.Design&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.drawing.drawing2d.aspx" target="_blank"&gt;System.Drawing.Drawing2D&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.drawing.imaging.aspx" target="_blank"&gt;System.Drawing.Imaging&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.drawing.printing.aspx" target="_blank"&gt;System.Drawing.Printing&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.drawing.text.aspx" target="_blank"&gt;System.Drawing.Text&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.enterpriseservices.aspx" target="_blank"&gt;System.EnterpriseServices&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.enterpriseservices.compensatingresourcemanager.aspx" target="_blank"&gt;System.EnterpriseServices.CompensatingResourceManager&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.enterpriseservices.internal.aspx" target="_blank"&gt;System.EnterpriseServices.Internal&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.globalization.aspx" target="_blank"&gt;System.Globalization&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.identitymodel.claims.aspx" target="_blank"&gt;System.IdentityModel.Claims&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.identitymodel.policy.aspx" target="_blank"&gt;System.IdentityModel.Policy&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.identitymodel.selectors.aspx" target="_blank"&gt;System.IdentityModel.Selectors&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.identitymodel.tokens.aspx" target="_blank"&gt;System.IdentityModel.Tokens&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.io.aspx" target="_blank"&gt;System.IO&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.io.compression.aspx" target="_blank"&gt;System.IO.Compression&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.io.isolatedstorage.aspx" target="_blank"&gt;System.IO.IsolatedStorage&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.io.log.aspx" target="_blank"&gt;System.IO.Log&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.io.packaging.aspx" target="_blank"&gt;System.IO.Packaging&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.io.pipes.aspx" target="_blank"&gt;System.IO.Pipes&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.io.ports.aspx" target="_blank"&gt;System.IO.Ports&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.linq.aspx" target="_blank"&gt;System.Linq&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.linq.expressions.aspx" target="_blank"&gt;System.Linq.Expressions&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.management.aspx" target="_blank"&gt;System.Management&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.management.instrumentation.aspx" target="_blank"&gt;System.Management.Instrumentation&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.media.aspx" target="_blank"&gt;System.Media&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.messaging.aspx" target="_blank"&gt;System.Messaging&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.messaging.design.aspx" target="_blank"&gt;System.Messaging.Design&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.net.aspx" target="_blank"&gt;System.Net&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.net.cache.aspx" target="_blank"&gt;System.Net.Cache&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.net.configuration.aspx" target="_blank"&gt;System.Net.Configuration&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.net.mail.aspx" target="_blank"&gt;System.Net.Mail&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.net.mime.aspx" target="_blank"&gt;System.Net.Mime&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.net.networkinformation.aspx" target="_blank"&gt;System.Net.NetworkInformation&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.net.peertopeer.aspx" target="_blank"&gt;System.Net.PeerToPeer&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.net.peertopeer.collaboration.aspx" target="_blank"&gt;System.Net.PeerToPeer.Collaboration&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.net.security.aspx" target="_blank"&gt;System.Net.Security&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.net.sockets.aspx" target="_blank"&gt;System.Net.Sockets&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.printing.aspx" target="_blank"&gt;System.Printing&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.printing.indexedproperties.aspx" target="_blank"&gt;System.Printing.IndexedProperties&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.printing.interop.aspx" target="_blank"&gt;System.Printing.Interop&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.reflection.aspx" target="_blank"&gt;System.Reflection&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.reflection.emit.aspx" target="_blank"&gt;System.Reflection.Emit&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.resources.aspx" target="_blank"&gt;System.Resources&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.resources.tools.aspx" target="_blank"&gt;System.Resources.Tools&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.runtime.aspx" target="_blank"&gt;System.Runtime&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.runtime.compilerservices.aspx" target="_blank"&gt;System.Runtime.CompilerServices&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.runtime.constrainedexecution.aspx" target="_blank"&gt;System.Runtime.ConstrainedExecution&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.runtime.hosting.aspx" target="_blank"&gt;System.Runtime.Hosting&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.aspx" target="_blank"&gt;System.Runtime.InteropServices&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.comtypes.aspx" target="_blank"&gt;System.Runtime.InteropServices.ComTypes&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.custommarshalers.aspx" target="_blank"&gt;System.Runtime.InteropServices.CustomMarshalers&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.expando.aspx" target="_blank"&gt;System.Runtime.InteropServices.Expando&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.runtime.remoting.aspx" target="_blank"&gt;System.Runtime.Remoting&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.runtime.remoting.activation.aspx" target="_blank"&gt;System.Runtime.Remoting.Activation&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.runtime.remoting.channels.aspx" target="_blank"&gt;System.Runtime.Remoting.Channels&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.runtime.remoting.channels.http.aspx" target="_blank"&gt;System.Runtime.Remoting.Channels.Http&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.runtime.remoting.channels.ipc.aspx" target="_blank"&gt;System.Runtime.Remoting.Channels.Ipc&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.runtime.remoting.channels.tcp.aspx" target="_blank"&gt;System.Runtime.Remoting.Channels.Tcp&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.runtime.remoting.contexts.aspx" target="_blank"&gt;System.Runtime.Remoting.Contexts&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.runtime.remoting.lifetime.aspx" target="_blank"&gt;System.Runtime.Remoting.Lifetime&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.runtime.remoting.messaging.aspx" target="_blank"&gt;System.Runtime.Remoting.Messaging&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.runtime.remoting.metadata.aspx" target="_blank"&gt;System.Runtime.Remoting.Metadata&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.runtime.remoting.metadataservices.aspx" target="_blank"&gt;System.Runtime.Remoting.MetadataServices&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.runtime.remoting.proxies.aspx" target="_blank"&gt;System.Runtime.Remoting.Proxies&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.runtime.remoting.services.aspx" target="_blank"&gt;System.Runtime.Remoting.Services&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.runtime.serialization.aspx" target="_blank"&gt;System.Runtime.Serialization&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.runtime.serialization.configuration.aspx" target="_blank"&gt;System.Runtime.Serialization.Configuration&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.runtime.serialization.formatters.aspx" target="_blank"&gt;System.Runtime.Serialization.Formatters&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.runtime.serialization.formatters.binary.aspx" target="_blank"&gt;System.Runtime.Serialization.Formatters.Binary&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.runtime.serialization.formatters.soap.aspx" target="_blank"&gt;System.Runtime.Serialization.Formatters.Soap&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.runtime.serialization.json.aspx" target="_blank"&gt;System.Runtime.Serialization.Json&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.runtime.versioning.aspx" target="_blank"&gt;System.Runtime.Versioning&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.security.aspx" target="_blank"&gt;System.Security&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.security.accesscontrol.aspx" target="_blank"&gt;System.Security.AccessControl&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.security.authentication.aspx" target="_blank"&gt;System.Security.Authentication&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.security.authentication.extendedprotection.aspx" target="_blank"&gt;System.Security.Authentication.ExtendedProtection&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.security.authentication.extendedprotection.configuration.aspx" target="_blank"&gt;System.Security.Authentication.ExtendedProtection.Configuration&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.security.cryptography.aspx" target="_blank"&gt;System.Security.Cryptography&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.security.cryptography.pkcs.aspx" target="_blank"&gt;System.Security.Cryptography.Pkcs&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.aspx" target="_blank"&gt;System.Security.Cryptography.X509Certificates&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.security.cryptography.xml.aspx" target="_blank"&gt;System.Security.Cryptography.Xml&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.security.permissions.aspx" target="_blank"&gt;System.Security.Permissions&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.security.policy.aspx" target="_blank"&gt;System.Security.Policy&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.security.principal.aspx" target="_blank"&gt;System.Security.Principal&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.security.rightsmanagement.aspx" target="_blank"&gt;System.Security.RightsManagement&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.servicemodel.aspx" target="_blank"&gt;System.ServiceModel&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.servicemodel.activation.aspx" target="_blank"&gt;System.ServiceModel.Activation&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.servicemodel.activation.configuration.aspx" target="_blank"&gt;System.ServiceModel.Activation.Configuration&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.servicemodel.channels.aspx" target="_blank"&gt;System.ServiceModel.Channels&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.servicemodel.comintegration.aspx" target="_blank"&gt;System.ServiceModel.ComIntegration&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.servicemodel.configuration.aspx" target="_blank"&gt;System.ServiceModel.Configuration&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.servicemodel.description.aspx" target="_blank"&gt;System.ServiceModel.Description&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.servicemodel.diagnostics.aspx" target="_blank"&gt;System.ServiceModel.Diagnostics&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.servicemodel.dispatcher.aspx" target="_blank"&gt;System.ServiceModel.Dispatcher&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.servicemodel.install.configuration.aspx" target="_blank"&gt;System.ServiceModel.Install.Configuration&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.servicemodel.internal.aspx" target="_blank"&gt;System.ServiceModel.Internal&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.servicemodel.msmqintegration.aspx" target="_blank"&gt;System.ServiceModel.MsmqIntegration&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.servicemodel.peerresolvers.aspx" target="_blank"&gt;System.ServiceModel.PeerResolvers&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.servicemodel.persistence.aspx" target="_blank"&gt;System.ServiceModel.Persistence&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.servicemodel.security.aspx" target="_blank"&gt;System.ServiceModel.Security&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.servicemodel.security.tokens.aspx" target="_blank"&gt;System.ServiceModel.Security.Tokens&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.servicemodel.syndication.aspx" target="_blank"&gt;System.ServiceModel.Syndication&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.servicemodel.web.aspx" target="_blank"&gt;System.ServiceModel.Web&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.serviceprocess.aspx" target="_blank"&gt;System.ServiceProcess&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.serviceprocess.design.aspx" target="_blank"&gt;System.ServiceProcess.Design&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.speech.audioformat.aspx" target="_blank"&gt;System.Speech.AudioFormat&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.speech.recognition.aspx" target="_blank"&gt;System.Speech.Recognition&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.speech.recognition.srgsgrammar.aspx" target="_blank"&gt;System.Speech.Recognition.SrgsGrammar&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.speech.synthesis.aspx" target="_blank"&gt;System.Speech.Synthesis&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.speech.synthesis.ttsengine.aspx" target="_blank"&gt;System.Speech.Synthesis.TtsEngine&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.text.aspx" target="_blank"&gt;System.Text&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.aspx" target="_blank"&gt;System.Text.RegularExpressions&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.threading.aspx" target="_blank"&gt;System.Threading&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.timers.aspx" target="_blank"&gt;System.Timers&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.transactions.aspx" target="_blank"&gt;System.Transactions&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.transactions.configuration.aspx" target="_blank"&gt;System.Transactions.Configuration&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.web.aspx" target="_blank"&gt;System.Web&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.web.applicationservices.aspx" target="_blank"&gt;System.Web.ApplicationServices&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.web.caching.aspx" target="_blank"&gt;System.Web.Caching&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.web.clientservices.aspx" target="_blank"&gt;System.Web.ClientServices&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.web.clientservices.providers.aspx" target="_blank"&gt;System.Web.ClientServices.Providers&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.web.compilation.aspx" target="_blank"&gt;System.Web.Compilation&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.web.configuration.aspx" target="_blank"&gt;System.Web.Configuration&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.web.configuration.internal.aspx" target="_blank"&gt;System.Web.Configuration.Internal&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.web.dynamicdata.aspx" target="_blank"&gt;System.Web.DynamicData&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.web.dynamicdata.design.aspx" target="_blank"&gt;System.Web.DynamicData.Design&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.web.dynamicdata.modelproviders.aspx" target="_blank"&gt;System.Web.DynamicData.ModelProviders&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.web.handlers.aspx" target="_blank"&gt;System.Web.Handlers&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.web.hosting.aspx" target="_blank"&gt;System.Web.Hosting&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.web.mail.aspx" target="_blank"&gt;System.Web.Mail&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.web.management.aspx" target="_blank"&gt;System.Web.Management&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.web.mobile.aspx" target="_blank"&gt;System.Web.Mobile&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.web.profile.aspx" target="_blank"&gt;System.Web.Profile&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.web.query.dynamic.aspx" target="_blank"&gt;System.Web.Query.Dynamic&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.web.regularexpressions.aspx" target="_blank"&gt;System.Web.RegularExpressions&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.web.routing.aspx" target="_blank"&gt;System.Web.Routing&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.web.script.serialization.aspx" target="_blank"&gt;System.Web.Script.Serialization&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.web.script.services.aspx" target="_blank"&gt;System.Web.Script.Services&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.web.security.aspx" target="_blank"&gt;System.Web.Security&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.web.services.aspx" target="_blank"&gt;System.Web.Services&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.web.services.configuration.aspx" target="_blank"&gt;System.Web.Services.Configuration&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.web.services.description.aspx" target="_blank"&gt;System.Web.Services.Description&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.web.services.discovery.aspx" target="_blank"&gt;System.Web.Services.Discovery&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.web.services.protocols.aspx" target="_blank"&gt;System.Web.Services.Protocols&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.web.sessionstate.aspx" target="_blank"&gt;System.Web.SessionState&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.web.ui.aspx" target="_blank"&gt;System.Web.UI&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.web.ui.adapters.aspx" target="_blank"&gt;System.Web.UI.Adapters&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.web.ui.design.aspx" target="_blank"&gt;System.Web.UI.Design&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.web.ui.design.mobilecontrols.aspx" target="_blank"&gt;System.Web.UI.Design.MobileControls&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.web.ui.design.mobilecontrols.converters.aspx" target="_blank"&gt;System.Web.UI.Design.MobileControls.Converters&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.web.ui.design.webcontrols.aspx" target="_blank"&gt;System.Web.UI.Design.WebControls&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.web.ui.design.webcontrols.webparts.aspx" target="_blank"&gt;System.Web.UI.Design.WebControls.WebParts&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.web.ui.mobilecontrols.aspx" target="_blank"&gt;System.Web.UI.MobileControls&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.web.ui.mobilecontrols.adapters.aspx" target="_blank"&gt;System.Web.UI.MobileControls.Adapters&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.web.ui.mobilecontrols.adapters.xhtmladapters.aspx" target="_blank"&gt;System.Web.UI.MobileControls.Adapters.XhtmlAdapters&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.aspx" target="_blank"&gt;System.Web.UI.WebControls&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.adapters.aspx" target="_blank"&gt;System.Web.UI.WebControls.Adapters&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.webparts.aspx" target="_blank"&gt;System.Web.UI.WebControls.WebParts&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.web.util.aspx" target="_blank"&gt;System.Web.Util&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.windows.aspx" target="_blank"&gt;System.Windows&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.windows.annotations.aspx" target="_blank"&gt;System.Windows.Annotations&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.windows.annotations.storage.aspx" target="_blank"&gt;System.Windows.Annotations.Storage&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.windows.automation.aspx" target="_blank"&gt;System.Windows.Automation&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.windows.automation.peers.aspx" target="_blank"&gt;System.Windows.Automation.Peers&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.windows.automation.provider.aspx" target="_blank"&gt;System.Windows.Automation.Provider&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.windows.automation.text.aspx" target="_blank"&gt;System.Windows.Automation.Text&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.windows.controls.aspx" target="_blank"&gt;System.Windows.Controls&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.aspx" target="_blank"&gt;System.Windows.Controls.Primitives&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.windows.converters.aspx" target="_blank"&gt;System.Windows.Converters&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.windows.data.aspx" target="_blank"&gt;System.Windows.Data&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.windows.documents.aspx" target="_blank"&gt;System.Windows.Documents&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.windows.documents.serialization.aspx" target="_blank"&gt;System.Windows.Documents.Serialization&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.windows.forms.aspx" target="_blank"&gt;System.Windows.Forms&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.windows.forms.componentmodel.com2interop.aspx" target="_blank"&gt;System.Windows.Forms.ComponentModel.Com2Interop&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.windows.forms.design.aspx" target="_blank"&gt;System.Windows.Forms.Design&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.windows.forms.design.behavior.aspx" target="_blank"&gt;System.Windows.Forms.Design.Behavior&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.windows.forms.integration.aspx" target="_blank"&gt;System.Windows.Forms.Integration&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.windows.forms.layout.aspx" target="_blank"&gt;System.Windows.Forms.Layout&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.windows.forms.propertygridinternal.aspx" target="_blank"&gt;System.Windows.Forms.PropertyGridInternal&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.windows.forms.visualstyles.aspx" target="_blank"&gt;System.Windows.Forms.VisualStyles&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.windows.ink.aspx" target="_blank"&gt;System.Windows.Ink&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.windows.ink.analysiscore.aspx" target="_blank"&gt;System.Windows.Ink.AnalysisCore&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.windows.input.aspx" target="_blank"&gt;System.Windows.Input&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.windows.input.stylusplugins.aspx" target="_blank"&gt;System.Windows.Input.StylusPlugIns&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.windows.interop.aspx" target="_blank"&gt;System.Windows.Interop&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.windows.markup.aspx" target="_blank"&gt;System.Windows.Markup&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.windows.markup.localizer.aspx" target="_blank"&gt;System.Windows.Markup.Localizer&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.windows.markup.primitives.aspx" target="_blank"&gt;System.Windows.Markup.Primitives&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.windows.media.aspx" target="_blank"&gt;System.Windows.Media&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.windows.media.animation.aspx" target="_blank"&gt;System.Windows.Media.Animation&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.windows.media.converters.aspx" target="_blank"&gt;System.Windows.Media.Converters&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.windows.media.effects.aspx" target="_blank"&gt;System.Windows.Media.Effects&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.windows.media.imaging.aspx" target="_blank"&gt;System.Windows.Media.Imaging&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.windows.media.media3d.aspx" target="_blank"&gt;System.Windows.Media.Media3D&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.windows.media.media3d.converters.aspx" target="_blank"&gt;System.Windows.Media.Media3D.Converters&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.windows.media.textformatting.aspx" target="_blank"&gt;System.Windows.Media.TextFormatting&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.windows.navigation.aspx" target="_blank"&gt;System.Windows.Navigation&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.windows.resources.aspx" target="_blank"&gt;System.Windows.Resources&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.windows.shapes.aspx" target="_blank"&gt;System.Windows.Shapes&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.windows.threading.aspx" target="_blank"&gt;System.Windows.Threading&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.windows.xps.aspx" target="_blank"&gt;System.Windows.Xps&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.windows.xps.packaging.aspx" target="_blank"&gt;System.Windows.Xps.Packaging&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.windows.xps.serialization.aspx" target="_blank"&gt;System.Windows.Xps.Serialization&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.workflow.activities.aspx" target="_blank"&gt;System.Workflow.Activities&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.workflow.activities.configuration.aspx" target="_blank"&gt;System.Workflow.Activities.Configuration&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.workflow.activities.rules.aspx" target="_blank"&gt;System.Workflow.Activities.Rules&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.workflow.activities.rules.design.aspx" target="_blank"&gt;System.Workflow.Activities.Rules.Design&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.workflow.componentmodel.aspx" target="_blank"&gt;System.Workflow.ComponentModel&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.workflow.componentmodel.compiler.aspx" target="_blank"&gt;System.Workflow.ComponentModel.Compiler&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.workflow.componentmodel.design.aspx" target="_blank"&gt;System.Workflow.ComponentModel.Design&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.workflow.componentmodel.serialization.aspx" target="_blank"&gt;System.Workflow.ComponentModel.Serialization&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.workflow.runtime.aspx" target="_blank"&gt;System.Workflow.Runtime&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.workflow.runtime.configuration.aspx" target="_blank"&gt;System.Workflow.Runtime.Configuration&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.workflow.runtime.debugengine.aspx" target="_blank"&gt;System.Workflow.Runtime.DebugEngine&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.workflow.runtime.hosting.aspx" target="_blank"&gt;System.Workflow.Runtime.Hosting&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.workflow.runtime.tracking.aspx" target="_blank"&gt;System.Workflow.Runtime.Tracking&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.xml.aspx" target="_blank"&gt;System.Xml&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.xml.linq.aspx" target="_blank"&gt;System.Xml.Linq&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.xml.schema.aspx" target="_blank"&gt;System.Xml.Schema&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.xml.serialization.aspx" target="_blank"&gt;System.Xml.Serialization&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.xml.serialization.advanced.aspx" target="_blank"&gt;System.Xml.Serialization.Advanced&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.xml.serialization.configuration.aspx" target="_blank"&gt;System.Xml.Serialization.Configuration&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.xml.xpath.aspx" target="_blank"&gt;System.Xml.XPath&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.xml.xsl.aspx" target="_blank"&gt;System.Xml.Xsl&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/system.xml.xsl.runtime.aspx" target="_blank"&gt;System.Xml.Xsl.Runtime&lt;/a&gt;&lt;br /&gt;&lt;a style="color:black;" href="http://msdn.microsoft.com/en-us/library/uiautomationclientsideproviders.aspx" target="_blank"&gt;UIAutomationClientsideProviders&lt;/a&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2362511696290915939-2406077537754590164?l=blog.expressionsoftware.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.expressionsoftware.com/feeds/2406077537754590164/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.expressionsoftware.com/2009/08/net-framework-35-namespace-list.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/2406077537754590164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2362511696290915939/posts/default/2406077537754590164'/><link rel='alternate' type='text/html' href='http://blog.expressionsoftware.com/2009/08/net-framework-35-namespace-list.html' title='.NET Framework 3.5 Namespace List'/><author><name>john</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_N1voxYOFpac/Sf0b65uANOI/AAAAAAAAAFA/2fKP_FpKSSs/S220/expressionSw.rgb.102.153.204.PNG'/></author><thr:total>0</thr:total></entry></feed>
