﻿<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>The CTO 2.0</title>
    <description>&lt;p&gt;A chief technical officer or chief technology officer (abbreviated as CTO) is a executive position whose holder is focused on scientific and technical issues in a company. It emerged in the United States in the 1980s as a business-focused extension of the position of Director of R&amp;amp;D.&lt;/p&gt;
&lt;p&gt;During the dot-com and computer boom of the 1990s, many companies used the CTO title for their main technical person. The MIS and IT community often use the title CTO as either synonymous with Chief Information Officer, or as a subordinate to the CIO who is more versed in the technical intricacies. The role of the CTO varies between companies and industries, but usually relates to technology. The roles include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Short term technology direction (tactical) &lt;/li&gt;
&lt;li&gt; Business-focused oversight of R&amp;amp;D &lt;/li&gt;
&lt;li&gt; Software used in the corporation &lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
    <link>http://www.cto20.com/cto20/tabid/647/BlogId/7/Default.aspx</link>
    <language>en-US</language>
    <managingEditor>antonio@inspectorit.com</managingEditor>
    <webMaster>antonio@inspectorit.com</webMaster>
    <pubDate>Thu, 24 Jul 2008 10:16:36 GMT</pubDate>
    <lastBuildDate>Thu, 24 Jul 2008 10:16:36 GMT</lastBuildDate>
    <docs>http://backend.userland.com/rss</docs>
    <generator>Blog RSS Generator Version 3.4.0.39875</generator>
    <item>
      <title>DNN Blog Module Submitted to Release Tracker.</title>
      <description>&lt;p&gt;After much anticipation, hard work and dedication (from this extraordinary team of professionals) I am pleased to announce that we are "code-complete" and that the Blog module was submitted to the release tracker just moments ago.&lt;/p&gt;
&lt;p&gt;I would also like to take a few moments to thank each and every team member without whom this would not have been such a memorable release:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;Don Worthley&lt;/strong&gt;&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Dario Rossa&lt;/strong&gt;&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Rip Rowan&lt;/strong&gt;&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Jim Bonnie&lt;/strong&gt;&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Eoghan O'Neill&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It takes a smart group of people with talent, passion and dedication to develop open source software without financial reward – I am honored and grateful to have these guys in my team!&lt;/p&gt;
&lt;p&gt;We will now take a short but needed break, as we ponder over the next release. which among other things will entail a complete re-write with the promise to make the Blog module the best ever DNN module yet!&lt;/p&gt;
&lt;p&gt;Stay tuned!&lt;/p&gt;</description>
      <link>http://www.cto20.com/cto20/tabid/647/EntryID/58/Default.aspx</link>
      <author>antonio@inspectorit.com</author>
      <comments>http://www.cto20.com/cto20/tabid/647/EntryID/58/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.cto20.com/Default.aspx?tabid=647&amp;EntryID=58</guid>
      <pubDate>Mon, 21 Jul 2008 05:00:00 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.cto20.com/DesktopModules/Blog/Trackback.aspx?id=58</trackback:ping>
    </item>
    <item>
      <title>INETA Rewards Active User Group Contributors </title>
      <description>&lt;p&gt;In a &lt;a target="_blank" href="http://www.ineta.org/Champions/CommunityChampionInfo.aspx"&gt;recent announcement&lt;/a&gt; this week, INETA outlined a new program designed to reward the very hard work of User Group community contributors.&lt;/p&gt;
&lt;p&gt;User Group contributors are encouranged to participate and submit their contributions regularly on the &lt;a target="_blank" href="http://www.ineta.org"&gt;INETA&lt;/a&gt; website.&lt;/p&gt;
&lt;p&gt;Here is what INETA has to say about the awards programs:&lt;/p&gt;
&lt;div style="border-right: #ccc 1px solid; padding-right: 15px; border-top: #ccc 1px solid; padding-left: 15px; padding-bottom: 5px; margin: 20px; border-left: #ccc 1px solid; color: #333; padding-top: 5px; border-bottom: #ccc 1px solid; background-color: #ffffc3"&gt;
&lt;h3&gt;&lt;em&gt;Community Champions Award&lt;/em&gt;&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;Once a quarter, INETA will recognize leading contributors as &lt;strong&gt;Community Champions&lt;/strong&gt;. In addition to claiming this prestigious title for twelve months, awardees also receive a letter of commendation, a certificate of achievement, much deserved online recognition, and a few great prizes. Of course, we want this award to motivate even more involvement, so we encourage everyone, including winners, to record your activities. After all, you are eligible to win every twelve months. &lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;&lt;em&gt;Community Excellence Award&lt;/em&gt;&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;In recognition of their lifetime achievements, INETA is proud to present our most dedicated leaders with the &lt;strong&gt;Community Excellence Award&lt;/strong&gt;. You know the people that we mean, so we are counting on YOU to start the award process by nominating them for this elite honor. These are the outstanding individuals who, year after year, have gone above and beyond to lay the foundation and provide the structure for building our community and to keep it vibrant and growing. They step up when called upon; they are our leaders and mentors; they inspire us to stretch our horizons; and they help provide us with resources along the way.&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;None of this would be possible without the help of my friend &lt;a target="_blank" href="http://www.xmlpitstop.com/"&gt;David Silverlight&lt;/a&gt;, who has been providing a similar service to community contributors on &lt;a href="http://www.community-credit.com/"&gt;Community-Credit&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;So what are you waiting for? Go sign up and start submitting your work to win lots of great prizes, such as:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;An MSDN Subscription.  And, if you already have one, you can choose an XBox instead&lt;/li&gt;
    &lt;li&gt;The Fame and Prestige of having an award to hang on your wall that shows that INETA recognizes your contributions to the User Group Community.&lt;/li&gt;
    &lt;li&gt;Official Recognition on the INETA Website  for one year. &lt;/li&gt;
    &lt;li&gt;A Badge for your website showing that you are a Community Champion.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Additional Resources:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a target="_blank" href="http://www.community-credit.com/cs/blogs/community_credit_news/archive/2008/06/17/the-ineta-community-champion-award.aspx"&gt;Community Excellence Award Blog - David Silverlight&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a target="_blank" href="http://vsteamsystemcentral.com/cs21/blogs/applied_team_system/archive/2008/06/18/ineta-new-cool-stuff.aspx"&gt;Visual Studio Team System - Andy Leonard&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a target="_blank" href="http://geekswithblogs.net/sdorman/Default.aspx"&gt;Scott Dorman's blog on GeeksWithBlogs.net&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a target="_blank" href="http://www.aspnetpodcast.com/videofiles/aspnetpodcast20080619-paulonp2pwithwcf.wmv"&gt;Wally McClure's Podcast&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <link>http://www.cto20.com/cto20/tabid/647/EntryID/57/Default.aspx</link>
      <author>antonio@inspectorit.com</author>
      <comments>http://www.cto20.com/cto20/tabid/647/EntryID/57/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.cto20.com/Default.aspx?tabid=647&amp;EntryID=57</guid>
      <pubDate>Fri, 20 Jun 2008 05:00:00 GMT</pubDate>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.cto20.com/DesktopModules/Blog/Trackback.aspx?id=57</trackback:ping>
    </item>
    <item>
      <title>Community-Credit Studio Posted on CodePlex</title>
      <description>&lt;p&gt;&lt;a target="_blank" href="http://www.codeplex.com/ccstudio"&gt;&lt;img alt="Community-Credit Studio" align="left" border="0" src="http://www.cto20.com/Portals/24/Blog/Files/49/cc_studio.gif" /&gt;&lt;/a&gt;The last time I spoke at a Code Camp I became aware of &lt;a target="_blank" href="http://www.community-credit.com"&gt;Community-Credit.com&lt;/a&gt;. In a nutshell Community-Credit was founded by &lt;a target="_blank" href="http://community-credit.com/cs/blogs/"&gt;David Silverlight&lt;/a&gt;, a Microsoft MVP and an active member of the development community, as a way to reward fellow IT Professionals who have contributed toward the development community. Currently, the rewards for these contributions are simply the satisfaction of helping colleagues in the development community.&lt;/p&gt;
&lt;p&gt;Obviusly I signed up in a jiffy and starting adding all the stuff that I have been doing for the community at-large, from founding the &lt;a target="_blank" href="http://www.capitaldug.org"&gt;Capital DotNetNuke User Group&lt;/a&gt;, to leading the DotNetNuke Blog Project, being part of the DotNetNuke core team, speaking at Code Camp and so forth.&lt;br /&gt;
Little did I know that only one month into it, &lt;a target="_blank" href="http://www.cto20.com/cto20/tabid/647/EntryID/55/Default.aspx"&gt;I would be awarded a prize&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;Shortly thereafter, David contacted me to ask me if I would be interested in integrating Community-Credit's Web Service into the DotNetNuke Blog; now that's an interesting idea! Imagine being able to get automatic "community credit" immediately after posting your blog entry and without having to manually enter the information again on the community-credit.com website.&lt;/p&gt;
&lt;p&gt;Unfortunately since we are right in the middle of wrapping up development of the latest (and last) version of the DotNetNuke Blog which includes a slew of cool new features such as WetaWebLog API integration (which allows you to publish blogs using Windows Live Writer or even Microsoft Word), as well as social bookmarking, gravatar support for comments and more, I was not able to get this integration quite yet.&lt;/p&gt;
&lt;p&gt;Instead I decided to write a little smart client which I call "&lt;a target="_blank" href="http://www.codeplex.com/ccstudio"&gt;Community-Credit Studio&lt;/a&gt;".&lt;br /&gt;
I have created a project for it on &lt;a target="_blank" href="http://www.codeplex.com/"&gt;CodePlex&lt;/a&gt; and posted the source code as well as the application, which includes an MSI installed. The project page is &lt;a href="http://www.codeplex.com/ccstudio"&gt;http://www.codeplex.com/ccstudio&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you are an IT Professional and are a frequent visitor of Community-Credit.com, then go give the little app a try; I have lots of ideas on improving this application and make it even more useful while promoting Community-Credit, so if you wish to participate, drop me a line and I will add you as a developer to the CodePlex project.&lt;/p&gt;</description>
      <link>http://www.cto20.com/cto20/tabid/647/EntryID/56/Default.aspx</link>
      <author>antonio@inspectorit.com</author>
      <comments>http://www.cto20.com/cto20/tabid/647/EntryID/56/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.cto20.com/Default.aspx?tabid=647&amp;EntryID=56</guid>
      <pubDate>Sun, 11 May 2008 05:00:00 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.cto20.com/DesktopModules/Blog/Trackback.aspx?id=56</trackback:ping>
    </item>
    <item>
      <title>I am a Community-Credit Winner! W00t!</title>
      <description>&lt;p&gt;&lt;a href="http://www.community-credit.com"&gt;&lt;img alt="" align="left" border="0" src="http://www.community-credit.com/images/Logos/winner.jpg" /&gt; &lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I checked my email this morning, as usual, just as I am rolling out of bed (on my phone that is; no, I do not sleep with my laptop next to me.... I slide that underneath my bed &lt;img alt="" src="http://www.cto20.com/Providers/HtmlEditorProviders/Fck/FCKeditor/editor/images/smiley/msn/regular_smile.gif" /&gt;) and found that I won the April 2008 Community-Credit Award! (For more information what it is, go to &lt;a href="http://www.community-credit.com"&gt;www.community-credit.com&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Here is what they had to say:&lt;/p&gt;
&lt;p style="border-right: #ccc 1px solid; padding-right: 10px; border-top: #ccc 1px solid; padding-left: 10px; padding-bottom: 10px; border-left: #ccc 1px solid; padding-top: 10px; border-bottom: #ccc 1px solid; background-color: #ffffce"&gt;&lt;em&gt;Congratulations. You won 10th Prize in the April 2008 Contest. As you may know, a lot of people competed, but only a few won. Nicely done! Please also keep in mind that your prize is not just a stupid, geeky gift, but it's also a symbol to represent your contributions to the development community. When folks ask you how you won, you can tell them that it was by helping out other geeks. Be proud and brag.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="I am now officially a geek!" align="right" border="0" src="http://www.cto20.com/Portals/24/Blog/Files/55/star_trek_classic_communicator.jpg" /&gt;What did I win? ...a &lt;strong&gt;Star Trek Classic Communicator!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Captain Kirk is known for many things; one thing is being prepared for anything. Whenever Captain Kirk left the Enterprise, there were always three things he made sure he was equipped with. His Phaser, a tear-away shirt, and his Communicator. &lt;/p&gt;
&lt;p&gt;Now I too can talk to the Enterprise no matter where I am. Just flip up the grill, and I'll be greeted with the lights and sounds you've come to know and love. But not content with mere beeps, the UFP has packed this replica with voice clips from the actual series. Delight as I hear Mr. Spock ask me if I want an armed party beamed down and thrill as I call the Enterprise and hear Bridge here, Captain. So now I am equipped with the Communicator that futuristically prognosticated the invention of the cell phone, and I am ready for a communication . . . from the stars.&lt;/p&gt;
&lt;p&gt;Good lord I am a geek!&lt;/p&gt;</description>
      <link>http://www.cto20.com/cto20/tabid/647/EntryID/55/Default.aspx</link>
      <author>antonio@inspectorit.com</author>
      <comments>http://www.cto20.com/cto20/tabid/647/EntryID/55/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.cto20.com/Default.aspx?tabid=647&amp;EntryID=55</guid>
      <pubDate>Thu, 01 May 2008 05:00:00 GMT</pubDate>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://www.cto20.com/DesktopModules/Blog/Trackback.aspx?id=55</trackback:ping>
    </item>
    <item>
      <title>NoVa CodeCamp Reston: Developing DNN Modules 101</title>
      <description>&lt;p&gt;Hello Everyone!&lt;/p&gt;
&lt;p&gt;On May 17th, 2008, I will, once again, have the pleasure of speaking at the Northern VA Code Camp. &lt;br /&gt;
I will be doing a repeat session of "Developing DNN Modules 101" that I gave in March at the NoVa Code Camp South. If you were not able to join the session in March, be sure to join us in May at the &lt;a href="http://tinyurl.com/4x5qo5"&gt;Microsoft Technology Center in Reston, VA&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here is some additional information:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What:&lt;/strong&gt; &lt;br /&gt;
NoVa CodeCamp 2008.01 a free mini-conference created by and for the local .NET developer community.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;When:&lt;/strong&gt; &lt;br /&gt;
May 17, 2008 from 9a - 6p (we'll provide pizza for lunch, other options nearby)&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Where: &lt;br /&gt;
&lt;/strong&gt;Microsoft Offices in Reston, VA. (&lt;a href="http://tinyurl.com/4x5qo5"&gt;Directions&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;a href="http://tinyurl.com/23p7fb"&gt;Registration&lt;/a&gt; is limited to 200 and it's filling up fast - act now!&lt;/p&gt;</description>
      <link>http://www.cto20.com/cto20/tabid/647/EntryID/54/Default.aspx</link>
      <author>antonio@inspectorit.com</author>
      <comments>http://www.cto20.com/cto20/tabid/647/EntryID/54/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.cto20.com/Default.aspx?tabid=647&amp;EntryID=54</guid>
      <pubDate>Wed, 30 Apr 2008 05:00:00 GMT</pubDate>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.cto20.com/DesktopModules/Blog/Trackback.aspx?id=54</trackback:ping>
    </item>
    <item>
      <title>Fix: SQL Server Management Studio COM Error on Startup</title>
      <description>&lt;p&gt;Every once in a while, and especially when I build virtual machines from existing images, I run into a weird error when running SQL Server Management Studio:&lt;/p&gt;
&lt;div style="border-right: #ccc 1px solid; padding-right: 20px; border-top: #ccc 1px solid; padding-left: 20px; padding-bottom: 20px; margin: 10px; border-left: #ccc 1px solid; padding-top: 20px; border-bottom: #ccc 1px solid; font-family: courier new; background-color: #f8f8f8"&gt;Unable to cast COM object of type 'System.__ComObject' to interface type 'Microsoft.VisualStudio.OLE.Interop.IServiceProvider'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{6D5140C1-7436-11CE-8034-00AA006009FA}' failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).&lt;/div&gt;
&lt;p&gt;With a little google-ing around did find a solution, well, actually two.&lt;br /&gt;
Once solution involves running an update to some registry keys (which is what always works for me) and the second a re-registration of a DLL (you've gotta love COM).&lt;/p&gt;
&lt;h3&gt;Option 1&lt;/h3&gt;
&lt;p&gt;As I mentioned earlier, this option always worked form me, and therefore I have never had to resort to option 2. &lt;/p&gt;
&lt;p&gt;First, copy the following code snippet and paste it into a text file. Then rename the &lt;strong&gt;*.txt&lt;/strong&gt; file you copied the snippet to, and rename to &lt;strong&gt;*.reg&lt;/strong&gt;. &lt;br /&gt;
Now  run the fix by double-clicking on the *.reg file and voila'. &lt;br /&gt;
You'll get a message prompt telling you whether or not the registry was successfully update.&lt;/p&gt;
&lt;p&gt;&lt;span class="Code"&gt;
&lt;p&gt;Windows Registry Editor Version 5.00&lt;/p&gt;
&lt;p&gt;[HKEY_CLASSES_ROOT\Interface\{6D5140C1-7436-11CE-&lt;/p&gt;
&lt;p&gt;8034-00AA006009FA}]&lt;br /&gt;
@="IServiceProvider"&lt;/p&gt;
&lt;p&gt;[HKEY_CLASSES_ROOT\Interface\{6D5140C1-7436-11CE-&lt;/p&gt;
&lt;p&gt;8034-00AA006009FA}\NumMethods]&lt;br /&gt;
@="4"&lt;/p&gt;
&lt;p&gt;[HKEY_CLASSES_ROOT\Interface\{6D5140C1-7436-11CE-&lt;/p&gt;
&lt;p&gt;8034-00AA006009FA}\ProxyStubClsid32]&lt;br /&gt;
@="{B8DA6310-E19B-11D0-933C-00A0C90DCAA9}"&lt;/p&gt;
&lt;p&gt;[HKEY_CURRENT_USER\Software\Classes\Interface\{6D514&lt;/p&gt;
&lt;p&gt;0C1-7436-11CE-8034-00AA006009FA}]&lt;br /&gt;
@="IServiceProvider"&lt;/p&gt;
&lt;p&gt;[HKEY_CURRENT_USER\Software\Classes\Interface\{6D514&lt;/p&gt;
&lt;p&gt;0C1-7436-11CE-8034-00AA006009FA}\NumMethods]&lt;br /&gt;
@="4"&lt;/p&gt;
&lt;p&gt;[HKEY_CURRENT_USER\Software\Classes\Interface\{6D514&lt;/p&gt;
&lt;p&gt;0C1-7436-11CE-8034-00AA006009FA}\ProxyStubClsid32]&lt;br /&gt;
@="{B8DA6310-E19B-11D0-933C-00A0C90DCAA9}"&lt;/p&gt;
&lt;p&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{6D51&lt;/p&gt;
&lt;p&gt;40C1-7436-11CE-8034-00AA006009FA}]&lt;br /&gt;
@="IServiceProvider"&lt;/p&gt;
&lt;p&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{6D51&lt;/p&gt;
&lt;p&gt;40C1-7436-11CE-8034-00AA006009FA}\NumMethods]&lt;br /&gt;
@="4"&lt;/p&gt;
&lt;p&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{6D51&lt;/p&gt;
&lt;p&gt;40C1-7436-11CE-8034-00AA006009FA}\ProxyStubClsid32]&lt;br /&gt;
@="{B8DA6310-E19B-11D0-933C-00A0C90DCAA9}"&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;PLEASE NOTE: I strongly suggest you back up your registry, as I take NO responsibility it is breaks anything :-)&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;Option 2&lt;/h3&gt;
&lt;p&gt;If option one failed to resolve your problem, then try running the following regsvr32 command:&lt;/p&gt;
&lt;p&gt;&lt;span class="Code"&gt;C:\WINDOWS\system32&gt;regsvr32 actxprxy.dll&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; One last thing to mention is that no one seems to know or remotely understand what causes this issue.&lt;/p&gt;
&lt;p&gt;Additional information can be found here: &lt;a target="_blank" href="http://forums.microsoft.com/msdn/showpost.aspx?postid=120476&amp;siteid=1&amp;sb=0&amp;d=1&amp;at=7&amp;ft=11&amp;tf=0&amp;pageid=0"&gt;http://forums.microsoft.com/msdn/showpost.aspx?postid=120476&amp;siteid=1&amp;sb=0&amp;d=1&amp;at=7&amp;ft=11&amp;tf=0&amp;pageid=0&lt;/a&gt;&lt;/p&gt;</description>
      <link>http://www.cto20.com/cto20/tabid/647/EntryID/53/Default.aspx</link>
      <author>antonio@inspectorit.com</author>
      <comments>http://www.cto20.com/cto20/tabid/647/EntryID/53/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.cto20.com/Default.aspx?tabid=647&amp;EntryID=53</guid>
      <pubDate>Sun, 20 Apr 2008 05:00:00 GMT</pubDate>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.cto20.com/DesktopModules/Blog/Trackback.aspx?id=53</trackback:ping>
    </item>
    <item>
      <title>JibJab-ing with my Family!</title>
      <description>&lt;p&gt;Ok, file this one under &amp;quot;just plain silly but fun nontheless&amp;quot; :-)&lt;br /&gt;
Starring, my wife Calli, my daugther Aurora (5), and my son John (6 months), and of course, yours truly.&lt;/p&gt;</description>
      <link>http://www.cto20.com/cto20/tabid/647/EntryID/52/Default.aspx</link>
      <author>antonio@inspectorit.com</author>
      <comments>http://www.cto20.com/cto20/tabid/647/EntryID/52/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.cto20.com/Default.aspx?tabid=647&amp;EntryID=52</guid>
      <pubDate>Sat, 12 Apr 2008 05:00:00 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.cto20.com/DesktopModules/Blog/Trackback.aspx?id=52</trackback:ping>
    </item>
    <item>
      <title>NoVa Code Camp: Developing DotNetNuke Modules Slides and Code</title>
      <description>&lt;p&gt;The &lt;a href="http://novacodecamp.org/Portals/0/CodeCamp20080329/Code%20Camp%20South%20-%20DNN%20Module%20Development%20_3_29_08.zip"&gt;slides and code&lt;/a&gt; of my presentation from last Saturday's "Developing DotNetNuke Modules" presentation were posted on the NoVa Code Camp South &lt;a target="_blank" href="http://novacodecamp.org/"&gt;website&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Thanks to everyone that attended the event, and my session (of course). I had a great time attending other great sessions as well as doing my own presentation.&lt;/p&gt;
&lt;p&gt;For those of you who could not make it this time, but are still interested in learning more about DotNetNuke, I have volunteered to do the same presentation at the Reston Code Camp in May '08. None of the sessions have been confirmed yet, but I will let you all know if there will be room for another great DNN talk.&lt;/p&gt;
&lt;p&gt;Alternatively, you can always join us at the &lt;a target="_blank" href="http://capitaldug.org"&gt;Capital DotNetNuke User Group&lt;/a&gt;; We host a monthly meeting there as well. Chances are that I will do the same presentation there this month as well, so come on down and fun evening of Pizza and DNN!&lt;/p&gt;</description>
      <link>http://www.cto20.com/cto20/tabid/647/EntryID/51/Default.aspx</link>
      <author>antonio@inspectorit.com</author>
      <comments>http://www.cto20.com/cto20/tabid/647/EntryID/51/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.cto20.com/Default.aspx?tabid=647&amp;EntryID=51</guid>
      <pubDate>Tue, 01 Apr 2008 05:00:00 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.cto20.com/DesktopModules/Blog/Trackback.aspx?id=51</trackback:ping>
    </item>
    <item>
      <title>NoVa CodeCamp: Building a DotNetNuke Module</title>
      <description>&lt;p&gt;For those of you who are in the Washington DC metro area and are interested in learning more on building DotNetNuke Modules, I will be presenting at &lt;a target="_blank" href="http://novacodecamp.org/CodeCamps/NoVaCodeCampSouthv1/tabid/139/Default.aspx"&gt;NoVa CodeCamp South&lt;/a&gt; on Saturday, March 29th at the Strayer University Woodbridge Campus. &lt;/p&gt;
&lt;p&gt;NoVa CodeCamp is a free all-day developer event and has become an international trend where peer groups of all platforms, programming languages and disciplines band together to bring content to the community.&lt;br /&gt;
&lt;br /&gt;
My presentation, &lt;a target="_blank" href="http://novacodecamp.org/CodeCamps/NoVaCodeCampSouthv1/Schedule/tabid/140/Default.aspx"&gt;Developing DotNetNuke Modules&lt;/a&gt;, is scheduled for Saturday from 1:00pm - 2:15.pm  &lt;br /&gt;
&lt;br /&gt;
Registration is limited to 100 attendees and is filling up fast so please &lt;a href="http://tinyurl.com/39yhtw"&gt;register today&lt;/a&gt; if you're interested!&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;When&lt;/strong&gt;: March 29, 2008 from 9a - 5p (we'll provide pizza for lunch, other options nearby)&lt;br /&gt;
&lt;strong&gt;Where&lt;/strong&gt;: Strayer University Woodbridge Campus (&lt;a href="http://tinyurl.com/2kwob2"&gt;directions&lt;/a&gt;)&lt;br /&gt;
&lt;strong&gt;Registration&lt;/strong&gt;: &lt;a href="http://tinyurl.com/39yhtw"&gt;http://tinyurl.com/39yhtw&lt;/a&gt;&lt;/p&gt;</description>
      <link>http://www.cto20.com/cto20/tabid/647/EntryID/50/Default.aspx</link>
      <author>antonio@inspectorit.com</author>
      <comments>http://www.cto20.com/cto20/tabid/647/EntryID/50/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.cto20.com/Default.aspx?tabid=647&amp;EntryID=50</guid>
      <pubDate>Sun, 23 Mar 2008 05:00:00 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.cto20.com/DesktopModules/Blog/Trackback.aspx?id=50</trackback:ping>
    </item>
    <item>
      <title>Web Content Mavens: Open Source Web CMS</title>
      <description>&lt;p&gt;Recently I was invited by &lt;a target="_blank" href="http://webcms.meetup.com/39/members/3687645/"&gt;Scott Mendenhall&lt;/a&gt;, the organizer of the Web Content Mavens User Group, to be a panelist on DotNetNuke.&lt;/p&gt;
&lt;p&gt;The meeting's topic is &lt;a target="_blank" href="http://webcms.meetup.com/39/calendar/7089391/"&gt;Open Source Web CMS&lt;/a&gt;. It is on Wednesday, February 27, 2008 at 7:00 PM at R.F.D. Washington, 810 7th St. NW, Washington , DC 20001. If you wish to attende you can sign up at the &lt;a href="http://webcms.meetup.com/39/calendar/7089391/"&gt;meetup site&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The discussion will be moderated by Scott Mendenhall and will feature the following panelists:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Keith Casey from Casey Software on &lt;a target="_blank" href="http://drupal.org/"&gt;Drupal&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;Antonio Chagoury from &lt;a target="_blank" href="http://www.inspectorit.com"&gt;Inspector IT&lt;/a&gt; on &lt;a target="_blank" href="http://www.dotnetnuke.com"&gt;DotNetNuke&lt;/a&gt; (Yes, that is me)&lt;/li&gt;
    &lt;li&gt;Scott Davis from &lt;a target="_blank" href="http://www.alfresco.com/"&gt;Alfresco&lt;/a&gt; on &lt;a target="_blank" href="http://www.alfresco.com/products/solutions/ecm/wcm/"&gt;Alfresco WCM&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;Boris Kraft from Magnolia on &lt;a target="_blank" href="http://www.magnolia.info/en/products/community-edition.html"&gt;Magnolia&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;Joe LeBlanc on &lt;a target="_blank" href="http://www.joomla.org/"&gt;Joomla&lt;/a&gt;!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I am really looking forward to this event. I hope to learn a lot more on other CMS technologies and plan to share my knowledge and experience on the DotNetNuke platform.&lt;/p&gt;</description>
      <link>http://www.cto20.com/cto20/tabid/647/EntryID/49/Default.aspx</link>
      <author>antonio@inspectorit.com</author>
      <comments>http://www.cto20.com/cto20/tabid/647/EntryID/49/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.cto20.com/Default.aspx?tabid=647&amp;EntryID=49</guid>
      <pubDate>Fri, 22 Feb 2008 05:00:00 GMT</pubDate>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://www.cto20.com/DesktopModules/Blog/Trackback.aspx?id=49</trackback:ping>
    </item>
    <item>
      <title>RDP Into your Virtual Machine From Anywhere</title>
      <description>&lt;p&gt;I don't know about you, but for the past two years I have been using a virtual machine to do all my development.&lt;br /&gt;
The thought process is simple:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;I can back up the entire machine into one file&lt;/li&gt;
    &lt;li&gt;I can have as many configurations as I wish (operating systems, IDE version DB Servers, etc)&lt;/li&gt;
    &lt;li&gt;Clearly defines my business workspace versus my development workspace&lt;/li&gt;
    &lt;li&gt;Well, there is lots more, but I am not try to sell you on using virtualization here, just how to access it from anywhere you want ;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;My setup is fairly simple:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;One powerful desktop machine running Windows Vista Ultimate and hosting Virtual Machines&lt;/li&gt;
    &lt;li&gt;Software on this machine is limited to:
    &lt;ul&gt;
        &lt;li&gt;MS Office and a few other business apps&lt;/li&gt;
        &lt;li&gt;MSN Messenger&lt;/li&gt;
        &lt;li&gt;Skype&lt;/li&gt;
        &lt;li&gt;and a few other productivity tools.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;My Original Problem&lt;/h3&gt;
&lt;p&gt;I like to work in front of the TV (and eat too, by the way), so the first thing I tried was to RDP into the host machine, and in turn from there operate the Virtual Machine.&lt;br /&gt;
Anyone who has tried doing this before will tell you: &lt;em&gt;nice try!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Unfortunately, there are several issues with accessing the VM that way, including but not limited to video display issues. So without going into the endless details, that's out.&lt;/p&gt;
&lt;p&gt;I then realized that I could actually see the VM listed in the DHCP client table on my router at one point, which meant that it is in fact networked and ping-able.&lt;br /&gt;
I decided I was going to RDP directly into the VM's locally assigned IP and see what would happen. Success! And what's more, it works great! The performance of RDP'ing directly into a VM hosted on another physical machine is no different than RDP-ing into any physical machine.&lt;/p&gt;
&lt;p&gt;I used this set-up (from my TV Room, and Bed) for weeks and was pretty happy until I had to...&lt;/p&gt;
&lt;h3&gt;Access a Virtual Machine via RDP while outside of the comfort of your own Network&lt;/h3&gt;
&lt;p&gt;My bubble burst in a hurry when I had to access my VM while out of my home-office. I mean it was really important that I got access to that VM - really!&lt;br /&gt;
As I mentioned, the VM's host machine is in my home-office, and I only have one IP to work with. That IP was already bound to the RDP tcp port (3389) of the host machine, so that was taken. How can bind to the VM's IP+TCP PORT without removing RDP access to the host?&lt;/p&gt;
&lt;h3&gt;The Solution&lt;/h3&gt;
&lt;p&gt;Well, To put it short, I had a "Mac-Giver" moment. I figured that if there was a way to change the RDP listening tcp port of the VM, I could create an additional port-forwarding rule on my routers and voila! Theoretically, that made sense to me.&lt;/p&gt;
&lt;p&gt;I did a quick search to find out if there is a way to change the RDP listening port, and found this resource provided by Microsoft: &lt;a title="http://support.microsoft.com/kb/306759" target="_blank" href="http://support.microsoft.com/kb/306759"&gt;http://support.microsoft.com/kb/306759&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Okay, now we are making good progress, but when trying to access the machine (from within my local network) with the new port specified I got denied access. Another light-bulb went on: &lt;strong&gt;&lt;u&gt;Firewall&lt;/u&gt;&lt;/strong&gt;! I added the port exception on the VM's firewall, and there it was: access granted!&lt;/p&gt;
&lt;p&gt;Now that I had RDP access via custom port from within my local network, I needed to enable access from the outside.&lt;/p&gt;
&lt;p&gt;I logged into my router and accessed the port-forwarding admin screen and added a new rule for the new custom port and forwarded it to the VM's bound local IP address.&lt;/p&gt;
&lt;p&gt;Presto! - I could now access BOTH my host machine and VM via RDP using the SAME IP address! (Just different ports).&lt;/p&gt;
&lt;p&gt;See the step-by-step instructions below for setup details.&lt;/p&gt;
&lt;h3&gt;How to Deal with a Dynamic IP Address?&lt;/h3&gt;
&lt;p&gt;Yes, your IP "could" change between the time you  leave your office and the time you need to use your VM, although unlikely.&lt;/p&gt;
&lt;p&gt;I addressed this issue by using a FREE Hosted DNS service: &lt;a target="_blank" href="http://www.dyndns.org/"&gt;www.dyndns.org&lt;/a&gt;&lt;br /&gt;
DynDns.org allows me to point an FQDN (Fully Qualified Domain Name) to an IP that I specify. This allows me to connect to my RDP boxes via Friendly URLs such as &lt;a target="_blank" href="http://mydevelopmentmachine.dyndns.org/"&gt;http://mydevelopmentmachine.dyndns.org&lt;/a&gt; so that I don't have to remember the IP.&lt;br /&gt;
My router, a Linksys WRT300N, supports Dynamic DNS Updates (DDNS). What this means is that the router is capable of changing the IP address directly at &lt;a target="_blank" href="http://www.dyndns.org/"&gt;www.dyndns.org&lt;/a&gt; as soon as it detects that my ISP changed it. Here is what the admin screen looks like:&lt;/p&gt;
&lt;blockquote dir="ltr" style="margin-right: 0px"&gt;
&lt;p&gt;&lt;img alt="DynDNS" width="430" border="0" src="http://www.cto20.com/Portals/24/Blog/Files/48/DynDNS.GIF" /&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It will use the authentication details you provide, and perform the change on your behalf.&lt;/p&gt;
&lt;h3&gt;Step-By-Step Setup&lt;/h3&gt;
&lt;h4&gt;On your virtual machine:&lt;/h4&gt;
&lt;ol&gt;
    &lt;li&gt;Change the RDP listening tcp port as instructed in the following URL: &lt;a title="http://support.microsoft.com/kb/306759" target="_blank" href="http://support.microsoft.com/kb/306759"&gt;http://support.microsoft.com/kb/306759&lt;/a&gt;&lt;strong&gt;&lt;br /&gt;
    &lt;/strong&gt;&lt;img alt="Changing RDP TCP Port" width="476" border="0" src="http://www.cto20.com/Portals/24/Blog/Files/48/change_rdp_listening_port.GIF" /&gt; &lt;/li&gt;
    &lt;li&gt;Open Windows Firewall and add your custom tcp port to the exceptions list &lt;img alt="Windows Firewall Exception" width="393" border="0" src="http://www.cto20.com/Portals/24/Blog/Files/48/windows_firewall_exception.GIF" /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;On your router:&lt;/h4&gt;
&lt;ol&gt;
    &lt;li&gt;Add the newly created tcp port to the port forwarding rules and point it to the VM's bound local IP address. (In the table below, .100 is the HOST machine, and 104 is the VM's bound IP)&lt;br /&gt;
    &lt;img alt="Router Single Port Forwarding" width="555" border="0" src="http://www.cto20.com/Portals/24/Blog/Files/48/router_singleportforwarding.gif" /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I cannot even begin to tell you how useful this was for me, but I am always willing to learn new things and find other better ways to accomplish the same set-up, so if you have any tips and/or suggestions, please feel free to share them below.&lt;/p&gt;</description>
      <link>http://www.cto20.com/cto20/tabid/647/EntryID/48/Default.aspx</link>
      <author>antonio@inspectorit.com</author>
      <comments>http://www.cto20.com/cto20/tabid/647/EntryID/48/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.cto20.com/Default.aspx?tabid=647&amp;EntryID=48</guid>
      <pubDate>Mon, 18 Feb 2008 05:00:00 GMT</pubDate>
      <slash:comments>4</slash:comments>
      <trackback:ping>http://www.cto20.com/DesktopModules/Blog/Trackback.aspx?id=48</trackback:ping>
    </item>
    <item>
      <title>DNN Best Kept Secrets Part 1: DNN Paging Control</title>
      <description>
&lt;p&gt;If you are a developer and like me you mostly develop data driven applications, then I am sure that you have had to write a couple of paging functions and controls. I very rarely use the asp.net &lt;em&gt;&lt;strong&gt;datagrid&lt;/strong&gt;&lt;/em&gt; control as I find it bloated and harder to customize its UI. Instead I use the handy and much lighter weigth &lt;strong&gt;&lt;em&gt;datalist&lt;/em&gt;&lt;/strong&gt; and &lt;em&gt;&lt;strong&gt;repeater&lt;/strong&gt;&lt;/em&gt; controls.&lt;/p&gt;
&lt;p&gt;Of course the drawback with the afore mentioned controls is that they do not come equipped with an integrated paging control as the &lt;em&gt;&lt;strong&gt;datagrid&lt;/strong&gt;&lt;/em&gt; does, but the folks at DotNetNuke did a fine job at remedying the situation: they built a re-usable Paging Control. If you are a DotNetNuke module developer, you should definitely consider using it instead of building your own. This is exactly what I did, and I am now sharing my experience since finding these "nuggets" of useful built-in functions and controls within &lt;a target="_blank" href="http://www.dotnetnuke.com/"&gt;&lt;font color="#669966"&gt;DotNetNuke&lt;/font&gt;&lt;/a&gt; is more like "treasure hunting"!&lt;/p&gt;
&lt;p&gt;First and foremost, I have to note that the DotNetNuke paging control does not manage the data, in fact it does not even bind to a source. All that the DotNetNuke Paging Control does is generate a paging interface, and builds the paging links based on some key data that you feed into it at run time. The information you provide control at runtime is as follows:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;TotalRecords&lt;br /&gt;
    Once you have filled your collection object, get its row count and feed it to this property of the control&lt;/li&gt;
    &lt;li&gt;PageSize&lt;br /&gt;
    Define the size of each page (i.e. the number of records you wish to display on each page)&lt;/li&gt;
    &lt;li&gt;CurrentPage&lt;br /&gt;
    Get the current page index and feed it into this property (i.e. Once the pager initiates the paging, you can get the pageindex from the querystring called CurrentPage)&lt;/li&gt;
    &lt;li&gt;Querystring &lt;br /&gt;
    If your module needs its own custom querystring parameters, feed them into this property, the paging links will append them for you so that your data continues to load normally)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following is a code example for filling the the properties mentioned above:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;span class="Code"&gt;ctlPagingControl.TotalRecords = TotalRecords &lt;br /&gt;
ctlPagingControl.PageSize = PageSize &lt;br /&gt;
ctlPagingControl.CurrentPage = PageIndex&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The following is a screen shot of the generated Paging Control:&lt;/p&gt;
&lt;p align="center"&gt;&lt;img height="33" alt="DNNPaginControl" width="476" border="0" src="http://www.cto20.com/Portals/24/Blog/Files/46/DNNPaginControl.GIF" /&gt;&lt;/p&gt;
&lt;h2&gt;Putting it all together&lt;/h2&gt;
&lt;p&gt;Let's start by adding the control to your UI page. First we must register the WebControl assembly (DotNetNuke.UI.WebControls) at the top of your page, and then add the control to a location of the page of your choice. The code example below assumes you are adding this paging control below your datalist/repeater:&lt;/p&gt;


&lt;blockquote&gt;
&lt;pre&gt;&lt;%@ Register TagPrefix="dnn" Namespace="DotNetNuke.UI.WebControls" Assembly="DotNetNuke" %&gt;&lt;br&gt;&lt;asp:Datalist ID="Datalist1" runat="server"&gt;&lt;br&gt;&lt;/asp:Datalist&gt;&lt;br&gt;&lt;dnn:PagingControl id="PagingControl1" runat="server"&gt;&lt;/dnn:PagingControl&gt;&lt;/pre&gt;
&lt;/blockquote&gt;


&lt;p&gt;The next (and last) thing to do is stitch the control to your data source.&lt;br /&gt;
First let me explain that there are two ways (that I know of) you can page your data:&lt;/p&gt;

&lt;ol&gt;
    &lt;li&gt;&lt;strong&gt;Via Stored Procedure or Data Access:&lt;br /&gt;
    &lt;/strong&gt;This is the most labor intensive, but will give you better performance. Basically you page the data in the stored procedure itself by passing the PageIndex and the PageSize into it so that it return and fills your collection with just the rows that you need.&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Via Use the &lt;/strong&gt;&lt;a target="_blank" href="http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.pageddatasource.aspx"&gt;&lt;strong&gt;&lt;font color="#669966"&gt;PagedDataSource&lt;/font&gt;&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; Class&lt;/strong&gt;&lt;br /&gt;
    This class enables you to page the entire source with much less code, however, all the rows are fetched at each page request, regardless of which page you are on (Unless you do some additional data caching in your asp.net code, in which case you are ok).&lt;br /&gt;
    For simplicity's sake, the example I provide below implements this methodology.&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt; &lt;/p&gt;
&lt;pre&gt;
Private Sub BindDatalist()
	Dim PageSize = 20 'Display 20 items per page

    'Get the currentpage index from the url parameter
    If Request.QueryString("currentpage") IsNot Nothing Then
	    _CurrentPage = Request.QueryString("currentpage").ToString
    Else
    	_CurrentPage = 1
    End If

    'Call you data layer and get the data you need to bind to the datalist
    Dim objDataController As New YouDataController
    Dim objCollection As List(Of YourObject) = objDataController.GetData()
    
    'Fill the PagedDataSource object's datasource property with your collection
    Dim objPagedDataSource As New PagedDataSource
    objPagedDataSource.DataSource = objCollection
    
    If Me.PageSize &gt; 0 Then
    	objPagedDataSource.PageSize = PageSize
    	objPagedDataSource.CurrentPageIndex = _CurrentPage - 1
        objPagedDataSource.AllowPaging = True
    End If

	'Bind the datalist
	dlWhoIsOnline.DataSource = objPagedDataSource
	dlWhoIsOnline.DataBind()

	'Show/hide the pager based on on the number of rows fetched vs pagesize
    If PageSize = 0 OrElse objDataController.Count &lt;= PageSize Then
    	ctlPagingControlBottom.Visible = False
    Else
    	ctlPagingControlBottom.Visible = True
        With ctlPagingControlBottom
        	.TotalRecords = objDataController.Count
            .PageSize = PageSize
             .CurrentPage = _CurrentPage
             .TabID = TabId
       End With
	End If
End Sub&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;You should now be able to run your project and test the paging control.&lt;/p&gt;
&lt;p&gt;Feel free to post your comments below if you need additional information.&lt;/p&gt;
</description>
      <link>http://www.cto20.com/cto20/tabid/647/EntryID/46/Default.aspx</link>
      <author>antonio@inspectorit.com</author>
      <comments>http://www.cto20.com/cto20/tabid/647/EntryID/46/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.cto20.com/Default.aspx?tabid=647&amp;EntryID=46</guid>
      <pubDate>Wed, 13 Feb 2008 05:00:00 GMT</pubDate>
      <slash:comments>18</slash:comments>
      <trackback:ping>http://www.cto20.com/DesktopModules/Blog/Trackback.aspx?id=46</trackback:ping>
    </item>
    <item>
      <title>Radio Button Control in ASP.net Datalist/Repeater</title>
      <description>&lt;p&gt;The other day I had to build a simple listing of data that required having a radio button on each line so as to enable a user to select and option. I planned to use a datalist control and to place a radio button control in the itemtemplate.&lt;/p&gt;
&lt;p&gt;When I ran a quick test I immediately noticed a peculiar issue, all the radio buttons where selectable at the same time!&lt;/p&gt;
&lt;p&gt;As usual, I googled the symptom and quickly found that there seems to be an issue with both ASP.net 1.1 and 2.0 where the radio button controls in the list become all selectable (more like checkboxes) while the whole idea behind a radio button is to have just one in the list selectable at a time.&lt;/p&gt;
&lt;p&gt;After further reseach, I found that the reason why this is happening is simply because of the way the asp.net assigns the Control's ID at run-time.  Basically this problem occurs because the &lt;strong&gt;Repeater/Datalist&lt;/strong&gt; server control implements the &lt;strong&gt;INamingContainer&lt;/strong&gt; interface, which requires that all controls that are nested within it must have a unique name when rendered in Hypertext Markup Language (HTML). Therefore, the HTML name attribute of any rendered child server control is unique. In order to work correctly, radio buttons must have the same ID.&lt;/p&gt;
&lt;p&gt;Thankfully, I was able to find some resources online that helped me quickly overcome this limitation (bug?). Here is what you need to do:&lt;/p&gt;
&lt;p&gt;In your ASPX or ASCX add the following piece of Javascript:&lt;/p&gt;
&lt;p&gt;&lt;span class="Code"&gt;&lt;script language="javascript" type="text/javascript"&gt;&lt;br /&gt;
 function SetUniqueRadioButton(nameregex, current)&lt;br /&gt;
{&lt;br /&gt;
   re = new RegExp(nameregex);&lt;br /&gt;
   for(i = 0; i &lt; document.forms[0].elements.length; i++)&lt;br /&gt;
   {&lt;br /&gt;
      elm = document.forms[0].elements[i]&lt;br /&gt;
      if (elm.type == 'radio')&lt;br /&gt;
      {&lt;br /&gt;
         if (re.test(elm.name))&lt;br /&gt;
         {&lt;br /&gt;
            elm.checked = false;&lt;br /&gt;
         }&lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
   current.checked = true;&lt;br /&gt;
}&lt;br /&gt;
&lt;/script&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Now, in your code behind, and in the &lt;strong&gt;ItemDataBound&lt;/strong&gt; event of your &lt;strong&gt;Repeater/Datalist&lt;/strong&gt; find the Radio Button control and add an &lt;strong&gt;OnClick&lt;/strong&gt; attribute to call the Javascript function you just added to your page:&lt;/p&gt;
&lt;p&gt;&lt;span class="Code"&gt;Dim strFunction As String = "SetUniqueRadioButton(&lt;em&gt;'YourDalistID&lt;/em&gt;.*&lt;em&gt;YourRadioButtonControlGroupName'&lt;/em&gt;,this)"&lt;br /&gt;
RadioButtonControl1.Attributes.Add("onclick", strFunction)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Make sure that you replace the YourDatalistID and YourRadioButtonControlGroupName tokens above with your naming scheme.&lt;/p&gt;
&lt;p&gt;In short, the javascript will loop through the radio buttons in your repeater/datalist and uncheck any of the previously checked radion buttons.&lt;/p&gt;</description>
      <link>http://www.cto20.com/cto20/tabid/647/EntryID/45/Default.aspx</link>
      <author>antonio@inspectorit.com</author>
      <comments>http://www.cto20.com/cto20/tabid/647/EntryID/45/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.cto20.com/Default.aspx?tabid=647&amp;EntryID=45</guid>
      <pubDate>Sat, 02 Feb 2008 00:00:00 GMT</pubDate>
      <slash:comments>6</slash:comments>
      <trackback:ping>http://www.cto20.com/DesktopModules/Blog/Trackback.aspx?id=45</trackback:ping>
    </item>
    <item>
      <title>C-DUG Presentation: DotNetNuke Upgrades Best Practices</title>
      <description>&lt;p&gt;On January 16th at 7:00pm, I will be giving my first talk of 2008: a Best Practices for anyone who intends on upgrading their production DotNetNuke portals.&lt;/p&gt;
&lt;p&gt;Here's the skinny:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Upgrading your websites can be a daunting experience whether you are using DotNetNuke or any other platform. On high volume websites you must ensure the least amount of downtime, that data loss does not occur and that you always have a way to revert back to an original state.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;During this event I will demonstrate best practices and recommendations that should be applied before, during and after upgrading your DotNetNuke portal.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;So come on down and join us for a nice evening of DotNetNuking! &lt;a target="_blank" href="http://www.capitaldug.org/Home/tabid/36/EntryID/16/Default.aspx"&gt;Click here for more information&lt;/a&gt;.&lt;/p&gt;</description>
      <link>http://www.cto20.com/cto20/tabid/647/EntryID/44/Default.aspx</link>
      <author>antonio@inspectorit.com</author>
      <comments>http://www.cto20.com/cto20/tabid/647/EntryID/44/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.cto20.com/Default.aspx?tabid=647&amp;EntryID=44</guid>
      <pubDate>Wed, 02 Jan 2008 00:00:00 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.cto20.com/DesktopModules/Blog/Trackback.aspx?id=44</trackback:ping>
    </item>
    <item>
      <title>DotNetNuke Blog 03.04.00 Development is Complete</title>
      <description>&lt;p&gt;Hello Folks,&lt;/p&gt;
&lt;p&gt;Just a quick note to let you know that moments ago I submitted the Blog module to the release tracker.&lt;/p&gt;
&lt;p&gt;We dedicated this release to fixing the critical issues reported by the community. I am confident that this release will be well received as it does include some nice UI enhancements as well.&lt;/p&gt;
&lt;p&gt;Here is a quick list of the issues resolved in this version, for more details please go to &lt;a href="http://www.support.dotnetnuke.com/"&gt;www.support.dotnetnuke.com&lt;/a&gt;&lt;/p&gt;</description>
      <link>http://www.cto20.com/cto20/tabid/647/EntryID/42/Default.aspx</link>
      <author>antonio@inspectorit.com</author>
      <comments>http://www.cto20.com/cto20/tabid/647/EntryID/42/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.cto20.com/Default.aspx?tabid=647&amp;EntryID=42</guid>
      <pubDate>Thu, 06 Dec 2007 00:00:00 GMT</pubDate>
      <slash:comments>3</slash:comments>
      <trackback:ping>http://www.cto20.com/DesktopModules/Blog/Trackback.aspx?id=42</trackback:ping>
    </item>
    <item>
      <title>C-DUG Presentation: What's new in DotNetNuke 4.7</title>
      <description>&lt;p&gt;Once again, November 28 2007, was time for another &lt;a target="_blank" href="http://www.capitaldug.org"&gt;Capital DotNetNuke User Group&lt;/a&gt; meeting.&lt;/p&gt;
&lt;p&gt;A good buddy of mine, &lt;a target="_blank" href="http://weblogs.asp.net/alecwhittington/"&gt;Alec Whittington&lt;/a&gt; was supposed to help me out with this presentation since he happened to be in town, but unfortunately he had to return home earlier than expected. Alec is also a project lead for the DotNetNuke &lt;a target="_blank" href="http://www.dotnetnuke.com/Products/Development/Projects/ModuleLinks/tabid/857/Default.aspx"&gt;Links&lt;/a&gt; module and is well known and respected within the DNN community. I am sure the User Group members would have enjoyed meeting him in person. Oh well.... he'll be back!&lt;/p&gt;
&lt;p&gt;Although I literally had only an hour to prepare for this presentation, the session went very well, albeit we found a few undocumented bugs along the way. I always have fun at these meetings!&lt;/p&gt;
&lt;p&gt;Here is what I found new in DotNetNuke 4.7:&lt;/p&gt;
&lt;h3&gt;Modules:&lt;/h3&gt;
&lt;ol&gt;
    &lt;li&gt;&lt;strong&gt;Store&lt;/strong&gt;
    &lt;ul&gt;
        &lt;li&gt;We really did not get to play around this all that much due to time constraints, but what I know is that this is the first release of the store module since it was taken over and revived by Will Morgenweck. I personally know some of Will's magic work and I am sure that in time this module will become as robust as any of his other commercial products.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Marketplace&lt;/strong&gt;
    &lt;ul&gt;
        &lt;li&gt;This module allows you to simply provide your merchant id that you would get from the DotNetNuke Marketplace in order to generate referrals from people that click on the image. Honestly, I think the community could have done without this module, but hey, it's in there.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Authentication:&lt;/h3&gt;
&lt;p&gt;There are now 5 different authentication providers in DNN. In fact, some of these were available in 4.6.2 but I figured I would bundle them in here as well.&lt;br /&gt;
While going through a demonstration of LiveID we did find some bugs that were already reported by the community and that I know are being worked on for future releases. Nevertheless, these are some cool features to have out of the box!&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;&lt;strong&gt;LiveId &lt;/strong&gt;&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;OpenId &lt;/strong&gt;&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Cardspace &lt;/strong&gt;&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;AD &lt;/strong&gt;&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;DNN&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Newsletter:&lt;/h3&gt;
&lt;p&gt;The newsletter really needed some TLC, and it got just that with 4.7.&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;&lt;strong&gt;Token Replacement&lt;/strong&gt;
    &lt;ul&gt;
        &lt;li&gt;You can now include TOKEN in the body of your email and they will be replaced at run-time to build the dynamic emails that you've always wanted. Sebastian Leupold has detailed a lot of this in &lt;a target="_blank" href="http://www.dotnetnuke.com/Community/Blogs/tabid/825/EntryID/1613/Default.aspx"&gt;this post&lt;/a&gt;.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Language&lt;/strong&gt;
    &lt;ul&gt;
        &lt;li&gt;Gives you the ability to write a newsletter in different languages.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Role Groups Filtering&lt;/strong&gt;
    &lt;ul&gt;
        &lt;li&gt;For sites with TONS of roles and groups, gives you the ability to filter roles by group.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Host Settings:&lt;/h3&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;Enable Ajax&lt;/strong&gt;
    &lt;ul&gt;
        &lt;li&gt;You can now enable/disable Ajax entirely from here. This is good for those that are hosted on environments which do not support ASP.net Ajax yet.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Portals:&lt;/h3&gt;
&lt;p&gt;Although I am not sure if this one was introduce only in 4.7, but that's when I found :)&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;&lt;strong&gt;Delete Expired Portals&lt;/strong&gt;
    &lt;ul&gt;
        &lt;li&gt;This is useful for those that allow for public portal sign-up with a free trial. It allows you to clean up all those expired and unused portals taking up all that space in db. I am not sure if it delete the portal folders, but I'll try that and post an update to this post.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Module Definitions:&lt;/h3&gt;
&lt;ol&gt;
    &lt;li&gt;&lt;strong&gt;Enable partial rendering for each control&lt;/strong&gt;
    &lt;ul&gt;
        &lt;li&gt;Once again, this was introduced prior to 4.7. This will enable Ajax for the module control. Every postback in it will be converted to an async callback.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Control Source&lt;/strong&gt;
    &lt;ul&gt;
        &lt;li&gt;This new addition would enable you to pick a control from any specified location. You are no longer restricted to the DesktopModules and Admin folders.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Skins:&lt;/h3&gt;
&lt;ol&gt;
    &lt;li&gt;&lt;strong&gt;Edit Skin Attributes&lt;/strong&gt;
    &lt;ul&gt;
        &lt;li&gt;This one is definetely a cool one. In your skins page, you can now modify the Skin Object attributes (such as CssClass for example). This allow you to quickly and easily (without calling on your HTML/CSS designer) modify minor skin nuances with a few mouse clicks.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Toolbar:&lt;/h3&gt;
&lt;ol&gt;
    &lt;li&gt;&lt;strong&gt;Design button is gone!&lt;/strong&gt;
    &lt;ul&gt;
        &lt;li&gt;The design button on the toolbar was moved to the Mode section (top-left) as a radio button. There were issues with the way that this worked in the past where users thought that the data was lost!&lt;/li&gt;
    &lt;/ul&gt;
    &lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Add Page:&lt;/h3&gt;
&lt;ol&gt;
    &lt;li&gt;&lt;strong&gt;Select a Template Folder&lt;/strong&gt;
    &lt;ul&gt;
        &lt;li&gt;You can now select a different template folder. This is a good addition as it allows you to better organize your DNN file system.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Well, that's all folks! I hope this is useful.&lt;/p&gt;
&lt;p&gt;If you know of any additional features (I am sure I missed a few) please drop me a comment below.&lt;/p&gt;</description>
      <link>http://www.cto20.com/cto20/tabid/647/EntryID/43/Default.aspx</link>
      <author>antonio@inspectorit.com</author>
      <comments>http://www.cto20.com/cto20/tabid/647/EntryID/43/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.cto20.com/Default.aspx?tabid=647&amp;EntryID=43</guid>
      <pubDate>Thu, 06 Dec 2007 00:00:00 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.cto20.com/DesktopModules/Blog/Trackback.aspx?id=43</trackback:ping>
    </item>
    <item>
      <title>C-DUG, Microsoft to host Visual Studio 2008 InstallFest</title>
      <description>&lt;p&gt;The &lt;a target="_blank" href="http://www.capitaldug.org"&gt;Capital DotNetNuke User Group&lt;/a&gt;, &lt;a target="_blank" href="http://www.caparea.net"&gt;Capital Area .net User Group&lt;/a&gt; and the &lt;a target="_blank" href="http://www.novasql.com/"&gt;NOVA SQL User Group&lt;/a&gt; have teamed up with Microsoft in hosting our December meeting which will take place on the evening of the 12th.&lt;/p&gt;
&lt;p&gt;This will be a night of geeking, gaming, and networking while Microsoft provides 100 people with 90-day trial DVDs for Visual Studio 2008 Professional accompanied by vouchers for the full version.&lt;/p&gt;
&lt;p&gt;There will be extra benefits to those installing Visual Studio 2008 during the event, so bring your laptop, ask Santa for an external hard drive and bring that too!&lt;/p&gt;
&lt;p&gt;Seats are LIMITED, so act now and register here: &lt;a href="https://www.clicktoattend.com/invitation.aspx?code=123030"&gt;https://www.clicktoattend.com/invitation.aspx?code=123030&lt;/a&gt;&lt;/p&gt;</description>
      <link>http://www.cto20.com/cto20/tabid/647/EntryID/41/Default.aspx</link>
      <author>antonio@inspectorit.com</author>
      <comments>http://www.cto20.com/cto20/tabid/647/EntryID/41/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.cto20.com/Default.aspx?tabid=647&amp;EntryID=41</guid>
      <pubDate>Tue, 27 Nov 2007 06:00:00 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.cto20.com/DesktopModules/Blog/Trackback.aspx?id=41</trackback:ping>
    </item>
    <item>
      <title>Virtual Earth v6 Is Here</title>
      <description>&lt;p&gt;Last week Microsoft released the Virtual Earth Map Control v6 API.  Here are some of the details:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;DOC: &lt;a target="_blank" mce_href="http://msdn2.microsoft.com/en-us/library/bb429619.aspx" href="http://msdn2.microsoft.com/en-us/library/bb429619.aspx"&gt;Virtual Earth Map Control SDK, Version 6.0&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;DOC: &lt;a target="_blank" mce_href="http://go.microsoft.com/fwlink/?linkid=99049" href="http://go.microsoft.com/fwlink/?linkid=99049"&gt;Virtual Earth Map Control SDK (CHM file)&lt;/a&gt; &lt;/li&gt;
    &lt;li&gt;SDK: &lt;a target="_blank" mce_href="http://dev.live.com/virtualearth/sdk/" href="http://dev.live.com/virtualearth/sdk/"&gt;Virtual Earth Interactive SDK&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Some of the major focuses of this release are enhanced accuracy, performance, Safari Browser support as well as a new interface. There seems to have been no report of breaking changes from version 5, so a simple change in the javascript URL should be enough for anyone to upgrade.&lt;/p&gt;
&lt;p&gt;Here are a few features and enhancements that you will find with the new version 6:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;New Zooming Option&lt;br /&gt;
    &lt;/strong&gt;Another interesting interactive option is to change from the default scroll wheel zooming on the centre of the screen to zoom on the mouse location – ala google maps. It is enabled with one line of code: map.SetMouseWheelZoomToCenter(false);&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Multipoint Routing&lt;br /&gt;
    &lt;/strong&gt;A new GetDirections method was added to support multipoint routing on the map.  Also, additional options have been added to better customize route rendering including the ability to customize the route color and pushpins. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Improved Geocoding&lt;/strong&gt; &lt;strong&gt;Accuracy and Relevance&lt;br /&gt;
    &lt;/strong&gt;We have added more accurate geocoding when using the Find call with a location.  Multiple geocoders and datasets provide more relevant and accurate results.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Rooftop Geocoding Support&lt;br /&gt;
    &lt;/strong&gt;Rooftop geocoding is now supported.  The rooftop geocoded location will be returned when available when making a Find call with a location. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Improved Performance&lt;br /&gt;
    &lt;/strong&gt;Peformance with large numbers of pushpins has been improved. A new method to add a large number of VEShape pushpins to the map was added to improve the initial drawing of the map with large number of pushpins.  Also, performance of map operations with shapes has been improved. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Altitude for shapes&lt;br /&gt;
    &lt;/strong&gt;Altitude support for shapes in 3D is now supported so you can position shapes in 3D above the earth. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Pushpin Accuracy in Birdseye&lt;br /&gt;
    &lt;/strong&gt;There is now an option to more accurately position VEShape pushpins when in Birdseye view to more accurately pinpoint places in Birdseye. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Improved shape control&lt;br /&gt;
    &lt;/strong&gt;You can now specify the ZIndex of VEShapes and tile layers to control the order of content on the map. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Realtime Traffic&lt;br /&gt;
    &lt;/strong&gt;The v6 platform now supports real time traffic flows which can be displayed over the map. Licensing restrictions for this feature apply.&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Shaded Map Style&lt;br /&gt;
    &lt;/strong&gt;A new shaded map style was added which shows elevation with the traditional Road view &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;SafariSupport&lt;br /&gt;
    &lt;/strong&gt;Virtual Earth v6 platform now supports the Safari 2.0 browser in addition to Internet Explorer and Firefox. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Improved 3D Experience&lt;br /&gt;
    &lt;/strong&gt;Enhanced 3D features &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;MapCruncher (Beta)&lt;br /&gt;
    &lt;/strong&gt;Add your own custom image layers to the map using MapCruncher (Beta) for Virtual Earth &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Improved Birdseye Control&lt;br /&gt;
    &lt;/strong&gt;A new SetBirdseyeScene method was added to improve the control of Birdseye based on latitude and longitude instead of requiring a scene id. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;New Navigation Control&lt;br /&gt;
    &lt;/strong&gt;A new enhanced default navigation control was added for v6.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So go ahead and give it a quick try and see if you agree with me when I say that I am impressed with the changes so far.&lt;/p&gt;</description>
      <link>http://www.cto20.com/cto20/tabid/647/EntryID/40/Default.aspx</link>
      <author>antonio@inspectorit.com</author>
      <comments>http://www.cto20.com/cto20/tabid/647/EntryID/40/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.cto20.com/Default.aspx?tabid=647&amp;EntryID=40</guid>
      <pubDate>Tue, 23 Oct 2007 16:00:00 GMT</pubDate>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://www.cto20.com/DesktopModules/Blog/Trackback.aspx?id=40</trackback:ping>
    </item>
    <item>
      <title>SharePoint Gets a Web 2.0 Facelift </title>
      <description>&lt;p&gt;&lt;em&gt;"Microsoft is unveiling a series of upgrades and additions to SharePoint that it believes will appeal to business users as well as to individual consumers.&lt;/em&gt;"&lt;/p&gt;
&lt;p&gt;This is a direct result of the recent Microsoft announcement of the strategic alliance with Atlassian and NewsGator.&lt;/p&gt;
&lt;p&gt;Atlassian's &lt;a target="_blank" href="http://www.atlassian.com/software/confluence/"&gt;Confluence&lt;/a&gt; product is making its way into the SharePoint's stack by way of a plug-in. This plug-in allows information to be shared between the Confluence Wiki application and SharePoint.&lt;br /&gt;
A beta version of the plug-in is available &lt;a target="_blank" href="http://www.atlassian.com/sharepoint/"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;NewsGator's &lt;a target="_blank" href="http://www.newsgator.com/Business/SocialSites/Default.aspx"&gt;Social Sites&lt;/a&gt; product built specifically for SharePoint will add more functionality such as an improved RSS Reader, Feed Manager, Tagging and other Web 2.0 and social networking widgets.&lt;br /&gt;
NewGators &lt;a target="_blank" href="http://www.newsgator.com/CompanyInfo/Press/Archive.aspx?post=140"&gt;announced&lt;/a&gt; the general availability of Social Sites at the Web 2.0 Conference on October 17th, 2007.&lt;/p&gt;
&lt;h3&gt;Related Articles&lt;/h3&gt;
&lt;p&gt;&lt;a target="_blank" href="http://www.informationweek.com/news/showArticle.jhtml?articleID=199905739"&gt;&lt;strong&gt;Microsoft Adds Web 2.0 Enhancements To SharePoint&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
June 20, 2007: TechWeb, David Gardner&lt;br /&gt;
Read Gardner's interview with Derek Burney, General Manager of SharePoint Platform &amp; Tools, on the Web 2.0 technologies Microsoft is delivering under the SharePoint platform. The article also references how customers like Hawaiian Airlines and the Body Shop are using SharePoint Server 2007 for their external facing websites.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://news.com.com/8300-10784_3-7-0.html?keyword=enteprise+2.0"&gt;&lt;strong&gt;Microsoft does 'social computing' with SharePoint&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
June 19, 2007: CNET News.com, Martin LaMonica&lt;br /&gt;
Microsoft announced Community Kit for SharePoint, a Web add-on that enables businesses to take advantage of "Enterprise 2.0" services, such as enhancing a blog's look, better wiki tools, and a tag cloud feature.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://office.microsoft.com/search/redir.aspx?AssetID=XT102294161033&amp;CTT=5&amp;Origin=HA102294211033"&gt;&lt;strong&gt;Most business tech pros wary about Web 2.0 tools in business&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
February 24, 2007: Information Week, Nicholas Hoover&lt;br /&gt;
This article discusses the concerns enterprises have about the security, return on investment, and employees' adoption of Web 2.0 business tools. It also mentions how different corporations are using SharePoint and other Microsoft products to improve their collaboration platform.&lt;/p&gt;</description>
      <link>http://www.cto20.com/cto20/tabid/647/EntryID/39/Default.aspx</link>
      <author>antonio@inspectorit.com</author>
      <comments>http://www.cto20.com/cto20/tabid/647/EntryID/39/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.cto20.com/Default.aspx?tabid=647&amp;EntryID=39</guid>
      <pubDate>Mon, 22 Oct 2007 13:00:00 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.cto20.com/DesktopModules/Blog/Trackback.aspx?id=39</trackback:ping>
    </item>
    <item>
      <title>Microsoft Live Labs Launches LISTAS.</title>
      <description>&lt;p&gt;&lt;a atomicselection="true" href="http://listas.labs.live.com/"&gt;&lt;img alt="Logo_Listas_Thumbnail" align="right" border="0" src="http://labs.live.com/content/binary/Logo_Listas_Thumbnail.png" /&gt;&lt;/a&gt;Microsoft Live Labs, is always experimenting with new and (sometimes) useful ideas.  Recently they released their latest technology preview:&lt;/p&gt;
&lt;h3 align="center"&gt;Listas (&lt;a href="http://listas.labs.live.com/"&gt;&lt;font color="#0088e4"&gt;http://listas.labs.live.com&lt;/font&gt;&lt;/a&gt;)&lt;/h3&gt;
&lt;p&gt;Listas is a tool for the creation, management and sharing of lists, notes, favorites, and more. It allows you to quickly and easily edit lists, share them with others for reading or wiki-style editing, and discover the public lists of other users.  We encourage you to try using it for meeting notes, bookmarks, shopping lists, to plan a night out, or whatever other creative ways you can think of.&lt;/p&gt;
&lt;p&gt;In the Listas Community Section, you will find a number of highlights of the most popular and random items from around the community of public lists such as the most used tags, the hottest lists, and prolific contributors.   You can even add others’ lists (or any RSS feed) to your own Listas so you are always up to date.&lt;/p&gt;
&lt;p align="center"&gt;&lt;a atomicselection="true" href="http://listas.labs.live.com/"&gt;&lt;img height="370" alt="Screenshot_Listas_Small" width="500" border="0" src="http://labs.live.com/content/binary/Screenshot_Listas_Small.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You can create lists from all the things you find on the web, like search results, wish lists, videos, or all or part of virtually any page with the &lt;a href="http://listas.labs.live.com/toolbar/"&gt;&lt;font color="#0088e4"&gt;Listas Toolbar&lt;/font&gt;&lt;/a&gt; for Internet Explorer:&lt;/p&gt;
&lt;p&gt;&lt;a atomicselection="true" href="http://listas.labs.live.com/toolbar/"&gt;&lt;img height="25" alt="Toolbar" width="518" border="0" src="http://labs.live.com/content/binary/Toolbar.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://listas.labs.live.com/"&gt;&lt;font color="#0088e4"&gt;Give Listas a try&lt;/font&gt;&lt;/a&gt;, I know I have, and so far I like it!&lt;/p&gt;</description>
      <link>http://www.cto20.com/cto20/tabid/647/EntryID/38/Default.aspx</link>
      <author>antonio@inspectorit.com</author>
      <comments>http://www.cto20.com/cto20/tabid/647/EntryID/38/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.cto20.com/Default.aspx?tabid=647&amp;EntryID=38</guid>
      <pubDate>Sun, 21 Oct 2007 19:00:00 GMT</pubDate>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://www.cto20.com/DesktopModules/Blog/Trackback.aspx?id=38</trackback:ping>
    </item>
    <item>
      <title>UI vs Function? Think again!</title>
      <description>&lt;p&gt;&lt;span class="Normal" id="dnn_ctr518_MainView_ViewEntry_lblEntry"&gt;As it turns out, technology adoption is directly related to the user's experience.&lt;/span&gt;
&lt;p&gt; &lt;/p&gt;
&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://www.blogger.com/profile/17207861881393437049"&gt;Ben Gardner&lt;/a&gt; agrees. Ben works for a large blue chip pharmaceutical company in the UK.  Ben has a very difficult job as he is responsbile for getting corporate users to adopt &lt;a href="http://www.microsoft.com/technet/windowsserver/sharepoint/default.mspx"&gt;&lt;font color="#003366"&gt;Windows Sharepoint Services&lt;/font&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;He made an &lt;a target="_blank" href="http://dif-fer-en-ti-ate.blogspot.com/search/label/GTDware"&gt;interesting post&lt;/a&gt; where he says:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;If I'm going to have to promote SharePoint in my organisation then this sort of skin job would be a god send. I realise that out of the box SharePoint can already do most of this but this re-skinning brings a intuitive UI to the SharePoint functionality. Lower training and customer delight.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;As you can see, he is happy to have stumbled upon a service offering called &lt;a href="http://www.btworkspace.com/"&gt;&lt;font color="#003366"&gt;BT Workspace&lt;/font&gt;&lt;/a&gt; developed by &lt;a href="http://www.smblive.com/"&gt;&lt;font color="#003366"&gt;SMBLive&lt;/font&gt;&lt;/a&gt; (&lt;/ shameless plug &gt;).&lt;/p&gt;
&lt;p&gt;BT Workspace is a simple, powerful product that also adds an elegant user experience.  Anyone wanting to make Sharepoint more interesting and intuitive for everday users should definitely &lt;a href="http://signup.btworkspace.com/WS/SiteUrl.aspx"&gt;&lt;font color="#003366"&gt;signup for a free BT Workspace&lt;/font&gt;&lt;/a&gt; to experience what Ben has. If you are then interested in rolling this out to your internal organization the &lt;a target="_blank" href="http://www.smblive.com"&gt;give us a shout&lt;/a&gt;!&lt;/p&gt;</description>
      <link>http://www.cto20.com/cto20/tabid/647/EntryID/36/Default.aspx</link>
      <author>antonio@inspectorit.com</author>
      <comments>http://www.cto20.com/cto20/tabid/647/EntryID/36/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.cto20.com/Default.aspx?tabid=647&amp;EntryID=36</guid>
      <pubDate>Mon, 01 Oct 2007 00:00:00 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.cto20.com/DesktopModules/Blog/Trackback.aspx?id=36</trackback:ping>
    </item>
  </channel>
</rss>