<?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:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2657646430590665013</id><updated>2010-07-30T17:12:17.669-07:00</updated><title type='text'>Webspinner Tech Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://tech.webspinnerinc.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2657646430590665013/posts/default'/><link rel='alternate' type='text/html' href='http://tech.webspinnerinc.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Webspinner Inc.</name><uri>http://www.blogger.com/profile/14476630990241047008</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>17</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2657646430590665013.post-2765259519760105339</id><published>2010-07-05T23:28:00.000-07:00</published><updated>2010-07-05T23:29:38.664-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='joke'/><category scheme='http://www.blogger.com/atom/ns#' term='management'/><title type='text'>a Technician and a Manager</title><content type='html'>I read a great joke on &lt;a href="http://www.stackoverflow.com"&gt;StackOverflow&lt;/a&gt; a while back and was reading again recently and thought I would share it here/store it here... whatever.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;A man flying in a hot air balloon suddenly realizes he’s lost. He reduces height and spots a man down below. He lowers the balloon further and shouts to get directions, "Excuse me, can you tell me where I am?"&lt;br /&gt;&lt;br /&gt;The man below says: "Yes. You're in a hot air balloon, hovering 30 feet above this field."&lt;br /&gt;&lt;br /&gt;"You must work in Information Technology," says the balloonist.&lt;br /&gt;&lt;br /&gt;"I do" replies the man. "How did you know?"&lt;br /&gt;&lt;br /&gt;"Well," says the balloonist, "everything you have told me is technically correct, but It's of no use to anyone."&lt;br /&gt;&lt;br /&gt;The man below replies, "You must work in management."&lt;br /&gt;&lt;br /&gt;"I do," replies the balloonist, "But how'd you know?"&lt;br /&gt;&lt;br /&gt;"Well", says the man, "you don’t know where you are, or where you’re going, you expect me to be able to help. You’re in the same position you were before we met, but now it’s my fault."&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2657646430590665013-2765259519760105339?l=tech.webspinnerinc.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tech.webspinnerinc.com/feeds/2765259519760105339/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tech.webspinnerinc.com/2010/07/technician-and-manager.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2657646430590665013/posts/default/2765259519760105339'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2657646430590665013/posts/default/2765259519760105339'/><link rel='alternate' type='text/html' href='http://tech.webspinnerinc.com/2010/07/technician-and-manager.html' title='a Technician and a Manager'/><author><name>Webspinner Inc.</name><uri>http://www.blogger.com/profile/14476630990241047008</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='00646463009227488915'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2657646430590665013.post-3562603629463533475</id><published>2010-06-26T23:44:00.000-07:00</published><updated>2010-06-26T23:44:16.860-07:00</updated><title type='text'>As a Developer How do I Make My Web Pages Look Good?</title><content type='html'>The key with appearance is just like programming UI. Encapsulate like elements using id and class tags within each html element. Once you have consistent content layout among the pages you can use simple css code to make things look good. It often helps to do a UI specification for your web pages. &lt;br /&gt;&lt;br /&gt;For instance &amp;lt;p&amp;gt; tags will always contain Arial style fonts with size 10. All links will be #e33 if they are not being hovered(#3ee) or clicked(#fff). The background of the page will always be #eee. Colors, margins, fonts and borders all fall into such a specification but are not necessary. One trick you can use is find a Content Management Framework, like drupal or dotnetnuke, check out some themes for each of them and borrow and steal code from those to suit your needs. &lt;br /&gt;&lt;br /&gt;Oh and of course at the top of each generated page put the style sheet attachment call:&lt;br /&gt;&lt;pre class="code"&gt;  &lt;code class="html"&gt;&lt;br /&gt;    &amp;lt;link href="your_stylesheet.css" rel="stylesheet"/&amp;gt;&lt;br /&gt;  &lt;/code&gt;&lt;br /&gt;&lt;/pre&gt;or place all style declarations in a generator to land inside a:&lt;br /&gt;&lt;pre class="code"&gt;  &lt;code class="html"&gt;&lt;br /&gt;    &amp;lt;style&amp;gt;&lt;br /&gt;      body{&lt;br /&gt;        font-face: Arial;&lt;br /&gt;      }&lt;br /&gt;    &amp;lt;/style&amp;gt;&lt;br /&gt;  &lt;/code&gt;&lt;br /&gt;&lt;/pre&gt;if you are comfortable with a certain tools look and feel (I use Jira but you might use campfire) then look at how they do it and copy and paste the styles they are using. You will find it easier to use your own web documents when they match the other systems you use.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2657646430590665013-3562603629463533475?l=tech.webspinnerinc.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tech.webspinnerinc.com/feeds/3562603629463533475/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tech.webspinnerinc.com/2010/06/as-developer-how-do-i-make-my-web-pages.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2657646430590665013/posts/default/3562603629463533475'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2657646430590665013/posts/default/3562603629463533475'/><link rel='alternate' type='text/html' href='http://tech.webspinnerinc.com/2010/06/as-developer-how-do-i-make-my-web-pages.html' title='As a Developer How do I Make My Web Pages Look Good?'/><author><name>Webspinner Inc.</name><uri>http://www.blogger.com/profile/14476630990241047008</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='00646463009227488915'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2657646430590665013.post-8827266466300322201</id><published>2010-06-21T01:39:00.000-07:00</published><updated>2010-06-21T02:17:35.036-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='image'/><category scheme='http://www.blogger.com/atom/ns#' term='theme'/><category scheme='http://www.blogger.com/atom/ns#' term='drupal'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>Drupal Image Button Menu</title><content type='html'>So I needed to use images in a simple navigation for a customer using Drupal 6.0. Custom theming in drupal is something I have not done a great deal of and my last experience with it was back in drupal 5. So here I am going to document the method I used to change the primary link stack over to images.&lt;br /&gt;&lt;br /&gt;/themes/nameoftheme/images/page_title.png&lt;br /&gt;&lt;br /&gt;is the method I am storing the image files in. I open up template.php and add the following code to it:&lt;br /&gt;&lt;br /&gt;&lt;pre class="code"&gt;&lt;code class="js"&gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;function imagemenu($linkset){&lt;br /&gt; foreach($linkset as $link){&lt;br /&gt;  /*&lt;br /&gt;  set image path to theme directory/images/page_title.png&lt;br /&gt;  */&lt;br /&gt;  $imgpath = base_path() . path_to_theme() . "/images/" . strtolower(str_replace(" ", "_", $link["title"])) . ".png";&lt;br /&gt;  $hrefpath = base_path() . $link["href"];&lt;br /&gt;  if (file_exists($_SERVER{'DOCUMENT_ROOT'} . $imgpath)){&lt;br /&gt;   $imageout .= "&lt;a href='" . $hrefpath . "'&gt;&lt;img alt='" . $link["title"] . "' src='" . $imgpath . "'/&gt;&lt;/a&gt;";&lt;br /&gt;  };&lt;br /&gt; };&lt;br /&gt; return $imageout;&lt;br /&gt;};&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Then in the page.tpl.php file where the primary link navigation was going to appear I used the following code:&lt;br /&gt;&lt;br /&gt;&lt;pre class="code"&gt;&lt;code class="xml"&gt;&lt;br /&gt;&amp;lt;?php if (isset($primary_links)) { ?&amp;gt;&amp;lt;?php print imagemenu($primary_links)?&amp;gt;&amp;lt;?php } ?&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;it is crude but it working for the time being and has the added benefit of hiding pages that I do not currently have images for.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2657646430590665013-8827266466300322201?l=tech.webspinnerinc.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tech.webspinnerinc.com/feeds/8827266466300322201/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tech.webspinnerinc.com/2010/06/drupal-image-button-menu.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2657646430590665013/posts/default/8827266466300322201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2657646430590665013/posts/default/8827266466300322201'/><link rel='alternate' type='text/html' href='http://tech.webspinnerinc.com/2010/06/drupal-image-button-menu.html' title='Drupal Image Button Menu'/><author><name>Webspinner Inc.</name><uri>http://www.blogger.com/profile/14476630990241047008</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='00646463009227488915'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2657646430590665013.post-1042271255823343707</id><published>2010-06-18T23:56:00.000-07:00</published><updated>2010-06-18T23:56:03.317-07:00</updated><title type='text'>The Pragmatic Programmer series</title><content type='html'>the Pragmatic Programmer by Andrew Hunt and David Thomas has often been referred to as an essential book to read for any programmer. I see it spoken of often on &lt;a href="http://www.stackoverflow.com"&gt;StackOverflow&lt;/a&gt;, and the methods and tips it covers are often considered among the most valuable gems of wisdom currently circulating the developer community.&lt;br /&gt;&lt;br /&gt;I finally got a chance to pick this book up and give it a read, and it does not disappoint. With remarkable wit and plenty of entertaining anecdotes, I literally have not been able to put it down. My lovely wife Melanie and I picked it up during an outing to Walnut Creek.&lt;br /&gt;&lt;br /&gt;I will try to come back and edit this post with information from the book as it strikes me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2657646430590665013-1042271255823343707?l=tech.webspinnerinc.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tech.webspinnerinc.com/feeds/1042271255823343707/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tech.webspinnerinc.com/2010/06/pragmatic-programmer-series.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2657646430590665013/posts/default/1042271255823343707'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2657646430590665013/posts/default/1042271255823343707'/><link rel='alternate' type='text/html' href='http://tech.webspinnerinc.com/2010/06/pragmatic-programmer-series.html' title='The Pragmatic Programmer series'/><author><name>Webspinner Inc.</name><uri>http://www.blogger.com/profile/14476630990241047008</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='00646463009227488915'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2657646430590665013.post-1598999536179039750</id><published>2010-05-06T01:12:00.001-07:00</published><updated>2010-05-11T03:04:43.590-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='blogger'/><category scheme='http://www.blogger.com/atom/ns#' term='theme'/><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>Something Blogger This Way Comes</title><content type='html'>&lt;p&gt;So this last week I have been Designing a Blogger theme as part of a larger project for my friend and ally &lt;a href="http://kooimanphoto.com"&gt;Paul Kooiman&lt;/a&gt; and the process was actually really enjoyable. I was able to overcome some interesting technical hurdles, implement some fun doodads to enhance the nature of his blog and just generally outline what I think is a good approach to taking a Blogger Theme project on.&lt;br /&gt;&lt;/p&gt;I first outlined the things we needed to accomplish:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Had to look simple and elegant, Client provided some Blogs he liked&lt;/li&gt;&lt;li&gt;Showcasing Photographic content, use jQuery and Lightbox to get a polished look&lt;/li&gt;&lt;li&gt;Branding is all lowercase letters; orange, white, grey; match existing collateral&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Next it was time to get a baseline and listen to some music. I grabbed the simple Blog theme, expanded the widgets in Edit HTML mode and copied the contents out to SciTE for editing. Ended up saving this file as an xml file which worked out for handing the work over to the client (Darjeeling Limited Soundtrack for most of this part). &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Getting your head around the CSS in the blogger themes is a bit tricky because each blogger theme kind of makes it up as they go along. I needed to a way to easily see the changes I intended to make to the css, without the save/view process getting in the way. To solve this problem I first decided to get &lt;a href="http://jquery.com"&gt;jQuery&lt;/a&gt; loaded up in the theme, and view it in the &lt;a href="http://google.com/chrome"&gt;Google Chrome&lt;/a&gt; browser, which gives me handy developers toolset for testing CSS and JavaScript from a console.(Jamaroquai, Canned Heat)&lt;br /&gt;&lt;/p&gt;To implement jQuery quickly in blogger put this in your blogger theme xml file and upload it.&lt;br /&gt;&lt;pre class="code"&gt;&lt;code class="xml"&gt;&lt;br /&gt;&amp;lt;script src='http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js' type='text/javascript'/&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;With this setup it was a straight forward trial and error process of utilizing jquery console selectors, for instance: Let us imagine I want to see what on the output page is affected by changing the date-header class, in the console I type $(".date-header").css("color","#f00") which will turn any text directly beneath that class bright red. This was awesome for finding all the css I wanted to include to just clean things up. For example try the following in your console:&lt;br /&gt;&lt;pre class="code"&gt;&lt;code class="js"&gt;&lt;br /&gt;$("#navbar").css("display","none")&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/pre&gt;So now you know the css to remove the navbar at the top.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Implementing the lightbox and custom images was a little less straight forward but was still pretty easy to achieve. First you need to determine where you will store your remote files, we needed to load a custom favicon, graphical header, javascript file, css file and all the images that go along the with the &lt;a href="http://www.balupton.com/sandbox/jquery_lightbox_bal/demo/"&gt;Lightbox Plugin&lt;/a&gt;. Once you know where everything is going to be, ftp it, set the locations on all href, src and other attributes you need. Use the same method from importing jQuery to import any other scripts and plugins you want. Make sure you do not add script tags before the &amp;lt;/b:skin&amp;gt; tag.&lt;/p&gt;note: You can change the header link (image) to point at your website by replacing expr:href='data.blog.homepageURL' with href='http://YOURADDRESS' in the header widget area.&lt;br /&gt;&lt;p&gt;I put all my document ready script at the bottom of the file, you don't have to but it made it easier to find. Anyway that is all for this post. Happy hacking.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2657646430590665013-1598999536179039750?l=tech.webspinnerinc.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tech.webspinnerinc.com/feeds/1598999536179039750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tech.webspinnerinc.com/2010/05/something-blogger-this-way-comes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2657646430590665013/posts/default/1598999536179039750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2657646430590665013/posts/default/1598999536179039750'/><link rel='alternate' type='text/html' href='http://tech.webspinnerinc.com/2010/05/something-blogger-this-way-comes.html' title='Something Blogger This Way Comes'/><author><name>Webspinner Inc.</name><uri>http://www.blogger.com/profile/14476630990241047008</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='00646463009227488915'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2657646430590665013.post-728475412344413083</id><published>2009-12-09T04:56:00.000-08:00</published><updated>2009-12-09T04:56:20.327-08:00</updated><title type='text'>Object hyperlinking - Wikipedia, the free encyclopedia</title><content type='html'>&lt;div&gt;Cool Stuff: REF Wikipedia&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://en.wikipedia.org/wiki/Object_hyperlinking"&gt;Object hyperlinking - Wikipedia, the free encyclopedia&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: sans-serif; font-size: 13px; line-height: 19px; "&gt;&lt;h2 style="color: black; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; font-weight: normal; margin-top: 0px; margin-right: 0px; margin-bottom: 0.6em; margin-left: 0px; padding-top: 0.5em; padding-bottom: 0.17em; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(170, 170, 170); font-size: 19px; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span class="mw-headline" id="System_components"&gt;System components&lt;/span&gt;&lt;/h2&gt;&lt;p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em; "&gt;Linking an object or a location to the Internet is a more involved process than linking two web pages. An object hyperlinking system requires seven components -&lt;/p&gt;&lt;div class="thumb tright" style="margin-bottom: 0.8em; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; width: auto; clear: right; float: right; border-width: initial; border-color: initial; border-width: initial; border-color: initial; margin-top: 0.5em; margin-right: 0px; margin-left: 1.4em; background-color: white; "&gt;&lt;div class="thumbinner" style="min-width: 100px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); padding-top: 3px !important; padding-right: 3px !important; padding-bottom: 3px !important; padding-left: 3px !important; background-color: rgb(249, 249, 249); font-size: 12px; text-align: center; overflow-x: hidden; overflow-y: hidden; width: 202px; "&gt;&lt;a href="http://en.wikipedia.org/wiki/File:Objectlinking.jpg" class="image" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;img alt="" src="http://upload.wikimedia.org/wikipedia/commons/thumb/2/2e/Objectlinking.jpg/200px-Objectlinking.jpg" width="200" height="150" class="thumbimage" style="border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-width: initial; border-color: initial; vertical-align: middle; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); background-color: rgb(255, 255, 255); " /&gt;&lt;/a&gt;&lt;div class="thumbcaption" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; text-align: left; line-height: 1.4em; padding-top: 3px !important; padding-right: 3px !important; padding-bottom: 3px !important; padding-left: 3px !important; font-size: 11px; "&gt;&lt;div class="magnify" style="float: right; border-top-style: none !important; border-right-style: none !important; border-bottom-style: none !important; border-left-style: none !important; border-width: initial !important; border-color: initial !important; background-image: none !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: initial !important; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;&lt;a href="http://en.wikipedia.org/wiki/File:Objectlinking.jpg" class="internal" title="Enlarge" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: initial !important; display: block; border-top-style: none !important; border-right-style: none !important; border-bottom-style: none !important; border-left-style: none !important; border-width: initial !important; border-color: initial !important; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;&lt;img src="http://en.wikipedia.org/skins-1.5/common/images/magnify-clip.png" width="15" height="11" alt="" style="border-top-style: none !important; border-right-style: none !important; border-bottom-style: none !important; border-left-style: none !important; border-width: initial; border-color: initial; vertical-align: middle; display: block; border-width: initial !important; border-color: initial !important; background-image: none !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: rgb(255, 255, 255); background-position: initial initial !important; background-repeat: initial initial !important; " /&gt;&lt;/a&gt;&lt;/div&gt;Components of an object hyperlinking scheme&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;ol style="line-height: 1.5em; margin-top: 0.3em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 3.2em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-image: none; "&gt;&lt;li style="margin-bottom: 0.1em; "&gt;A physical or virtual tag to identify objects and locations. Some tagging systems are described below. To allow the smaller physical tags to be located they must be embedded in visual markers. For example, the &lt;a href="http://en.wikipedia.org/wiki/Yellow_arrow" title="Yellow arrow" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;Yellow arrow&lt;/a&gt; scheme [see below] prints &lt;a href="http://en.wikipedia.org/wiki/Short_message_service" title="Short message service" class="mw-redirect" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;SMS&lt;/a&gt; tags on large adhesive yellow arrows, which can then be stuck on buildings etc.&lt;/li&gt;&lt;li style="margin-bottom: 0.1em; "&gt;A means of reading physical tags, or locating virtual tags.&lt;/li&gt;&lt;li style="margin-bottom: 0.1em; "&gt;A mobile device such as a mobile telephone, a &lt;a href="http://en.wikipedia.org/wiki/Personal_digital_assistant" title="Personal digital assistant" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;PDA&lt;/a&gt; or a portable computer.&lt;/li&gt;&lt;li style="margin-bottom: 0.1em; "&gt;Additional software for the mobile device.&lt;/li&gt;&lt;li style="margin-bottom: 0.1em; "&gt;A digital wide area wireless network, such as the existing &lt;a href="http://en.wikipedia.org/wiki/2G" title="2G" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;2G&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/3G" title="3G" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;3G&lt;/a&gt; networks, for communication between the portable device and the server containing the information linked to the tagged object.&lt;/li&gt;&lt;li style="margin-bottom: 0.1em; "&gt;Information on each linked object. This information could be in existing WWW pages, existing databases of price information etc, or have been specially created.&lt;/li&gt;&lt;li style="margin-bottom: 0.1em; "&gt;A display to view the information on the linked object. At the present time this is most likely to be the screen of a mobile telephone.&lt;/li&gt;&lt;/ol&gt;&lt;h2 style="color: black; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; font-weight: normal; margin-top: 0px; margin-right: 0px; margin-bottom: 0.6em; margin-left: 0px; padding-top: 0.5em; padding-bottom: 0.17em; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(170, 170, 170); font-size: 19px; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span class="mw-headline" id="Tags_and_tag_readings_systems"&gt;&lt;br /&gt;Tags and tag readings systems&lt;/span&gt;&lt;/h2&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2657646430590665013-728475412344413083?l=tech.webspinnerinc.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://en.wikipedia.org/wiki/Object_hyperlinking' title='Object hyperlinking - Wikipedia, the free encyclopedia'/><link rel='replies' type='application/atom+xml' href='http://tech.webspinnerinc.com/feeds/728475412344413083/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tech.webspinnerinc.com/2009/12/object-hyperlinking-wikipedia-free.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2657646430590665013/posts/default/728475412344413083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2657646430590665013/posts/default/728475412344413083'/><link rel='alternate' type='text/html' href='http://tech.webspinnerinc.com/2009/12/object-hyperlinking-wikipedia-free.html' title='Object hyperlinking - Wikipedia, the free encyclopedia'/><author><name>Webspinner Inc.</name><uri>http://www.blogger.com/profile/14476630990241047008</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='00646463009227488915'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2657646430590665013.post-6436124114172976511</id><published>2009-12-02T15:23:00.001-08:00</published><updated>2009-12-02T15:29:54.299-08:00</updated><title type='text'>Google Wave</title><content type='html'>I got my invite today for Google Wave. Really neat! I have only gotten a couple of invites out that have resulted in people coming on. Anyway I already have a pretty good concept of the first couple of test uses for the product. First I know I need to plan next years vacation with my wife, so I was happy to find trippy available for the first post.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Also I will be using the wave to coordinate with one of my fellow webmasters in managing a couple of the sites I manage. I will have to pace myself with any kind of development load since I am currently working on some code review for Google Chromium OS and am still doing dev work for AutoClerk.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2657646430590665013-6436124114172976511?l=tech.webspinnerinc.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tech.webspinnerinc.com/feeds/6436124114172976511/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tech.webspinnerinc.com/2009/12/google-wave.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2657646430590665013/posts/default/6436124114172976511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2657646430590665013/posts/default/6436124114172976511'/><link rel='alternate' type='text/html' href='http://tech.webspinnerinc.com/2009/12/google-wave.html' title='Google Wave'/><author><name>Webspinner Inc.</name><uri>http://www.blogger.com/profile/14476630990241047008</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='00646463009227488915'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2657646430590665013.post-1121626590534000057</id><published>2009-11-26T16:25:00.000-08:00</published><updated>2009-11-26T16:31:43.149-08:00</updated><title type='text'>a New Keyboard</title><content type='html'>I was hanging around today and thinking about the qwerty problem. This mechanism was put in place to prevent typewriter jams, not much of a concern today. Today I propose a solution to the problem that enables to users used to the old way but flexibility for those living on the edge and creating the boundary. Each key or the entire keyboard surface is an LED touch interface. I prefer the first option to account for the tactile feel of pushing a key. Anyway the keys themselves are programmable and the led on the key will represent its new key assignment. This would allow users interested in creating a vowel break system or different layout without requiring a great deal of expenditure. If the software for this were released as an open source project with the purpose of devising the most effective keyboard implementation for future word input interfaces, we could expect to devise a more efficient system in just a few weeks and potentially affirm a new industry standard within a year.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2657646430590665013-1121626590534000057?l=tech.webspinnerinc.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tech.webspinnerinc.com/feeds/1121626590534000057/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tech.webspinnerinc.com/2009/11/new-keyboard.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2657646430590665013/posts/default/1121626590534000057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2657646430590665013/posts/default/1121626590534000057'/><link rel='alternate' type='text/html' href='http://tech.webspinnerinc.com/2009/11/new-keyboard.html' title='a New Keyboard'/><author><name>Webspinner Inc.</name><uri>http://www.blogger.com/profile/14476630990241047008</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='00646463009227488915'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2657646430590665013.post-1387269354095842304</id><published>2009-11-24T01:30:00.000-08:00</published><updated>2009-11-24T01:57:34.214-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Chrome OS'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google Chrome OS and the Future of the Computing Experience</title><content type='html'>I have the bug. It took me in the early evening and carried me through the next few days of heated investigation and discovery. Bouts of doubt and contemplation dotted a vast plain of consumption and digestion. Google had released its much awaited and touted open source project Chromium OS.&lt;br /&gt;&lt;br /&gt;First I got my VirtualBox fired up and installed the image from &lt;a href="http://gdgt.com/google/chrome-os/download/"&gt;gdgt &lt;/a&gt;and poked around feverishly to see what it was, what it does, and maybe most importantly why. This last point caught me unprepared. This was not my computing experience, this was not something I would use in 80% of my computer work as it is right now. I am a programmer, web application developer, graphic designer... how was I going to take advantage of this experience.&lt;br /&gt;&lt;br /&gt;The reviewers had posted opinions ranging from the utopian to the disgusted. I was left baffled, reaching in the dark for answers and being forced to evaluate myself and my reliance on the PC experience of yore. What I soon discovered is that this was exactly what I had been wanting; for every other user in the world. It became clear to me that there has been a class based society sitting on the PC world from the beginning and google chrome set the lords and the vassals distinctly apart.&lt;br /&gt;&lt;br /&gt;This new paradigm, the browsing experience model was brilliant for users eager to consume web applications, social networks and content. This is the PC for the masses. It is light, fast, and secure. You don't have to know what you don't know to stay protected and connected. This changes everything.&lt;br /&gt;&lt;br /&gt;And where chrome is the village for the peasantry, the classic PC will become the Castles of the Land Owners. I see now a change for we the developers, the content providers, the makers of worlds that I have hoped for all my life. Where chrome lives on the cloud, the classic PC will become the cloud. The desktop PC must evolve into the server, the broadband connection no longer relegated to downloading but to serving up our constructions.&lt;br /&gt;&lt;br /&gt;In turn this will result in services offering desktop like access to our castles via the chrome interface. Development will be done remotely on thin clients and compiled and published from any access point. Local will become a geographical statement once again and data will become simultaneously free and contained.&lt;br /&gt;&lt;br /&gt;One immediately recognized reality is that linux is more suited for this transition than either Mac or Windows. The playing field will be leveled by this. Power users and creators will still get the castle of their preference, but they will act as beacons of power and community for the satellite chromebooks.&lt;br /&gt;&lt;br /&gt;I also noted the number of people arguing against chrome for its absence of desktop applications, some for their graphics applications (photoshop), others for their business software. I use aviary.com now for most of my graphics work, and it works beautifully on chrome (though the screen resolution could do with a boost). Business software has been evolving rapidly online with big hitters like salesforce.com and microsoft bringing their applications to the ASP space. Maybe I am blind but I don't see the argument as very valid.&lt;br /&gt;&lt;br /&gt;For me as a web application developer, the future is bright.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2657646430590665013-1387269354095842304?l=tech.webspinnerinc.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tech.webspinnerinc.com/feeds/1387269354095842304/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tech.webspinnerinc.com/2009/11/google-chrome-os-and-future-of.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2657646430590665013/posts/default/1387269354095842304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2657646430590665013/posts/default/1387269354095842304'/><link rel='alternate' type='text/html' href='http://tech.webspinnerinc.com/2009/11/google-chrome-os-and-future-of.html' title='Google Chrome OS and the Future of the Computing Experience'/><author><name>Webspinner Inc.</name><uri>http://www.blogger.com/profile/14476630990241047008</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='00646463009227488915'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2657646430590665013.post-172026176990420460</id><published>2009-11-11T20:59:00.000-08:00</published><updated>2009-11-11T22:05:22.996-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Single Sign On'/><category scheme='http://www.blogger.com/atom/ns#' term='Hacks'/><category scheme='http://www.blogger.com/atom/ns#' term='DNN'/><category scheme='http://www.blogger.com/atom/ns#' term='Users'/><category scheme='http://www.blogger.com/atom/ns#' term='Multiple Portal'/><title type='text'>DNN User Merge for Multiple Portals</title><content type='html'>&lt;p&gt;&lt;br /&gt;My boss was hounding me about why he had to have multiple usernames for our different DNN portals (we have one for Customer Support, one for Sales and one for Intranet purposes). By default DNN didn't allow me to create users for those portals with identical user names. So after playing with the data a bit I figured out a way and wanted to share it with you and keep it here in case I need to do it again and forget how.&lt;/p&gt;&lt;p&gt;First we need to understand the fundamental underpinnings of the Users structure inside the database. We will be using the Host SQL tab to perform data manipulation so make sure you have the database backed up before attempting these hacks.&lt;/p&gt;&lt;p&gt;So User permissions are basically set in three tables:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Users&lt;/li&gt;&lt;li&gt;UserPortals&lt;/li&gt;&lt;li&gt;UserRoles&lt;/li&gt;&lt;/ol&gt;These are all important tables to keep consistent. So lets say you have user 'foo' in the Users table, his record would be something like this:&lt;br /&gt;&lt;br /&gt;&lt;table id="dnn_ctr325_SQL_gvResults" style="border-collapse: collapse;" rules="all" border="1" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr class="SubHead"&gt;&lt;th scope="col"&gt;UserID&lt;/th&gt;&lt;th scope="col"&gt;Username&lt;/th&gt;&lt;th scope="col"&gt;FirstName&lt;/th&gt;&lt;th scope="col"&gt;LastName&lt;/th&gt;&lt;th scope="col"&gt;IsSuperUser&lt;/th&gt;&lt;th scope="col"&gt;AffiliateId&lt;/th&gt;&lt;th scope="col"&gt;Email&lt;/th&gt;&lt;th scope="col"&gt;DisplayName&lt;/th&gt;&lt;th scope="col"&gt;UpdatePassword&lt;/th&gt;&lt;/tr&gt;&lt;tr class="Normal"&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;foo&lt;/td&gt;&lt;td&gt;Foo&lt;/td&gt;&lt;td&gt;Bar&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="IsSuperUser"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl02_ctl00" name="dnn$ctr325$SQL$gvResults$ctl02$ctl00" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;foo@bar.com&lt;/td&gt;&lt;td&gt;Foo Bar&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="UpdatePassword"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl02_ctl01" name="dnn$ctr325$SQL$gvResults$ctl02$ctl01" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;You could get access to this record to see it in this state by passing the SQL query:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;SELECT * FROM Users WHERE Username = 'foo'&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;So now lets say that you have another portal where foo also needs access and you have set him up another user for that portal called foo2:&lt;br /&gt;&lt;br /&gt;&lt;table id="dnn_ctr325_SQL_gvResults" style="border-collapse: collapse;" rules="all" border="1" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr class="SubHead"&gt;&lt;th scope="col"&gt;UserID&lt;/th&gt;&lt;th scope="col"&gt;Username&lt;/th&gt;&lt;th scope="col"&gt;FirstName&lt;/th&gt;&lt;th scope="col"&gt;LastName&lt;/th&gt;&lt;th scope="col"&gt;IsSuperUser&lt;/th&gt;&lt;th scope="col"&gt;AffiliateId&lt;/th&gt;&lt;th scope="col"&gt;Email&lt;/th&gt;&lt;th scope="col"&gt;DisplayName&lt;/th&gt;&lt;th scope="col"&gt;UpdatePassword&lt;/th&gt;&lt;/tr&gt;&lt;tr class="Normal"&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;foo&lt;/td&gt;&lt;td&gt;Foo&lt;/td&gt;&lt;td&gt;Bar&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="IsSuperUser"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl02_ctl00" name="dnn$ctr325$SQL$gvResults$ctl02$ctl00" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;foo@bar.com&lt;/td&gt;&lt;td&gt;Foo Bar&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="UpdatePassword"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl02_ctl01" name="dnn$ctr325$SQL$gvResults$ctl02$ctl01" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="Normal"&gt;&lt;td&gt;2&lt;br /&gt;&lt;/td&gt;&lt;td&gt;foo2&lt;/td&gt;&lt;td&gt;Foo&lt;/td&gt;&lt;td&gt;Bar&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="IsSuperUser"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl03_ctl00" name="dnn$ctr325$SQL$gvResults$ctl03$ctl00" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;foo@bar.com&lt;/td&gt;&lt;td&gt;Foo Bar&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="UpdatePassword"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl03_ctl01" name="dnn$ctr325$SQL$gvResults$ctl03$ctl01" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;As you can see these are essentially identical users but DNN will not let you log into portal 1 with user 2 or into portal 2 with user 1. The secret here is UserPortals. First determine what user is assigned to which portal. To do this will use the SQL statement:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;SELECT * FROM Users INNER JOIN UserPortals ON Users.UserID = UserPortals.UserID WHERE Email = 'foo@bar.com'&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Now notice that since the usernames are not the same, the ticket was to use a field where they match and since email is the usual suspect I decided to use that. The results of that query would look something like this:&lt;br /&gt;&lt;br /&gt;&lt;table id="dnn_ctr325_SQL_gvResults" style="border-collapse: collapse;" rules="all" border="1" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr class="SubHead"&gt;&lt;th scope="col"&gt;UserID&lt;/th&gt;&lt;th scope="col"&gt;Username&lt;/th&gt;&lt;th scope="col"&gt;FirstName&lt;/th&gt;&lt;th scope="col"&gt;LastName&lt;/th&gt;&lt;th scope="col"&gt;IsSuperUser&lt;/th&gt;&lt;th scope="col"&gt;AffiliateId&lt;/th&gt;&lt;th scope="col"&gt;Email&lt;/th&gt;&lt;th scope="col"&gt;DisplayName&lt;/th&gt;&lt;th scope="col"&gt;UpdatePassword&lt;/th&gt;&lt;th scope="col"&gt;UserId1&lt;/th&gt;&lt;th scope="col"&gt;PortalId&lt;/th&gt;&lt;th scope="col"&gt;UserPortalId&lt;/th&gt;&lt;th scope="col"&gt;CreatedDate&lt;/th&gt;&lt;th scope="col"&gt;Authorised&lt;/th&gt;    &lt;/tr&gt;&lt;tr class="Normal"&gt;     &lt;td&gt;5&lt;/td&gt;&lt;td&gt;foo&lt;/td&gt;&lt;td&gt;Foo&lt;/td&gt;&lt;td&gt;Bar&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="IsSuperUser"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl02_ctl00" name="dnn$ctr325$SQL$gvResults$ctl02$ctl00" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;foo@bar.com&lt;/td&gt;&lt;td&gt;Foo Bar&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="UpdatePassword"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl02_ctl01" name="dnn$ctr325$SQL$gvResults$ctl02$ctl01" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;11/11/2009 9:54:51 PM&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="Authorised"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl02_ctl02" name="dnn$ctr325$SQL$gvResults$ctl02$ctl02" checked="checked" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;    &lt;/tr&gt;&lt;tr class="Normal"&gt;     &lt;td&gt;6&lt;/td&gt;&lt;td&gt;foo2&lt;/td&gt;&lt;td&gt;Foo&lt;/td&gt;&lt;td&gt;Bar&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="IsSuperUser"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl03_ctl00" name="dnn$ctr325$SQL$gvResults$ctl03$ctl00" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;foo@bar.com&lt;/td&gt;&lt;td&gt;Foo Bar&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="UpdatePassword"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl03_ctl01" name="dnn$ctr325$SQL$gvResults$ctl03$ctl01" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;11/11/2009 9:56:05 PM&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="Authorised"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl03_ctl02" name="dnn$ctr325$SQL$gvResults$ctl03$ctl02" checked="checked" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Ok so now we know which portals are for which user, next lets also get the roles, because the roles are different for each portal. So we add to the above SQL statement:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;SELECT * FROM Users INNER JOIN UserPortals ON Users.UserID = UserPortals.UserID INNER JOIN UserRoles ON Users.UserID = UserRoles.UserID WHERE Email = 'foo@bar.com'&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Which yields us:&lt;br /&gt;&lt;br /&gt;&lt;table id="dnn_ctr325_SQL_gvResults" style="border-collapse: collapse;" rules="all" border="1" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr class="SubHead"&gt;&lt;th scope="col"&gt;UserID&lt;/th&gt;&lt;th scope="col"&gt;Username&lt;/th&gt;&lt;th scope="col"&gt;FirstName&lt;/th&gt;&lt;th scope="col"&gt;LastName&lt;/th&gt;&lt;th scope="col"&gt;IsSuperUser&lt;/th&gt;&lt;th scope="col"&gt;AffiliateId&lt;/th&gt;&lt;th scope="col"&gt;Email&lt;/th&gt;&lt;th scope="col"&gt;DisplayName&lt;/th&gt;&lt;th scope="col"&gt;UpdatePassword&lt;/th&gt;&lt;th scope="col"&gt;UserId1&lt;/th&gt;&lt;th scope="col"&gt;PortalId&lt;/th&gt;&lt;th scope="col"&gt;UserPortalId&lt;/th&gt;&lt;th scope="col"&gt;CreatedDate&lt;/th&gt;&lt;th scope="col"&gt;Authorised&lt;/th&gt;&lt;th scope="col"&gt;UserRoleID&lt;/th&gt;&lt;th scope="col"&gt;UserID2&lt;/th&gt;&lt;th scope="col"&gt;RoleID&lt;/th&gt;&lt;th scope="col"&gt;ExpiryDate&lt;/th&gt;&lt;th scope="col"&gt;IsTrialUsed&lt;/th&gt;&lt;th scope="col"&gt;EffectiveDate&lt;/th&gt;    &lt;/tr&gt;&lt;tr class="Normal"&gt;     &lt;td&gt;5&lt;/td&gt;&lt;td&gt;foo&lt;/td&gt;&lt;td&gt;Foo&lt;/td&gt;&lt;td&gt;Bar&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="IsSuperUser"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl02_ctl00" name="dnn$ctr325$SQL$gvResults$ctl02$ctl00" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;foo@bar.com&lt;/td&gt;&lt;td&gt;Foo Bar&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="UpdatePassword"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl02_ctl01" name="dnn$ctr325$SQL$gvResults$ctl02$ctl01" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;11/11/2009 9:54:51 PM&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="Authorised"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl02_ctl02" name="dnn$ctr325$SQL$gvResults$ctl02$ctl02" checked="checked" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;7&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="IsTrialUsed"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl02_ctl03" name="dnn$ctr325$SQL$gvResults$ctl02$ctl03" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;    &lt;/tr&gt;&lt;tr class="Normal"&gt;     &lt;td&gt;5&lt;/td&gt;&lt;td&gt;foo&lt;/td&gt;&lt;td&gt;Foo&lt;/td&gt;&lt;td&gt;Bar&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="IsSuperUser"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl03_ctl00" name="dnn$ctr325$SQL$gvResults$ctl03$ctl00" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;foo@bar.com&lt;/td&gt;&lt;td&gt;Foo Bar&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="UpdatePassword"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl03_ctl01" name="dnn$ctr325$SQL$gvResults$ctl03$ctl01" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;11/11/2009 9:54:51 PM&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="Authorised"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl03_ctl02" name="dnn$ctr325$SQL$gvResults$ctl03$ctl02" checked="checked" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;10&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="IsTrialUsed"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl03_ctl03" name="dnn$ctr325$SQL$gvResults$ctl03$ctl03" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;    &lt;/tr&gt;&lt;tr class="Normal"&gt;     &lt;td&gt;5&lt;/td&gt;&lt;td&gt;foo&lt;/td&gt;&lt;td&gt;Foo&lt;/td&gt;&lt;td&gt;Bar&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="IsSuperUser"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl04_ctl00" name="dnn$ctr325$SQL$gvResults$ctl04$ctl00" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;foo@bar.com&lt;/td&gt;&lt;td&gt;Foo Bar&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="UpdatePassword"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl04_ctl01" name="dnn$ctr325$SQL$gvResults$ctl04$ctl01" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;11/11/2009 9:54:51 PM&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="Authorised"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl04_ctl02" name="dnn$ctr325$SQL$gvResults$ctl04$ctl02" checked="checked" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;11&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="IsTrialUsed"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl04_ctl03" name="dnn$ctr325$SQL$gvResults$ctl04$ctl03" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;    &lt;/tr&gt;&lt;tr class="Normal"&gt;     &lt;td&gt;6&lt;/td&gt;&lt;td&gt;foo2&lt;/td&gt;&lt;td&gt;Foo&lt;/td&gt;&lt;td&gt;Bar&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="IsSuperUser"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl05_ctl00" name="dnn$ctr325$SQL$gvResults$ctl05$ctl00" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;foo@bar.com&lt;/td&gt;&lt;td&gt;Foo Bar&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="UpdatePassword"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl05_ctl01" name="dnn$ctr325$SQL$gvResults$ctl05$ctl01" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;11/11/2009 9:56:05 PM&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="Authorised"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl05_ctl02" name="dnn$ctr325$SQL$gvResults$ctl05$ctl02" checked="checked" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;12&lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;10&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="IsTrialUsed"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl05_ctl03" name="dnn$ctr325$SQL$gvResults$ctl05$ctl03" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;    &lt;/tr&gt;&lt;tr class="Normal"&gt;     &lt;td&gt;6&lt;/td&gt;&lt;td&gt;foo2&lt;/td&gt;&lt;td&gt;Foo&lt;/td&gt;&lt;td&gt;Bar&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="IsSuperUser"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl06_ctl00" name="dnn$ctr325$SQL$gvResults$ctl06$ctl00" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;foo@bar.com&lt;/td&gt;&lt;td&gt;Foo Bar&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="UpdatePassword"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl06_ctl01" name="dnn$ctr325$SQL$gvResults$ctl06$ctl01" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;11/11/2009 9:56:05 PM&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="Authorised"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl06_ctl02" name="dnn$ctr325$SQL$gvResults$ctl06$ctl02" checked="checked" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;13&lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;11&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="IsTrialUsed"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl06_ctl03" name="dnn$ctr325$SQL$gvResults$ctl06$ctl03" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;    &lt;/tr&gt;&lt;tr class="Normal"&gt;     &lt;td&gt;6&lt;/td&gt;&lt;td&gt;foo2&lt;/td&gt;&lt;td&gt;Foo&lt;/td&gt;&lt;td&gt;Bar&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="IsSuperUser"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl07_ctl00" name="dnn$ctr325$SQL$gvResults$ctl07$ctl00" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;foo@bar.com&lt;/td&gt;&lt;td&gt;Foo Bar&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="UpdatePassword"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl07_ctl01" name="dnn$ctr325$SQL$gvResults$ctl07$ctl01" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;11/11/2009 9:56:05 PM&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="Authorised"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl07_ctl02" name="dnn$ctr325$SQL$gvResults$ctl07$ctl02" checked="checked" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;14&lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="IsTrialUsed"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl07_ctl03" name="dnn$ctr325$SQL$gvResults$ctl07$ctl03" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Ok so there is a lot going on now. Clearly these users are both administrators of their respective sites, now we just need to trim it down to one user, we will use UserID 5 since that is 'foo'. The SQL statement for this would be:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;UPDATE UserPortals SET UserID = 5 WHERE UserID = 6;&lt;br /&gt;UPDATE UserRoles Set UserID = 5 WHERE UserID = 6;&lt;br /&gt;DELETE FROM Users WHERE UserID = 6;&lt;br /&gt;SELECT * FROM Users INNER JOIN UserPortals ON Users.UserID = UserPortals.UserID INNER JOIN UserRoles ON Users.UserID = UserRoles.UserID WHERE Email = 'foo@bar.com'&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;This yields us the following result:&lt;br /&gt;&lt;br /&gt;&lt;table id="dnn_ctr325_SQL_gvResults" style="border-collapse: collapse;" rules="all" border="1" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr class="SubHead"&gt;&lt;th scope="col"&gt;UserID&lt;/th&gt;&lt;th scope="col"&gt;Username&lt;/th&gt;&lt;th scope="col"&gt;FirstName&lt;/th&gt;&lt;th scope="col"&gt;LastName&lt;/th&gt;&lt;th scope="col"&gt;IsSuperUser&lt;/th&gt;&lt;th scope="col"&gt;AffiliateId&lt;/th&gt;&lt;th scope="col"&gt;Email&lt;/th&gt;&lt;th scope="col"&gt;DisplayName&lt;/th&gt;&lt;th scope="col"&gt;UpdatePassword&lt;/th&gt;&lt;th scope="col"&gt;UserId1&lt;/th&gt;&lt;th scope="col"&gt;PortalId&lt;/th&gt;&lt;th scope="col"&gt;UserPortalId&lt;/th&gt;&lt;th scope="col"&gt;CreatedDate&lt;/th&gt;&lt;th scope="col"&gt;Authorised&lt;/th&gt;&lt;th scope="col"&gt;UserRoleID&lt;/th&gt;&lt;th scope="col"&gt;UserID2&lt;/th&gt;&lt;th scope="col"&gt;RoleID&lt;/th&gt;&lt;th scope="col"&gt;ExpiryDate&lt;/th&gt;&lt;th scope="col"&gt;IsTrialUsed&lt;/th&gt;&lt;th scope="col"&gt;EffectiveDate&lt;/th&gt;    &lt;/tr&gt;&lt;tr class="Normal"&gt;     &lt;td&gt;5&lt;/td&gt;&lt;td&gt;foo&lt;/td&gt;&lt;td&gt;Foo&lt;/td&gt;&lt;td&gt;Bar&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="IsSuperUser"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl02_ctl00" name="dnn$ctr325$SQL$gvResults$ctl02$ctl00" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;foo@bar.com&lt;/td&gt;&lt;td&gt;Foo Bar&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="UpdatePassword"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl02_ctl01" name="dnn$ctr325$SQL$gvResults$ctl02$ctl01" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;11/11/2009 9:54:51 PM&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="Authorised"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl02_ctl02" name="dnn$ctr325$SQL$gvResults$ctl02$ctl02" checked="checked" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;7&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="IsTrialUsed"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl02_ctl03" name="dnn$ctr325$SQL$gvResults$ctl02$ctl03" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;    &lt;/tr&gt;&lt;tr class="Normal"&gt;     &lt;td&gt;5&lt;/td&gt;&lt;td&gt;foo&lt;/td&gt;&lt;td&gt;Foo&lt;/td&gt;&lt;td&gt;Bar&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="IsSuperUser"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl03_ctl00" name="dnn$ctr325$SQL$gvResults$ctl03$ctl00" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;foo@bar.com&lt;/td&gt;&lt;td&gt;Foo Bar&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="UpdatePassword"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl03_ctl01" name="dnn$ctr325$SQL$gvResults$ctl03$ctl01" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;11/11/2009 9:56:05 PM&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="Authorised"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl03_ctl02" name="dnn$ctr325$SQL$gvResults$ctl03$ctl02" checked="checked" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;7&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="IsTrialUsed"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl03_ctl03" name="dnn$ctr325$SQL$gvResults$ctl03$ctl03" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;    &lt;/tr&gt;&lt;tr class="Normal"&gt;     &lt;td&gt;5&lt;/td&gt;&lt;td&gt;foo&lt;/td&gt;&lt;td&gt;Foo&lt;/td&gt;&lt;td&gt;Bar&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="IsSuperUser"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl04_ctl00" name="dnn$ctr325$SQL$gvResults$ctl04$ctl00" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;foo@bar.com&lt;/td&gt;&lt;td&gt;Foo Bar&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="UpdatePassword"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl04_ctl01" name="dnn$ctr325$SQL$gvResults$ctl04$ctl01" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;11/11/2009 9:54:51 PM&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="Authorised"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl04_ctl02" name="dnn$ctr325$SQL$gvResults$ctl04$ctl02" checked="checked" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;10&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="IsTrialUsed"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl04_ctl03" name="dnn$ctr325$SQL$gvResults$ctl04$ctl03" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;    &lt;/tr&gt;&lt;tr class="Normal"&gt;     &lt;td&gt;5&lt;/td&gt;&lt;td&gt;foo&lt;/td&gt;&lt;td&gt;Foo&lt;/td&gt;&lt;td&gt;Bar&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="IsSuperUser"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl05_ctl00" name="dnn$ctr325$SQL$gvResults$ctl05$ctl00" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;foo@bar.com&lt;/td&gt;&lt;td&gt;Foo Bar&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="UpdatePassword"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl05_ctl01" name="dnn$ctr325$SQL$gvResults$ctl05$ctl01" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;11/11/2009 9:56:05 PM&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="Authorised"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl05_ctl02" name="dnn$ctr325$SQL$gvResults$ctl05$ctl02" checked="checked" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;10&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="IsTrialUsed"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl05_ctl03" name="dnn$ctr325$SQL$gvResults$ctl05$ctl03" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;    &lt;/tr&gt;&lt;tr class="Normal"&gt;     &lt;td&gt;5&lt;/td&gt;&lt;td&gt;foo&lt;/td&gt;&lt;td&gt;Foo&lt;/td&gt;&lt;td&gt;Bar&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="IsSuperUser"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl06_ctl00" name="dnn$ctr325$SQL$gvResults$ctl06$ctl00" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;foo@bar.com&lt;/td&gt;&lt;td&gt;Foo Bar&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="UpdatePassword"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl06_ctl01" name="dnn$ctr325$SQL$gvResults$ctl06$ctl01" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;11/11/2009 9:54:51 PM&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="Authorised"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl06_ctl02" name="dnn$ctr325$SQL$gvResults$ctl06$ctl02" checked="checked" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;11&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="IsTrialUsed"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl06_ctl03" name="dnn$ctr325$SQL$gvResults$ctl06$ctl03" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;    &lt;/tr&gt;&lt;tr class="Normal"&gt;     &lt;td&gt;5&lt;/td&gt;&lt;td&gt;foo&lt;/td&gt;&lt;td&gt;Foo&lt;/td&gt;&lt;td&gt;Bar&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="IsSuperUser"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl07_ctl00" name="dnn$ctr325$SQL$gvResults$ctl07$ctl00" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;foo@bar.com&lt;/td&gt;&lt;td&gt;Foo Bar&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="UpdatePassword"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl07_ctl01" name="dnn$ctr325$SQL$gvResults$ctl07$ctl01" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;11/11/2009 9:56:05 PM&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="Authorised"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl07_ctl02" name="dnn$ctr325$SQL$gvResults$ctl07$ctl02" checked="checked" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;11&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="IsTrialUsed"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl07_ctl03" name="dnn$ctr325$SQL$gvResults$ctl07$ctl03" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;    &lt;/tr&gt;&lt;tr class="Normal"&gt;     &lt;td&gt;5&lt;/td&gt;&lt;td&gt;foo&lt;/td&gt;&lt;td&gt;Foo&lt;/td&gt;&lt;td&gt;Bar&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="IsSuperUser"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl08_ctl00" name="dnn$ctr325$SQL$gvResults$ctl08$ctl00" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;foo@bar.com&lt;/td&gt;&lt;td&gt;Foo Bar&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="UpdatePassword"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl08_ctl01" name="dnn$ctr325$SQL$gvResults$ctl08$ctl01" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;11/11/2009 9:54:51 PM&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="Authorised"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl08_ctl02" name="dnn$ctr325$SQL$gvResults$ctl08$ctl02" checked="checked" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;12&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;10&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="IsTrialUsed"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl08_ctl03" name="dnn$ctr325$SQL$gvResults$ctl08$ctl03" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;    &lt;/tr&gt;&lt;tr class="Normal"&gt;     &lt;td&gt;5&lt;/td&gt;&lt;td&gt;foo&lt;/td&gt;&lt;td&gt;Foo&lt;/td&gt;&lt;td&gt;Bar&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="IsSuperUser"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl09_ctl00" name="dnn$ctr325$SQL$gvResults$ctl09$ctl00" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;foo@bar.com&lt;/td&gt;&lt;td&gt;Foo Bar&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="UpdatePassword"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl09_ctl01" name="dnn$ctr325$SQL$gvResults$ctl09$ctl01" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;11/11/2009 9:56:05 PM&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="Authorised"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl09_ctl02" name="dnn$ctr325$SQL$gvResults$ctl09$ctl02" checked="checked" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;12&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;10&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="IsTrialUsed"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl09_ctl03" name="dnn$ctr325$SQL$gvResults$ctl09$ctl03" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;    &lt;/tr&gt;&lt;tr class="Normal"&gt;     &lt;td&gt;5&lt;/td&gt;&lt;td&gt;foo&lt;/td&gt;&lt;td&gt;Foo&lt;/td&gt;&lt;td&gt;Bar&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="IsSuperUser"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl10_ctl00" name="dnn$ctr325$SQL$gvResults$ctl10$ctl00" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;foo@bar.com&lt;/td&gt;&lt;td&gt;Foo Bar&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="UpdatePassword"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl10_ctl01" name="dnn$ctr325$SQL$gvResults$ctl10$ctl01" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;11/11/2009 9:54:51 PM&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="Authorised"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl10_ctl02" name="dnn$ctr325$SQL$gvResults$ctl10$ctl02" checked="checked" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;13&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;11&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="IsTrialUsed"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl10_ctl03" name="dnn$ctr325$SQL$gvResults$ctl10$ctl03" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;    &lt;/tr&gt;&lt;tr class="Normal"&gt;     &lt;td&gt;5&lt;/td&gt;&lt;td&gt;foo&lt;/td&gt;&lt;td&gt;Foo&lt;/td&gt;&lt;td&gt;Bar&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="IsSuperUser"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl11_ctl00" name="dnn$ctr325$SQL$gvResults$ctl11$ctl00" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;foo@bar.com&lt;/td&gt;&lt;td&gt;Foo Bar&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="UpdatePassword"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl11_ctl01" name="dnn$ctr325$SQL$gvResults$ctl11$ctl01" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;11/11/2009 9:56:05 PM&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="Authorised"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl11_ctl02" name="dnn$ctr325$SQL$gvResults$ctl11$ctl02" checked="checked" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;13&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;11&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="IsTrialUsed"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl11_ctl03" name="dnn$ctr325$SQL$gvResults$ctl11$ctl03" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;    &lt;/tr&gt;&lt;tr class="Normal"&gt;     &lt;td&gt;5&lt;/td&gt;&lt;td&gt;foo&lt;/td&gt;&lt;td&gt;Foo&lt;/td&gt;&lt;td&gt;Bar&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="IsSuperUser"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl12_ctl00" name="dnn$ctr325$SQL$gvResults$ctl12$ctl00" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;foo@bar.com&lt;/td&gt;&lt;td&gt;Foo Bar&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="UpdatePassword"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl12_ctl01" name="dnn$ctr325$SQL$gvResults$ctl12$ctl01" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;11/11/2009 9:54:51 PM&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="Authorised"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl12_ctl02" name="dnn$ctr325$SQL$gvResults$ctl12$ctl02" checked="checked" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;14&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="IsTrialUsed"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl12_ctl03" name="dnn$ctr325$SQL$gvResults$ctl12$ctl03" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;    &lt;/tr&gt;&lt;tr class="Normal"&gt;     &lt;td&gt;5&lt;/td&gt;&lt;td&gt;foo&lt;/td&gt;&lt;td&gt;Foo&lt;/td&gt;&lt;td&gt;Bar&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="IsSuperUser"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl13_ctl00" name="dnn$ctr325$SQL$gvResults$ctl13$ctl00" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;foo@bar.com&lt;/td&gt;&lt;td&gt;Foo Bar&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="UpdatePassword"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl13_ctl01" name="dnn$ctr325$SQL$gvResults$ctl13$ctl01" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;11/11/2009 9:56:05 PM&lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="Authorised"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl13_ctl02" name="dnn$ctr325$SQL$gvResults$ctl13$ctl02" checked="checked" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;14&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;&lt;span disabled="disabled" title="IsTrialUsed"&gt;&lt;input id="dnn_ctr325_SQL_gvResults_ctl13_ctl03" name="dnn$ctr325$SQL$gvResults$ctl13$ctl03" disabled="disabled" type="checkbox"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;as you can see, user foo2 has been deleted entirely and if you log into either site with foo you will have the permissions of foo and foo2 from before the hack.&lt;br /&gt;&lt;br /&gt;Hope this helps some people out there make sense of their DNN user issues.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2657646430590665013-172026176990420460?l=tech.webspinnerinc.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tech.webspinnerinc.com/feeds/172026176990420460/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tech.webspinnerinc.com/2009/11/dnn-user-merge-for-multiple-portals.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2657646430590665013/posts/default/172026176990420460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2657646430590665013/posts/default/172026176990420460'/><link rel='alternate' type='text/html' href='http://tech.webspinnerinc.com/2009/11/dnn-user-merge-for-multiple-portals.html' title='DNN User Merge for Multiple Portals'/><author><name>Webspinner Inc.</name><uri>http://www.blogger.com/profile/14476630990241047008</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='00646463009227488915'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2657646430590665013.post-5763833728354492174</id><published>2009-10-06T05:17:00.001-07:00</published><updated>2009-10-06T05:19:22.880-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='DNN'/><title type='text'>Force javascript to run AFTER a DotNetNuke page is fully loaded</title><content type='html'>&lt;a href="http://www.eguanasolutions.com/DNN_Blog/EntryID/4.aspx"&gt;REF&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here's the helper function courtesy of Simon Willison:&lt;br /&gt;&lt;pre name="code" class="js"&gt;&lt;br /&gt;function addLoadEvent(func)&lt;br /&gt;{ var oldonload = window.onload;&lt;br /&gt;  if (typeof window.onload != 'function')&lt;br /&gt;  { window.onload = func; }&lt;br /&gt;  else&lt;br /&gt;  { window.onload = function()&lt;br /&gt;    { oldonload();&lt;br /&gt;      func();&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;To use the helper, call it with the name of our target function:&lt;br /&gt;&lt;pre name="code" class="js"&gt;&lt;br /&gt;addLoadEvent(msgPgLoaded);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Now our 'msgPgLoaded' function will not fire until the page is fully loaded.  Perfect!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2657646430590665013-5763833728354492174?l=tech.webspinnerinc.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tech.webspinnerinc.com/feeds/5763833728354492174/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tech.webspinnerinc.com/2009/10/force-javascript-to-run-after.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2657646430590665013/posts/default/5763833728354492174'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2657646430590665013/posts/default/5763833728354492174'/><link rel='alternate' type='text/html' href='http://tech.webspinnerinc.com/2009/10/force-javascript-to-run-after.html' title='Force javascript to run AFTER a DotNetNuke page is fully loaded'/><author><name>Webspinner Inc.</name><uri>http://www.blogger.com/profile/14476630990241047008</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='00646463009227488915'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2657646430590665013.post-6471965455492886676</id><published>2009-10-06T00:43:00.000-07:00</published><updated>2009-10-06T00:58:34.606-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WMI'/><category scheme='http://www.blogger.com/atom/ns#' term='text'/><category scheme='http://www.blogger.com/atom/ns#' term='remote'/><category scheme='http://www.blogger.com/atom/ns#' term='vbscript'/><title type='text'>Can I Combine Multiple Text Files Using a Script?</title><content type='html'>&lt;a href="http://www.microsoft.com/technet/scriptcenter/resources/qanda/dec04/hey1201.mspx"&gt;REF&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="vb"&gt;&lt;br /&gt;Const ForReading = 1&lt;br /&gt;&lt;br /&gt;Set objFSO = CreateObject("Scripting.FileSystemObject")&lt;br /&gt;Set objOutputFile = objFSO.CreateTextFile("output.txt")&lt;br /&gt;&lt;br /&gt;strComputer = "."&lt;br /&gt;Set objWMIService = GetObject("winmgmts:\\" &amp; strComputer &amp; "\root\cimv2")&lt;br /&gt;&lt;br /&gt;Set FileList = objWMIService.ExecQuery _&lt;br /&gt;    ("ASSOCIATORS OF {Win32_Directory.Name='C:\Logs'} Where " _&lt;br /&gt;        &amp; "ResultClass = CIM_DataFile")&lt;br /&gt;&lt;br /&gt;For Each objFile In FileList&lt;br /&gt;    Set objTextFile = objFSO.OpenTextFile(objFile.Name, ForReading) &lt;br /&gt;    strText = objTextFile.ReadAll&lt;br /&gt;    objTextFile.Close&lt;br /&gt;    objOutputFile.WriteLine strText&lt;br /&gt;Next&lt;br /&gt;&lt;br /&gt;objOutputFile.Close&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/2657646430590665013-6471965455492886676?l=tech.webspinnerinc.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tech.webspinnerinc.com/feeds/6471965455492886676/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tech.webspinnerinc.com/2009/10/can-i-combine-multiple-text-files-using.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2657646430590665013/posts/default/6471965455492886676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2657646430590665013/posts/default/6471965455492886676'/><link rel='alternate' type='text/html' href='http://tech.webspinnerinc.com/2009/10/can-i-combine-multiple-text-files-using.html' title='Can I Combine Multiple Text Files Using a Script?'/><author><name>Webspinner Inc.</name><uri>http://www.blogger.com/profile/14476630990241047008</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='00646463009227488915'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2657646430590665013.post-8031345297109843470</id><published>2009-10-05T23:08:00.000-07:00</published><updated>2009-10-06T00:59:28.665-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='process'/><category scheme='http://www.blogger.com/atom/ns#' term='WMI'/><category scheme='http://www.blogger.com/atom/ns#' term='authenticate'/><category scheme='http://www.blogger.com/atom/ns#' term='remote'/><category scheme='http://www.blogger.com/atom/ns#' term='vbscript'/><title type='text'>Connecting to WMI on a Remote Computer</title><content type='html'>From &lt;a href="http://msdn.microsoft.com/en-us/library/aa389290%28VS.85%29.aspx"&gt;REF&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="vb"&gt;&lt;br /&gt;' Full Computer Name&lt;br /&gt;' can be found by right-clicking My Computer,&lt;br /&gt;' then click Properties, then click the Computer Name tab)&lt;br /&gt;' or use the computer's IP address&lt;br /&gt;strComputer = "FullComputerName" &lt;br /&gt;strDomain = "DOMAIN" &lt;br /&gt;Wscript.StdOut.Write "Please enter your user name:"&lt;br /&gt;strUser = Wscript.StdIn.ReadLine &lt;br /&gt;Set objPassword = CreateObject("ScriptPW.Password")&lt;br /&gt;Wscript.StdOut.Write "Please enter your password:"&lt;br /&gt;strPassword = objPassword.GetPassword()&lt;br /&gt; &lt;br /&gt;Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")&lt;br /&gt;Set objSWbemServices = objSWbemLocator.ConnectServer(strComputer, _&lt;br /&gt;    "root\cimv2", _&lt;br /&gt;     strUser, _&lt;br /&gt;     strPassword, _&lt;br /&gt;     "MS_409", _&lt;br /&gt;     "ntlmdomain:" + strDomain)&lt;br /&gt;Set colSwbemObjectSet = _&lt;br /&gt;    objSWbemServices.ExecQuery("Select * From Win32_Process")&lt;br /&gt;For Each objProcess in colSWbemObjectSet&lt;br /&gt;    Wscript.Echo "Process Name: " &amp; objProcess.Name &lt;br /&gt;Next&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/2657646430590665013-8031345297109843470?l=tech.webspinnerinc.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tech.webspinnerinc.com/feeds/8031345297109843470/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tech.webspinnerinc.com/2009/10/connecting-to-wmi-on-remote-computer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2657646430590665013/posts/default/8031345297109843470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2657646430590665013/posts/default/8031345297109843470'/><link rel='alternate' type='text/html' href='http://tech.webspinnerinc.com/2009/10/connecting-to-wmi-on-remote-computer.html' title='Connecting to WMI on a Remote Computer'/><author><name>Webspinner Inc.</name><uri>http://www.blogger.com/profile/14476630990241047008</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='00646463009227488915'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2657646430590665013.post-8768229639934630146</id><published>2009-09-29T17:36:00.000-07:00</published><updated>2009-10-06T01:00:01.033-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='url'/><category scheme='http://www.blogger.com/atom/ns#' term='decode'/><category scheme='http://www.blogger.com/atom/ns#' term='vbscript'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><title type='text'>How do I decode an encoded URL?</title><content type='html'>Sniped from &lt;a href="http://classicasp.aspfaq.com/general/how-do-i-decode-an-encoded-url.html"&gt;REF&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="vb"&gt;&lt;br /&gt;    Function URLDecode(str) &lt;br /&gt;        str = Replace(str, "+", " ") &lt;br /&gt;        For i = 1 To Len(str) &lt;br /&gt;            sT = Mid(str, i, 1) &lt;br /&gt;            If sT = "%" Then &lt;br /&gt;                If i+2 &lt; Len(str) Then &lt;br /&gt;                    sR = sR &amp; _ &lt;br /&gt;                        Chr(CLng("&amp;H" &amp; Mid(str, i+1, 2))) &lt;br /&gt;                    i = i+2 &lt;br /&gt;                End If &lt;br /&gt;            Else &lt;br /&gt;                sR = sR &amp; sT &lt;br /&gt;            End If &lt;br /&gt;        Next &lt;br /&gt;        URLDecode = sR &lt;br /&gt;    End Function &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/2657646430590665013-8768229639934630146?l=tech.webspinnerinc.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tech.webspinnerinc.com/feeds/8768229639934630146/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tech.webspinnerinc.com/2009/09/how-do-i-decode-encoded-url.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2657646430590665013/posts/default/8768229639934630146'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2657646430590665013/posts/default/8768229639934630146'/><link rel='alternate' type='text/html' href='http://tech.webspinnerinc.com/2009/09/how-do-i-decode-encoded-url.html' title='How do I decode an encoded URL?'/><author><name>Webspinner Inc.</name><uri>http://www.blogger.com/profile/14476630990241047008</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='00646463009227488915'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2657646430590665013.post-3305741751949225304</id><published>2009-09-29T05:54:00.000-07:00</published><updated>2009-09-29T05:56:45.030-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Environment'/><category scheme='http://www.blogger.com/atom/ns#' term='wsh'/><category scheme='http://www.blogger.com/atom/ns#' term='vbscript'/><category scheme='http://www.blogger.com/atom/ns#' term='Variable'/><category scheme='http://www.blogger.com/atom/ns#' term='WScript'/><category scheme='http://www.blogger.com/atom/ns#' term='Shell'/><title type='text'>VBScript Environment Variables</title><content type='html'>&lt;span class="article"&gt;&lt;span name="intelliTxt" id="intelliTxt"&gt;Jerold Schulman&lt;a href="http://windowsitpro.com/article/articleid/84803/jsi-tip-9956-how-do-i-use-an-environment-variable-in-vbscript.html"&gt;REF&lt;/a&gt;&lt;br /&gt;&lt;pre name="code" class="vb"&gt;&lt;br /&gt;Set oShell = CreateObject( "WScript.Shell" )&lt;br /&gt;user=oShell.ExpandEnvironmentStrings("%UserName%")&lt;br /&gt;comp=oShell.ExpandEnvironmentStrings("%ComputerName%")&lt;br /&gt;WScript.Echo user &amp;amp; " " &amp;amp; comp&lt;/pre&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2657646430590665013-3305741751949225304?l=tech.webspinnerinc.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tech.webspinnerinc.com/feeds/3305741751949225304/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tech.webspinnerinc.com/2009/09/vbscript-environment-variables.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2657646430590665013/posts/default/3305741751949225304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2657646430590665013/posts/default/3305741751949225304'/><link rel='alternate' type='text/html' href='http://tech.webspinnerinc.com/2009/09/vbscript-environment-variables.html' title='VBScript Environment Variables'/><author><name>Webspinner Inc.</name><uri>http://www.blogger.com/profile/14476630990241047008</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='00646463009227488915'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2657646430590665013.post-5778759408886294601</id><published>2009-09-29T01:48:00.001-07:00</published><updated>2009-09-29T05:58:17.450-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fso'/><category scheme='http://www.blogger.com/atom/ns#' term='folder'/><category scheme='http://www.blogger.com/atom/ns#' term='wsh'/><category scheme='http://www.blogger.com/atom/ns#' term='vbscript'/><category scheme='http://www.blogger.com/atom/ns#' term='WScript'/><title type='text'>How can VBScript create multiple folders in a path, like the MkDir command?</title><content type='html'>This is a repost of Jerold Schulman's article on Windowsitpro.com: &lt;a href="http://windowsitpro.com/article/articleid/85780/jsi-tip-10441-how-can-vbscript-create-multiple-folders-in-a-path-like-the-mkdir-command.html"&gt;REF&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;MakeDir.vbs contains:&lt;br /&gt;&lt;pre name="code" class="vb"&gt;&lt;br /&gt;dim objArguments, Obj&lt;br /&gt;Set objArguments = Wscript.Arguments&lt;br /&gt;If WScript.Arguments.Count = 0 then&lt;br /&gt; Wscript.Echo "Syntax: cscript //nologo MakeDir.vbs FolderPath"&lt;br /&gt; Wscript.Quit&lt;br /&gt;End If&lt;br /&gt;Obj = objArguments(0)&lt;br /&gt;X = MakeDir(Obj)&lt;br /&gt;Wscript.Quit&lt;br /&gt;Function MakeDir (strPath)&lt;br /&gt;Dim strParentPath, objFSO&lt;br /&gt;Set objFSO = CreateObject("Scripting.FileSystemObject")&lt;br /&gt;On Error Resume Next&lt;br /&gt;strParentPath = objFSO.GetParentFolderName(strPath)&lt;br /&gt;&lt;br /&gt;If Not objFSO.FolderExists(strParentPath) Then MakeDir strParentPath&lt;br /&gt;If Not objFSO.FolderExists(strPath) Then objFSO.CreateFolder strPath&lt;br /&gt;On Error Goto 0&lt;br /&gt;MakeDir = objFSO.FolderExists(strPath)&lt;br /&gt;End Function&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/2657646430590665013-5778759408886294601?l=tech.webspinnerinc.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tech.webspinnerinc.com/feeds/5778759408886294601/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tech.webspinnerinc.com/2009/09/this-is-repost-of-jerold-schulmans.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2657646430590665013/posts/default/5778759408886294601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2657646430590665013/posts/default/5778759408886294601'/><link rel='alternate' type='text/html' href='http://tech.webspinnerinc.com/2009/09/this-is-repost-of-jerold-schulmans.html' title='How can VBScript create multiple folders in a path, like the MkDir command?'/><author><name>Webspinner Inc.</name><uri>http://www.blogger.com/profile/14476630990241047008</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='00646463009227488915'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2657646430590665013.post-7652891898719689792</id><published>2009-09-29T01:02:00.001-07:00</published><updated>2009-10-06T01:00:50.965-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Error'/><category scheme='http://www.blogger.com/atom/ns#' term='Codes'/><category scheme='http://www.blogger.com/atom/ns#' term='wsh'/><category scheme='http://www.blogger.com/atom/ns#' term='FileSystemObject'/><category scheme='http://www.blogger.com/atom/ns#' term='vbscript'/><category scheme='http://www.blogger.com/atom/ns#' term='Err'/><title type='text'>VBScript... Err codes and meanings</title><content type='html'>I have compiled a list of the numbers and description of possible VBScript Error codes so I can use them later for more accurate error handling.&lt;br /&gt;&lt;blockquote  style="font-family:arial;"&gt;&lt;span style="font-size:78%;"&gt;5: Invalid procedure call or argument&lt;br /&gt;6: Overflow&lt;br /&gt;7: Out of memory&lt;br /&gt;9: Subscript out of range&lt;br /&gt;10: This array is fixed or temporarily locked&lt;br /&gt;11: Division by zero&lt;br /&gt;13: Type mismatch&lt;br /&gt;14: Out of string space&lt;br /&gt;17: Can't perform requested operation&lt;br /&gt;28: Out of stack space&lt;br /&gt;35: Sub or Function not defined&lt;br /&gt;48: Error in loading DLL&lt;br /&gt;51: Internal error&lt;br /&gt;52: Bad file name or number&lt;br /&gt;53: File not found&lt;br /&gt;54: Bad file mode&lt;br /&gt;55: File already open&lt;br /&gt;57: Device I/O error&lt;br /&gt;58: File already exists&lt;br /&gt;61: Disk full&lt;br /&gt;62: Input past end of file&lt;br /&gt;67: Too many files&lt;br /&gt;68: Device unavailable&lt;br /&gt;70: Permission denied&lt;br /&gt;71: Disk not ready&lt;br /&gt;74: Can't rename with different drive&lt;br /&gt;75: Path/File access error&lt;br /&gt;76: Path not found&lt;br /&gt;91: Object variable not set&lt;br /&gt;92: For loop not initialized&lt;br /&gt;94: Invalid use of Null&lt;br /&gt;322: Can't create necessary temporary file&lt;br /&gt;424: Object required&lt;br /&gt;429: ActiveX component can't create object&lt;br /&gt;430: Class doesn't support Automation&lt;br /&gt;432: File name or class name not found during Automation operation&lt;br /&gt;438: Object doesn't support this property or method&lt;br /&gt;440: Automation error&lt;br /&gt;445: Object doesn't support this action&lt;br /&gt;446: Object doesn't support named arguments&lt;br /&gt;447: Object doesn't support current locale setting&lt;br /&gt;448: Named argument not found&lt;br /&gt;449: Argument not optional&lt;br /&gt;450: Wrong number of arguments or invalid property assignment&lt;br /&gt;451: Object not a collection&lt;br /&gt;453: Specified DLL function not found&lt;br /&gt;455: Code resource lock error&lt;br /&gt;457: This key is already associated with an element of this collection&lt;br /&gt;458: Variable uses an Automation type not supported in VBScript&lt;br /&gt;462: The remote server machine does not exist or is unavailable&lt;br /&gt;481: Invalid picture&lt;br /&gt;500: Variable is undefined&lt;br /&gt;501: Illegal assignment&lt;br /&gt;502: Object not safe for scripting&lt;br /&gt;503: Object not safe for initializing&lt;br /&gt;504: Object not safe for creating&lt;br /&gt;505: Invalid or unqualified reference&lt;br /&gt;506: Class not defined&lt;br /&gt;507: An exception occurred&lt;br /&gt;1001: Out of memory&lt;br /&gt;1002: Syntax error&lt;br /&gt;1003: Expected ':'&lt;br /&gt;1005: Expected '('&lt;br /&gt;1006: Expected ')'&lt;br /&gt;1007: Expected ']'&lt;br /&gt;1010: Expected identifier&lt;br /&gt;1011: Expected '='&lt;br /&gt;1012: Expected 'If'&lt;br /&gt;1013: Expected 'To'&lt;br /&gt;1014: Expected 'End'&lt;br /&gt;1015: Expected 'Function'&lt;br /&gt;1016: Expected 'Sub'&lt;br /&gt;1017: Expected 'Then'&lt;br /&gt;1018: Expected 'Wend'&lt;br /&gt;1019: Expected 'Loop'&lt;br /&gt;1020: Expected 'Next'&lt;br /&gt;1021: Expected 'Case'&lt;br /&gt;1022: Expected 'Select'&lt;br /&gt;1023: Expected expression&lt;br /&gt;1024: Expected statement&lt;br /&gt;1025: Expected end of statement&lt;br /&gt;1026: Expected integer constant&lt;br /&gt;1027: Expected 'While' or 'Until'&lt;br /&gt;1028: Expected 'While', 'Until' or end of statement&lt;br /&gt;1029: Expected 'With'&lt;br /&gt;1030: Identifier too long&lt;br /&gt;1031: Invalid number&lt;br /&gt;1032: Invalid character&lt;br /&gt;1033: Unterminated string constant&lt;br /&gt;1034: Unterminated comment&lt;br /&gt;1037: Invalid use of 'Me' keyword&lt;br /&gt;1038: 'loop' without 'do'&lt;br /&gt;1039: Invalid 'exit' statement&lt;br /&gt;1040: Invalid 'for' loop control variable&lt;br /&gt;1041: Name redefined&lt;br /&gt;1042: Must be first statement on the line&lt;br /&gt;1043: Cannot assign to non-ByVal argument&lt;br /&gt;1044: Cannot use parentheses when calling a Sub&lt;br /&gt;1045: Expected literal constant&lt;br /&gt;1046: Expected 'In'&lt;br /&gt;1047: Expected 'Class'&lt;br /&gt;1048: Must be defined inside a Class&lt;br /&gt;1049: Expected Let or Set or Get in property declaration&lt;br /&gt;1050: Expected 'Property'&lt;br /&gt;1051: Number of arguments must be consistent across properties specification&lt;br /&gt;1052: Cannot have multiple default property/method in a Class&lt;br /&gt;1053: Class initialize or terminate do not have arguments&lt;br /&gt;1054: Property set or let must have at least one argument&lt;br /&gt;1055: Unexpected 'Next'&lt;br /&gt;1056: 'Default' can be specified only on 'Property' or 'Function' or 'Sub'&lt;br /&gt;1057: 'Default' specification must also specify 'Public'&lt;br /&gt;1058: 'Default' specification can only be on Property Get&lt;br /&gt;4096: Microsoft VBScript compilation error&lt;br /&gt;4097: Microsoft VBScript runtime error&lt;br /&gt;5016: Regular Expression object expected&lt;br /&gt;5017: Syntax error in regular expression&lt;br /&gt;5018: Unexpected quantifier&lt;br /&gt;5019: Expected ']' in regular expression&lt;br /&gt;5020: Expected ')' in regular expression&lt;br /&gt;5021: Invalid range in character set&lt;br /&gt;30000: EN&lt;br /&gt;32766: True&lt;br /&gt;32767: False&lt;br /&gt;32768: OK&lt;br /&gt;32769: Cancel&lt;br /&gt;32770: Help&lt;br /&gt;32811: Element not found&lt;br /&gt;32812: The specified date is not available in the current locale's calendar&lt;/span&gt;&lt;/blockquote&gt;I wrote a script to produce this list, it can be run from command line as&lt;br /&gt;&lt;br /&gt;errout.vbs [count] [fileoutput]&lt;br /&gt;&lt;br /&gt;count is the highest error you want to check (I verified up to 40000) and fileoutput is where you want the values stored on disk. The file will be overwritten so careful.&lt;br /&gt;&lt;br /&gt;errout.vbs:&lt;br /&gt;&lt;pre name="code" class="vb"&gt;&lt;br /&gt;On Error Resume Next&lt;br /&gt;&lt;br /&gt;Dim args : Set args = WScript.Arguments&lt;br /&gt;Dim count : count = args(0)&lt;br /&gt;Dim flout : flout = args(1)&lt;br /&gt;Dim strValue : strValue = ""&lt;br /&gt;Dim objFSO : Set objFSO = CreateObject("Scripting.FileSystemObject")&lt;br /&gt;Dim objTXT : Set objTXT = objFSO.CreateTextFile(flout, True)&lt;br /&gt;Dim i : i = 0&lt;br /&gt;&lt;br /&gt;For i = 1 to count&lt;br /&gt;strValue = ""&lt;br /&gt;Err.Raise i&lt;br /&gt;If Not Err.Description = "Unknown runtime error" Then&lt;br /&gt;  strValue = Err.Number &amp;amp; ": " &amp;amp; Err.Description&lt;br /&gt;  objTXT.WriteLine strValue&lt;br /&gt;End If&lt;br /&gt;Err.Clear&lt;br /&gt;Next&lt;br /&gt;&lt;br /&gt;objTXT.Close&lt;br /&gt;Set objTXT  = Nothing&lt;br /&gt;Set objFSO = Nothing&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/2657646430590665013-7652891898719689792?l=tech.webspinnerinc.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tech.webspinnerinc.com/feeds/7652891898719689792/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tech.webspinnerinc.com/2009/09/vbscript-err-codes-and-meanings.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2657646430590665013/posts/default/7652891898719689792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2657646430590665013/posts/default/7652891898719689792'/><link rel='alternate' type='text/html' href='http://tech.webspinnerinc.com/2009/09/vbscript-err-codes-and-meanings.html' title='VBScript... Err codes and meanings'/><author><name>Webspinner Inc.</name><uri>http://www.blogger.com/profile/14476630990241047008</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='00646463009227488915'/></author><thr:total>0</thr:total></entry></feed>