<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CEMFQnw4fSp7ImA9WxNWF04.&quot;"><id>tag:blogger.com,1999:blog-30908170</id><updated>2009-10-16T15:33:33.235-07:00</updated><title>the null factory</title><subtitle type="html">.net and other ramblings</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://nullfactory.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://nullfactory.blogspot.com/" /><link rel="hub" href="http://pubsubhubbub.appspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>shane carvalho</name><uri>http://www.blogger.com/profile/08664089142276533585</uri><email>noreply@blogger.com</email></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>33</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><link rel="self" href="http://feeds.feedburner.com/TheNullFactory" type="application/atom+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry gd:etag="W/&quot;CU4HRH0_fSp7ImA9WxJaF0Q.&quot;"><id>tag:blogger.com,1999:blog-30908170.post-5269044418411904513</id><published>2009-08-08T21:58:00.001-07:00</published><updated>2009-08-08T21:58:55.345-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-08T21:58:55.345-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Windows" /><title>Windows 7 Upgrade Scenarios</title><content type="html">&lt;p&gt;Microsoft has published the various &lt;a href="http://technet.microsoft.com/en-us/library/dd772579%28WS.10%29.aspx" target="_blank"&gt;upgrade paths&lt;/a&gt; for Windows 7. Its not as complicated as I expected, but still complicated for the average user. A visual representation &lt;a href="http://news.softpedia.com/newsImage/Windows-7-Upgrade-Paths-Test-Matrix-3.jpg/" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;BY the way can someone explain to me the difference between “Upgrade to Windows 7” and&amp;#160; “Anytime Upgrade to Windows 7”?&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30908170-5269044418411904513?l=nullfactory.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://nullfactory.blogspot.com/feeds/5269044418411904513/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=30908170&amp;postID=5269044418411904513&amp;isPopup=true" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/5269044418411904513?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/5269044418411904513?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheNullFactory/~3/exzLGKSr8RU/windows-7-upgrade-scenarios.html" title="Windows 7 Upgrade Scenarios" /><author><name>shane carvalho</name><uri>http://www.blogger.com/profile/08664089142276533585</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01713954981162934556" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://nullfactory.blogspot.com/2009/08/windows-7-upgrade-scenarios.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4ARHs9eSp7ImA9WxJVFkk.&quot;"><id>tag:blogger.com,1999:blog-30908170.post-1925968240782346347</id><published>2009-07-03T11:15:00.001-07:00</published><updated>2009-07-03T11:15:45.561-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-03T11:15:45.561-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Windows" /><category scheme="http://www.blogger.com/atom/ns#" term="Powershell" /><title>Adding outbound Windows Firewall rules using Powershell</title><content type="html">&lt;p&gt;This is something I wrote a while back, thought I’d post it here. It does exactly what the title says. Its basically a port of the following:    &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa364695(VS.85).aspx" target="_blank"&gt;http://msdn.microsoft.com/en-us/library/aa364695(VS.85).aspx&lt;/a&gt;&lt;/p&gt; &lt;iframe style="border-right: #dde5e9 1px solid; padding-right: 0px; border-top: #dde5e9 1px solid; padding-left: 0px; padding-bottom: 0px; margin: 3px; border-left: #dde5e9 1px solid; width: 240px; padding-top: 0px; border-bottom: #dde5e9 1px solid; height: 66px; background-color: #ffffff" marginwidth="0" marginheight="0" src="http://cid-9659feaae0d43758.skydrive.live.com/embedrowdetail.aspx/.Public/AddOutRule.ps1" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30908170-1925968240782346347?l=nullfactory.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://nullfactory.blogspot.com/feeds/1925968240782346347/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=30908170&amp;postID=1925968240782346347&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/1925968240782346347?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/1925968240782346347?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheNullFactory/~3/Kbtu-9Yi_vI/adding-outbound-windows-firewall-rules.html" title="Adding outbound Windows Firewall rules using Powershell" /><author><name>shane carvalho</name><uri>http://www.blogger.com/profile/08664089142276533585</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01713954981162934556" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://nullfactory.blogspot.com/2009/07/adding-outbound-windows-firewall-rules.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0ANQH04cSp7ImA9WxJXE00.&quot;"><id>tag:blogger.com,1999:blog-30908170.post-3171082113299908793</id><published>2009-06-06T10:36:00.001-07:00</published><updated>2009-06-06T10:36:31.339-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-06T10:36:31.339-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Fun" /><title>Media Coder Samsung P2 presets</title><content type="html">&lt;p&gt;I’ve been using &lt;a href="http://mediacoder.sourceforge.net/" target="_blank"&gt;Media Coder&lt;/a&gt; to encode videos into my &lt;a href="http://pages.samsung.com/us/p2/" target="_blank"&gt;P2&lt;/a&gt; for a while now and its been a great alternative to what comes out of the box.&lt;/p&gt;  &lt;p&gt;Well, all *was* great until I lost the presets for the P2! It took me an whole afternoon to reconfigure the settings that work with the P2. I’m posting the preset file here in the interest of saving someone else some time.&lt;/p&gt; &lt;iframe style="border-right: #dde5e9 1px solid; padding-right: 0px; border-top: #dde5e9 1px solid; padding-left: 0px; padding-bottom: 0px; margin: 3px; border-left: #dde5e9 1px solid; width: 240px; padding-top: 0px; border-bottom: #dde5e9 1px solid; height: 66px; background-color: #ffffff" marginwidth="0" marginheight="0" src="http://cid-9659feaae0d43758.skydrive.live.com/embedrowdetail.aspx/.Public/mediacoder%7C_p2%7C_preset.xml" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;  &lt;p&gt;These setting work great for me. Your mileage may vary.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30908170-3171082113299908793?l=nullfactory.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://nullfactory.blogspot.com/feeds/3171082113299908793/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=30908170&amp;postID=3171082113299908793&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/3171082113299908793?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/3171082113299908793?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheNullFactory/~3/jJJBFpqihs8/media-coder-samsung-p2-presets.html" title="Media Coder Samsung P2 presets" /><author><name>shane carvalho</name><uri>http://www.blogger.com/profile/08664089142276533585</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01713954981162934556" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://nullfactory.blogspot.com/2009/06/media-coder-samsung-p2-presets.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEYNQXg7eSp7ImA9WxJXEkU.&quot;"><id>tag:blogger.com,1999:blog-30908170.post-6655853600274878052</id><published>2009-06-06T02:56:00.001-07:00</published><updated>2009-06-06T02:56:30.601-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-06T02:56:30.601-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Powershell" /><title>Creating “App Paths” using Powershell</title><content type="html">&lt;p&gt;I’m a big fan of &lt;a href="http://www.bayden.com/SlickRun/" target="_blank"&gt;Slickrun&lt;/a&gt; and its a tool I recommend everyone should have in their toolbox. &lt;/p&gt;  &lt;p&gt;Unfortunately, working onsite on the client’s computers, installing third-party software is usually frowned upon. So I’ve got to make due by using the app paths. &lt;/p&gt;  &lt;p&gt;The App Path technique of launching applications have have been around for a while. Read More:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.tweakxp.com/article36950.aspx" href="http://www.tweakxp.com/article36950.aspx"&gt;http://www.tweakxp.com/article36950.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The purpose of the script is to make the whole registry editing process a bit easier.&lt;/p&gt;  &lt;p&gt;You can download the script here:&lt;/p&gt;  &lt;p&gt;&lt;iframe style="border-right: #333333 1px solid; padding-right: 0px; border-top: #333333 1px solid; padding-left: 0px; padding-bottom: 0px; margin: 3px; border-left: #333333 1px solid; width: 240px; padding-top: 0px; border-bottom: #333333 1px solid; height: 66px" marginwidth="0" marginheight="0" src="http://cid-9659feaae0d43758.skydrive.live.com/embedrowdetail.aspx/.Public/appPath.ps1" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/p&gt;  &lt;p&gt;And execute it as such:&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;appPath.ps1 -key &amp;quot;notepad2.exe&amp;quot; &amp;quot;c:\windows\notepad2.exe&amp;quot;&lt;/font&gt;    &lt;br /&gt;or    &lt;br /&gt;&lt;font face="Courier New" size="2"&gt;appPath.ps1 -key &amp;quot;notepad2.exe&amp;quot; -path &amp;quot;c:\windows\notepad2.exe&amp;quot;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Where &lt;font face="Courier New"&gt;–key&lt;/font&gt; is the entry you would type in the Run dialog (please note that the extension is required).&amp;#160; And &lt;font face="Courier New"&gt;–Path&lt;/font&gt; being the actual path of the file.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Disclaimer: This script modifies the registry. Use at your own risk, I will not responsible for anything that breaks as a result.&lt;/em&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30908170-6655853600274878052?l=nullfactory.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://nullfactory.blogspot.com/feeds/6655853600274878052/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=30908170&amp;postID=6655853600274878052&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/6655853600274878052?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/6655853600274878052?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheNullFactory/~3/sdvZmd0TGWg/creating-app-paths-using-powershell.html" title="Creating “App Paths” using Powershell" /><author><name>shane carvalho</name><uri>http://www.blogger.com/profile/08664089142276533585</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01713954981162934556" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://nullfactory.blogspot.com/2009/06/creating-app-paths-using-powershell.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMMQ34_fSp7ImA9WxJXEkk.&quot;"><id>tag:blogger.com,1999:blog-30908170.post-8318781714508053559</id><published>2009-06-05T15:21:00.001-07:00</published><updated>2009-06-05T15:21:22.045-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-05T15:21:22.045-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SQL" /><title>Troubleshooting Orphaned Users in SQL Server 2005 / 2008</title><content type="html">&lt;p&gt;A couple of days ago, I was tasked with moving a database from an older server to a new souped-up box. Unfortunately the transition was not as smooth as I had hoped for. After restoring the db into the new server I started running into trouble with orphaned users.&lt;/p&gt;  &lt;p&gt;An orphaned user is basically just that, a database user without a corresponding server login.&amp;#160; This usually happens when trying to restore a database into a new server, like what I was doing or accidently deleting the server login.&lt;/p&gt;  &lt;p&gt;Luckily this issue can be solved relatively easy using the &lt;font face="Courier New" size="2"&gt;sp_change_users_login &lt;/font&gt;stored procedure.&lt;/p&gt;  &lt;p&gt;First I get a list of orphaned users and their SIDs using the following procedure: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New" size="2"&gt;sp_change_users_login @Action='Report';&lt;/font&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Next, I create the missing login from scratch (e.g. “NewLoginName”). The server mappings are not required as the database user roles are preserved in the database.&lt;/p&gt;  &lt;p&gt;Then execute the stored procedure again with the following parameters:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New" size="2"&gt;sp_change_users_login        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; @Action='Update_One',         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; @UserNamePattern='dbUserName',         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; @LoginName='NewLoginName';&lt;/font&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;This re-jigs the broken “dbUserName” user with the newly created Server Login “NewLoginName”.&lt;/p&gt;  &lt;p&gt;Its worth mentioning that even though there might be a login name existing on the new server identical to the database user name, they are not the same until linked together. You can find out for sure using the above stored procedure with the “&lt;font face="Courier New" size="2"&gt;REPORT&lt;/font&gt;” parameter.&lt;/p&gt;  &lt;p&gt;Finally, hereare some instances where &lt;a href="http://msdn.microsoft.com/en-us/library/ms174378.aspx" target="_blank"&gt;&lt;font face="Courier New"&gt;sp_change_users_login&lt;/font&gt;&lt;/a&gt; cannot be used:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Cannot be used to map database users to Windows-level principals, certificates, or asymmetric keys. &lt;/li&gt;    &lt;li&gt;Cannot be used with a SQL Server login created from a Windows principal or with a user created by using CREATE USER WITHOUT LOGIN. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;More information: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/ms175475.aspx" href="http://msdn.microsoft.com/en-us/library/ms175475.aspx" target="_blank"&gt;Troubleshooting Orphaned Users&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/ms174378.aspx" href="http://msdn.microsoft.com/en-us/library/ms174378.aspx"&gt;sp_change_users_login&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.sql-server-performance.com/articles/dba/Fixing_Orphaned_Users_in_SQL_Server_Database_p1.aspx" target="_blank"&gt;Fixing Orphaned Users in SQL Server Database&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30908170-8318781714508053559?l=nullfactory.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://nullfactory.blogspot.com/feeds/8318781714508053559/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=30908170&amp;postID=8318781714508053559&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/8318781714508053559?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/8318781714508053559?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheNullFactory/~3/24St4Gy9YGo/troubleshooting-orphaned-users-in-sql.html" title="Troubleshooting Orphaned Users in SQL Server 2005 / 2008" /><author><name>shane carvalho</name><uri>http://www.blogger.com/profile/08664089142276533585</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01713954981162934556" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://nullfactory.blogspot.com/2009/06/troubleshooting-orphaned-users-in-sql.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEcGQX48eSp7ImA9WxVVEEo.&quot;"><id>tag:blogger.com,1999:blog-30908170.post-5094154014072125274</id><published>2009-03-03T01:09:00.000-08:00</published><updated>2009-03-03T01:20:20.071-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-03T01:20:20.071-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Windows" /><title>Microsoft End of Support Lifecycle Dates</title><content type="html">&lt;span style="font-size:100%;"&gt;Posting this here hoping that it may save me a few minutes of googling in the future.&lt;/span&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;&lt;br /&gt;&lt;br /&gt;Pretty Much all Microsoft Product&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;s&lt;/span&gt;&lt;br /&gt;http://support.microsoft.com/gp/lifeselectindex&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Servers - Service Packs&lt;/span&gt;&lt;br /&gt;http://support.microsoft.com/gp/LifeSupSps#Servers&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Non-Server Windows&lt;/span&gt;&lt;br /&gt;http://www.microsoft.com/windows/lifecycle/default.mspx&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30908170-5094154014072125274?l=nullfactory.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://nullfactory.blogspot.com/feeds/5094154014072125274/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=30908170&amp;postID=5094154014072125274&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/5094154014072125274?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/5094154014072125274?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheNullFactory/~3/ql5GEE9xsmo/microsoft-end-of-support-lifecycle.html" title="Microsoft End of Support Lifecycle Dates" /><author><name>shane carvalho</name><uri>http://www.blogger.com/profile/08664089142276533585</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01713954981162934556" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://nullfactory.blogspot.com/2009/03/microsoft-end-of-support-lifecycle.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkEERXk5fSp7ImA9WxJXEkU.&quot;"><id>tag:blogger.com,1999:blog-30908170.post-8830688243108760170</id><published>2008-12-12T09:19:00.001-08:00</published><updated>2009-06-06T02:30:04.725-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-06T02:30:04.725-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="YouTube" /><category scheme="http://www.blogger.com/atom/ns#" term="Powershell" /><title>Download YouTube videos using Powershell</title><content type="html">&lt;p&gt;Now that I'm back home in Sri Lanka, I'm getting re-accustomed to the slow Internet speeds over here. Slow internet speeds was the reason for me to write the &lt;a href="http://nullfactory.blogspot.com/2008/04/direct-download-youtube-video-c-source.html" target="_blank"&gt;YouTube downloader&lt;/a&gt; back in April.&lt;/p&gt;  &lt;p&gt;So I spent a lazy afternoon today trying to port that code into Powershell. And here's the result:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://jpo2pg.bay.livefilestore.com/y1py5ZziG_G1dNC14hyj7uCNQacAYrHnYkLdncLJ1yiDEEo2X5zsfySPJRmpjh85phbZ4WlDOEPsuM/psvDownloader_f.gif" target="_blank"&gt;&lt;img src="http://jpo2pg.bay.livefilestore.com/y1pvgV3nYCZYJacdPbrUxEPwmlA83vXUxUI2ROXxXvzuJdqgM2N-veE4zfaQa6o_oWFLe-QH2KRtIA/psvDownloader_t.gif" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;h5&gt;How it works&lt;/h5&gt;  &lt;p&gt;The script first figures out the direct download link and then hands it off to a download manager which performs the actual download. You should be able to plug-in any download manager that supports command line arguments but I prefer to use wget for its simplicity. &lt;/p&gt;  &lt;p&gt;Information on how the direct link is extracted can be found in my &lt;a href="http://nullfactory.blogspot.com/2008/04/direct-download-youtube-video-c-source.html" target="_blank"&gt;original post&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Use &lt;span style="font-family:Courier;"&gt;$downloaderPath&lt;/span&gt; and &lt;span style="font-family:Courier;"&gt;$downloaderArguments&lt;/span&gt; to configure the path of &lt;strong&gt;&lt;a href="http://gnuwin32.sourceforge.net/packages/wget.htm" target="_blank"&gt;wget&lt;/a&gt;&lt;/strong&gt; and its arguments respectively. The script also supports traversal through proxies and can be configured using the &lt;span style="font-family:Courier;"&gt;$proxy&lt;/span&gt; and &lt;span style="font-family:Courier;"&gt;$proxyPort&lt;/span&gt; variables.&lt;/p&gt;  &lt;p&gt;The script accepts one parameter; the watch url of the video.&lt;/p&gt;  &lt;p&gt;.\psVDownloader.ps1  http://www.youtube.com/watch?v=N_c60Sp7Gtc&lt;/p&gt;  &lt;iframe marginheight="0" marginwidth="0" style="border: 1px solid rgb(221, 229, 233); margin: 3px; padding: 0pt; width: 240px; height: 66px; background-color: rgb(255, 255, 255);" src="http://cid-9659feaae0d43758.skydrive.live.com/embedrowdetail.aspx/.Public/psVDownloader.ps1" scrolling="no" frameborder="0"&gt;&lt;/iframe&gt;.&lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Please be aware that this script is purely for research purposes only. And I believe that you will be violating the YouTube TOS by trying to use its streams in ways other than intended.&lt;/em&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30908170-8830688243108760170?l=nullfactory.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://nullfactory.blogspot.com/feeds/8830688243108760170/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=30908170&amp;postID=8830688243108760170&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/8830688243108760170?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/8830688243108760170?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheNullFactory/~3/ONnWrKIk6yg/download-youtube-videos-using.html" title="Download YouTube videos using Powershell" /><author><name>shane carvalho</name><uri>http://www.blogger.com/profile/08664089142276533585</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01713954981162934556" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://nullfactory.blogspot.com/2008/12/download-youtube-videos-using.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck4CQ34zcCp7ImA9WxRbGE4.&quot;"><id>tag:blogger.com,1999:blog-30908170.post-5416511723888943384</id><published>2008-12-09T05:56:00.001-08:00</published><updated>2008-12-09T05:56:02.088-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-09T05:56:02.088-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SQL" /><title>SSRS - Unable to load client print control</title><content type="html">&lt;p&gt;One of the customer sites I work at was suddenly unable to print SSRS reports any more. This issue was occurring for only a few of their client boxes, so this rules out the possibility that it might have been a server issue. &lt;/p&gt;  &lt;p&gt;It turns out that SSRS uses an activex control to provide some enhanced printing options. Here's some more information on it (taken from the &lt;a href="http://msdn.microsoft.com/en-us/library/ms155874(SQL.90).aspx" target="_blank"&gt;MSDN&lt;/a&gt; site):&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;The Microsoft ActiveX control, &lt;b&gt;RSPrintClient&lt;/b&gt;, provides client-side printing for reports viewed in a browser. The control displays a custom print dialog box that supports features common to other print dialog boxes, including print preview, page selections for specifying specific pages and ranges, page margins, and orientation.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;After some investigating it looks like a conflict with KB956391. More information on it here:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://support.microsoft.com/kb/956391" href="http://support.microsoft.com/kb/956391"&gt;http://support.microsoft.com/kb/956391&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I'm guessing that this hot fix may have been pushed out by windows update, which explains it's sudden manifestation.&lt;/p&gt;  &lt;p&gt;This is the proper way of fixing the issue; as explained in &lt;a href="http://blogs.msdn.com/brianhartman/archive/2008/11/05/client-print-fails-to-load-after-microsoft-update-956391.aspx" target="_blank"&gt;Brian Hartman's&lt;/a&gt; blog:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://blogs.msdn.com/brianhartman/archive/2008/11/05/client-print-fails-to-load-after-microsoft-update-956391.aspx" href="http://blogs.msdn.com/brianhartman/archive/2008/11/05/client-print-fails-to-load-after-microsoft-update-956391.aspx"&gt;http://blogs.msdn.com/brianhartman/archive/2008/11/05/client-print-fails-to-load-after-microsoft-update-956391.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Or alternatively just uninstall KB956391.&lt;/p&gt;  &lt;p&gt;More useful discussions on the &amp;quot;Unable to load client print control&amp;quot; issue:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=332145&amp;amp;SiteID=1" href="http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=332145&amp;amp;SiteID=1"&gt;http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=332145&amp;amp;SiteID=1&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://forums.microsoft.com/TechNet/ShowPost.aspx?PostID=4006280&amp;amp;SiteID=17" href="http://forums.microsoft.com/TechNet/ShowPost.aspx?PostID=4006280&amp;amp;SiteID=17"&gt;http://forums.microsoft.com/TechNet/ShowPost.aspx?PostID=4006280&amp;amp;SiteID=17&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://wills-blog.com/?p=220" href="http://wills-blog.com/?p=220"&gt;http://wills-blog.com/?p=220&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://forums.microsoft.com/msdn/showpost.aspx?postid=4006172&amp;amp;siteid=1&amp;amp;sb=0&amp;amp;d=1&amp;amp;at=7&amp;amp;ft=11&amp;amp;tf=0&amp;amp;pageid=4" href="http://forums.microsoft.com/msdn/showpost.aspx?postid=4006172&amp;amp;siteid=1&amp;amp;sb=0&amp;amp;d=1&amp;amp;at=7&amp;amp;ft=11&amp;amp;tf=0&amp;amp;pageid=4"&gt;http://forums.microsoft.com/msdn/showpost.aspx?postid=4006172&amp;amp;siteid=1&amp;amp;sb=0&amp;amp;d=1&amp;amp;at=7&amp;amp;ft=11&amp;amp;tf=0&amp;amp;pageid=4&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30908170-5416511723888943384?l=nullfactory.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://nullfactory.blogspot.com/feeds/5416511723888943384/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=30908170&amp;postID=5416511723888943384&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/5416511723888943384?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/5416511723888943384?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheNullFactory/~3/cOsZ_KODwJw/ssrs-unable-to-load-client-print.html" title="SSRS - Unable to load client print control" /><author><name>shane carvalho</name><uri>http://www.blogger.com/profile/08664089142276533585</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01713954981162934556" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://nullfactory.blogspot.com/2008/12/ssrs-unable-to-load-client-print.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkEGQX0ycCp7ImA9WxRQGEs.&quot;"><id>tag:blogger.com,1999:blog-30908170.post-429919396341151161</id><published>2008-10-12T18:16:00.001-07:00</published><updated>2008-10-12T18:17:00.398-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-12T18:17:00.398-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SQL" /><title>Abstracting underlying data sources for SSIS packages using Views</title><content type="html">&lt;p&gt;In a perfect world, we'd never have changes to the schema once it has been defined. But in practice this is almost never the case. &lt;/p&gt;  &lt;p&gt;I stumbled upon this excellent article which provides a solution to minimize the effects of change. &lt;/p&gt;  &lt;p&gt;&lt;a title="http://bi-polar23.blogspot.com/2008/09/views-as-for-ssis.html" href="http://bi-polar23.blogspot.com/2008/09/views-as-for-ssis.html"&gt;http://bi-polar23.blogspot.com/2008/09/views-as-for-ssis.html&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30908170-429919396341151161?l=nullfactory.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://nullfactory.blogspot.com/feeds/429919396341151161/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=30908170&amp;postID=429919396341151161&amp;isPopup=true" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/429919396341151161?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/429919396341151161?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheNullFactory/~3/O_bAPQPYHoY/abstracting-underlying-data-sources-for.html" title="Abstracting underlying data sources for SSIS packages using Views" /><author><name>shane carvalho</name><uri>http://www.blogger.com/profile/08664089142276533585</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01713954981162934556" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://nullfactory.blogspot.com/2008/10/abstracting-underlying-data-sources-for.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkcHQHo8cSp7ImA9WxRQGEs.&quot;"><id>tag:blogger.com,1999:blog-30908170.post-322152222228863594</id><published>2008-10-12T18:07:00.001-07:00</published><updated>2008-10-12T18:07:11.479-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-12T18:07:11.479-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SQL" /><title>Retrieving SQL Server 2005 Product Version</title><content type="html">&lt;p&gt;Here’s the query used to retrieve the SQL Server Production Version information. &lt;/p&gt;  &lt;p&gt;Pretty useful when diagnosing problems in multiple environments.&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier" size="2"&gt;SELECT&amp;#160; SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30908170-322152222228863594?l=nullfactory.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://nullfactory.blogspot.com/feeds/322152222228863594/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=30908170&amp;postID=322152222228863594&amp;isPopup=true" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/322152222228863594?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/322152222228863594?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheNullFactory/~3/I6v1Pur2htU/retrieving-sql-server-2005-product.html" title="Retrieving SQL Server 2005 Product Version" /><author><name>shane carvalho</name><uri>http://www.blogger.com/profile/08664089142276533585</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01713954981162934556" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://nullfactory.blogspot.com/2008/10/retrieving-sql-server-2005-product.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A08ER345fCp7ImA9WxRQGEg.&quot;"><id>tag:blogger.com,1999:blog-30908170.post-5380714014801489401</id><published>2008-10-12T18:03:00.001-07:00</published><updated>2008-10-12T18:03:26.024-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-12T18:03:26.024-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Tools" /><category scheme="http://www.blogger.com/atom/ns#" term="asp.net" /><category scheme="http://www.blogger.com/atom/ns#" term="XML" /><title>Storm, replacement for the aging WebServiceStudio</title><content type="html">&lt;p&gt;I am frequently required to work with 3rd party Web Services. These web services are often underdevelopment as well and more often than not tend to break our applications after each update. &lt;/p&gt;  &lt;p&gt;I’ve been using WebServiceStudio for a while now to diagnose problems that arise after each update. WebServiceStudio was available on GotDotNet until it got shutdown and haven’t seen much updates since. &lt;/p&gt;  &lt;p&gt;Luckily there’s a new open source tool that I discovered that replaces this aging application; Storm. &lt;/p&gt;  &lt;p&gt;Here’s a description taken from the project site:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;STORM is a free and open source tool for testing web services. &lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;It is written mostly in F#. (I love this language!) &lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;STORM allows you to&lt;/em&gt;&lt;/p&gt;   &lt;em&gt;     &lt;ol&gt;       &lt;li&gt;Test web services written using any technology (.NET , Java, etc.) &lt;/li&gt;        &lt;li&gt;Dynamically invoke web service methods even those that have input parameters of complex data types &lt;/li&gt;        &lt;li&gt;Save development time and money. Creating throw-away test client apps just to test the web service is just too wasteful &lt;/li&gt;        &lt;li&gt;Test multiple web services from within one UI. &lt;/li&gt;        &lt;li&gt;Edit/Manipulate the raw soap requests. &lt;/li&gt;        &lt;li&gt;Others (Try out the tool and find out yourself!) &lt;/li&gt;     &lt;/ol&gt;   &lt;/em&gt;&lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;a title="http://www.codeplex.com/storm" href="http://www.codeplex.com/storm"&gt;http://www.codeplex.com/storm&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30908170-5380714014801489401?l=nullfactory.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://nullfactory.blogspot.com/feeds/5380714014801489401/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=30908170&amp;postID=5380714014801489401&amp;isPopup=true" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/5380714014801489401?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/5380714014801489401?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheNullFactory/~3/x_SBHBt0cZw/storm-replacement-for-aging.html" title="Storm, replacement for the aging WebServiceStudio" /><author><name>shane carvalho</name><uri>http://www.blogger.com/profile/08664089142276533585</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01713954981162934556" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://nullfactory.blogspot.com/2008/10/storm-replacement-for-aging.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0QBSX4_fCp7ImA9WxRTFk8.&quot;"><id>tag:blogger.com,1999:blog-30908170.post-8159965596390538794</id><published>2008-09-05T08:42:00.001-07:00</published><updated>2008-09-05T08:42:38.044-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-05T08:42:38.044-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Windows" /><title>Unable to restore Virtual PC Console</title><content type="html">&lt;p&gt;Well, I've had this happen to me more than a few occasions now. This is where the console appears to remain minimized. Doesn't seem to affect functionality but can get really annoying. I'm not sure what exactly causes it but I'm going to post the fix here so I don't have to look for it every time happens.&lt;/p&gt;  &lt;p&gt;Virutal PC has an aptly named file called &lt;strong&gt;options.xml &lt;/strong&gt;to maintain settings related to the console. Its located here:&lt;/p&gt;  &lt;p&gt;C:\Documents and Settings\{windows account name}\Application    &lt;br /&gt;Data\Microsoft\Virtual PC\Options.xml &lt;/p&gt;  &lt;p&gt;(Replace {windows account name} with your windows account name)&lt;/p&gt;  &lt;p&gt;What we're interested is in this set of tags:&lt;/p&gt;  &lt;p&gt;&amp;lt;window&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;console&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {...snip...}     &lt;br /&gt;&lt;strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;left_position type=&amp;quot;integer&amp;quot;&amp;gt;0&amp;lt;/left_position&amp;gt;&lt;/strong&gt;     &lt;br /&gt;&lt;strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;top_position type=&amp;quot;integer&amp;quot;&amp;gt;0&amp;lt;/top_position&amp;gt;&lt;/strong&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {...snip...}     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/console&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {...snip...}     &lt;br /&gt;&amp;lt;/window&amp;gt;&lt;/p&gt;  &lt;p&gt;You should have some obscene values for the above keys. Just reset them to &lt;strong&gt;0&lt;/strong&gt;, restart Virtual PC and you're good to go.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30908170-8159965596390538794?l=nullfactory.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://nullfactory.blogspot.com/feeds/8159965596390538794/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=30908170&amp;postID=8159965596390538794&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/8159965596390538794?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/8159965596390538794?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheNullFactory/~3/if6ysW2ScIk/unable-to-restore-virtual-pc-console.html" title="Unable to restore Virtual PC Console" /><author><name>shane carvalho</name><uri>http://www.blogger.com/profile/08664089142276533585</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01713954981162934556" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://nullfactory.blogspot.com/2008/09/unable-to-restore-virtual-pc-console.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUEGRnkyeip7ImA9WxJWFUQ.&quot;"><id>tag:blogger.com,1999:blog-30908170.post-579405465205643921</id><published>2008-08-05T21:59:00.001-07:00</published><updated>2009-06-21T07:13:47.792-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-21T07:13:47.792-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Powershell" /><category scheme="http://www.blogger.com/atom/ns#" term="Source Code" /><title>Using Powershell to Query and Integrate MP3 Album Art</title><content type="html">&lt;p&gt;I've been trying to update my mp3 collection with album art since I got the &lt;a href="http://pages.samsung.com/us/p2/"&gt;P2&lt;/a&gt;. There are many tools out there that allow you to achieve this, but none that provide an easy and flexible way to automate the whole tagging process.  That's why I wrote a quick and dirty &lt;a href="http://www.microsoft.com/windowsserver2003/technologies/management/powershell/default.mspx" target="_blank"&gt;Powershell&lt;/a&gt; script to do the job for me. Plus, it gives me a chance to play around with &lt;a href="http://www.microsoft.com/windowsserver2003/technologies/management/powershell/default.mspx" target="_blank"&gt;Powershell&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;How it works:&lt;/strong&gt;   &lt;br /&gt;The script can be executed in the following manner:    &lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;&lt;strong&gt;.\Mp3AlbumArt.ps1 .\mp3\*def*.mp3      &lt;br /&gt;&lt;/strong&gt;or     &lt;br /&gt;&lt;strong&gt;.\Mp3AlbumArt.ps1 .\mp3\*\*.mp3       &lt;br /&gt;&lt;/strong&gt;&lt;em&gt;(recurse through sub folders)&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;The only parameter takes in the paths of the files that need to be processed. The script uses Greg Keogh's excellent &lt;a href="http://www.orthogonal.com.au/computers/ntag/index.htm" target="_blank"&gt;NTag&lt;/a&gt; library for integrating the album art into the ID3 Tag. The album art itself is retrieved by querying the Amazon Web Service using the Artist and Album Tags. Obviously it doesn't work very well if the Meta tags are not set up properly.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Some assembly required:    &lt;br /&gt;&lt;/strong&gt;You would need to register for an Amazon Web Service Account to get an key to query the service. Replace your key in the commented area to get stared.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Future:&lt;/strong&gt;   &lt;br /&gt;I was in a rush to get something working so didn't spend too much time error handling or on any best practices. As I gain more experience with powershell, I will eventually re-write this script to take advantage of powershell functionality. But for now it serves is purpose.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;References:&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="Automating Adding iTunes Album Art to MP3 ID3 tags from the Command Line in C#" href="http://www.hanselman.com/blog/AutomatingAddingITunesAlbumArtToMP3ID3TagsFromTheCommandLineInC.aspx"&gt;Automating Adding iTunes Album Art to MP3 ID3 tags from the Command Line in C#&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/coding4fun/archive/2006/10/31/912260.aspx"&gt;Coding4Fun : Using the Amazon Web Service&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://explodingpixels.wordpress.com/2008/06/24/getting-album-art-using-amazon-web-services/"&gt;Getting album art using Amazon Web Services&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Download:&lt;/strong&gt;   &lt;br /&gt;&lt;iframe scrolling="no" marginheight="0" marginwidth="0" frameborder="0" style="width:240px;height:66px;margin:3px;padding:0;border:1px solid #dde5e9;background-color:#ffffff;" src="http://cid-9659feaae0d43758.skydrive.live.com/embedrowdetail.aspx/.Public/Mp3AlbumArt.rar"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p&gt;Comments and constructive criticism appreciated.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30908170-579405465205643921?l=nullfactory.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://nullfactory.blogspot.com/feeds/579405465205643921/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=30908170&amp;postID=579405465205643921&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/579405465205643921?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/579405465205643921?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheNullFactory/~3/y4-hYQzG2Ck/using-powershell-to-query-and-integrate.html" title="Using Powershell to Query and Integrate MP3 Album Art" /><author><name>shane carvalho</name><uri>http://www.blogger.com/profile/08664089142276533585</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01713954981162934556" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://nullfactory.blogspot.com/2008/08/using-powershell-to-query-and-integrate.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE4NQXk8eip7ImA9WxdUF0Q.&quot;"><id>tag:blogger.com,1999:blog-30908170.post-8216867770148927237</id><published>2008-08-03T12:49:00.001-07:00</published><updated>2008-08-03T12:49:50.772-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-08-03T12:49:50.772-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Gaming" /><category scheme="http://www.blogger.com/atom/ns#" term="Fun" /><title>The Microsoft Habu - 2000 dpi of gaming goodness</title><content type="html">&lt;p&gt;As most of you would know, I like to waste most of my free time gaming online. So it wouldn't come as a surprise that I've been hunting for the perfect business/gaming mouse for a while now. I was pretty excited when I finally got my hands on one of these &lt;a href="http://www.microsoft.com/hardware/gaming/productdetails.aspx?pid=092" target="_blank"&gt;babies&lt;/a&gt;. And what makes it sweeter is that I got it at real good price as well. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/hardware/gaming/productdetails.aspx?pid=092" target="_blank"&gt;&lt;img src="http://www.microsoft.com/hardware/gaming/images/signature/gm_habu_otherview_1.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Like every other input device, its still taking me some time to get used to it. Its not an overly complicated mouse as far as gaming mice are concerned(this is a good thing). It feels solid and fills your hand pretty good (I still don't understand how and why some people use micro laptop mice). The on-the-fly dpi changer might come in handy. Haven't played any games with it yet, since I'm away from my main gaming rig at the moment, but I'm sure it would bump up my frags by a few kills at least :).&lt;/p&gt;  &lt;p&gt;Get the Full Reviews and Specifications:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.xbitlabs.com/articles/other/display/razer-mice2.html" target="_blank"&gt;X-Bit Labs&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.techpowerup.com/reviews/Razer/Habu" target="_blank"&gt;Tech Power Up&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30908170-8216867770148927237?l=nullfactory.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://nullfactory.blogspot.com/feeds/8216867770148927237/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=30908170&amp;postID=8216867770148927237&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/8216867770148927237?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/8216867770148927237?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheNullFactory/~3/d6tlbusS_HE/microsoft-habu-2000-dpi-of-gaming.html" title="The Microsoft Habu - 2000 dpi of gaming goodness" /><author><name>shane carvalho</name><uri>http://www.blogger.com/profile/08664089142276533585</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01713954981162934556" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://nullfactory.blogspot.com/2008/08/microsoft-habu-2000-dpi-of-gaming.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck8ESXw_fip7ImA9WxdUF0Q.&quot;"><id>tag:blogger.com,1999:blog-30908170.post-7141490019901390006</id><published>2008-08-03T12:13:00.001-07:00</published><updated>2008-08-03T12:13:28.246-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-08-03T12:13:28.246-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="XML" /><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio" /><title>Debugging XSLT using Visual Studio 2005 / 2008</title><content type="html">&lt;p&gt;Visual Studio has the ability to debug XSL stylesheets. This a extremely useful feature that a few seem to know exist and use regularly.&lt;/p&gt;  &lt;p&gt;Most of the projects I'm involved with use XSLT in one way or another. And the VS debugger along with &lt;a href="http://nullfactory.blogspot.com/2008/04/useful-xslt-xml-tools.html" target="_blank"&gt;other tools&lt;/a&gt; have saved me countless hours of frustration.&lt;/p&gt;  &lt;p&gt;Here's a quick guide to get you started:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Create / Open up the XSL file using Visual Studio &lt;/li&gt;    &lt;li&gt;Setup break points as necessary      &lt;br /&gt;&lt;a href="http://lh5.ggpht.com/shanec/SJYDPAs2JjI/AAAAAAAAEKs/VoZR2KrFR4Q/breakpoints%5B6%5D.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="217" alt="breakpoints" src="http://lh6.ggpht.com/shanec/SJYDQOEbvEI/AAAAAAAAEKw/1KT6KpwsQDc/breakpoints_thumb%5B4%5D.jpg" width="412" border="0" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Make sure that the &lt;font face="Courier New" size="2"&gt;XML Editor&lt;/font&gt; toolbar is visible       &lt;br /&gt;&lt;a href="http://lh6.ggpht.com/shanec/SJYDQpJBWoI/AAAAAAAAEK0/6cB-cRvKSjo/XML%20Toolbar%5B11%5D.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="45" alt="XML Toolbar" src="http://lh3.ggpht.com/shanec/SJYDRHEQjRI/AAAAAAAAEK4/s9uvTFvl3oA/XML%20Toolbar_thumb%5B9%5D.jpg" width="398" border="0" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Click on the &lt;font face="Courier New" size="2"&gt;Debug XSLT&lt;/font&gt; button to start debugging       &lt;br /&gt;&lt;a href="http://lh4.ggpht.com/shanec/SJYDSM-NkTI/AAAAAAAAEK8/esyvUIoE-FE/debug_xsl%5B2%5D.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="82" alt="debug_xsl" src="http://lh6.ggpht.com/shanec/SJYDSeIiElI/AAAAAAAAELA/R4pimsGJR5A/debug_xsl_thumb.jpg" width="215" border="0" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;A warning message would appear asking you to setup an input file. This would be the XML file that needs to be transformed. Click YES and select the input file.      &lt;br /&gt;&lt;a href="http://lh5.ggpht.com/shanec/SJYDTyUDXwI/AAAAAAAAELE/rVDrET0cYvs/filename%5B3%5D.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="88" alt="filename" src="http://lh4.ggpht.com/shanec/SJYDUCx1Y3I/AAAAAAAAELI/kKN2rc2rQwo/filename_thumb%5B1%5D.jpg" width="404" border="0" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Step through the code.      &lt;br /&gt;&lt;a href="http://lh4.ggpht.com/shanec/SJYDUiL_eGI/AAAAAAAAELM/1hUa0wSk6Yk/stepthrough%5B4%5D.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="89" alt="stepthrough" src="http://lh4.ggpht.com/shanec/SJYDVrTDEgI/AAAAAAAAELQ/sUNkXCscFJ4/stepthrough_thumb%5B2%5D.jpg" width="410" border="0" /&gt;&lt;/a&gt; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;The only disadvantage or limitation rather is that you can't specify values for &lt;font face="Courier New" size="2"&gt;xsl:param&lt;/font&gt; variables. The workaround I use is to re-define the parameter as an &lt;font face="Courier New" size="2"&gt;xsl:variable&lt;/font&gt; , set the expected input value.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh3.ggpht.com/shanec/SJYDVtiatsI/AAAAAAAAELU/YGoZ-hoQVQs/xsl_variable%5B3%5D.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="73" alt="xsl_variable" src="http://lh5.ggpht.com/shanec/SJYDVznz13I/AAAAAAAAELY/_4B19O9-X_M/xsl_variable_thumb%5B1%5D.jpg" width="392" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;On a related note, &lt;font face="Courier New" size="2"&gt;XslCompiledTransform&lt;/font&gt; class supports stepping into the stylesheet while debugging. The only pre-requisite is that the class should be instantiated with the debug parameter value set to true . Detailed instructions provided &lt;a href="http://msdn.microsoft.com/en-us/library/ms255603(VS.80).aspx" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30908170-7141490019901390006?l=nullfactory.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://nullfactory.blogspot.com/feeds/7141490019901390006/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=30908170&amp;postID=7141490019901390006&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/7141490019901390006?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/7141490019901390006?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheNullFactory/~3/RTP_o0jtgFo/debugging-xslt-using-visual-studio-2005.html" title="Debugging XSLT using Visual Studio 2005 / 2008" /><author><name>shane carvalho</name><uri>http://www.blogger.com/profile/08664089142276533585</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01713954981162934556" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://nullfactory.blogspot.com/2008/08/debugging-xslt-using-visual-studio-2005.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck4GQn44fCp7ImA9WxdUF0Q.&quot;"><id>tag:blogger.com,1999:blog-30908170.post-4674144256157043713</id><published>2008-08-01T08:53:00.001-07:00</published><updated>2008-08-03T12:15:23.034-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-08-03T12:15:23.034-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MOSS" /><title>New Site Column as a Managed Property</title><content type="html">&lt;p&gt;I was trying to create a Managed property from a newly created site column. What I didn't realize was that the column has to have content and crawled at least once (incremental/full, it doesn't matter) for it to be available in the "Crawled property Selection". It does makes sense if you think about it. So yeah.&lt;/p&gt;&lt;p&gt;More detailed information &lt;a href="http://randomdust.com/blogs/ryan/archive/2007/07/25/site-column-to-crawled-property-to-managed-property.aspx" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Remember Kids, Google! is your friend.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30908170-4674144256157043713?l=nullfactory.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://nullfactory.blogspot.com/feeds/4674144256157043713/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=30908170&amp;postID=4674144256157043713&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/4674144256157043713?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/4674144256157043713?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheNullFactory/~3/CiL7j3-JSow/new-site-column-as-managed-property.html" title="New Site Column as a Managed Property" /><author><name>shane carvalho</name><uri>http://www.blogger.com/profile/08664089142276533585</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01713954981162934556" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://nullfactory.blogspot.com/2008/08/new-site-column-as-managed-property.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0MGSXY7eCp7ImA9WxZaGE8.&quot;"><id>tag:blogger.com,1999:blog-30908170.post-1704517063735948066</id><published>2008-05-03T08:42:00.001-07:00</published><updated>2008-05-03T08:43:48.800-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-05-03T08:43:48.800-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Fun" /><title>Warning: Grand Theft Auto is addictive!</title><content type="html">&lt;p&gt;I had a good laugh with this, thought I'd pass it along.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.penny-arcade.com/comic/2008/5/2/" target="_blank"&gt;&lt;img height="218" src="http://www.penny-arcade.com/images/2008/20080502.jpg" width="415" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30908170-1704517063735948066?l=nullfactory.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://nullfactory.blogspot.com/feeds/1704517063735948066/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=30908170&amp;postID=1704517063735948066&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/1704517063735948066?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/1704517063735948066?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheNullFactory/~3/O2Z9eQYDlL8/warning-grand-theft-auto-is-addictive.html" title="Warning: Grand Theft Auto is addictive!" /><author><name>shane carvalho</name><uri>http://www.blogger.com/profile/08664089142276533585</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01713954981162934556" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://nullfactory.blogspot.com/2008/05/warning-grand-theft-auto-is-addictive.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkYEQXc6cCp7ImA9WxZaGE4.&quot;"><id>tag:blogger.com,1999:blog-30908170.post-8381600595561623404</id><published>2008-05-03T07:13:00.001-07:00</published><updated>2008-05-03T08:55:00.918-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-05-03T08:55:00.918-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Maps" /><category scheme="http://www.blogger.com/atom/ns#" term="Gaming" /><category scheme="http://www.blogger.com/atom/ns#" term="Fun" /><title>GTA 4 Liberty City Google Map</title><content type="html">&lt;p&gt;Its a coincidence that I found this today, as lately I've been messing around with Google maps myself.&lt;/p&gt;  &lt;p&gt;&lt;a title="http://grandtheftauto.ign.com//maps/1/Liberty-City-Map" href="http://grandtheftauto.ign.com//maps/1/Liberty-City-Map"&gt;http://grandtheftauto.ign.com//maps/1/Liberty-City-Map&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Looking at the map,&amp;#160; I see only one airport ???!!! Is flying not that important anymore? Surely I must be mistaken. &lt;/p&gt;  &lt;p&gt;Playing San Andreas, the Hydra (Harrier clone) was one of the more entertaining forms of transport and I have wasted so many hours just blowing up stuff with it.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30908170-8381600595561623404?l=nullfactory.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://nullfactory.blogspot.com/feeds/8381600595561623404/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=30908170&amp;postID=8381600595561623404&amp;isPopup=true" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/8381600595561623404?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/8381600595561623404?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheNullFactory/~3/evVuQ4Ide-g/gta-4-liberty-city-google-map.html" title="GTA 4 Liberty City Google Map" /><author><name>shane carvalho</name><uri>http://www.blogger.com/profile/08664089142276533585</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01713954981162934556" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://nullfactory.blogspot.com/2008/05/gta-4-liberty-city-google-map.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck4HRn44cSp7ImA9WxdUF0Q.&quot;"><id>tag:blogger.com,1999:blog-30908170.post-4416141366554216620</id><published>2008-05-02T20:05:00.001-07:00</published><updated>2008-08-03T12:15:37.039-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-08-03T12:15:37.039-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MOSS" /><title>MOSS Single Sign-On</title><content type="html">&lt;p&gt;I've started diving into the world of Sharepoint recently.  One of our requirements of the project I am working on was for the user to be able to access content off existing external systems. MOSS provides SSO as an out of the box solution to enable this functionality. &lt;/p&gt;&lt;h5&gt;What is SSO?&lt;/h5&gt;&lt;p&gt;The default SSO service simply put, is a &lt;strong&gt;secure&lt;/strong&gt;, pluggable storage mechanism for credential mapping between Sharepoint and other external systems.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Microsoft Office SharePoint Server 2007 provides a default single sign-on &lt;a href="http://msdn.microsoft.com/en-us/library/ms580316.aspx"&gt;(SSO) service&lt;/a&gt; for the storage and mapping of credentials for use in connecting with third-party or back-end systems. &lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;You can even plug-in an existing credential mapping system by &lt;a href="http://msdn.microsoft.com/en-us/library/ms566925.aspx"&gt;implementing&lt;/a&gt; the ISSOProvider interface.&lt;/p&gt;&lt;h5&gt;Setting up the SSO Service&lt;/h5&gt;&lt;p&gt;&lt;a href="http://www.sharepointblogs.com/llowevad/archive/2007/06/25/sharepoint-2007-single-sign-on-setup.aspx"&gt;using the service account&lt;/a&gt; to initially create the SSO database. &lt;/p&gt;&lt;h5&gt;Using SSO&lt;/h5&gt;&lt;p&gt;Now setup the application definitions and you're pretty much setting up the service. There are a few different ways we can use SSO:&lt;/p&gt;&lt;p&gt;Retrieving Credentials&lt;br /&gt;&lt;a href="http://mcse-blogs.com/certification/implementing-single-sign-on-sso-with-moss-2007.html"&gt;http://mcse-blogs.com/certification/implementing-single-sign-on-sso-with-moss-2007.html&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;a title="http://odetocode.com/articles/162.aspx" href="http://odetocode.com/articles/162.aspx"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Logging into SQL Server as a data source for a DVWP &lt;a href="http://blogs.msdn.com/sharepointdesigner/archive/2007/08/27/an-introduction-to-single-sign-on-sso-with-data-views.aspx"&gt;http://blogs.msdn.com/sharepointdesigner/archive/2007/08/27/an-introduction-to-single-sign-on-sso-with-data-views.aspx&lt;/a&gt; &lt;/p&gt;&lt;p&gt;Logging into SQL Server using Windows Authentication&lt;br /&gt;&lt;a href="http://blogs.msdn.com/edhild/articles/377362.aspx"&gt;http://blogs.msdn.com/edhild/articles/377362.aspx&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;a title="http://technet.microsoft.com/en-us/library/cc262932.aspx" href="http://technet.microsoft.com/en-us/library/cc262932.aspx"&gt;&lt;/a&gt;&lt;/p&gt;Forms Authentication and Screen scraping&lt;br /&gt;&lt;a title="http://odetocode.com/articles/162.aspx" href="http://odetocode.com/articles/162.aspx"&gt;http://odetocode.com/articles/162.aspx&lt;/a&gt; &lt;p&gt;&lt;/p&gt;&lt;h5&gt;To what extent is the out of the box functionality?&lt;a title="http://technet.microsoft.com/en-us/library/cc262932.aspx" href="http://technet.microsoft.com/en-us/library/cc262932.aspx"&gt; &lt;/a&gt;&lt;/h5&gt;&lt;a title="http://technet.microsoft.com/en-us/library/cc262932.aspx" href="http://technet.microsoft.com/en-us/library/cc262932.aspx"&gt;&lt;/a&gt;&lt;p&gt;&lt;a title="http://technet.microsoft.com/en-us/library/cc262932.aspx" href="http://technet.microsoft.com/en-us/library/cc262932.aspx"&gt;http://technet.microsoft.com/en-us/library/cc262932.aspx&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30908170-4416141366554216620?l=nullfactory.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://nullfactory.blogspot.com/feeds/4416141366554216620/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=30908170&amp;postID=4416141366554216620&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/4416141366554216620?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/4416141366554216620?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheNullFactory/~3/MFQIEa0ez40/moss-single-sign-on.html" title="MOSS Single Sign-On" /><author><name>shane carvalho</name><uri>http://www.blogger.com/profile/08664089142276533585</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01713954981162934556" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://nullfactory.blogspot.com/2008/05/moss-single-sign-on.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUACRHk4fSp7ImA9WxZaEkU.&quot;"><id>tag:blogger.com,1999:blog-30908170.post-7852592117061206001</id><published>2008-04-27T01:08:00.001-07:00</published><updated>2008-04-27T01:09:25.735-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-04-27T01:09:25.735-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Windows" /><title>Find the System Uptime of your Windows/Linux Box</title><content type="html">&lt;p&gt;Ever wanted to find how long your Windows/Linux Box has been running?&lt;/p&gt;  &lt;h5&gt;For Windows&lt;/h5&gt;  &lt;p&gt;The Microsoft site suggests the following methods:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;use the &lt;strong&gt;&lt;font face="Courier New"&gt;net statistics server&lt;/font&gt; &lt;/strong&gt;&lt;a href="http://support.microsoft.com/kb/555737/en-us"&gt;command&lt;/a&gt;. Which can be re-written as &lt;font face="Courier New"&gt;&lt;strong&gt;net stats srv | Find &amp;quot;Statistics since&amp;quot;&lt;/strong&gt;&lt;/font&gt; so we just get the info we are concerned about.&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;Or use a &lt;a href="http://support.microsoft.com/kb/232243/en-us"&gt;UpTime&lt;/a&gt; tool which does just that.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;And my personal &lt;a href="http://articles.techrepublic.com.com/5100-10877_11-5826014.html"&gt;favorite&lt;/a&gt; method:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New"&gt;&lt;strong&gt;systeminfo | Find &amp;quot;Up Time&amp;quot;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt; Again, extracting only the information relevant to us.   &lt;h5&gt;For Linux&lt;/h5&gt;  &lt;p&gt;For the Linux environment we have the &lt;a href="http://linux.die.net/man/1/uptime"&gt;&lt;font face="Courier New"&gt;&lt;strong&gt;Uptime&lt;/strong&gt;&lt;/font&gt;&lt;/a&gt; command: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;b&gt;uptime&lt;/b&gt; gives a one line display of the following information. The current time, how long the system has been running, how many users are currently logged on, and the system load averages for the past 1, 5, and 15 minutes.&lt;/p&gt;&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30908170-7852592117061206001?l=nullfactory.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://nullfactory.blogspot.com/feeds/7852592117061206001/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=30908170&amp;postID=7852592117061206001&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/7852592117061206001?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/7852592117061206001?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheNullFactory/~3/n2CgC0q8PMs/find-system-uptime-of-your-windowslinux.html" title="Find the System Uptime of your Windows/Linux Box" /><author><name>shane carvalho</name><uri>http://www.blogger.com/profile/08664089142276533585</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01713954981162934556" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://nullfactory.blogspot.com/2008/04/find-system-uptime-of-your-windowslinux.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMCSXg6cSp7ImA9WxZaEko.&quot;"><id>tag:blogger.com,1999:blog-30908170.post-8797179969484360417</id><published>2008-04-26T21:27:00.001-07:00</published><updated>2008-04-26T21:27:48.619-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-04-26T21:27:48.619-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Gaming" /><category scheme="http://www.blogger.com/atom/ns#" term="Fun" /><title>Halotography - Photo realistic Halo</title><content type="html">&lt;p&gt;Taken off the &lt;a href="http://www.destructoid.com/-halotography-what-you-wanted-next-gen-halo-to-look-like-83460.phtml"&gt;destructoid&lt;/a&gt; website.&lt;/p&gt;  &lt;blockquote&gt;Joshua used a combination of Halo 3 and Photoshop CS to give some of these images a more photorealistic look, with some impressive results. &amp;quot;I think this gives a much needed breath of fresh air to Halo,&amp;quot; he writes to us. Anyone agree?&lt;/blockquote&gt;  &lt;p&gt;Check out his &lt;a href="http://www.flickr.com/photos/joshuadamon/sets/72157604730806200/"&gt;Filcker&lt;/a&gt; Page. The attention to detail is just super!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30908170-8797179969484360417?l=nullfactory.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://nullfactory.blogspot.com/feeds/8797179969484360417/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=30908170&amp;postID=8797179969484360417&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/8797179969484360417?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/8797179969484360417?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheNullFactory/~3/xAB5NZBSzmI/halotography-photo-realistic-halo.html" title="Halotography - Photo realistic Halo" /><author><name>shane carvalho</name><uri>http://www.blogger.com/profile/08664089142276533585</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01713954981162934556" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://nullfactory.blogspot.com/2008/04/halotography-photo-realistic-halo.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck8NRH8_cCp7ImA9WxdUF0Q.&quot;"><id>tag:blogger.com,1999:blog-30908170.post-5912281281395203970</id><published>2008-04-26T01:20:00.000-07:00</published><updated>2008-08-03T12:14:55.148-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-08-03T12:14:55.148-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="XML" /><title>Useful XSLT / XML tools</title><content type="html">I've worked on a XSLT based ad-hoc reporting solution a few months back. I don't think could have made much progress without the following tools at my side. Just thought I'd give them an honorable mention.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a title="SketchPath" href="http://pgfearo.googlepages.com/"&gt;SketchPath &lt;/a&gt;- If you do any work involving XPath, you just gotta have this tool.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=72d6aa49-787d-4118-ba5f-4f30fe913628&amp;amp;displaylang=en"&gt;Xml Notepad 2007&lt;/a&gt; - Microsoft's own Xml Editor (what's great is that the &lt;a href="http://www.codeplex.com/xmlnotepad"&gt;source is released&lt;/a&gt; under the Ms-PL) &lt;/li&gt;&lt;br /&gt;&lt;li&gt;And &lt;a href="http://msdn2.microsoft.com/vstudio/products/default.aspx"&gt;Visual Studio 2008&lt;/a&gt; for testing out the transformations and everything else that went into the process.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;You guys got any favourite XML tools?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30908170-5912281281395203970?l=nullfactory.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://nullfactory.blogspot.com/feeds/5912281281395203970/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=30908170&amp;postID=5912281281395203970&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/5912281281395203970?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/5912281281395203970?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheNullFactory/~3/o1bd_rmx7Ws/useful-xslt-xml-tools.html" title="Useful XSLT / XML tools" /><author><name>shane carvalho</name><uri>http://www.blogger.com/profile/08664089142276533585</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01713954981162934556" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://nullfactory.blogspot.com/2008/04/useful-xslt-xml-tools.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0QASXY_eyp7ImA9WxZbFkQ.&quot;"><id>tag:blogger.com,1999:blog-30908170.post-6296875960804152517</id><published>2008-04-20T04:34:00.000-07:00</published><updated>2008-04-20T04:35:48.843-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-04-20T04:35:48.843-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Gaming" /><category scheme="http://www.blogger.com/atom/ns#" term="Fun" /><title>Karateka and the IBM 8086</title><content type="html">Karateka was the first game I ever played. I think I started playing this when I was like 5.  Produced and Published by Brøderbund Software, Inc. this game would be the stepping stone for them to later create the famed Prince of Persia.&lt;br /&gt;Sadly I was never really able to finish the game or rescue the princess.  I used to get stuck at this position of the game (shown below), not crash or freeze, my character would literary just stand there not responding. Where the "evil-ninja" would then proceed to kick my ass.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.abandonia.com/en/games/804/Karateka.html"&gt;&lt;img src="http://www.abandonia.com/files/games/804/Karateka_4.gif" title="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I'll blame this on a hardware limitation or some software glitch or maybe it was just a shareware version I had. I used to play the same level over and over until I got bored. What else can a 5 year old to do?&lt;br /&gt;&lt;br /&gt;And speaking of hardware, this is the beast I used to run it off:&lt;br /&gt;&lt;img src="http://regmedia.co.uk/2007/11/16/tobibmpersonalcomputer2.jpg" title="IBM 8086" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;The great IBM 8086. Oh man! I have so many fond memories around this machine. I guess my love(addiction :) ) for programming and computers as whole started out from here.&lt;br /&gt;&lt;br /&gt;And just so you know here are the &lt;a href="http://inventors.about.com/library/weekly/aa031599.htm" title="Inventors of the Modern Computer"&gt;specs &lt;/a&gt;of this beast!&lt;br /&gt;&lt;blockquote&gt;The first IBM PC ran on a 4.77 MHz Intel 8088 microprocessor. The PC came equipped with 16 kilobytes of memory, expandable to 256k. The PC came with one or two 160k floppy disk drives and an optional color monitor. The price tag started at $1,565, which would be nearly $4,000 today.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30908170-6296875960804152517?l=nullfactory.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://nullfactory.blogspot.com/feeds/6296875960804152517/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=30908170&amp;postID=6296875960804152517&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/6296875960804152517?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/6296875960804152517?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheNullFactory/~3/QZFin9XcKa0/karateka-and-ibm-8086.html" title="Karateka and the IBM 8086" /><author><name>shane carvalho</name><uri>http://www.blogger.com/profile/08664089142276533585</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01713954981162934556" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://nullfactory.blogspot.com/2008/04/karateka-and-ibm-8086.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D04BQXg5fip7ImA9WxZbFkU.&quot;"><id>tag:blogger.com,1999:blog-30908170.post-2457325451374605180</id><published>2008-04-19T23:07:00.000-07:00</published><updated>2008-04-20T03:05:50.626-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-04-20T03:05:50.626-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="YouTube" /><category scheme="http://www.blogger.com/atom/ns#" term="Fun" /><category scheme="http://www.blogger.com/atom/ns#" term="C#" /><category scheme="http://www.blogger.com/atom/ns#" term="Source Code" /><title>Direct Download YouTube Video</title><content type="html">&lt;span style="font-weight: bold;"&gt;So why download a YouTube video when you can just stream it? &lt;/span&gt;&lt;br /&gt;Sri Lanka is not best known for it's blazing internet speed (especially the "home" packages). I for one just got tired of looking at choppy video.&lt;br /&gt;&lt;br /&gt;Works great if you want to use your videos with your own home brew &lt;a href="http://www.codeplex.com/Flavr/"&gt;player/organizer&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Why don't you just go to keepvid.com or use a browser plug-in?&lt;/span&gt;&lt;br /&gt;What? Where's the fun in that?&lt;br /&gt;Think command line, think quick launchers, think batch process. Exactly!&lt;br /&gt;&lt;a style="font-weight: bold;" href="http://en.wikipedia.org/wiki/Screen_scraping"&gt;&lt;br /&gt;Screen scraping&lt;/a&gt;&lt;span style="font-weight: bold;"&gt; 101&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is what I needs to be done to get the download url:&lt;br /&gt;&lt;a href="http://www.walkernews.net/2008/02/25/youtube-video-direct-download-link/"&gt;http://www.walkernews.net/2008/02/25/youtube-video-direct-download-link/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is how we go about doing it in C#:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Download Watch Video page&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_FcdTZIoERaA/SArm-QfuqcI/AAAAAAAAEJw/_C6SbZTBidw/s1600-h/pst1.jpg"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_FcdTZIoERaA/SArm-QfuqcI/AAAAAAAAEJw/_C6SbZTBidw/s320/pst1.jpg" alt="" id="BLOGGER_PHOTO_ID_5191215477752244674" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Parse it for the download Url (this is where the magic happens)&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_FcdTZIoERaA/SArmnAfuqaI/AAAAAAAAEJg/1hrkIhBftwI/s1600-h/pst2.jpg"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_FcdTZIoERaA/SArmnAfuqaI/AAAAAAAAEJg/1hrkIhBftwI/s320/pst2.jpg" alt="" id="BLOGGER_PHOTO_ID_5191215078320286114" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Parse it for the page title (more magic!)&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_FcdTZIoERaA/SArmnQfuqbI/AAAAAAAAEJo/wuedn3J65Og/s1600-h/pst3.jpg"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_FcdTZIoERaA/SArmnQfuqbI/AAAAAAAAEJo/wuedn3J65Og/s320/pst3.jpg" alt="" id="BLOGGER_PHOTO_ID_5191215082615253426" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Construct your final URL and That's It!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.mediafire.com/?pjmpw1tto53"&gt;Download the source&lt;/a&gt; and try it out for yourself.&lt;br /&gt;&lt;br /&gt;Look forward to a powershell version in the future.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30908170-2457325451374605180?l=nullfactory.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://nullfactory.blogspot.com/feeds/2457325451374605180/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=30908170&amp;postID=2457325451374605180&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/2457325451374605180?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/2457325451374605180?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheNullFactory/~3/_5jy2hncESQ/direct-download-youtube-video-c-source.html" title="Direct Download YouTube Video" /><author><name>shane carvalho</name><uri>http://www.blogger.com/profile/08664089142276533585</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01713954981162934556" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_FcdTZIoERaA/SArm-QfuqcI/AAAAAAAAEJw/_C6SbZTBidw/s72-c/pst1.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://nullfactory.blogspot.com/2008/04/direct-download-youtube-video-c-source.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck4NRXc_fCp7ImA9WxdUF0Q.&quot;"><id>tag:blogger.com,1999:blog-30908170.post-3258292548195452252</id><published>2006-10-08T14:22:00.000-07:00</published><updated>2008-08-03T12:16:34.944-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-08-03T12:16:34.944-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Windows" /><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio" /><title>Development and Vista</title><content type="html">&lt;a href="http://www.theserverside.net/news/thread.tss?thread_id=42426"&gt;Visual Studio vs. Vista: What's going on here?&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;What's going on here indeed?&lt;br /&gt;&lt;br /&gt;I understand that applications/operating systems cannot always have full backward compatibility. But the inability to run their flagship development environment on their (near) future flag ship OS is just insane.&lt;br /&gt;&lt;br /&gt;I'm sure that Microsoft will eventually issue some patches/fixes. But until then this is only hurt the adoption rate of Vista by developers and more importantly businesses.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30908170-3258292548195452252?l=nullfactory.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://nullfactory.blogspot.com/feeds/3258292548195452252/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=30908170&amp;postID=3258292548195452252&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/3258292548195452252?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/30908170/posts/default/3258292548195452252?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheNullFactory/~3/XZqujWxB9_I/development-and-vista.html" title="Development and Vista" /><author><name>shane carvalho</name><uri>http://www.blogger.com/profile/08664089142276533585</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01713954981162934556" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://nullfactory.blogspot.com/2006/10/development-and-vista.html</feedburner:origLink></entry></feed>
