<?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:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6182393</id><updated>2024-08-29T09:29:11.601+10:00</updated><category term="windows"/><category term="microsoft"/><category term=".net"/><category term="google chrome"/><category term="windows 7"/><category term="asp.net"/><category term="google"/><category term="google browser"/><category term="development"/><category term="javascript"/><category term="mssql"/><category term="rss"/><category term="sql server"/><category term="wordpress"/><category term="automation"/><category term="blogging"/><category term="css"/><category term="database"/><category term="firefox"/><category term="get all wordpress images"/><category term="gmail"/><category term="google docs"/><category term="intel"/><category term="internet explorer"/><category term="linux"/><category term="linux commands"/><category term="microsoft word"/><category term="mysql"/><category term="netsh"/><category term="network issue"/><category term="proxy"/><category term="seo tips"/><category term="shell"/><category term="sun"/><category term="tfs"/><category term="videos"/><category term="wget"/><category term="windows networking"/><category term="windows vista"/><category term="winhttp"/><category term=".net 3.5"/><category term=".net 4.5"/><category term=".net async ctp3"/><category term=".net framework 4.0"/><category term="404"/><category term="JungleDisk"/><category term="access"/><category term="active directory"/><category term="addons"/><category term="adobe acrobat"/><category term="adobe dlm"/><category term="adobe reader"/><category term="adp"/><category term="adsense"/><category term="adtoll"/><category term="adwords"/><category term="amazon"/><category term="antivirus"/><category term="asp.net 4.0"/><category term="authentication"/><category term="back links"/><category term="backlinks"/><category term="bacula"/><category term="bash"/><category term="batch files"/><category term="blogger"/><category term="box"/><category term="browser exploits"/><category term="category rss"/><category term="cell phone"/><category term="cell phone comparison"/><category term="charting"/><category term="cheap cell phones"/><category term="cheap laptop upgrades"/><category term="checkout"/><category term="chrome"/><category term="chrome.manifest"/><category term="cloud"/><category term="cloud hosting"/><category term="cloud vps"/><category term="code"/><category term="color chart"/><category term="colour chart"/><category term="conditional formatting"/><category term="config"/><category term="configuration"/><category term="context menu"/><category term="copy"/><category term="corrupt"/><category term="credentials"/><category term="cross-reference"/><category term="database scripts"/><category term="dba scripts"/><category term="debian"/><category term="decrypt"/><category term="delete file windows vista"/><category term="delete files"/><category term="dell"/><category term="dell laptop"/><category term="dell studio"/><category term="dell studio 1537"/><category term="dhcp"/><category term="directory size"/><category term="div"/><category term="dns"/><category term="document properties"/><category term="dotnet"/><category term="download"/><category term="dreamhost"/><category term="dreamhost coupon"/><category term="dreamhost promo"/><category term="dreamhost promo code"/><category term="drive letter"/><category term="drivers"/><category term="duplicate content"/><category term="editpad pro"/><category term="encrypt"/><category term="encryption"/><category term="error"/><category term="error code"/><category term="excel"/><category term="exception"/><category term="external hard drive"/><category term="facebook"/><category term="faviconize"/><category term="feeds"/><category term="firefox 3 rc1"/><category term="firefox 3.1"/><category term="firefox addons"/><category term="firefox tabs"/><category term="firewall"/><category term="firewall script"/><category term="fix"/><category term="fix .net framework"/><category term="foreign keys"/><category term="gmail 2.0"/><category term="gmail error"/><category term="google chrome 2.0"/><category term="google chrome dev"/><category term="google chrome exploit"/><category term="google reader"/><category term="google reader tags"/><category term="gtdinbox"/><category term="hard drive"/><category term="hex color"/><category term="hex colour"/><category term="htaccess"/><category term="html"/><category term="html 5"/><category term="iis6"/><category term="installation"/><category term="ipod touch"/><category term="ipod touch 2g"/><category term="ipod touch freeze"/><category term="ipod touch magnet case"/><category term="ipod touch magnet case problem"/><category term="ipod touch problem"/><category term="iterator pattern"/><category term="itunes"/><category term="java"/><category term="joomla"/><category term="jquery"/><category term="laptop"/><category term="laptop upgrade"/><category term="laptops"/><category term="latex"/><category term="leeching"/><category term="like button"/><category term="link checker"/><category term="linkbacks"/><category term="linq"/><category term="linqdatasource"/><category term="lost password"/><category term="making money online"/><category term="map drive"/><category term="mega cheap phones"/><category term="microsoft excel"/><category term="microsoft signature"/><category term="microsoft store"/><category term="microsoft web deploy"/><category term="microsoft windows"/><category term="microsoft word 2007"/><category term="minimize firefox tabs"/><category term="mozy"/><category term="ms word"/><category term="msdeploy"/><category term="msdtc"/><category term="nant"/><category term="netstumbler"/><category term="network path not found"/><category term="network path was not found"/><category term="network problem"/><category term="networking"/><category term="new movies"/><category term="nintendo"/><category term="nirsoft"/><category term="nocheckbrowser"/><category term="number"/><category term="odf"/><category term="odt"/><category term="online backups"/><category term="open source browser"/><category term="openoffice"/><category term="oracle"/><category term="oracle client"/><category term="photoshop"/><category term="phpmyadmin"/><category term="podcast"/><category term="powershell"/><category term="pr checker"/><category term="productivity"/><category term="proxy server"/><category term="proxycfg"/><category term="putty"/><category term="recover"/><category term="registry"/><category term="reinstall windows 7"/><category term="remote desktop"/><category term="remove"/><category term="repair"/><category term="reset joomla admin password"/><category term="rewrite"/><category term="rsa"/><category term="sandy bridge laptop"/><category term="seagate momentus xt"/><category term="seo tools"/><category term="sequence"/><category term="server monitoring"/><category term="sftp"/><category term="social networks"/><category term="softlayer"/><category term="soulseek"/><category term="spreadsheet"/><category term="spreadsheet formula"/><category term="sql"/><category term="sql scripts"/><category term="sql server management studio"/><category term="sqlclient"/><category term="ssh"/><category term="ssis"/><category term="ssl"/><category term="ssms"/><category term="subst"/><category term="tabmixplus"/><category term="telstra"/><category term="text editor"/><category term="trust"/><category term="unlock cell phone"/><category term="unlock mobile phone"/><category term="upgrade laptop hard drive"/><category term="user management"/><category term="vb.net"/><category term="video download"/><category term="virtual server"/><category term="visual studio"/><category term="vodafone"/><category term="vodafone australia"/><category term="vps"/><category term="vps.net"/><category term="wd external drive"/><category term="web deploy"/><category term="web dev"/><category term="web development"/><category term="web hosting"/><category term="web security"/><category term="webdev"/><category term="webmail"/><category term="webmaster tips"/><category term="western digital"/><category term="wifi networks"/><category term="wii"/><category term="win7"/><category term="windows 7 backup"/><category term="windows 7 gadgets"/><category term="windows 8"/><category term="windows 8 antivirus"/><category term="windows error"/><category term="windows live"/><category term="windows live essentials"/><category term="windows live toolbar"/><category term="windows tips"/><category term="windows web development"/><category term="windows xp"/><category term="winxp"/><category term="wireless networks"/><category term="word tips"/><category term="wordpress 2.7"/><category term="wordpress plugin"/><category term="wp super cache"/><category term="yield"/><category term="youtube download"/><category term="youtube playlist download"/><title type='text'>The Occasional Tech</title><subtitle type='html'>Solutions to frustrating computer problems - includes Windows networking, .NET programming, LaTeX formatting, MySQL, and other PC issues!</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://randomtech.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default?alt=atom&amp;redirect=false'/><link rel='alternate' type='text/html' href='http://randomtech.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default?alt=atom&amp;start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13059618992597616370</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>133</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6182393.post-62007144598661290</id><published>2013-01-29T15:15:00.000+11:00</published><updated>2013-01-29T15:15:18.619+11:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="active directory"/><category scheme="http://www.blogger.com/atom/ns#" term="microsoft web deploy"/><category scheme="http://www.blogger.com/atom/ns#" term="msdeploy"/><category scheme="http://www.blogger.com/atom/ns#" term="web deploy"/><category scheme="http://www.blogger.com/atom/ns#" term="windows web development"/><title type='text'>Microsoft Web Deploy and Windows Credential Manager</title><content type='html'>Recently I had to migrate some web servers into a new Active Directory domain. I had been deploying to these servers use Web Deploy (via the msdeploy.exe command line) for a while. When they were moved into the new AD domain, I started to receive ERROR_USER_NOT_ADMIN errors.&lt;br /&gt;
&lt;br /&gt;
My scripts were set up to use cached credentials, so I was not specifying the credentials in the command line. This would normally look like this:&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;msdeploy.exe -verb:sync -source:contentPath=&quot;C:\inetpub\wwwroot\site1\dir1\&quot; -dest:contentPath=D:\webroot\site1\dir1\,computerName=mymachine,username=myuser,password=mypassword&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
However, my scripts need to deploy to a wide range of machines and domains; and are stored in TFS, which means storing personal credentials is not possible. So I chose to use cached credentials instead of specifying the credentials in plain text. This is implemented by using the &lt;a href=&quot;http://windows.microsoft.com/is-IS/windows7/What-is-Credential-Manager&quot;&gt;Windows Credential Manager&lt;/a&gt;, accessed via the Control Panel.&lt;br /&gt;
&lt;br /&gt;
If you connect to a remote share on a machine, or connect to the machine via Remote Desktop, and choose to save the credentials, Windows will add them to the list in Credential Manager.&lt;br /&gt;
&lt;br /&gt;
You can also manually add/remove items from the Credential Manager list.&lt;br /&gt;
&lt;br /&gt;
So, anyway, when the scripts started to fail after the AD move, I tried running the msdeploy command line with the username and password arguments. This worked! So all I had to do was manually remove the cached credentials from Credential Manager, and reconnect to each server&#39;s file shares.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;
----&lt;br /&gt;
Thanks for reading articles from the feed.&lt;br /&gt;
Check out the site at &lt;a href=&quot;http://randomtech.blogspot.com&quot;&gt;The Occasional Tech&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randomtech.blogspot.com/feeds/62007144598661290/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6182393/62007144598661290' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/62007144598661290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/62007144598661290'/><link rel='alternate' type='text/html' href='http://randomtech.blogspot.com/2013/01/microsoft-web-deploy-and-stored.html' title='Microsoft Web Deploy and Windows Credential Manager'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13059618992597616370</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6182393.post-4802037195531255900</id><published>2012-12-30T15:23:00.000+11:00</published><updated>2012-12-30T15:23:03.778+11:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="remote desktop"/><category scheme="http://www.blogger.com/atom/ns#" term="windows"/><title type='text'>Securing Windows Remote Desktop</title><content type='html'>Just a quick list of pointers to help you secure RDP today... &lt;br /&gt;
&lt;br /&gt;
For a while now, I&#39;ve been using Windows Live Mesh to connect to my home PC&#39;s from remote locations. This method was really simple and didn&#39;t require any firewall changes on my router. Unfortunately SkyDrive, Live Mesh&#39;s successor, does not include this feature so I&#39;ll need to use RDP or another service such as LogMeIn.com. LogMeIn is a great service, so I&#39;d recommend using this (even MS is recommending it!)&lt;br /&gt;
&lt;br /&gt;
But for those of you that prefer/need to use RDP, here&#39;s a few tips for increasing security:&lt;br /&gt;
&lt;span style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: black; display: inline !important; float: none; font-size-adjust: none; font-stretch: normal; font: small/normal tahoma, sans-serif; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h2&gt;
&lt;span style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: black; display: inline !important; float: none; font-size-adjust: none; font-stretch: normal; font: small/normal tahoma, sans-serif; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;Change RDP TCP port (done in the registry)&lt;/span&gt;&lt;br style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: black; font-size-adjust: none; font-stretch: normal; font: small/normal tahoma, sans-serif; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot; /&gt;&lt;br style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: black; font-size-adjust: none; font-stretch: normal; font: small/normal tahoma, sans-serif; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot; /&gt;&lt;span style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: black; display: inline !important; float: none; font-size-adjust: none; font-stretch: normal; font: small/normal tahoma, sans-serif; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;Consider implementing an SSH tunnel&lt;/span&gt;&lt;br style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: black; font-size-adjust: none; font-stretch: normal; font: small/normal tahoma, sans-serif; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot; /&gt;&lt;br style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: black; font-size-adjust: none; font-stretch: normal; font: small/normal tahoma, sans-serif; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot; /&gt;&lt;span style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: black; display: inline !important; float: none; font-size-adjust: none; font-stretch: normal; font: small/normal tahoma, sans-serif; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;Update account password to strong as possible&lt;/span&gt;&lt;br style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: black; font-size-adjust: none; font-stretch: normal; font: small/normal tahoma, sans-serif; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot; /&gt;&lt;br style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: black; font-size-adjust: none; font-stretch: normal; font: small/normal tahoma, sans-serif; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot; /&gt;&lt;span style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: black; display: inline !important; float: none; font-size-adjust: none; font-stretch: normal; font: small/normal tahoma, sans-serif; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;rename admin account to non-standard name&lt;/span&gt;&lt;br style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: black; font-size-adjust: none; font-stretch: normal; font: small/normal tahoma, sans-serif; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot; /&gt;&lt;br style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: black; font-size-adjust: none; font-stretch: normal; font: small/normal tahoma, sans-serif; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot; /&gt;&lt;span style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: black; display: inline !important; float: none; font-size-adjust: none; font-stretch: normal; font: small/normal tahoma, sans-serif; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;disable all other accounts for RDP&lt;/span&gt;&lt;/h2&gt;
&lt;h2&gt;
&lt;span style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: black; display: inline !important; float: none; font-size-adjust: none; font-stretch: normal; font: small/normal tahoma, sans-serif; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;If possible, restrict RDP client IP range in router or other firewall&lt;/span&gt;&lt;/h2&gt;
&lt;h2&gt;
&lt;span style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: black; display: inline !important; float: none; font-size-adjust: none; font-stretch: normal; font: small/normal tahoma, sans-serif; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;Enable windows firewall for extra protection&lt;/span&gt;&lt;br style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: black; font-size-adjust: none; font-stretch: normal; font: small/normal tahoma, sans-serif; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot; /&gt;&lt;br style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: black; font-size-adjust: none; font-stretch: normal; font: small/normal tahoma, sans-serif; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot; /&gt;&lt;span style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: black; display: inline !important; float: none; font-size-adjust: none; font-stretch: normal; font: small/normal tahoma, sans-serif; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;/span&gt;Checklist After Configuring&lt;br style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: black; font-size-adjust: none; font-stretch: normal; font: small/normal tahoma, sans-serif; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot; /&gt;&lt;span style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: black; display: inline !important; float: none; font-size-adjust: none; font-stretch: normal; font: small/normal tahoma, sans-serif; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;Can&amp;nbsp;other ips can connect?&lt;/span&gt;&lt;/h2&gt;
&lt;h2&gt;
&lt;span style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: black; display: inline !important; float: none; font-size-adjust: none; font-stretch: normal; font: small/normal tahoma, sans-serif; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;Can accounts other than the desired one connect?&lt;/span&gt;&lt;/h2&gt;
&lt;h2&gt;
Further Reading&lt;br style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: black; font-size-adjust: none; font-stretch: normal; font: small/normal tahoma, sans-serif; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot; /&gt;&lt;a href=&quot;http://theillustratednetwork.mvps.org/Ssh/RemoteDesktopSSH.html&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: #1155cc; font-size-adjust: none; font-stretch: normal; font: small/normal tahoma, sans-serif; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot; target=&quot;_blank&quot;&gt;http://theillustratednetwork.&lt;wbr&gt;&lt;/wbr&gt;mvps.org/Ssh/RemoteDesktopSSH.&lt;wbr&gt;&lt;/wbr&gt;html&lt;/a&gt;&lt;br style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: black; font-size-adjust: none; font-stretch: normal; font: small/normal tahoma, sans-serif; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot; /&gt;&lt;br style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: black; font-size-adjust: none; font-stretch: normal; font: small/normal tahoma, sans-serif; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot; /&gt;&lt;a href=&quot;http://revision3.com/hak5/HackingRDP&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: #1155cc; font-size-adjust: none; font-stretch: normal; font: small/normal tahoma, sans-serif; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot; target=&quot;_blank&quot;&gt;http://revision3.com/hak5/&lt;wbr&gt;&lt;/wbr&gt;HackingRDP&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;
----&lt;br /&gt;
Thanks for reading articles from the feed.&lt;br /&gt;
Check out the site at &lt;a href=&quot;http://randomtech.blogspot.com&quot;&gt;The Occasional Tech&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randomtech.blogspot.com/feeds/4802037195531255900/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6182393/4802037195531255900' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/4802037195531255900'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/4802037195531255900'/><link rel='alternate' type='text/html' href='http://randomtech.blogspot.com/2012/12/securing-windows-remote-desktop.html' title='Securing Windows Remote Desktop'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13059618992597616370</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6182393.post-6360183345705580632</id><published>2012-12-27T21:54:00.002+11:00</published><updated>2012-12-28T00:40:33.181+11:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="antivirus"/><category scheme="http://www.blogger.com/atom/ns#" term="windows 8"/><category scheme="http://www.blogger.com/atom/ns#" term="windows 8 antivirus"/><title type='text'>How To Scan A File/Directory With Windows Defender (Windows 8 AntiVirus)</title><content type='html'>By default there is no simple way to scan a single file or directory with the built in Windows 8 Anti Virus program.&lt;br /&gt;
&lt;br /&gt;
One way is to open Windows Defender, then select Custom, then click Scan.&lt;br /&gt;
You are then presented with a folder selection screen, which allows you to selectively scan parts of your PC&#39;s storage.&lt;br /&gt;
&lt;br /&gt;
But to scan just one file, you have to get into command line land. To do this:&lt;br /&gt;
&lt;br /&gt;
1. Open a Command Prompt&lt;br /&gt;
2. Type the following:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&quot;c:\Program Files\Windows Defender\MpCmdRun.exe&quot; -scan -scantype 3 -file PATH_TO_YOUR_FILE&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
e.g.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&quot;c:\Program Files\Windows Defender\MpCmdRun.exe&quot; -scan -scantype 3 -file c:\users\ted\downloads\suspect_file.zip&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;You&#39;ll need to surround your file&#39;s path with double quotes if it contains spaces.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;If you are using this in an automated way (e.g. your download manager is scanning completed downloads) it&#39;s worth knowing that the scan results will be logged in %TEMP%\MpCmdRun.log&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;You can use that file&#39;s contents to see how the scan went.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Hope that helps!&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;
----&lt;br /&gt;
Thanks for reading articles from the feed.&lt;br /&gt;
Check out the site at &lt;a href=&quot;http://randomtech.blogspot.com&quot;&gt;The Occasional Tech&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randomtech.blogspot.com/feeds/6360183345705580632/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6182393/6360183345705580632' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/6360183345705580632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/6360183345705580632'/><link rel='alternate' type='text/html' href='http://randomtech.blogspot.com/2012/12/how-to-scan-filedirectory-with-windows.html' title='How To Scan A File/Directory With Windows Defender (Windows 8 AntiVirus)'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13059618992597616370</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6182393.post-4249065094102736973</id><published>2012-12-24T09:40:00.003+11:00</published><updated>2012-12-24T09:40:52.856+11:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="lost password"/><category scheme="http://www.blogger.com/atom/ns#" term="soulseek"/><title type='text'>How To Recover Your Lost SoulseekNS Password (Windows)</title><content type='html'>Have you forgotten your &lt;a href=&quot;http://www.soulseekqt.net/news/&quot;&gt;Soulseek&lt;/a&gt; password?&lt;br /&gt;
&lt;br /&gt;
If so, and you still have access to the PC you had Soulseek installed on, then you&#39;re in luck. The password is stored in plain text in the Windows registry.&lt;br /&gt;
&lt;br /&gt;
You can find it here:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;Computer\HKEY_CURRENT_USER\Software\Soulseek2\config&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
in a key called &lt;b&gt;login&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
Just double-click on the key and you will see your password.&lt;br /&gt;
&lt;br /&gt;
Now if you&#39;ve forgotten your username, then I think you&#39;re hosed!&lt;br /&gt;
&lt;br /&gt;
Note, these instructions are for SoulseekNS, which is no longer under development. Not sure how you reset/find a lost password for the new version: SoulseekQT.&lt;br /&gt;
&lt;br /&gt;
See you in the Dark Ambient channel!&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;
----&lt;br /&gt;
Thanks for reading articles from the feed.&lt;br /&gt;
Check out the site at &lt;a href=&quot;http://randomtech.blogspot.com&quot;&gt;The Occasional Tech&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randomtech.blogspot.com/feeds/4249065094102736973/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6182393/4249065094102736973' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/4249065094102736973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/4249065094102736973'/><link rel='alternate' type='text/html' href='http://randomtech.blogspot.com/2012/12/how-to-recover-your-lost-soulseekns.html' title='How To Recover Your Lost SoulseekNS Password (Windows)'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13059618992597616370</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6182393.post-6345849974771074835</id><published>2012-11-06T10:03:00.003+11:00</published><updated>2012-11-07T12:33:02.013+11:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dhcp"/><category scheme="http://www.blogger.com/atom/ns#" term="network issue"/><category scheme="http://www.blogger.com/atom/ns#" term="powershell"/><category scheme="http://www.blogger.com/atom/ns#" term="windows"/><category scheme="http://www.blogger.com/atom/ns#" term="windows 7"/><category scheme="http://www.blogger.com/atom/ns#" term="windows networking"/><title type='text'>Resetting a network adapter with Powershell</title><content type='html'>I recently moved to a new PC and there&#39;s something wrong with the network configuration. The hardware seems OK but every few hours Windows reports that there is no Internet connection. I haven&#39;t spent much time troubleshooting but it looks like the PC loses its IP lease and does not renew it, but that&#39;s mostly just a guess at this stage.&lt;br /&gt;
&lt;br /&gt;
The Windows 7 Troubleshooter reports:&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;The Network Diagnostics Framework has completed the diagnosis phase of operation. The following repair option was offered:&lt;br /&gt;
&lt;br /&gt;
Helper Class Name: AddressAcquisition&lt;br /&gt;
&lt;br /&gt;
Root Cause: &quot;Local Area Connection&quot; doesn&#39;t have a valid IP configuration&lt;br /&gt;
&lt;br /&gt;
Root Cause Guid: {245a9d66-ae9c-4518-a5b4-655752b0a5bd}&lt;br /&gt;
&lt;br /&gt;
Repair option: Investigate router or broadband modem issues&lt;br /&gt;
If you&#39;re connected to a hotspot or domain network, contact the network administrator. Otherwise:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; 1. &amp;nbsp;Unplug or turn off the device.&lt;br /&gt;
&amp;nbsp; &amp;nbsp; 2. &amp;nbsp;After all the lights on the device are off, wait at least 10 seconds.&lt;br /&gt;
&amp;nbsp; &amp;nbsp; 3. &amp;nbsp;Turn the device on or plug it back into the power outlet.&lt;br /&gt;
To restart a router or modem that has a built-in battery, press and quickly release the Reset button.&lt;br /&gt;
&lt;br /&gt;
RepairGuid: {9513cc1c-4a26-4cb8-bf89-0a82129bd105}&lt;br /&gt;
&lt;br /&gt;
Seconds required for repair: 63&lt;br /&gt;
&lt;br /&gt;
Security context required for repair: 0&lt;br /&gt;
&lt;br /&gt;
Interface: Local Area Connection ({419b3c06-e283-4a99-adaa-b66439dd064d})&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Running the Troubleshooter does fix the issue. It appears that this tool resets the network adapter which forces a new IP to be allocated to the interface.&lt;br /&gt;
&lt;br /&gt;
I&#39;ve never had this type of issue with Ethernet on Windows before, although I have experienced unstable 802.11 connections on certain laptops.&lt;br /&gt;
&lt;br /&gt;
I&#39;ve also updated the Intel NIC driver to see if this would help - it didn&#39;t. &lt;a href=&quot;https://www.google.com.au/search?q=Root+Cause+Guid%3A+%7B245a9d66-ae9c-4518-a5b4-655752b0a5bd%7D&quot;&gt;Others do seem to have this issue also&lt;/a&gt;. Most people use the workaround of assigning a static IP to the adapter - this isn&#39;t an option for me in this environment.&lt;br /&gt;
&lt;br /&gt;
Anyway, I need to remote into this PC so I can&#39;t have it sitting there with a non-working network connection!&lt;br /&gt;
&lt;br /&gt;
So to get around this problem, I wrote a script in Powershell which I&#39;ve scheduled in Task Scheduler to run every 10 minutes. The script will check if the network connection has Internet connectivity and, if not, will reset the network adapter. So the longest I&#39;ll have to wait to get on to the PC will be 10 minutes.&lt;br /&gt;
&lt;br /&gt;
Here it is:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: darkgreen;&quot;&gt;# Set up event log source&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: darkgreen;&quot;&gt;# redirect stderr to null since there&#39;s no simple way to check if the source already exists&lt;/span&gt;&lt;br /&gt;(&lt;span style=&quot;color: blue;&quot;&gt;new-eventlog&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: navy;&quot;&gt;-logname&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: blueviolet;&quot;&gt;Application&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: navy;&quot;&gt;-Source&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: darkred;&quot;&gt;&quot;Reset Network Adapter&quot;&lt;/span&gt;)&amp;nbsp;&lt;span style=&quot;color: darkgrey;&quot;&gt;2&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: orangered;&quot;&gt;$null&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: orangered;&quot;&gt;$pingResponse&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: darkgrey;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;Get-WmiObject&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: navy;&quot;&gt;-Class&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: blueviolet;&quot;&gt;Win32_PingStatus&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: navy;&quot;&gt;-Filter&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: darkred;&quot;&gt;&quot;Address=&#39;www.google.com.au&#39;&quot;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: navy;&quot;&gt;-ComputerName&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: blueviolet;&quot;&gt;.&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: darkgrey;&quot;&gt;|&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;Select-Object&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: navy;&quot;&gt;-Property&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: blueviolet;&quot;&gt;Address&lt;/span&gt;&lt;span style=&quot;color: darkgrey;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: blueviolet;&quot;&gt;ResponseTime&lt;/span&gt;&lt;span style=&quot;color: darkgrey;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: blueviolet;&quot;&gt;StatusCode&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: darkblue;&quot;&gt;if&lt;/span&gt;&amp;nbsp;(&lt;span style=&quot;color: orangered;&quot;&gt;$pingResponse&lt;/span&gt;&lt;span style=&quot;color: darkgrey;&quot;&gt;.&lt;/span&gt;ResponseTime&amp;nbsp;&lt;span style=&quot;color: darkgrey;&quot;&gt;-eq&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: orangered;&quot;&gt;$null&lt;/span&gt;)&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;Write-Host&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: blueviolet;&quot;&gt;Network&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: blueviolet;&quot;&gt;connection&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: blueviolet;&quot;&gt;down.&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: blueviolet;&quot;&gt;Resetting&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: blueviolet;&quot;&gt;adapter.&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;write-eventlog&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: blueviolet;&quot;&gt;Application&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: navy;&quot;&gt;-source&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: darkred;&quot;&gt;&quot;Reset Network Adapter&quot;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: navy;&quot;&gt;-eventid&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: purple;&quot;&gt;1&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: navy;&quot;&gt;-message&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: darkred;&quot;&gt;&quot;Network connection down. Resetting adapter.&quot;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: darkgreen;&quot;&gt;# Assumes you have only one ethernet device in your PC. If you have more, use something like: &#39;-and $_.Name like &quot;*Intel*&quot;&#39;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: orangered;&quot;&gt;$adapter&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: darkgrey;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;Get-WmiObject&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: navy;&quot;&gt;-Class&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: blueviolet;&quot;&gt;Win32_networkadapter&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: darkgrey;&quot;&gt;|&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;Where-Object&lt;/span&gt;&amp;nbsp;{&amp;nbsp;&lt;span style=&quot;color: orangered;&quot;&gt;$_&lt;/span&gt;&lt;span style=&quot;color: darkgrey;&quot;&gt;.&lt;/span&gt;AdapterType&amp;nbsp;&lt;span style=&quot;color: darkgrey;&quot;&gt;-eq&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: darkred;&quot;&gt;&quot;Ethernet 802.3&quot;&lt;/span&gt;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: orangered;&quot;&gt;$adapter&lt;/span&gt;&lt;span style=&quot;color: darkgrey;&quot;&gt;.&lt;/span&gt;disable()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: orangered;&quot;&gt;$adapter&lt;/span&gt;&lt;span style=&quot;color: darkgrey;&quot;&gt;.&lt;/span&gt;enable()&lt;br /&gt;}&amp;nbsp;&lt;span style=&quot;color: darkblue;&quot;&gt;else&lt;/span&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;Write-Host&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: blueviolet;&quot;&gt;Network&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: blueviolet;&quot;&gt;connection&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: blueviolet;&quot;&gt;seems&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: blueviolet;&quot;&gt;OK&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;write-eventlog&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: blueviolet;&quot;&gt;Application&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: navy;&quot;&gt;-source&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: darkred;&quot;&gt;&quot;Reset Network Adapter&quot;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: navy;&quot;&gt;-eventid&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: purple;&quot;&gt;2&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: navy;&quot;&gt;-message&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: darkred;&quot;&gt;&quot;Network connection seems OK&quot;&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;
&lt;br /&gt;
Hope that helps someone!&lt;br /&gt;
&lt;h2&gt;
Scheduling the Task&lt;/h2&gt;
&lt;div&gt;
This is quite simple but I recommend creating a new user on your system to run the task. For the above script they need to be in the Local Admin group in order to create the event log.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Add an action with:&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;command: &lt;/b&gt;powershell&lt;/div&gt;
&lt;div&gt;
and&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;arguments:&lt;/b&gt; -file path_to\reset-adapter.ps1&lt;/div&gt;
&lt;h2&gt;
An Exercise for the Reader&lt;/h2&gt;
&lt;div&gt;
You can trigger a Windows scheduled task based on an event. When the network fails there are a bunch of events that are generated by applications and the System. You could pick one that reliably represents this network issue and set up your scheduled task to only run when this event is detected. This is a nicer approach that polling every 10 minutes.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Some hints for finding appropriate events in the System Log:&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;Source: Time-Service, DNS Client Events&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2&gt;
Resources&lt;/h2&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.windowsnetworking.com/articles_tutorials/Windows-Server-2008-Powershell-perform-common-network-commands.html&quot;&gt;http://www.windowsnetworking.com/articles_tutorials/Windows-Server-2008-Powershell-perform-common-network-commands.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h3&gt;
&lt;/h3&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;
----&lt;br /&gt;
Thanks for reading articles from the feed.&lt;br /&gt;
Check out the site at &lt;a href=&quot;http://randomtech.blogspot.com&quot;&gt;The Occasional Tech&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randomtech.blogspot.com/feeds/6345849974771074835/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6182393/6345849974771074835' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/6345849974771074835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/6345849974771074835'/><link rel='alternate' type='text/html' href='http://randomtech.blogspot.com/2012/11/resetting-network-adapter-with.html' title='Resetting a network adapter with Powershell'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13059618992597616370</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6182393.post-5258790073071575116</id><published>2012-06-14T15:50:00.003+10:00</published><updated>2018-04-18T10:16:44.067+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="putty"/><category scheme="http://www.blogger.com/atom/ns#" term="sftp"/><category scheme="http://www.blogger.com/atom/ns#" term="ssh"/><title type='text'>SSH login error: &quot;server refused public key signature despite accepting our key&quot;</title><content type='html'>Just a quick one today...&lt;br /&gt;
&lt;br /&gt;
If you are receiving the error above, make sure of these things before regenerating the key:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Your account is not locked on the server&lt;/li&gt;
&lt;li&gt;You are using the right private key!&lt;/li&gt;
&lt;li&gt;You have added your public key to ~/.ssh/authorized_keys file on the server&lt;/li&gt;
&lt;li&gt;You added the wrong format of public key to authorized_keys file (e.g. added the Putty format instead of the OpenSSH format)&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
This error means that the public key generated by your SSH client was successfully transferred to the server but did not match the one stored on the server. In some cases, as mentioned above, this is misleading.&lt;br /&gt;
&lt;br /&gt;
If your account is disabled then you will also get this error on some systems, even if the key you are sending is correct.&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;
----&lt;br /&gt;
Thanks for reading articles from the feed.&lt;br /&gt;
Check out the site at &lt;a href=&quot;http://randomtech.blogspot.com&quot;&gt;The Occasional Tech&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randomtech.blogspot.com/feeds/5258790073071575116/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6182393/5258790073071575116' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/5258790073071575116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/5258790073071575116'/><link rel='alternate' type='text/html' href='http://randomtech.blogspot.com/2012/06/ssh-login-error-server-refused-public.html' title='SSH login error: &quot;server refused public key signature despite accepting our key&quot;'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13059618992597616370</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6182393.post-7153953232501680700</id><published>2012-06-06T12:52:00.002+10:00</published><updated>2012-06-06T12:52:35.266+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="automation"/><category scheme="http://www.blogger.com/atom/ns#" term="batch files"/><category scheme="http://www.blogger.com/atom/ns#" term="error code"/><category scheme="http://www.blogger.com/atom/ns#" term="windows"/><title type='text'>Testing exit code of Windows Batch file</title><content type='html'>Even though PowerShell is awesome, the old DOS Batch file is still a useful and commonly used tool. You will find Batch files powering crucial automated processes all over the globe.&lt;br /&gt;
&lt;br /&gt;
Commonly you will run a sequence of commands and check each of them for successful completion. The usual way to do this is to check the errorlevel variable like so:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
c:\mycommand.exe&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
if errorlevel 1 exit 1&lt;/div&gt;
&lt;br /&gt;
(NOTE, you need to clear any environment variables called errorlevel because the Batch interpreter will return these instead of the built in variable if they are defined. Do this just like this: &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;set errorlevel=&lt;/span&gt;)&lt;br /&gt;
&lt;br /&gt;
Anyway, once you have checked each of your commands for errors, you will usually print out error messages and return your own error codes so that external programs calling your batch file will know what went wrong. You do this like so:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;exit 2&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
Where 2 is an error code that means something specific to your script.&lt;br /&gt;
&lt;br /&gt;
Testing these initially seems difficult because when you run the script it exits and you cannot check which error code was returned. There is a way to test these! Here it is:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
cmd /k myscript.bat&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;echo %errorlevel%&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Hope that helps - send me questions/comments below!&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;
----&lt;br /&gt;
Thanks for reading articles from the feed.&lt;br /&gt;
Check out the site at &lt;a href=&quot;http://randomtech.blogspot.com&quot;&gt;The Occasional Tech&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randomtech.blogspot.com/feeds/7153953232501680700/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6182393/7153953232501680700' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/7153953232501680700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/7153953232501680700'/><link rel='alternate' type='text/html' href='http://randomtech.blogspot.com/2012/06/testing-exit-code-of-windows-batch-file.html' title='Testing exit code of Windows Batch file'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13059618992597616370</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6182393.post-5360624341976200123</id><published>2012-06-06T10:38:00.001+10:00</published><updated>2012-06-06T10:38:39.323+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="drive letter"/><category scheme="http://www.blogger.com/atom/ns#" term="map drive"/><category scheme="http://www.blogger.com/atom/ns#" term="subst"/><category scheme="http://www.blogger.com/atom/ns#" term="windows"/><title type='text'>Giving a Windows directory a drive letter</title><content type='html'>Sometimes you need to test a program/script on your local machine that is expecting a certain drive, let&#39;s say X: drive. Your local machine may only have a C: drive, so what do you do?&lt;br /&gt;
&lt;br /&gt;
You could reconfigure the script to use your C: drive but this is an unnecessary extra step. Instead you can create drive letters that map to Windows directories (folders) using the &lt;a href=&quot;http://ss64.com/nt/subst.html&quot;&gt;SUBST&lt;/a&gt; command.&lt;br /&gt;
&lt;br /&gt;
It&#39;s easy, at your command line, type:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;subst DRIVE_LETTER: PATH&lt;/pre&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;subst X: C:\temp\testdata&lt;/pre&gt;
&lt;br /&gt;
You must not add a trailing slash to the directory or it will not work.&lt;br /&gt;
&lt;br /&gt;
Once you&#39;re done, just add /D to the command plus drive letter, e.g.&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;subst X: /D&lt;/pre&gt;
Hope this makes your life easier!&lt;br /&gt;
&lt;br /&gt;
[Via &lt;a href=&quot;http://lifehacker.com/267728/give-a-folder-its-very-own-drive-letter&quot;&gt;Lifehacker&lt;/a&gt; -&amp;gt; via &lt;a href=&quot;http://www.codejacked.com/quick-tip-assign-a-drive-letter-to-a-folder-windows/&quot;&gt;Codejacked&lt;/a&gt;]&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;
----&lt;br /&gt;
Thanks for reading articles from the feed.&lt;br /&gt;
Check out the site at &lt;a href=&quot;http://randomtech.blogspot.com&quot;&gt;The Occasional Tech&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randomtech.blogspot.com/feeds/5360624341976200123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6182393/5360624341976200123' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/5360624341976200123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/5360624341976200123'/><link rel='alternate' type='text/html' href='http://randomtech.blogspot.com/2012/06/giving-windows-directory-drive-letter.html' title='Giving a Windows directory a drive letter'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13059618992597616370</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6182393.post-7850879685462775747</id><published>2012-05-31T13:54:00.002+10:00</published><updated>2012-05-31T13:54:59.091+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="oracle"/><category scheme="http://www.blogger.com/atom/ns#" term="oracle client"/><category scheme="http://www.blogger.com/atom/ns#" term="sun"/><category scheme="http://www.blogger.com/atom/ns#" term="windows 7"/><title type='text'>Oracle Client Installer Fails on Windows 7 64 bit</title><content type='html'>You&#39;ll love this one! :)&lt;br /&gt;
&lt;br /&gt;
Problem:&lt;br /&gt;
Trying to install the &lt;a href=&quot;http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win64soft-094461.html&quot;&gt;Oracle Clien&lt;/a&gt;t on your Windows 7 PC, it checks the Prerequisites and then vanishes.&lt;br /&gt;
Many web pages suggest that the installer will log it&#39;s progress to C:\Program Files\Oracle\... - this is not the case. It actually logs to %USERDIR%\AppData\Local\Temp\OraInstall..TIMESTAMP..&lt;br /&gt;
&lt;br /&gt;
But in this case, the logs do not show anything is wrong!&lt;br /&gt;
&lt;br /&gt;
Instead you have to look in %USERDIR%\AppData\Local\Temp\ for files with a name like hs_err_pidNNNN.log (NNNN is a number) - these are Java HotSpot exception dump files.&lt;br /&gt;
&lt;br /&gt;
In this file I found errors showing an error in SHLWAPI.dll, which gave a stack trace ending in:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j&amp;nbsp; sun.awt.shell.Win32ShellFolder2.getLinkLocation(JJZ)J+0
j&amp;nbsp; sun.awt.shell.Win32ShellFolder2.getLinkLocation(Z)Lsun/awt/shell/ShellFolder;+20
j&amp;nbsp; sun.awt.shell.Win32ShellFolder2.isDirectory()Z+69
j&amp;nbsp; sun.awt.shell.Win32ShellFolder2.isDirectory()Z+79&lt;/pre&gt;
&lt;br /&gt;
This gives us a clue: the error is something to do with a link. Could that be a folder shortcut? A bit of Googling yielded that this was, in fact, the case.&lt;br /&gt;
&lt;br /&gt;
So here&#39;s the solution:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Delete any folder shortcuts from your Windows Desktop.&lt;/b&gt; Re-run the installer.&lt;br /&gt;
&lt;br /&gt;
Fixed.&lt;br /&gt;
&lt;br /&gt;
I am really not a fan of Oracle OR Java. This type of thing reflects my general experience with Oracle and Sun technology.&lt;br /&gt;
&lt;br /&gt;
Enough said...&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;
----&lt;br /&gt;
Thanks for reading articles from the feed.&lt;br /&gt;
Check out the site at &lt;a href=&quot;http://randomtech.blogspot.com&quot;&gt;The Occasional Tech&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randomtech.blogspot.com/feeds/7850879685462775747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6182393/7850879685462775747' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/7850879685462775747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/7850879685462775747'/><link rel='alternate' type='text/html' href='http://randomtech.blogspot.com/2012/05/oracle-client-installer-fails-on.html' title='Oracle Client Installer Fails on Windows 7 64 bit'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13059618992597616370</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6182393.post-3992784958607963122</id><published>2012-05-19T11:09:00.000+10:00</published><updated>2012-05-19T11:09:07.083+10:00</updated><title type='text'>The Windows Phone 7 Annoyance Page</title><content type='html'>I am a huge fan of Windows Phone 7. I&#39;ve tried iOS and Android and in my opinion WP7 is much superior user experience.
But being a relatively new OS there are some things that are annoying, weird and should be fixed.

So just for fun I thought I&#39;d list them here - maybe someone in the know will read them!&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;No ability to edit the user spelling dictionary, apart from resetting it. Sometimes you accidentally correct a word to another wrong word. I suppose resetting is not so bad, since it&#39;s quite quick to re-add your customisations, but it&#39;d be nice to be able to remove these incorrect corrections.&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;

Some General Thoughts on WP7&lt;/h2&gt;
&lt;div&gt;
... work in progress&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;
----&lt;br /&gt;
Thanks for reading articles from the feed.&lt;br /&gt;
Check out the site at &lt;a href=&quot;http://randomtech.blogspot.com&quot;&gt;The Occasional Tech&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randomtech.blogspot.com/feeds/3992784958607963122/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6182393/3992784958607963122' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/3992784958607963122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/3992784958607963122'/><link rel='alternate' type='text/html' href='http://randomtech.blogspot.com/2012/05/windows-phone-7-annoyance-page.html' title='The Windows Phone 7 Annoyance Page'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13059618992597616370</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6182393.post-6353789385536598354</id><published>2012-05-19T11:08:00.000+10:00</published><updated>2012-05-31T13:56:23.040+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".net"/><category scheme="http://www.blogger.com/atom/ns#" term=".net framework 4.0"/><category scheme="http://www.blogger.com/atom/ns#" term="fix .net framework"/><category scheme="http://www.blogger.com/atom/ns#" term="registry"/><category scheme="http://www.blogger.com/atom/ns#" term="reinstall windows 7"/><category scheme="http://www.blogger.com/atom/ns#" term="windows 7"/><title type='text'>.NET Framework Error: Please set registry key HKLM\Software\Microsoft\.NETFramework\InstallRoot to point to the .NET Framework install location</title><content type='html'>Recently Windows 7 on one of my laptops became unstable and I had to restore from a System Image. This worked.. sort of. After restoring I found that Microsoft Security Essentials had to be repaired, and the .NET Framework 4.0 seemed to be corrupt.&lt;br /&gt;
&lt;br /&gt;
When running programs that require the .NET Framework I would get the above error: &quot;&lt;b style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12px;&quot;&gt;Please set registry key HKLM\Software\Microsoft\.NETFramework\InstallRoot to point to the .NET Framework install location&quot;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
This prohibits me from running many different programs including Visual Studio 11 Beta so this had to be fixed!&lt;br /&gt;
&lt;br /&gt;
The obvious first step was to uninstall .NET Framework 4.0 and reinstall. This did not help.&lt;br /&gt;
&lt;br /&gt;
Next was to manually edit the registry to try and provide the data requested in the error message. This was confusing because the key was present and contained the path to the framework directory in the Windows directory. It looked OK.&lt;br /&gt;
&lt;br /&gt;
Next I tried the &lt;a href=&quot;http://blogs.msdn.com/b/astebner/archive/2008/10/13/8999004.aspx&quot;&gt;.NET Framework Setup Verification Tool&lt;/a&gt;. This confirmed that the framework was not installed properly but, to be honest, I could not determine from the log file what was actually wrong.&lt;br /&gt;
&lt;br /&gt;
The last resort is to do an in place install of Windows 7 - basically replace all the system files. Through my Technet subscription I have access to an ISO of Win 7 SP1 so I grabbed this [BTW, Microsoft, why can&#39;t you enable resuming on the Technet download servers?] and tried to make a bootable USB key by which to install Windows 7. If you have the Windows DVD media then this will be also be fine.&lt;br /&gt;
&lt;br /&gt;
I usually use the &lt;a href=&quot;http://images2.store.microsoft.com/prod/clustera/framework/w7udt/1.0/en-us/Windows7-USB-DVD-tool.exe&quot;&gt;Windows 7 USB DVD Download Tool&lt;/a&gt;&amp;nbsp;from Microsoft Store. But guess what? This required .NET 4.0 to be properly installed!&lt;br /&gt;
&lt;br /&gt;
There is another product, &lt;a href=&quot;http://www.joshcellsoftwares.com/2011/10/winusb-maker-windows-setup-to-usb.html&quot;&gt;WinUSB Maker&lt;/a&gt;, which is popular but this also requires .NET4.&lt;br /&gt;
&lt;br /&gt;
What to do?&lt;br /&gt;
&lt;br /&gt;
Well, I found another tool which can do the trick and does not require the .NET Framework:&amp;nbsp;&lt;a href=&quot;http://wintoflash.com/home/en/&quot;&gt;NoviCorp WinToFlash&lt;/a&gt;. This can copy a Windows DVD to a USB drive and make the drive bootable. It can also format the drive if required.&lt;br /&gt;
&lt;br /&gt;
The only thing is WinToFlash does not natively work with ISO files, so you will also need a Virtual DVD-ROM such as &lt;a href=&quot;http://www.slysoft.com/en/virtual-clonedrive.html&quot;&gt;VirtualCloneDrive&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
The process is simple:&lt;br /&gt;
1. Mount the Windows ISO with VirtualCloneDrive&lt;br /&gt;
2. Run the WinToFlash wizard&lt;br /&gt;
3. Choose the VirtualCloneDrive drive (e.g. E:) as the Windows disk, and your USB drive as the target.&lt;br /&gt;
4. Allow WinToFlash to format the drive if it asks.&lt;br /&gt;
5. That&#39;s it.&lt;br /&gt;
&lt;br /&gt;
Now to reinstall Windows 7, just insert the USB key and AutoRun should start the installer. If it doesn&#39;t just open the drive in Windows Explorer and run Setup.exe. Follow the instructions until you choose Upgrade or Custom. Choose Upgrade to reinstall.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Do not choose custom unless you want to delete all your existing files and programs!&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Note: &lt;/b&gt;you can only reinstall the same version of Windows, so you can&#39;t upgrade to Pro from Ultimate, and so on.&lt;br /&gt;
&lt;br /&gt;
As for .NET,&lt;br /&gt;
&lt;br /&gt;
Hope that helps. Any questions - reach out in the comments.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Update: 31-May-2012&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
The above&lt;b&gt;&amp;nbsp;&lt;/b&gt; did not fix the .NET Framework corruption for me. I messed around some more but ended up having to do a fresh install of Windows 7. Then everything worked great.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;
----&lt;br /&gt;
Thanks for reading articles from the feed.&lt;br /&gt;
Check out the site at &lt;a href=&quot;http://randomtech.blogspot.com&quot;&gt;The Occasional Tech&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randomtech.blogspot.com/feeds/6353789385536598354/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6182393/6353789385536598354' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/6353789385536598354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/6353789385536598354'/><link rel='alternate' type='text/html' href='http://randomtech.blogspot.com/2012/05/net-framework-error-please-set-registry.html' title='.NET Framework Error: Please set registry key HKLM\Software\Microsoft\.NETFramework\InstallRoot to point to the .NET Framework install location'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13059618992597616370</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6182393.post-8391905945318452658</id><published>2012-04-24T13:07:00.000+10:00</published><updated>2012-06-06T10:40:46.817+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".net"/><category scheme="http://www.blogger.com/atom/ns#" term=".net 4.5"/><category scheme="http://www.blogger.com/atom/ns#" term=".net async ctp3"/><category scheme="http://www.blogger.com/atom/ns#" term="iterator pattern"/><category scheme="http://www.blogger.com/atom/ns#" term="vb.net"/><category scheme="http://www.blogger.com/atom/ns#" term="yield"/><title type='text'>Converting a DataReader to IEnumerable Using Iterators and Yield in VB.NET</title><content type='html'>The yield keyword is incredibly useful when you need to convert collections into other types of collections. Unfortunately VB programmers were left out until late last year.&amp;nbsp;Since the Async CTP 3 the yield keyword and Iterator functions have been available for Visual Basic .NET.&lt;br /&gt;
&lt;br /&gt;
You can find lots of examples of this around for C# but some of us corporate contract programmers sometimes have to use VB.NET!&amp;nbsp;
&lt;br /&gt;
&lt;br /&gt;
Here&#39;s an example of how to create a list of objects from a DataReader using Yield. To run this you will need to download the &lt;a href=&quot;http://www.microsoft.com/en-us/download/details.aspx?id=9983&quot;&gt;Visual Studio Async CTP 3&lt;/a&gt; or &lt;a href=&quot;http://www.microsoft.com/en-us/download/details.aspx?id=29909&quot;&gt;.NET 4.5 RC&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
So our goal is to take a set of rows from a database, which we access via a DataReader. We want to convert each row into an object, and return all those objects as an IEnumerable - in this case a List(Of T).&lt;br /&gt;
&lt;br /&gt;
Here&#39;s our class to store the data as objects. Notice it has a static method to create an instance of itself using a row from a DataReader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: white; font-family: Consolas; font-size: 13px;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;Class&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #2b91af;&quot;&gt;StudentRecord&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;Public&lt;/span&gt;&amp;nbsp;StudentId
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;Public&lt;/span&gt;&amp;nbsp;UnitCode
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;Public&lt;/span&gt;&amp;nbsp;HoursPerWeek
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;Public&lt;/span&gt;&amp;nbsp;NumberOfWeeks
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;Public&lt;/span&gt;&amp;nbsp;TotalHours
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;Public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;Shared&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;Function&lt;/span&gt;&amp;nbsp;Create(dr&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #2b91af;&quot;&gt;IDataRecord&lt;/span&gt;)&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #2b91af;&quot;&gt;StudentRecord&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;Return&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;New&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #2b91af;&quot;&gt;StudentRecord&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;With&lt;/span&gt;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.StudentId&amp;nbsp;=&amp;nbsp;GetStringFromReader(dr,&amp;nbsp;&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;studentId&quot;&lt;/span&gt;),
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.UnitCode&amp;nbsp;=&amp;nbsp;GetStringFromReader(dr,&amp;nbsp;&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;unitCode&quot;&lt;/span&gt;),
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.HourPerWeek =&amp;nbsp;&lt;span style=&quot;background-color: white;&quot;&gt;GetDoubleFromReader(dr,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;hoursPerWeek&quot;&lt;/span&gt;&lt;span style=&quot;background-color: white;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;background-color: white;&quot;&gt;,&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;background-color: white; font-family: Consolas; font-size: 13px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.NumberOfWeeks&amp;nbsp;=&amp;nbsp;&lt;span style=&quot;background-color: white;&quot;&gt;GetIntFromReader(dr,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;numWeeks&quot;&lt;/span&gt;&lt;span style=&quot;background-color: white;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;background-color: white;&quot;&gt;,&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.TotalHours&amp;nbsp;=&amp;nbsp;.HoursPerWeek * .NumberOfWeeks
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;Function&lt;/span&gt;
&lt;span style=&quot;color: blue;&quot;&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;Class&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
(GetStringFromReader and similar are helper function from my common utility library. They just return the specified column&#39;s value as the required type.)&lt;br /&gt;
&lt;br /&gt;
Next, we have our main loop where we retrieve the data from the database, and then pass it to the conversion method. Let&#39;s call it GetData. It queries the DB and returns the list of StudentRecord objects. The details of GetReader aren&#39;t important - it just creates a DataReader based on the SqlDatabase and SqlCommand objects.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Note: &lt;/b&gt;this code is just for example - we wouldn&#39;t normally necessarily have the SQL statement right here!&lt;br /&gt;
&lt;br /&gt;
The interesting part is the call to GetEnumerator. We pass in the type (aka generic type T) we want to get back, as well as the data reader and a function parameter for the static method we saw above. Lastly we convert the IEnumerable it returns to a list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: white; font-family: Consolas; font-size: 13px;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;Private&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;Function&lt;/span&gt;&amp;nbsp;GetData()&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #2b91af;&quot;&gt;List&lt;/span&gt;(&lt;span style=&quot;color: blue;&quot;&gt;Of&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #2b91af;&quot;&gt;StudentRecord&lt;/span&gt;)
&lt;/pre&gt;
&lt;pre style=&quot;background-color: white; font-family: Consolas; font-size: 13px;&quot;&gt;&lt;pre style=&quot;background-color: white; font-family: Consolas;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;        Dim&lt;/span&gt;&amp;nbsp;db&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;New&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #2b91af;&quot;&gt;SqlDatabase&lt;/span&gt;(CONN_STRING)
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;Using&lt;/span&gt;&amp;nbsp;cmd&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #2b91af;&quot;&gt;SqlCommand&lt;/span&gt;&amp;nbsp;=
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #2b91af;&quot;&gt;SqlDatabaseHelper&lt;/span&gt;.CreateSqlStringCommand(db,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;SELECT&amp;nbsp;* from students&lt;/span&gt;&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;&lt;/span&gt;)&lt;/pre&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: green;&quot;&gt;&#39;&amp;nbsp;Create&amp;nbsp;data&amp;nbsp;reader&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;Using&lt;/span&gt;&amp;nbsp;dr&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #2b91af;&quot;&gt;DbDataReader&lt;/span&gt;&amp;nbsp;=&amp;nbsp;GetReader(db,&amp;nbsp;cmd)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;Return&lt;/span&gt;&amp;nbsp;GetEnumerator(&lt;span style=&quot;color: blue;&quot;&gt;Of&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #2b91af;&quot;&gt;StudentRecord&lt;/span&gt;)(dr,&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;AddressOf&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #2b91af;&quot;&gt;StudentRecord&lt;/span&gt;.Create).ToList()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;Using&lt;/span&gt;
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;Using&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;Function&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
Last but not least - here&#39;s where we convert each row from the DataReader into a StudentRecord. It&#39;s quite simple and this is the great bit about how Yield works. We simply pass each row from the reader into the function specifed in the &lt;b&gt;generator&lt;/b&gt; function parameter, and it outputs a constructed StudentRecord object. The Yield functionality takes care of executing the StudentRecord.Create method, collecting up all the created objects and returning them as an IEnumerable object.&lt;br /&gt;
&lt;br /&gt;
We can get rid of the reader here because once we&#39;ve completely iterated we have all the data we need in the IEnumerable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: white; font-family: Consolas; font-size: 13px;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;Public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;Iterator&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;Function&lt;/span&gt;&amp;nbsp;GetEnumerator&amp;nbsp;(&lt;span style=&quot;color: blue;&quot;&gt;Of&lt;/span&gt;&amp;nbsp;T)(reader&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #2b91af;&quot;&gt;IDataReader&lt;/span&gt;,&amp;nbsp;generator&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #2b91af;&quot;&gt;Func&lt;/span&gt;(&lt;span style=&quot;color: blue;&quot;&gt;Of&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #2b91af;&quot;&gt;IDataRecord&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #2b91af;&quot;&gt;T&lt;/span&gt;))&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #2b91af;&quot;&gt;IEnumerable&lt;/span&gt;(&lt;span style=&quot;color: blue;&quot;&gt;Of&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #2b91af;&quot;&gt;T&lt;/span&gt;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;Try&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;While&lt;/span&gt;&amp;nbsp;(reader.Read())
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;Yield&lt;/span&gt;&amp;nbsp;generator(reader)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;While&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;Catch&lt;/span&gt;&amp;nbsp;ex&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #2b91af;&quot;&gt;Exception&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #2b91af;&quot;&gt;Debug&lt;/span&gt;.WriteLine(ex.Message)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;Finally&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;reader.Dispose()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;Try&lt;/span&gt;
&lt;span style=&quot;color: blue;&quot;&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;Function&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;background-color: white; font-family: Consolas; font-size: 13px;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;
&lt;/span&gt;&lt;/pre&gt;
So there you have it - a functional Yield scenario written in VB.NET. Personally I love these patterns as they allow you to write much cleaner and testable code

Hope it helps!&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;
----&lt;br /&gt;
Thanks for reading articles from the feed.&lt;br /&gt;
Check out the site at &lt;a href=&quot;http://randomtech.blogspot.com&quot;&gt;The Occasional Tech&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randomtech.blogspot.com/feeds/8391905945318452658/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6182393/8391905945318452658' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/8391905945318452658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/8391905945318452658'/><link rel='alternate' type='text/html' href='http://randomtech.blogspot.com/2012/04/converting-datareader-to-ienumerable.html' title='Converting a DataReader to IEnumerable Using Iterators and Yield in VB.NET'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13059618992597616370</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6182393.post-2070861717997222220</id><published>2012-04-10T10:02:00.002+10:00</published><updated>2012-04-10T10:05:06.743+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="telstra"/><category scheme="http://www.blogger.com/atom/ns#" term="unlock cell phone"/><category scheme="http://www.blogger.com/atom/ns#" term="unlock mobile phone"/><category scheme="http://www.blogger.com/atom/ns#" term="vodafone"/><category scheme="http://www.blogger.com/atom/ns#" term="vodafone australia"/><title type='text'>Unlocking your Vodafone phone to use with another carrier</title><content type='html'>This post is mostly relevant to Australians, but the instructions might also work in the UK, or other countries.&lt;br /&gt;
&lt;br /&gt;
I recently had enough of Vodafone Australia&#39;s terrible call quality and slow data network. I am often out of the city centre, and the quality of service is such that it my phone was often unusable. I couldn&#39;t even make a call from my home office!&lt;br /&gt;
&lt;br /&gt;
I moved over to Telstra, and found that my phone was locked to Vodafone, even though I remember the sales guy saying it wasn&#39;t :)&amp;nbsp;If you Google something like &#39;unlock HTC trophy&#39; you&#39;ll find a bunch of sites offering to give you the unlock code for $35 or more. Luckily Vodafone Australia provides this for free for some handsets. So even though we can&#39;t use Vodafone to make a decent phone call, kudos for providing the unlock codes. I know some carriers charge for this.&lt;br /&gt;
&lt;br /&gt;
So the unlock issue is easy to fix, and I thought I&#39;d put the instructions up so others can benefit.&lt;br /&gt;
By the way, this phone is an HTC Trophy, but this should work on anything Vodafone sell.&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;On your phone&#39;s dialer, type *#06#&lt;/li&gt;
&lt;li&gt;Write down the number displayed - you will need the first 15 digits. This is your IMEI number.&lt;/li&gt;
&lt;li&gt;Get a Telstra SIM card and activate it while porting your number&lt;/li&gt;
&lt;li&gt;Turn off your phone&lt;/li&gt;
&lt;li&gt;Remove your Vodafone SIM and insert the new SIM.&lt;/li&gt;
&lt;li&gt;Turn on your phone&lt;/li&gt;
&lt;li&gt;You will be greeted with a message like: &quot;&lt;strong style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; color: black; font-family: &#39;Times New Roman&#39;; font-size: 16px; font-style: normal; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: -26px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;The SIM card can only be used on specific networks. Contact your customer service centre for the unlock code&lt;/strong&gt;&quot;&lt;/li&gt;
&lt;li&gt;Go to&amp;nbsp;&lt;a href=&quot;https://unlock.vodafone.com.au/voila/handsetunlock/self-service.html?method=selectService&quot;&gt;https://unlock.vodafone.com.au/voila/handsetunlock/self-service.html?method=selectService&lt;/a&gt;&amp;nbsp;and enter the IMEI number and the Captcha&lt;/li&gt;
&lt;li&gt;An Unlock code will be generated and displayed at the top of the following page&lt;/li&gt;
&lt;li&gt;Enter this number into the phone and press Enter.&lt;/li&gt;
&lt;li&gt;Your phone should be ready to use!&lt;/li&gt;
&lt;li&gt;In some cases the new SIM may also be locked. If this is the case you need the PIN and PUK code from your new carrier&#39;s Customer Service dept.&lt;/li&gt;
&lt;/ol&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;
----&lt;br /&gt;
Thanks for reading articles from the feed.&lt;br /&gt;
Check out the site at &lt;a href=&quot;http://randomtech.blogspot.com&quot;&gt;The Occasional Tech&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randomtech.blogspot.com/feeds/2070861717997222220/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6182393/2070861717997222220' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/2070861717997222220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/2070861717997222220'/><link rel='alternate' type='text/html' href='http://randomtech.blogspot.com/2012/04/unlocking-your-vodafone-phone-to-use.html' title='Unlocking your Vodafone phone to use with another carrier'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13059618992597616370</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6182393.post-6681880338791494</id><published>2012-03-12T20:41:00.000+11:00</published><updated>2012-03-12T20:41:36.000+11:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="external hard drive"/><category scheme="http://www.blogger.com/atom/ns#" term="hard drive"/><category scheme="http://www.blogger.com/atom/ns#" term="wd external drive"/><category scheme="http://www.blogger.com/atom/ns#" term="western digital"/><category scheme="http://www.blogger.com/atom/ns#" term="windows 7 backup"/><category scheme="http://www.blogger.com/atom/ns#" term="windows error"/><title type='text'>Windows 7 Backup fails with I/O Error: 0x8078002A</title><content type='html'>Long story short, the reason this error occurs in general is because the partition is formatted with a sector size of 4kB. This is not supported in Windows 7, but is in Windows 8.&lt;br /&gt;
It is frequently experienced with external drives because people often reformat them before using them. Why? They ship with a whole lot of substandard bundled software which can take GB&#39;s of space.&lt;br /&gt;
&lt;br /&gt;
When you reformat the drive with the Windows format and default settings, it will create a partition with a sector size of 4kB. The error with Windows Backup occurs because the System Image backup only supports a sector size of 512 bytes.&lt;br /&gt;
&lt;br /&gt;
So the solution is to delete the partition and reformat with a sector size of 512 bytes.&lt;br /&gt;
&lt;br /&gt;
First of all, you can check your drive&#39;s current settings with this command:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #444444; font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;fsutil fsinfo ntfsinfo DRIVE_LETTER:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #444444; font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;text-align: -webkit-auto;&quot;&gt;You will see something like this:&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;text-align: -webkit-auto;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;text-align: -webkit-auto;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: -webkit-auto;&quot;&gt;
&lt;span style=&quot;color: #444444; font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;Bytes Per Sector &amp;nbsp;: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 4096&lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;&amp;lt;&amp;lt;&amp;lt; this needs to be 512&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: -webkit-auto;&quot;&gt;
&lt;span style=&quot;color: #444444; font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;Bytes Per Physical Sector : &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;Not Supported&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: -webkit-auto;&quot;&gt;
&lt;span style=&quot;color: #444444; font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;Bytes Per Cluster : &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 4096&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: -webkit-auto;&quot;&gt;
&lt;span style=&quot;color: #444444; font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;Bytes Per FileRecord Segment &amp;nbsp; &amp;nbsp;: 1024&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;text-align: -webkit-auto;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;text-align: -webkit-auto;&quot;&gt;For Western Digital drives you can use their &lt;a href=&quot;http://wdc.custhelp.com/app/answers/detail/a_id/7/related/1/session/L2F2LzEvdGltZS8xMzMxNTQzNTYwL3NpZC9RbjMzX1RTaw%3D%3D&quot;&gt;WD Quick Formatter utility&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;text-align: -webkit-auto;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;text-align: -webkit-auto;&quot;&gt;For others, you may look for a similar utility on the manufacturers website, or a third party utility. I haven&#39;t tried any myself, but I did find &lt;a href=&quot;http://www.pcdisk.com/&quot;&gt;PC Disk&lt;/a&gt; which may help.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;text-align: -webkit-auto;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;text-align: -webkit-auto;&quot;&gt;References:&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;a href=&quot;http://social.technet.microsoft.com/Forums/en/windowsbackup/thread/889b01be-d333-4fc7-b005-e12b7b236ad7&quot;&gt;http://social.technet.microsoft.com/Forums/en/windowsbackup/thread/889b01be-d333-4fc7-b005-e12b7b236ad7&lt;/a&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;a href=&quot;http://wdc.custhelp.com/app/answers/detail/a_id/6618/session/L3RpbWUvMTMxMzUzNzc5My9zaWQvT1hrMSpJQms%3D&quot;&gt;http://wdc.custhelp.com/app/answers/detail/a_id/6618/session/L3RpbWUvMTMxMzUzNzc5My9zaWQvT1hrMSpJQms%3D&lt;/a&gt;
&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;
----&lt;br /&gt;
Thanks for reading articles from the feed.&lt;br /&gt;
Check out the site at &lt;a href=&quot;http://randomtech.blogspot.com&quot;&gt;The Occasional Tech&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randomtech.blogspot.com/feeds/6681880338791494/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6182393/6681880338791494' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/6681880338791494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/6681880338791494'/><link rel='alternate' type='text/html' href='http://randomtech.blogspot.com/2012/03/windows-7-backup-fails-with-io-error.html' title='Windows 7 Backup fails with I/O Error: 0x8078002A'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13059618992597616370</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6182393.post-382864620473215563</id><published>2012-02-29T11:16:00.001+11:00</published><updated>2012-02-29T13:11:05.488+11:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".net"/><category scheme="http://www.blogger.com/atom/ns#" term="asp.net"/><category scheme="http://www.blogger.com/atom/ns#" term="asp.net 4.0"/><category scheme="http://www.blogger.com/atom/ns#" term="charting"/><category scheme="http://www.blogger.com/atom/ns#" term="development"/><category scheme="http://www.blogger.com/atom/ns#" term="web development"/><title type='text'>Microsoft ASP.NET 4.0 Chart Resources</title><content type='html'>I&#39;m working on a project using the ASP.NET 4.0 Chart controls (System.Web.UI.DataVisualization.Charting) at the moment and I thought I&#39;d collect the useful resources here. Like many parts of the .NET Framework, the documentation is not so great, but the information is out there if you know where to look.&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/dd467029.aspx&quot;&gt;MSDN&lt;/a&gt;&amp;nbsp;- the official documentation resource. You will find this useful at times but it is rather terse.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/dd456764.aspx&quot;&gt;Custom Properties List&lt;/a&gt; - many chart types have additional properties which are not directly exposed in the designer. You need to set these in the code-behind, or via the CustomProperties parameter which is available on most Chart elements.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;a href=&quot;http://archive.msdn.microsoft.com/mschart/Release/ProjectReleases.aspx?ReleaseId=4418&quot;&gt;ASP.NET 4.0 Chart samples&lt;/a&gt;&amp;nbsp;- this is probably the best place to start to learn how to accomplish your specific goals.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx&quot;&gt;Numeric formatting&lt;/a&gt; - for chart label formatting&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://social.msdn.microsoft.com/Forums/en-US/MSWinWebChart/threads/&quot;&gt;ASP.Net Chart Forum&lt;/a&gt;&amp;nbsp;- some decent examples here&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blogs.msdn.com/b/alexgor/&quot;&gt;Alex Gorev&#39;s Blog&lt;/a&gt;&amp;nbsp;- 3+ years old but does contain a lot of useful information which is still relevant.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/search?q=asp.net+chart&quot;&gt;StackOverflow&lt;/a&gt;&amp;nbsp;- ask a question here if you get stuck!&lt;/li&gt;
&lt;/ul&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;
----&lt;br /&gt;
Thanks for reading articles from the feed.&lt;br /&gt;
Check out the site at &lt;a href=&quot;http://randomtech.blogspot.com&quot;&gt;The Occasional Tech&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randomtech.blogspot.com/feeds/382864620473215563/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6182393/382864620473215563' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/382864620473215563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/382864620473215563'/><link rel='alternate' type='text/html' href='http://randomtech.blogspot.com/2012/02/microsoft-aspnet-40-chart-resources.html' title='Microsoft ASP.NET 4.0 Chart Resources'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13059618992597616370</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6182393.post-7156188084302745373</id><published>2012-01-24T14:19:00.001+11:00</published><updated>2012-01-24T15:11:56.695+11:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="blogger"/><category scheme="http://www.blogger.com/atom/ns#" term="blogging"/><category scheme="http://www.blogger.com/atom/ns#" term="facebook"/><category scheme="http://www.blogger.com/atom/ns#" term="html 5"/><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="like button"/><category scheme="http://www.blogger.com/atom/ns#" term="social networks"/><title type='text'>Adding the HTML 5 Facebook Like Button to Blogger</title><content type='html'>Facebook Like buttons are a cool feature to add to your blog. They really do work to drive more engaged traffic to your precious posts.&lt;br /&gt;
&lt;br /&gt;
The reason is they are not just a static AddThis/ShareThis type of button. Those things never really worked very well. Facebook&#39;s buttons, by contrast, add social proof (or lack thereof) to your posts. They do this by:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;showing how many people already like the page&lt;/li&gt;
&lt;li&gt;showing photos of these people&lt;/li&gt;
&lt;/ul&gt;
They also provide a very easy way for people to quickly share content with their friends.&amp;nbsp;Since 50% of Facebook&#39;s 800 million users &lt;a href=&quot;http://arstechnica.com/gadgets/news/2012/01/google-doubles-plus-membership-with-brute-force-signup-process.ars&quot;&gt;log in every day&lt;/a&gt;, the chances of someone browsing your blog being already logged in to Facebook is pretty high. If they are logged in, when they see the Like button, they literally need to press it and your blog&#39;s title, URL, description, and image is instantly posted to their wall. Within seconds others will see it, and may comment, or click through to your site.&lt;br /&gt;
&lt;br /&gt;
So the bottom line is: leverage the astoundingly lively Facebook ecosystem to get more clicks to your site. More importantly, these clicks are coming with a pre-recommendation from their Facebook friend.&lt;br /&gt;
&lt;h2&gt;







Rules of thumb for Facebook buttons:&lt;/h2&gt;
&lt;div&gt;
&lt;ol&gt;
&lt;li&gt;Make sure the Like/Share/Send is referencing the actual post URL, not the blog&#39;s home URL.&lt;/li&gt;
&lt;li&gt;Include them at the end of the post - just after the content - so when people have finished reading, it&#39;s the next logical step.&lt;/li&gt;
&lt;li&gt;Make them prominent and try to nicely integrate them into your page layout.&lt;/li&gt;
&lt;li&gt;Customise:&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;Choose the word Like/Recommend depending on the context. Like is suitable for most sites, but Recommend might be better for product reviews, music, movies, etc..&lt;/li&gt;
&lt;li&gt;Use the light/dark colour theme to best match your site&#39;s look.&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt;Use Open Graph tags to maximise the impact of your integration - more about that later.&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;h2&gt;






How to Integrate the HTML 5 Facebook Like Button Into Blogger&lt;/h2&gt;
&lt;div&gt;
In a blogging platform like Wordpress, just use a plugin to insert the Like Button - it&#39;s the easiest way. But on Blogger, it&#39;s not so simple. Having said that, if you want total control, you can use the instructions below to include the Like Button right in your Wordpress Theme&#39;s post.php, category.php, or any other relevant file.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I suggest using the HTML 5 code because it&#39;s the most simple to integrate. Most browsers should be able to handle it, and this is increasing each day. In addition, the mobile world is heavily investing in HTML 5 so it helps ensure the button will work on mobile browsers too.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
If you really can&#39;t use HTML 5, you can use the XFBML option with one extra step, or the Iframe version. Keep in mind the Iframe will be blocked by some user&#39;s configurations, and does not support the Send button.&lt;/div&gt;
&lt;div&gt;
&lt;ol&gt;
&lt;li&gt;Go to&amp;nbsp;&lt;a href=&quot;https://developers.facebook.com/apps&quot;&gt;https://developers.facebook.com/apps&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Set up an Application for your site. If you are only interested in the Like Button, you really just need the App ID, so don&#39;t worry too much about what you enter here unless you actually want to create a proper App related to your site.&lt;/li&gt;
&lt;li&gt;Then go to:&amp;nbsp;
&lt;a href=&quot;https://developers.facebook.com/docs/reference/plugins/like/&quot;&gt;https://developers.facebook.com/docs/reference/plugins/like/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Configure the button&lt;/li&gt;
&lt;li&gt;Put anything in the url, e.g. http://test.com - we will change this later&lt;/li&gt;
&lt;li&gt;Click Get Code&lt;/li&gt;
&lt;li&gt;The code will pop up - make sure you are looking at the HTML 5 tab.&lt;/li&gt;
&lt;li&gt;At the top, select the Facebook App you just created.&lt;/li&gt;
&lt;li&gt;Select everything in the first box and copy it to the clipboard.&lt;/li&gt;
&lt;li&gt;Now go into your Blogger Dashboard&lt;/li&gt;
&lt;li&gt;In the blog you want to modify, go to Template, then click Edit HTML (I am using the latest Blogger Dashboard, if you can&#39;t find this, let me know in the Comments.), then click Proceed.&lt;/li&gt;
&lt;li&gt;Click &#39;Expand Widget Templates&#39;&lt;/li&gt;
&lt;li&gt;Add the Javascript Facebook SDK code:&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;Scroll all the way to the bottom of the HTML window, and paste the Facebook code just above the &amp;lt;/html&amp;gt; tag.&lt;/li&gt;
&lt;li&gt;Then make a blank line after the &amp;lt;script&amp;gt; tag and before the &amp;lt;/script&amp;gt; tag.&lt;/li&gt;
&lt;li&gt;After the &amp;lt;script&amp;gt; tag, add:&amp;nbsp;
&lt;i style=&quot;background-color: white; color: #222222; font-family: &#39;Courier New&#39;, Courier, monospace; font-size: 13px; line-height: 18px;&quot;&gt;//&amp;lt;![CDATA[&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i style=&quot;background-color: white; color: #222222; font-family: &#39;Courier New&#39;, Courier, monospace; font-size: 13px; line-height: 18px;&quot;&gt;&lt;span style=&quot;color: black; font-family: &#39;Times New Roman&#39;; font-size: small; font-style: normal; line-height: normal;&quot;&gt;Before the &amp;lt;script&amp;gt; tag, add:&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/i&gt;
&lt;i style=&quot;background-color: white; color: #222222; font-family: &#39;Courier New&#39;, Courier, monospace; font-size: 13px; line-height: 18px;&quot;&gt;//]]&amp;gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;This makes sure the javascript remains intact.&lt;/li&gt;
&lt;li&gt;By the way, Blogger will move this code higher up in the template when you save it. I found that it&#39;s easy to add it here, then let Blogger do its thing.&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt;Add the Facebook Like button code:&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;Go back to the Facebook Like Button Developer page and copy the code from the second box.
&lt;/li&gt;
&lt;li&gt;Search for &quot;&amp;lt;div class=&#39;post-footer&#39;&amp;gt;&quot;&lt;/li&gt;
&lt;li&gt;Just after this line, paste the Facebook code.&lt;/li&gt;
&lt;li&gt;Now we need to edit the URL.&lt;/li&gt;
&lt;li&gt;In the code you just pasted, change the data-href attribute to: expr:data-href=&quot;data:post.url&quot;. The entire line of code should look something like this:&amp;nbsp;&lt;i&gt;&lt;span style=&quot;color: #999999;&quot;&gt;&amp;lt;div class=&quot;fb-like&quot; expr:data-href=&quot;data:post.url&quot; data-send=&quot;true&quot; data-width=&quot;450&quot; data-show-faces=&quot;true&quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;Copy the line you just edited.&lt;/li&gt;
&lt;li&gt;Search again for&amp;nbsp;&quot;&amp;lt;div class=&#39;post-footer&#39;&amp;gt;&quot; to find&amp;nbsp;the mobile section of the template, and paste the line in again, after the line with&amp;nbsp;&quot;&amp;lt;div class=&#39;post-footer&#39;&amp;gt;&quot;.&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt;Click Preview and check how it all looks.&lt;/li&gt;
&lt;li&gt;When you are happy with it, click Save Template.&lt;/li&gt;
&lt;li&gt;That&#39;s it!&amp;nbsp;You may like to change the built in Blogger widgets to remove the Facebook button, as now it&#39;s redundant.&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
Here are some screenshots to help you:&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtAwHqvlLU9vyq66QKCaZ8FIv9E1CSn7DHVfQmh51kqgkEXV7e-zMfbzE5NkutO8hA_r-brj8SA4zY-FxBbmOVNyJofcM4ffC76MK3BIvAfCE_QZQQb35Z5ThJqklxooA-fmtCBw/s1600/blogger-facebook-like-javascript-sdk.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;291&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtAwHqvlLU9vyq66QKCaZ8FIv9E1CSn7DHVfQmh51kqgkEXV7e-zMfbzE5NkutO8hA_r-brj8SA4zY-FxBbmOVNyJofcM4ffC76MK3BIvAfCE_QZQQb35Z5ThJqklxooA-fmtCBw/s400/blogger-facebook-like-javascript-sdk.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Facebook SDK code at bottom of template&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihyphenhyphenxvfWXpU1Scm19jKpW9X4wlcgw7a_fL29-saLlPUJGcdeEEQIipeKvRNc6xKKBVo0MtW8VZh-vDlmsBjz9KE9HLNc5LsP2jZSfprPoxDLD3r9Sz1AywV-d0MYiwc86RFfnLqoA/s1600/blogger-facebook-like-post-code.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;287&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihyphenhyphenxvfWXpU1Scm19jKpW9X4wlcgw7a_fL29-saLlPUJGcdeEEQIipeKvRNc6xKKBVo0MtW8VZh-vDlmsBjz9KE9HLNc5LsP2jZSfprPoxDLD3r9Sz1AywV-d0MYiwc86RFfnLqoA/s400/blogger-facebook-like-post-code.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;The code for adding the button to the post&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div&gt;
That&#39;s all you need to do to integrate the button, but we can do a bit more by adding the Open Graph information to the template&#39;s meta tags.&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;



Adding Open Graph Information to your Blogger Blog&lt;/h2&gt;
&lt;div&gt;
I don&#39;t know much about Open Graph, but I assume it will become more and more used by Facebook. They releases a new version last year, so this shows that they are committed to it.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
In relation to the Like Button, it allows you to &lt;b&gt;better control what actually gets posted to the user&#39;s wall.&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
You basically need to add six meta tags. You can generate these on &lt;a href=&quot;https://developers.facebook.com/docs/reference/plugins/like/&quot;&gt;this page&lt;/a&gt;&amp;nbsp;and then modify them slightly for blogger. Again these instructions can be pretty easily adapted for use with Wordpress Themes.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Read about how &lt;a href=&quot;https://developers.facebook.com/docs/opengraphprotocol/&quot;&gt;Open Graph works&lt;/a&gt;.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
On the Facebook page:&lt;/div&gt;
&lt;div&gt;
&lt;ol&gt;
&lt;li&gt;Leave Title blank - we will modify this later&lt;/li&gt;
&lt;li&gt;Under Type, select &lt;b&gt;Article&lt;/b&gt;, or something else if it makes more sense.&lt;/li&gt;
&lt;li&gt;URL: leave blank&lt;/li&gt;
&lt;li&gt;Image: leave blank unless you have a URL to a logo you want included. If so, paste in the full URL to the image. In Blogger, I don&#39;t know of a way to dynamically insert image URLs from a given post, but this is &lt;a href=&quot;http://wordpress.org/extend/plugins/get-the-image/&quot;&gt;pretty easy in Wordpress&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;I have noticed that if you leave this tag out of your template, Facebook will automatically grab the first image from the post when someone posts it to their wall.&lt;/b&gt; So you can just leave it out unless you want to post a specific image.&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;Site name: leave blank&lt;/li&gt;
&lt;li&gt;Admin: leave with the ID already included.&lt;/li&gt;
&lt;li&gt;Click &lt;b&gt;Get Tags &lt;/b&gt;and copy the output.&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Now to your Blogger template:&lt;/div&gt;
&lt;div&gt;
&lt;ol&gt;
&lt;li&gt;Again go to Edit Template in Blogger.&lt;/li&gt;
&lt;li&gt;Expand Widget Templates&lt;/li&gt;
&lt;li&gt;At the top of the HTML box, find the line with the text:&amp;nbsp;&amp;nbsp;&lt;i&gt;&amp;lt;meta expr:content=&#39;data:blog.metaDescription&#39; name=&#39;description&#39;/&amp;gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;Paste the tags you copied under this line.&lt;/li&gt;
&lt;li&gt;Now we need to edit them like so:&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
&lt;div&gt;
&lt;i&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;lt;meta property=&quot;og:title&quot; expr:content=&quot;data:blog.pageTitle&quot; /&amp;gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div&gt;
&lt;i&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;lt;meta property=&quot;og:type&quot; content=&quot;article&quot; /&amp;gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div&gt;
&lt;i&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;lt;meta property=&quot;og:url&quot; expr:content=&quot;data:blog.url&quot; /&amp;gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div&gt;
&lt;i&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;lt;meta property=&quot;og:image&quot; expr:content=&quot;http://test.com/image.png&quot; /&amp;gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div&gt;
&lt;i&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;lt;meta property=&quot;og:site_name&quot; expr:content=&quot;data:blog.title&quot; /&amp;gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div&gt;
&lt;i&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;lt;meta property=&quot;fb:admins&quot; content=&quot;your user id, e.g. 123456789&quot; /&amp;gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
It&#39;s also recommended to add the following tag:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;i&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;lt;meta property=&quot;og:description&quot; expr:content=&quot;data:blog.metaDescription&quot; /&amp;gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
If the tag content is blank, you should not leave them in your template, as it will cause an error.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
Now save your template and test your Like Buttons!!&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Any questions - please fire away in the comments.&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;
----&lt;br /&gt;
Thanks for reading articles from the feed.&lt;br /&gt;
Check out the site at &lt;a href=&quot;http://randomtech.blogspot.com&quot;&gt;The Occasional Tech&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randomtech.blogspot.com/feeds/7156188084302745373/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6182393/7156188084302745373' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/7156188084302745373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/7156188084302745373'/><link rel='alternate' type='text/html' href='http://randomtech.blogspot.com/2012/01/adding-html-5-facebook-like-button-to.html' title='Adding the HTML 5 Facebook Like Button to Blogger'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13059618992597616370</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtAwHqvlLU9vyq66QKCaZ8FIv9E1CSn7DHVfQmh51kqgkEXV7e-zMfbzE5NkutO8hA_r-brj8SA4zY-FxBbmOVNyJofcM4ffC76MK3BIvAfCE_QZQQb35Z5ThJqklxooA-fmtCBw/s72-c/blogger-facebook-like-javascript-sdk.png" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6182393.post-6048571567595953041</id><published>2011-12-13T16:49:00.001+11:00</published><updated>2013-10-01T09:26:01.156+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="microsoft"/><category scheme="http://www.blogger.com/atom/ns#" term="mssql"/><category scheme="http://www.blogger.com/atom/ns#" term="sql server"/><category scheme="http://www.blogger.com/atom/ns#" term="sql server management studio"/><category scheme="http://www.blogger.com/atom/ns#" term="ssms"/><category scheme="http://www.blogger.com/atom/ns#" term="tfs"/><title type='text'>Check out TFS files directly from SQL Server Management Studio</title><content type='html'>The other day I explained &lt;a href=&quot;http://randomtech.blogspot.com/2011/12/how-to-automate-tfs-checkouts-from.html&quot;&gt;how to configure the external tools feature of Edit Pad Pro to allow direct checking out of files from TFS&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Today I did the same thing in SQL Server Management Studio.&lt;br /&gt;
&lt;h2&gt;
Configuring TFS Checkout in SQL Server Management Studio&lt;/h2&gt;
Here are pictorial instructions:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWMeZ_k5KGXxKOY8TektGxVhi5GahCKbkSB4gWYFZcGeUz3WI0-wGQJbnWKHgyGtlTAXSV2f-bXJsDm1B5RWnJrDXdgwdk0P2GJlGU9TsB7CVvKKb6fUFL-OUWVtBGn0u-sE4ozQ/s1600/tfs-checkout-sql-management-studio.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWMeZ_k5KGXxKOY8TektGxVhi5GahCKbkSB4gWYFZcGeUz3WI0-wGQJbnWKHgyGtlTAXSV2f-bXJsDm1B5RWnJrDXdgwdk0P2GJlGU9TsB7CVvKKb6fUFL-OUWVtBGn0u-sE4ozQ/s1600/tfs-checkout-sql-management-studio.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;Command: &lt;/b&gt;we are using the environment variable created by VS2012 to provide a generic path to the TF.exe command line tool. If you are not using VS2012, open a command prompt, type &quot;set&quot; and see which path is closest. Alternatively, just put in the absolute path to tf.exe.&lt;br /&gt;
&lt;br /&gt;
If you do not have Visual Studio at all you can install the standalone&amp;nbsp;&lt;a href=&quot;http://www.microsoft.com/en-au/download/details.aspx?id=30656&quot; target=&quot;_blank&quot;&gt;Team Explorer for Visual Studio 2012&lt;/a&gt; which includes tf.exe.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Arguments&lt;/b&gt;: we are passing the &quot;checkout&quot; command to tf.exe with a parameter of the full path to the .sql file we are working on.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Use Output window&lt;/b&gt;: this is optional but it will show you the information returned by the tf.exe command line tool.&lt;br /&gt;
&lt;h2&gt;
Using the External Tool&lt;/h2&gt;
This is simple. The tool item you just created now shows up in the Tools menu. Just click it and it will checkout the current file you have open in the IDE.
&lt;br /&gt;
&lt;h2&gt;
Last Words&lt;/h2&gt;
There is a small annoyance: SSMS will try to save&lt;b&gt; all unsaved files&lt;/b&gt; before running the external tool. In this case, if we&#39;ve modified the file then it will try and save over a Read-only file, causing it to try and Save As to a new file name.&lt;br /&gt;
&lt;br /&gt;
I believe this is a bug in SSMS, or a well-intentioned, yet obstructive feature. I can&#39;t see a way to disable this behaviour. Just press &lt;b&gt;Escape&lt;/b&gt; to avoid this - the external tool will then run.&lt;br /&gt;
&lt;br /&gt;
Let me know in the comments if you need any more information!
&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;
----&lt;br /&gt;
Thanks for reading articles from the feed.&lt;br /&gt;
Check out the site at &lt;a href=&quot;http://randomtech.blogspot.com&quot;&gt;The Occasional Tech&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randomtech.blogspot.com/feeds/6048571567595953041/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6182393/6048571567595953041' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/6048571567595953041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/6048571567595953041'/><link rel='alternate' type='text/html' href='http://randomtech.blogspot.com/2011/12/check-out-tfs-files-directly-from-sql.html' title='Check out TFS files directly from SQL Server Management Studio'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13059618992597616370</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWMeZ_k5KGXxKOY8TektGxVhi5GahCKbkSB4gWYFZcGeUz3WI0-wGQJbnWKHgyGtlTAXSV2f-bXJsDm1B5RWnJrDXdgwdk0P2GJlGU9TsB7CVvKKb6fUFL-OUWVtBGn0u-sE4ozQ/s72-c/tfs-checkout-sql-management-studio.png" height="72" width="72"/><thr:total>0</thr:total><georss:featurename>Sydney NSW, Australia</georss:featurename><georss:point>-33.873651 151.2068896</georss:point><georss:box>-33.8868345 151.1871486 -33.860467500000006 151.22663060000002</georss:box></entry><entry><id>tag:blogger.com,1999:blog-6182393.post-1715509554217116290</id><published>2011-12-05T11:43:00.000+11:00</published><updated>2011-12-05T11:43:06.179+11:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="automation"/><category scheme="http://www.blogger.com/atom/ns#" term="checkout"/><category scheme="http://www.blogger.com/atom/ns#" term="editpad pro"/><category scheme="http://www.blogger.com/atom/ns#" term="text editor"/><category scheme="http://www.blogger.com/atom/ns#" term="tfs"/><category scheme="http://www.blogger.com/atom/ns#" term="visual studio"/><title type='text'>How to automate TFS checkouts from EditPad Pro</title><content type='html'>I am a long time user of the great &lt;a href=&quot;http://bit.ly/vPVdvg&quot;&gt;EditPad Pro&lt;/a&gt;&amp;nbsp;from JGsoft. I use it for text file manipulation and basic programming. I starting using it when it was at version 3 or 4; purchased it at version 5, and even upgraded my licence to 6 and 7!&lt;br /&gt;
&lt;br /&gt;
You may find Text Editors boring - understandable! They are one of those types of software that is not particularly exciting, but for certain people, they are an essential tool. And if they perform slowly or lack intricate features, they will be quickly superseded by something better.&lt;br /&gt;
&lt;br /&gt;
Developers need a powerful text editor. End of story.&lt;br /&gt;
&lt;br /&gt;
As a developer you have to deal with a multitude of file types - config files, data import/export files, source code, database queries, and so on. Often you need to quickly search files, or change their contents and produce a new file.&lt;br /&gt;
&lt;br /&gt;
EditPad Pro is an awesome tool for getting in there and quickly doing what you need. As I mentioned, I&#39;ve used it for many years&lt;br /&gt;
&lt;br /&gt;
It&#39;s an indispensable tool for me. This is due to features such as:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Customisable syntax highlighting for a very wide range of file types, e.g. sql, vbs, sh, XML&lt;/li&gt;
&lt;li&gt;Powerful regular expression search and replace (actually I also bought &lt;a href=&quot;http://bit.ly/umFxG1&quot;&gt;RegexBuddy&lt;/a&gt; from JGsoft to make constructing these easier)&lt;/li&gt;
&lt;li&gt;Stable handling of very large text files&lt;/li&gt;
&lt;li&gt;Fast operation - fast to load, never laggy&lt;/li&gt;
&lt;li&gt;External tool support - &lt;b&gt;which is the point of this post!&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;&lt;h2&gt;Integrating TFS checkout into EditPad Pro&lt;/h2&gt;&lt;/div&gt;&lt;div&gt;In my current job, we use Team Foundation Server for source control. Visual Studio 2010 has great integration, in that it automatically checks out files when you try to edit them.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;However, we also store various other file types in TFS, which we do not edit in Visual Studio. Personally, I use EditPad Pro (EPP) to edit these. I have been manually checking out the files when I need to edit them using the Shell Integration provided by the &lt;a href=&quot;http://visualstudiogallery.msdn.microsoft.com/c255a1e4-04ba-4f68-8f4e-cd473d6b971f&quot;&gt;TFS Power Tools&lt;/a&gt;. This works fine, but becomes tedious.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Then I remembered that I could integrate the TFS command line application into EPP!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;The screenshots below will show you how to do it, but in brief:&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Open a file from your TFS working copy, that is currently checked in (Read Only)&lt;/li&gt;
&lt;li&gt;Click on the Tools menu, then Configure Tools...&lt;/li&gt;
&lt;li&gt;Configure the command line and add a keyboard shortcut. If you want it in the toolbar, you can check &#39;Show caption on toolbar&#39;&lt;/li&gt;
&lt;li&gt;Close the Tools dialogue and press your keyboard shortcut.&lt;/li&gt;
&lt;li&gt;Your file is now checked out!&lt;/li&gt;
&lt;/ol&gt;&lt;div&gt;Now a bit more detail...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;h3&gt;Tool Definition&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;This is where you set up the command line to run, and add the placeholders which pass the information from EPP to the command line tool.&lt;br /&gt;
&lt;br /&gt;
In this case it is very simple:&lt;br /&gt;
&lt;br /&gt;
&quot;C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\TF.exe&quot; checkout &quot;%FILE%&quot;&lt;br /&gt;
&lt;br /&gt;
Your path to TF.exe may differ - just search your C drive.&lt;br /&gt;
&lt;br /&gt;
The important part to note is you need the &quot;&quot; around the %FILE% placeholder to ensure that if you have spaces in the path to the file, this will be handled correctly.&lt;br /&gt;
&lt;br /&gt;
TF.exe does not require the working folder to be set.&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiK3tzNhJUZ-Dh8idJOHe_BFhYfNOBv5SN5HIrIKgmIxiN063sLdr4AF94RZBwG_FDS7MFzGE7fzIPkf-O6-dgIJCHDAI936HTHNYjugedo3MagEKKkAw_4r8gGw0KDUFlbw11Ajw/s1600/editpadpro-tfs-definition.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;231&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiK3tzNhJUZ-Dh8idJOHe_BFhYfNOBv5SN5HIrIKgmIxiN063sLdr4AF94RZBwG_FDS7MFzGE7fzIPkf-O6-dgIJCHDAI936HTHNYjugedo3MagEKKkAw_4r8gGw0KDUFlbw11Ajw/s320/editpadpro-tfs-definition.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Tool Definition - set up the command line here&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;h3&gt;Files dialog&lt;/h3&gt;You don&#39;t really need to set anything up here, but if you like, you can check &#39;Reload the current file&#39;. This ensures the latest version checked out from TFS will be displayed. EPP should automatically reload the file anyway though, so it&#39;s not strictly required. (You can set this behaviour in the main Preferences dialogue, under Open Files: check &#39;Automatically reload the active file if it was modified on disk.&#39;)&lt;br /&gt;
&lt;br /&gt;
This section may be more useful to you if you want to do something like save your local copy in another temp file before you check out. You could tick the second option to do this.&lt;br /&gt;
&lt;br /&gt;
If you are setting up a TFS check-in task, then you would check the first option to make sure the file is saved before checking in.&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijmkV1oFZnLOJhcxjP3STMCZKyxfqVJpo47EYo8YhlBXTbaTc5EhK5xuKCd3vacv2rAQLYwzh8w7A5z_-jU8NoZ5bHC9RqBXonkSsFFxfspPmdYxxXZRr6p0hRom6rQ3OfkmosIQ/s1600/editpadpro-tfs-tool-files.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;231&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijmkV1oFZnLOJhcxjP3STMCZKyxfqVJpo47EYo8YhlBXTbaTc5EhK5xuKCd3vacv2rAQLYwzh8w7A5z_-jU8NoZ5bHC9RqBXonkSsFFxfspPmdYxxXZRr6p0hRom6rQ3OfkmosIQ/s320/editpadpro-tfs-tool-files.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Tool file actions - optional&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;h3&gt;Standard I/O Dialogue&lt;/h3&gt;This is useful in case we get any errors. In this case, I set up the standard error to redirect to the message panel. This means you will see any errors if they occur (e.g. TFS down)&lt;br /&gt;
&lt;br /&gt;
You can also set this to save the standard output to the message panel or to a new file. We don&#39;t need it in this case, because the standard output just tells us the file was checked out!&lt;br /&gt;
&lt;br /&gt;
These settings are most used for tools which take your file&#39;s contents, change them, and produce modified output. With these tools, it&#39;s ideal to set the standard output to capture to a new tab. I have done this when using perl scripts to format files, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEGDTqh23zxk9b8awsMXp6kC3dJgMQF800Mazr8bDReBBeeYW6N9fiwrBszP_M1vDODUJPlqqjiIOQdiA-uaH8sJSLYef6mLIfPEam6TPA3szrU6rokZF0fq6_ZqUwnkHJa_BiOA/s1600/editpadpro-tfs-tool-standard-io.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;231&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEGDTqh23zxk9b8awsMXp6kC3dJgMQF800Mazr8bDReBBeeYW6N9fiwrBszP_M1vDODUJPlqqjiIOQdiA-uaH8sJSLYef6mLIfPEam6TPA3szrU6rokZF0fq6_ZqUwnkHJa_BiOA/s320/editpadpro-tfs-tool-standard-io.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Standard I/O - where to send the command line output&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
So there you go - look how easy it is to integrate an external tool into your text editor - and save yourself a lot of tedious clicks AND time!&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;b&gt;If you are interested in trying out EditPad Pro - it&#39;s your lucky day! You can &lt;a href=&quot;http://bit.ly/ryex2I&quot;&gt;get a 30 day trial of EPP right here&lt;/a&gt;. Once the trial ends, it just switches to the Lite version, so you can keep using it forever.&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;
----&lt;br /&gt;
Thanks for reading articles from the feed.&lt;br /&gt;
Check out the site at &lt;a href=&quot;http://randomtech.blogspot.com&quot;&gt;The Occasional Tech&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randomtech.blogspot.com/feeds/1715509554217116290/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6182393/1715509554217116290' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/1715509554217116290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/1715509554217116290'/><link rel='alternate' type='text/html' href='http://randomtech.blogspot.com/2011/12/how-to-automate-tfs-checkouts-from.html' title='How to automate TFS checkouts from EditPad Pro'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13059618992597616370</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiK3tzNhJUZ-Dh8idJOHe_BFhYfNOBv5SN5HIrIKgmIxiN063sLdr4AF94RZBwG_FDS7MFzGE7fzIPkf-O6-dgIJCHDAI936HTHNYjugedo3MagEKKkAw_4r8gGw0KDUFlbw11Ajw/s72-c/editpadpro-tfs-definition.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6182393.post-4103390319878497691</id><published>2011-11-01T11:25:00.004+11:00</published><updated>2011-12-05T11:55:41.382+11:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="cloud hosting"/><category scheme="http://www.blogger.com/atom/ns#" term="cloud vps"/><category scheme="http://www.blogger.com/atom/ns#" term="dns"/><category scheme="http://www.blogger.com/atom/ns#" term="dreamhost"/><category scheme="http://www.blogger.com/atom/ns#" term="softlayer"/><category scheme="http://www.blogger.com/atom/ns#" term="virtual server"/><category scheme="http://www.blogger.com/atom/ns#" term="vps"/><category scheme="http://www.blogger.com/atom/ns#" term="vps.net"/><category scheme="http://www.blogger.com/atom/ns#" term="web hosting"/><title type='text'>VPS.NET cloud hosting review</title><content type='html'>This post is a first hand review of the VPS hosting services offered by &lt;a href=&quot;http://manage.aff.biz/z/1045/CD5482/&quot;&gt;VPS.NET&lt;/a&gt;, known as VPS Cloud Server. I&#39;ll keep it brief and focus on the benefits and disadvantages of their service.&lt;br /&gt;
&lt;br /&gt;
My background as a web consultant and developer means that I&#39;ve had experience with a wide range of web servers and hosting plans: shared, virtual server, dedicated, and internally managed corporate servers. I currently have accounts with four other hosting providers for various purposes.&lt;br /&gt;
&lt;br /&gt;
The timing of this review is funny in a way. I&#39;ve had an account with VPS.NET since November 2009, and until recently have had hardly any technical issues. &lt;br /&gt;
&lt;br /&gt;
What&#39;s good about VPS.NET:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;The node concept - you buy nodes and arrange them into VPS&#39;s. A node = 376MB RAM, 600 MHz CPU, 10GB SAN storage. They get cheaper as you buy more (currently they are $8 each!)&lt;/li&gt;
&lt;li&gt;Control - they use a custom control panel (which is based on OnApp) which is breath of fresh air from CPanel. It&#39;s easy to scale your VPS, add another VPS, manage backups, get your invoices, submit support requests, and so on. This panel is great. It may even be better than Dreamhost&#39;s custom panel, of which I am also a fan.&lt;/li&gt;
&lt;li&gt;DNS management - easy and simple. You can use softlayer.com or vps.net servers.&lt;/li&gt;
&lt;li&gt;Large amount of operating systems to deploy - including Windows 2008, Debian, Ubuntu, CloudLinux, JumpBox and more. They also include a LOT of preconfigured templates for common applications, such as Asterisk, Magento, Wordpress, Bugzilla, Nagios, etc. This saves a lot of time.&lt;/li&gt;
&lt;li&gt;Flexible offerings - I like how they have somewhat commoditised hosting and created a system by which you can add various add-ons to your account. I outline some of the add-ons below. In short, the modularisation of the service is a very good thing, and something they&#39;ve done really well.&lt;/li&gt;
&lt;li&gt;Lots of locations: 3 cities in the USA, 2 in Europe, 1 in Asia (Japan) - and some have multiple zones (which I think means data centres)&lt;/li&gt;
&lt;li&gt;Support: I&#39;ve found them to be quick to respond any time of the day, and straight to the point. This includes Tech and Billing. I only have good things to say about vps.net Support. They also just added phone support, which is a plus.&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;Some of the add-ons that I make use of:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Server Density monitoring - quick to set up and allows you to monitor load and other things of your system, Apache, MySQL, and much more. VPS.NET have brokered a cheaper licence from SD. Integration and setup is quite easy. The only problem with this type of licence is that it does not allow you to use the community contributed plugins from SD. This is a shame because I really wanted to add php-fpm monitoring, among other things. To use this, you need to sign up directly with SD, which voids the need for the VPS.NET add-on.&lt;/li&gt;
&lt;li&gt;Rsync backups - basically they provide offsite storage to the same capacity of your VPS and simple instructions to set up secure rsync over ssh. You then set up your own rsync (ask me in the comments if you want help setting up rsync backups.) script and stick it on cron.&lt;/li&gt;
&lt;li&gt;Snapshot backups - for $5/mth per VPS this gives you a daily, weekly, and monthly snapshot backup, as well as one manual backup you can use to create templates for future VPS deployments.&lt;/li&gt;
&lt;li&gt;Managed support - for $99/mth/VPS you can have pro support to help you with upgrades, security hardening, and a lot of other stuff.&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;So all of the above is a winning recipe, but unfortunately there&#39;s one major issue that erodes a lot of the benefit. That is hardware stability.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Originally I signed up with a VPS on the Chicago-C cloud. For over a year I found this to be great. Fast performance and very little downtime. All hosts experience downtime, and I have come to expect a few hours here and there.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;In September VPS.NET asked everyone on CHI-C to move their VPS&#39;s to CHI-A, with their help. I ended up moving to CHI-D so I could use a Debian 6 template for the new VPS. The whole point of this move was to retire CHI-C, which apparently had been victim to ongoing problems and power outages. To be honest, I had been really happy with the stability of CHI-C!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;As I said above, I recently began to experience system instability. This is related to the fact that all VPS storage resides on SAN storage. This is all good in theory, but based on my personal experience with SANs - they are great when they work but they seem to provide a single point of failure. And one which affects a lot of stuff.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;I am not an expert but this seems to be because the failover mechanism of a SAN is to synchronise everything to the failover partner. This takes a very long time when you are syncing the data for hundreds of VPS&#39;s. I have seen similar SAN failures in large enterprises, with similar delayed restoration scenarios.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Just look at the running totals here for the data centre my VPS is on:&amp;nbsp;&lt;a href=&quot;http://status.vps.net/2011/10/chi-d-cloud/&quot;&gt;http://status.vps.net/2011/10/chi-d-cloud/&lt;/a&gt; You can see the synchronisation takes a LONG time to complete.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;In fact if you search status.vps.net for &lt;a href=&quot;http://status.vps.net/?s=san&quot;&gt;SAN&lt;/a&gt;&amp;nbsp;you will see many errors, affecting every zone.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;SAN vs local is a big discussion, which I could not possibly cover here, but in general I believe:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;SAN&#39;s provide an elastic storage solution, fault tolerance, and other benefits, but in my opinion they are not the ideal solution for a web server. The average web site does not require that much storage space, and the files stored generally need to be accessed often, and quickly. A local RAID storage solution makes more sense to me, in most cases. This provides better isolation both in terms of performance and faults.&amp;nbsp;Yes, if a drive fails in with local storage, this may require downtime. But often, with hot-swap RAID solutions, it will not. And if there is downtime, it will be less, simply because there is less data to copy/rebuild.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Enough about storage...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;This post is about VPS.NET but I think it&#39;ll help to compare to another VPS provider I&#39;ve got a lot of history with: Dreamhost.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;I&#39;ve had a Dreamhost VPS for well over 2 years and have never had hardware-related downtime. With Dreamhost, I have only experienced downtime due to network connectivity and from overloading the box with too much traffic! Dreamhost told me that their VPS&#39;s run with local storage. While there are obvious benefits to SANs, from a stability point of view, just based on what I&#39;ve personally seen, I&#39;d rather have local storage for a web server.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;As an aside, you may be wondering, why I have VPS with two companies?&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Well, I had the Dreamhost one for quite a while, and added many sites over time. Mostly Wordpress sites, which routinely use a tonne of RAM! I kept hitting the limit of the VPS, and had to increase the resources. My choice was to keep spending more with Dreamhost or move a few sites to another host. Dreamhost VPS&#39;s give you a kind sudo root access, which means you can install pretty much whatever you want, but it&#39;s not as straight forward as having actual root access. They also do not give a choice of Linux distro. At the time I was keen to play with alternate web servers like lighttpd, and PHP extensions like apc and php-fpm. This was not easily possible with Dreamhost, so I chose to try vps.net, who provide full root access.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Before I forget, a few other things that VPS.NET could improve on IMHO:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Central SMTP server for customers would be a big help. I understand why they don&#39;t do it though (I&#39;m looking at you spammers.)&lt;/li&gt;
&lt;li&gt;Add-on pro-rating (is that a word?) - their billing system does a good job of pro-rating services when you add them, e.g. if I add backups 75% through the month, they will debit $1.25 from my account. However, if I then remove it two days later - no refund. I don&#39;t care about a few bucks, but I&#39;ve heard that Linode actually do this. It&#39;d be nice from a completeness point of view. Please correct me if I&#39;m wrong. For larger amounts, where I have dropped nodes, I&#39;ve asked billing to credit me and they have quickly and graciously done so.&lt;/li&gt;
&lt;li&gt;Scaling - some VPS providers allow you to almost instantly increase your RAM and CPU share, without a reboot. To do so with VPS.NET means adding 1 or more nodes, and then rebooting your VPS. This also provisions additional storage to your VPS. I think I saw somewhere that they were working on instant scaling. This would be a great benefit.&lt;/li&gt;
&lt;li&gt;CPUs - for some reason on my VPS I have access to 3 Xen vCPUs. Most other providers I&#39;ve seen offer 4.&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;So at the moment I&#39;m shopping around for a new host for my, and my client&#39;s websites because I need maximum stability. It&#39;s a shame because moving a whole heap of sites is time consuming. But explaining downtime is not something I want to spend time on, and losing advertising revenue from other sites I run is also clearly a bad outcome!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;My final thoughts on VPS.NET: they have most of the ingredients in place for a winning service. They are relatively communicative, and seem to genuinely want to create a service that is a cut above the rest. They have implemented some very creative features, and innovate regularly. They just really need to spend some time on their infrastructure and consider some ways to remove the dependence from the SANs, or improve their reliability. I have heard rumblings from management that they are in the process of improving the VPS infrastructure. This review is based on the current state of affairs, which, of course, I hope improves.&lt;br /&gt;
&lt;br /&gt;
Their redundant geo-hosting service looks like a step in the right direction, but it&#39;s still in beta, so we&#39;ll see how it pans out.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Once I find alternate hosting for the clients I have on vps.net, I&#39;ll probably reduce my nodes with them and continue to use the VPS for less important sites. But even if I leave completely, I&#39;m sure I&#39;ll be back when the dust settles. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Based on their affordability, flexibility and creativity, I absolutely recommend them for non-mission critical purposes. However, if you set up redundancy with another provider (e.g. with MySQL replication, rsync, etc) then VPS.net could be a fantastically affordable part of that solution. I am certainly considering this as an alternative option to finding yet another host: if I am going to set things up all over again, I may as well leave a redundant copy on vps.net, perhaps with a reduced set of nodes.&lt;br /&gt;
&lt;br /&gt;
As a general comment I&#39;ll say that VPS is an excellent solution if you have unusual requirements. The powerful control panel and modular nature of features allows you to mix and match different technologies, and quickly add VPS&#39;s for testing. In that respect I feel they are a great component as part of your whole web infrastructure - just not [yet] necessarily the primary component.&lt;br /&gt;
&lt;br /&gt;
Check out all&amp;nbsp;&lt;a href=&quot;http://manage.aff.biz/z/146/CD5482/&quot;&gt;the VPS.NET plans here&lt;/a&gt;.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;b&gt;Note to future readers: Remember this review was written in November 2011, so if you are reading this in 2012, I am pretty sure that the VPS.NET storage issues have improved.&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;If you&#39;d like to try Dreamhost VPS - &lt;a href=&quot;http://www.dreamhost.com/r.cgi?266973&quot;&gt;sign up here&lt;/a&gt;&amp;nbsp;for a two week free trial, and use the promo code RANDOMVPS to save $50 if you decide to stay!&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;
----&lt;br /&gt;
Thanks for reading articles from the feed.&lt;br /&gt;
Check out the site at &lt;a href=&quot;http://randomtech.blogspot.com&quot;&gt;The Occasional Tech&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randomtech.blogspot.com/feeds/4103390319878497691/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6182393/4103390319878497691' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/4103390319878497691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/4103390319878497691'/><link rel='alternate' type='text/html' href='http://randomtech.blogspot.com/2011/11/vpsnet-cloud-hosting-review.html' title='VPS.NET cloud hosting review'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13059618992597616370</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6182393.post-6303034475605927258</id><published>2011-08-29T09:50:00.000+10:00</published><updated>2012-06-06T12:11:25.133+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="netsh"/><category scheme="http://www.blogger.com/atom/ns#" term="proxy"/><category scheme="http://www.blogger.com/atom/ns#" term="proxy server"/><category scheme="http://www.blogger.com/atom/ns#" term="windows live"/><category scheme="http://www.blogger.com/atom/ns#" term="windows live essentials"/><category scheme="http://www.blogger.com/atom/ns#" term="winhttp"/><title type='text'>Windows Live Essentials 2011 Web Installer from Behind a Proxy</title><content type='html'>You probably found this post because you tried to install Windows Live Essentials via the web installer (wlsetup-web.exe) and it sat on the &#39;Preparing to install...&#39; screen for a while and you got this error:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Couldn&#39;t set up the installer&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Check to be sure you are connected to the Internet&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Details:&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;You cannot download Windows Live programs unless you&#39;re connected to the Internet.&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;Error: 0x8104000d&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;Source: WaitForCatalog&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
If you are sure you are connected to the Internet (i.e. other programs like your web browser work) then the problem is likely to be:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;It is being blocked by a Firewall - this could be the Windows Firewall, or could be built into a product like Norton Internet Security, or Sophos Protection, or could be a corporate firewall on your network.&lt;/li&gt;
&lt;li&gt;Your web traffic is routed through a proxy which is specially configured in your browser, and may require authentication with your Windows (or other) credentials. The issue with this approach, is that many Windows applications are not proxy-aware and assume they have a straight, unauthenticated connection to port 80 on external servers.&lt;/li&gt;
&lt;/ul&gt;
If you have a&amp;nbsp; firewall on your PC, temporarily allow all traffic and see if the installer will work. If you are behind a separate firewall, you would need to ask the system administrator to help you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Relating to the second point above, if you are behind an HTTP proxy that you don&#39;t have control over (say at work), which is not configured to be completely transparent, then the Windows Live Web installer will not work.&lt;br /&gt;
&lt;br /&gt;
It won&#39;t know how to connect to Microsoft&#39;s download server to get the packages for installation.&lt;br /&gt;
&lt;br /&gt;
&lt;strike&gt;To my knowledge there is no standalone &#39;full&#39; installer available, so we need to help it to use a proxy connection.&lt;/strike&gt;&lt;br /&gt;
There is an offline installer for Windows Live Essentials, so you can use that if you don&#39;t want to mess with your proxy settings. It is 215 MB, though, so if you&#39;re short on bandwidth you should persevere with the web installer as this will only download what you select. &lt;a href=&quot;http://windows.microsoft.com/en-US/windows-live/essentials-install-offline-faq&quot;&gt;Download Windows Live Essentials full install here&lt;/a&gt;.&lt;strike&gt;&lt;br /&gt;&lt;/strike&gt;&lt;br /&gt;
&lt;br /&gt;
On Windows Vista, Windows 7, and Windows Server 2008, you need to do this:&lt;br /&gt;
&lt;br /&gt;
Open a Windows command prompt - type &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;cmd&lt;/span&gt; in the Start Menu&lt;br /&gt;
&lt;br /&gt;
Type: &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;netsh winhttp&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
You should then see:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
netsh winhttp&amp;gt;_&lt;/div&gt;
&lt;br /&gt;
then type:&lt;br /&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;set proxy yourproxyserver.example.com:port &quot;&lt;/span&gt;&lt;local&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&quot;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
OR, if you want to exclude some other domains:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;set proxy yourproxyserver.example.com:port &quot;&lt;/span&gt;&lt;local&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;;*.domain1.com;*.domain2.com&quot;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
(port should be 8080 or 3128 usually) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then restart the Windows Live installer.&lt;br /&gt;
&lt;br /&gt;
After it has installed, you can go back to the netsh prompt and clear your changes with:&lt;br /&gt;
&lt;br /&gt;
reset proxy&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Having trouble? Let us know in the comments!&lt;/local&gt;&lt;/local&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;
----&lt;br /&gt;
Thanks for reading articles from the feed.&lt;br /&gt;
Check out the site at &lt;a href=&quot;http://randomtech.blogspot.com&quot;&gt;The Occasional Tech&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randomtech.blogspot.com/feeds/6303034475605927258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6182393/6303034475605927258' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/6303034475605927258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/6303034475605927258'/><link rel='alternate' type='text/html' href='http://randomtech.blogspot.com/2011/08/windows-live-essentials-2011-web.html' title='Windows Live Essentials 2011 Web Installer from Behind a Proxy'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13059618992597616370</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6182393.post-5130438317267316785</id><published>2011-03-31T10:19:00.000+11:00</published><updated>2011-03-31T10:19:25.505+11:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="authentication"/><category scheme="http://www.blogger.com/atom/ns#" term="credentials"/><category scheme="http://www.blogger.com/atom/ns#" term="internet explorer"/><title type='text'>How to force Internet Explorer to prompt for Basic Authentication credentials</title><content type='html'>1. Browse to the site you want to specify credentials for&lt;br /&gt;
&lt;br /&gt;
2. Internet Options -&amp;gt; Security&lt;br /&gt;
&lt;br /&gt;
3. The current zone will be selected. Click on &quot;Custom level...&quot;&lt;br /&gt;
&lt;br /&gt;
4. Scroll to the bottom, and under &quot;User Authentication -&amp;gt; Logon&quot;, click &quot;Prompt for user name and password&quot;.&lt;br /&gt;
&lt;br /&gt;
5. Click OK and close browser.&lt;br /&gt;
&lt;br /&gt;
6. Reopen and go to your site.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;
----&lt;br /&gt;
Thanks for reading articles from the feed.&lt;br /&gt;
Check out the site at &lt;a href=&quot;http://randomtech.blogspot.com&quot;&gt;The Occasional Tech&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randomtech.blogspot.com/feeds/5130438317267316785/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6182393/5130438317267316785' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/5130438317267316785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/5130438317267316785'/><link rel='alternate' type='text/html' href='http://randomtech.blogspot.com/2011/03/how-to-force-internet-explorer-to.html' title='How to force Internet Explorer to prompt for Basic Authentication credentials'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13059618992597616370</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6182393.post-5121558635592838353</id><published>2011-03-31T10:17:00.001+11:00</published><updated>2011-04-05T13:53:44.209+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="microsoft"/><category scheme="http://www.blogger.com/atom/ns#" term="user management"/><category scheme="http://www.blogger.com/atom/ns#" term="windows"/><title type='text'>A couple of useful tools for managing stored credentials in Windows Vista/7</title><content type='html'>While messing around with a problem with cached IE credntials today, I came across these Windows user management tools.&lt;br /&gt;
&lt;br /&gt;
(put the commands into the &quot;Run&quot; box in the start menu)&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Stored usernames and passwords:&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Command:&lt;/b&gt; rundll32.exe keymgr.dll, KRShowKeyMgr&lt;br /&gt;
&lt;br /&gt;
- in this tool you can see commonly stored credentials for websites, servers and programs. Some interesting things in here. TBH, not entirely sure what these are used for!&lt;br /&gt;
- this is also useful if you want to transfer all your credentials over to another computer.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;User Accounts&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Command:&lt;/b&gt; control userpasswords2&lt;br /&gt;
- this is a simplified version of the usual user manager&lt;br /&gt;
- under Advanced -&amp;gt; Passwords, you can get to the stored usernames tool mentioned above&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Regular user manager&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Command:&lt;/b&gt; lusrmgr&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;
----&lt;br /&gt;
Thanks for reading articles from the feed.&lt;br /&gt;
Check out the site at &lt;a href=&quot;http://randomtech.blogspot.com&quot;&gt;The Occasional Tech&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randomtech.blogspot.com/feeds/5121558635592838353/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6182393/5121558635592838353' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/5121558635592838353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/5121558635592838353'/><link rel='alternate' type='text/html' href='http://randomtech.blogspot.com/2011/03/couple-of-useful-tools-for-managing.html' title='A couple of useful tools for managing stored credentials in Windows Vista/7'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13059618992597616370</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6182393.post-3217350318251029208</id><published>2011-03-07T19:09:00.001+11:00</published><updated>2011-03-07T19:09:32.335+11:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="drivers"/><category scheme="http://www.blogger.com/atom/ns#" term="intel"/><title type='text'>Latest Intel Drivers Tool</title><content type='html'>&lt;p&gt;Not having the latest chipset drivers for your motherboard, storage controllers, graphics card, and even audio chips can significantly affect the performance of your computer.&lt;/p&gt;  &lt;p&gt;Intel have quite a useful tool I used today which automatically detects which drivers need to be updated and gives you links to the required downloads.&lt;/p&gt;  &lt;p&gt;There are actual multiple tools for all types, or each type of driver:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://www.intel.com/support/detect.htm&quot; target=&quot;_blank&quot;&gt;All types&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.intel.com/support/motherboards/desktop/detect.htm&quot; target=&quot;_blank&quot;&gt;Desktop motherboards&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.intel.com/support/network/detect.htm&quot; target=&quot;_blank&quot;&gt;Wired network&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.intel.com/support/wireless/detect.htm&quot; target=&quot;_blank&quot;&gt;Wireless network&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;(requires &lt;a href=&quot;http://www.java.com/&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Java&lt;/a&gt; – if you haven’t already, you might need to install the Java browser plugins and restart your browser. If the tool hangs on “Installing…” just refresh the page, and click the Check button again)&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;
----&lt;br /&gt;
Thanks for reading articles from the feed.&lt;br /&gt;
Check out the site at &lt;a href=&quot;http://randomtech.blogspot.com&quot;&gt;The Occasional Tech&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randomtech.blogspot.com/feeds/3217350318251029208/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6182393/3217350318251029208' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/3217350318251029208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/3217350318251029208'/><link rel='alternate' type='text/html' href='http://randomtech.blogspot.com/2011/03/latest-intel-drivers-tool.html' title='Latest Intel Drivers Tool'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13059618992597616370</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6182393.post-7261846476978343331</id><published>2011-03-07T09:13:00.000+11:00</published><updated>2011-03-07T09:13:40.641+11:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="jquery"/><title type='text'>Get Good at Javascript</title><content type='html'>Years ago when I first started doing web development, I hated Javascript. It was extremely problematic across multiple browsers, due to bugs and incompatibilities. We generally avoided it.&lt;br /&gt;
&lt;br /&gt;
Fast forward to now and things have radically changed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Javascript is now &lt;b&gt;essential&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Frameworks like jQuery have removed much of the pain from JavaScript programming, and have arguably made it FUN! This has resulted in a an explosion in the popularity of JavaScript.&lt;/li&gt;
&lt;li&gt;All web developers need to be proficient at JavaScript now.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
So, if you are like me, you may know a bit about JavaScript - &quot;enough to be dangerous,&quot; as they say - but you want to become properly proficient. After all, there&#39;s no point pasting bits of code from samples and hoping they&#39;ll work.&lt;br /&gt;
&lt;br /&gt;
It&#39;s much safer for your clients, and more satisfying for you, if you understand the real intention behind Javascript, and the best ways to use it.&lt;br /&gt;
&lt;br /&gt;
In such a fast-evolving area, the best thing to do is to follow the pace-setters.&amp;nbsp;So here are a few recommended resources for helping you program JavaScript (and jQuery) in the best practice and &lt;b&gt;modern&lt;/b&gt;&amp;nbsp;way:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;JavaScript:&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Start here:&amp;nbsp;&lt;a href=&quot;http://javascript.crockford.com/&quot;&gt;http://javascript.crockford.com/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Book:&amp;nbsp;&lt;a href=&quot;http://www.amazon.com/gp/product/0596517742?ie=UTF8&amp;amp;tag=theoccasionat-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0596517742&quot;&gt;JavaScript: The Good Parts&lt;/a&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://www.assoc-amazon.com/e/ir?t=theoccasionat-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0596517742&quot; style=&quot;border: none !important; margin: 0px !important;&quot; width=&quot;1&quot; /&gt;&amp;nbsp;by Douglas Crockford&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Many fantastic videos here (including videos to match the above book):&amp;nbsp;&lt;a href=&quot;http://video.yahoo.com/search/?p=javascript&quot;&gt;Javascript videos @ Yahoo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.reybango.com/the-big-list-of-javascript-css-and-html-development-tools-libraries-projects-and-books/&quot;&gt;Big list of JavaScript tools&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;jQuery:&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.tvidesign.co.uk/blog/improve-your-jquery-25-excellent-tips.aspx&quot;&gt;25 tips to improve your jQuery&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://paulirish.com/2010/10-things-i-learned-from-the-jquery-source/&quot;&gt;10 things I learned from the jQuery Source&lt;/a&gt;&amp;nbsp;by Paul Irish&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;(More links to come - subscribe to the RSS feed to get them)&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;
----&lt;br /&gt;
Thanks for reading articles from the feed.&lt;br /&gt;
Check out the site at &lt;a href=&quot;http://randomtech.blogspot.com&quot;&gt;The Occasional Tech&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randomtech.blogspot.com/feeds/7261846476978343331/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6182393/7261846476978343331' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/7261846476978343331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/7261846476978343331'/><link rel='alternate' type='text/html' href='http://randomtech.blogspot.com/2011/03/get-good-at-javascript.html' title='Get Good at Javascript'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13059618992597616370</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6182393.post-2656834764725304140</id><published>2011-03-03T10:08:00.002+11:00</published><updated>2011-03-03T14:08:31.164+11:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="context menu"/><category scheme="http://www.blogger.com/atom/ns#" term="microsoft windows"/><category scheme="http://www.blogger.com/atom/ns#" term="nirsoft"/><category scheme="http://www.blogger.com/atom/ns#" term="windows"/><category scheme="http://www.blogger.com/atom/ns#" term="windows tips"/><title type='text'>Slow right-click Windows context menus got you down?</title><content type='html'>Here&#39;s what to do:&lt;br /&gt;
&lt;br /&gt;
Use the free application&amp;nbsp;&lt;a href=&quot;http://www.nirsoft.net/utils/shexview.html&quot;&gt;ShellExView&lt;/a&gt; from Nirsoft to find&amp;nbsp;unnecessary&amp;nbsp;context menu items and disable them. This can actually have a big effect on the noticeable performance of your menus. Psychologically, this can result in a much more enjoyable computer use experience.&lt;br /&gt;
&lt;br /&gt;
1. Download the program&lt;br /&gt;
2. Start it up.&lt;br /&gt;
3. Sort by Type and scroll down to Context Menu&lt;br /&gt;
4. Look for the items in red first - they are non-Microsoft applications.&lt;br /&gt;
5. For each item you want to disable, press F7 or right-click and select Disable. This happens instantly so you can right click on a file or folder in Windows explorer and see the result. You can also disable MS items.&lt;br /&gt;
&lt;br /&gt;
This tool works on any version of Windows from 98 up to Windows 7 64 bit.&lt;br /&gt;
Thanks to &lt;a href=&quot;http://www.watchingthenet.com/how-to-fix-slow-right-click-problems-in-windows.html#comment-54239&quot;&gt;this blog post&lt;/a&gt; for the tip!&lt;br /&gt;
&lt;br /&gt;
Don&#39;t forget to &lt;a href=&quot;http://www.nirsoft.net/donate.html&quot;&gt;donate&lt;/a&gt; to NirSoft if you feel like it helped you.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;If you need help, just ask in the comments!&lt;/b&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;
----&lt;br /&gt;
Thanks for reading articles from the feed.&lt;br /&gt;
Check out the site at &lt;a href=&quot;http://randomtech.blogspot.com&quot;&gt;The Occasional Tech&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randomtech.blogspot.com/feeds/2656834764725304140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6182393/2656834764725304140' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/2656834764725304140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6182393/posts/default/2656834764725304140'/><link rel='alternate' type='text/html' href='http://randomtech.blogspot.com/2011/03/slow-right-click-windows-context-menus.html' title='Slow right-click Windows context menus got you down?'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13059618992597616370</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>