<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Technical</title>
        <link>http://agilior.pt/blogs/pedro.rainho/category/47.aspx</link>
        <description>Technical</description>
        <language>pt-PT</language>
        <copyright>Pedro Rainho</copyright>
        <managingEditor>pedro.rainho@agilior.pt</managingEditor>
        <generator>Subtext Version 1.9.0.27</generator>
        <item>
            <title>Source control Appliances</title>
            <link>http://agilior.pt/blogs/pedro.rainho/archive/2010/02/09/11736.aspx</link>
            <description>&lt;p&gt;In my last post I wrote about how to install and configure Subversion and WebSvn on Ubuntu server. During the search on how to do that I tested two very good appliances. This two appliances are virtual machines that contains the installation of several source control and comes configured out of the box :). All I need is download the appliance and start using. There is no excuse to don’t have a private source control :).&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;The first appliance is &lt;a href="http://www.turnkeylinux.org/revision-control"&gt;Revision Source Control&lt;/a&gt; from &lt;a href="http://www.turnkeylinux.org/"&gt;TurnKey&lt;/a&gt; and it’s an appliance that includes:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Revision Control systems supported: Git, Bazaar, Mercurial, Subversion. &lt;/li&gt;    &lt;li&gt;SSL support out of the box. &lt;/li&gt;    &lt;li&gt;Webmin module for configuring Apache2. &lt;/li&gt;    &lt;li&gt;Includes TurnKey web control panel (convenience). &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Again everything it’s installed and configured and ready to use. Just download the appliance and run it on Vmware or Virtualbox.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;The next appliance, &lt;a href="http://www.turnkeylinux.org/trac"&gt;Trac&lt;/a&gt;, it’s also from &lt;a href="http://www.turnkeylinux.org/"&gt;TurnKey&lt;/a&gt; and Integrates source control &amp;amp; project management. The appliance includes:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Revision Control systems supported: Git, Bazaar, Mercurial, Subversion. &lt;/li&gt;    &lt;li&gt;SSL support out of the box. &lt;/li&gt;    &lt;li&gt;Postfix MTA (bound to localhost) to allow sending of email (e.g., password recovery). &lt;/li&gt;    &lt;li&gt;Webmin modules for configuring Apache2 and Postfix. &lt;/li&gt;    &lt;li&gt;Trac &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;These are just two appliances from &lt;a href="http://www.turnkeylinux.org/"&gt;TurnKey&lt;/a&gt; to make a developer life much easy :) again no excuse :P&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;I invite every one to see &lt;a href="http://www.turnkeylinux.org/"&gt;TurnKey&lt;/a&gt; site they have LOTS of appliances… &lt;/p&gt;&lt;img src="http://agilior.pt/blogs/pedro.rainho/aggbug/11736.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Pedro Rainho</dc:creator>
            <guid>http://agilior.pt/blogs/pedro.rainho/archive/2010/02/09/11736.aspx</guid>
            <pubDate>Tue, 09 Feb 2010 17:46:24 GMT</pubDate>
            <wfw:comment>http://agilior.pt/blogs/pedro.rainho/comments/11736.aspx</wfw:comment>
            <comments>http://agilior.pt/blogs/pedro.rainho/archive/2010/02/09/11736.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://agilior.pt/blogs/pedro.rainho/comments/commentRss/11736.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Install Subversion and WebSvn on Ubuntu Server</title>
            <link>http://agilior.pt/blogs/pedro.rainho/archive/2010/02/06/11698.aspx</link>
            <description>&lt;p&gt;On my last post I wrote about Ubuntu server and Webmin and why I changed WHS with Ubuntu server. Today I'm going to write about &lt;a href="http://subversion.tigris.org/"&gt;Subversion&lt;/a&gt; and &lt;a href="http://websvn.tigris.org/"&gt;WebSVN&lt;/a&gt; on Ubuntu server. One of the things that I had in WHS was a source control where I stored my code and documents. For that I used &lt;a href="http://www.visualsvn.com/server/"&gt;VisualSVN&lt;/a&gt;. &lt;a href="http://www.visualsvn.com/server/"&gt;VisualSVN&lt;/a&gt; combines &lt;a href="http://subversion.tigris.org/"&gt;Subversion&lt;/a&gt; with a web interface of all repositories and also includes user management. To me &lt;a href="http://www.visualsvn.com/server/"&gt;VisualSVN&lt;/a&gt; is the all in one...Veryyy goood product and unfortunately for me &lt;a href="http://www.visualsvn.com/server/"&gt;VisualSVN&lt;/a&gt; is just for Windows :(. &lt;/p&gt;  &lt;p&gt;So one of the things I did before move to Ubuntu Server was backup my &lt;a href="http://subversion.tigris.org/"&gt;Subversion&lt;/a&gt; repositories so I could restore them on Ubuntu Server. &lt;/p&gt;  &lt;p&gt;In Ubuntu Server I had to do install a few packages and do a few steps in order to once again have source control and a web interface. So today I'm going to explain how to install &lt;a href="http://subversion.tigris.org/"&gt;Subversion&lt;/a&gt; and &lt;a href="http://websvn.tigris.org/"&gt;WebSVN&lt;/a&gt; on Ubuntu server. &lt;/p&gt;  &lt;p&gt;The first thing to do is install &lt;a href="http://subversion.tigris.org/"&gt;Subversion&lt;/a&gt; and apache package for &lt;a href="http://subversion.tigris.org/"&gt;Subversion&lt;/a&gt;. All I need to do is: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;sudo aptitude install subversion libapache2-svn &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;In the next step I need to create a directory where my repositories will be stored. In my case /var/sourcecontrol/svn/. The default location is /var/lib/svn/.&lt;/p&gt;  &lt;p&gt;This command will create de directory where all my repositories will be:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;sudo mkdir /var/sourcecontrol/svn &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;After create the directory I copied my entire repository backup from windows into this directory. &lt;/p&gt;  &lt;p&gt;Note if I need to create new repositories I just had to do: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;sudo svnadmin create /var/sourcecontrol/svn/newRepository &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;newRepository is the name of the new repository. &lt;/p&gt;  &lt;p&gt;Next I need to change the owner of the files in order to access using apache. This can be done with this command: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;sudo chown www-data:www-data  /var/sourcecontrol/svn/repositoryName -R &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;repositoryName is the name of the repository. &lt;/p&gt;  &lt;p&gt;Next I just need to configure all my repositories to be access in apache. This can be done by editing the file /etc/apache2/mods-available/dav_svn.conf &lt;/p&gt;  &lt;p&gt;To edit I just run the command:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;sudo nano /etc/apache2/mods-available/dav_svn.conf &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Scroll all the way down and add the following code for each repository: &lt;/p&gt;  &lt;p&gt;&amp;lt;Location /repositoryName&amp;gt;    &lt;br /&gt;DAV svn     &lt;br /&gt;SVNPath /var/sourcecontrol/svn/repositoryName     &lt;br /&gt;AuthType Basic     &lt;br /&gt;AuthName "Subversion repository repositoryName"     &lt;br /&gt;&amp;lt;/Location&amp;gt; &lt;/p&gt;  &lt;p&gt;Next restart the apache :&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;sudo /etc/init.d/apache2 restart &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Open a browser and type &lt;a href="http://[serverip]/repositoryName"&gt;http://[serverip]/repositoryName&lt;/a&gt; and the repository is now availably in browser. &lt;/p&gt;  &lt;p&gt;Notice the &lt;strong&gt;/repositoryName&lt;/strong&gt; in the location is the same as &lt;strong&gt;/repositoryName&lt;/strong&gt; in the url. &lt;/p&gt;  &lt;p&gt;After this step you can start doing some checkin's :P &lt;/p&gt;  &lt;p&gt;The next step is to install &lt;a href="http://websvn.tigris.org/"&gt;WebSVN&lt;/a&gt;. &lt;a href="http://websvn.tigris.org/"&gt;WebSVN&lt;/a&gt; is a very good web interface to see all repositories. &lt;/p&gt;  &lt;p&gt;The first thing to do is install the package. This can be done with the command: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;sudo aptitude install websvn &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;To have syntax highlight in the source code just install enscript . This can be done with this command: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;sudo aptitude install enscript &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Now a few things you should know: &lt;/p&gt;  &lt;p&gt;During the install of &lt;a href="http://websvn.tigris.org/"&gt;WebSVN&lt;/a&gt; three screens will appear:     &lt;br /&gt;1 - Select the webserver for configuration.     &lt;br /&gt;2 - Specify the path of the subversion repositories, in this case (/var/sourcecontrol/svn).     &lt;br /&gt;3 - If all repositories are in the same parent folder leave this in blank otherwise you will have to specify all repositories separated by comma. &lt;/p&gt;  &lt;p&gt;The package &lt;a href="http://websvn.tigris.org/"&gt;WebSVN&lt;/a&gt; is installed into /usr/share/websvn/, it's necessary to copy to /var/www/. This can be done with the command:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;sudo cp -r /usr/share/websvn/ /var/www/ &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;After copy to /var/www it's necessary to edit the file /etc/apache2/mods-available/dav_svn.conf, again with the command:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;sudo nano /etc/apache2/mods-available/dav_svn.conf &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Next, scroll down and add the following &lt;/p&gt;  &lt;p&gt;&amp;lt;Location /websvn/&amp;gt;    &lt;br /&gt;Options FollowSymLinks     &lt;br /&gt;order allow,deny     &lt;br /&gt;allow from all     &lt;br /&gt;AuthType Basic     &lt;br /&gt;AuthName "Subversion Repository"    &lt;br /&gt;&amp;lt;/Location&amp;gt; &lt;/p&gt;  &lt;p&gt;Save the file and restart apache by doing: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;sudo /etc/init.d/apache2 restart &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Now just type &lt;a href="http://[serverip]/websvn"&gt;http://[serverip]/websvn&lt;/a&gt; and you will see the &lt;a href="http://websvn.tigris.org/"&gt;WebSVN&lt;/a&gt; page and your repositories. &lt;/p&gt;  &lt;p&gt;If for some reason your repositories have strange names in just edit the file /etc/websvn/svn_deb_conf.inc with the command :&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;sudo nano /etc/websvn/svn_deb_conf.inc &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;In this file you will have something like this: &lt;/p&gt;  &lt;p&gt;&amp;lt;?php    &lt;br /&gt;// please edit /etc/websvn/config.php     &lt;br /&gt;// or use dpkg-reconfigure websvn     &lt;br /&gt;$config-&amp;gt;parentPath("/var/sourcecontrol/svn/");     &lt;br /&gt;$config-&amp;gt;addRepository("repositoryName\", file:///var/sourcecontrol/svn/repositoryName1);     &lt;br /&gt;$config-&amp;gt;addRepository("repositoryName", "file:///var/sourcecontrol/svn/repositoryName2");     &lt;br /&gt;$config-&amp;gt;setEnscriptPath("/usr/bin");     &lt;br /&gt;$config-&amp;gt;setSedPath("/bin");     &lt;br /&gt;$config-&amp;gt;useEnscript();     &lt;br /&gt;?&amp;gt; &lt;/p&gt;  &lt;p&gt;Here it's possible specify the parent path of all repositories and specify each repository name and location. it's here also that it's specified the path on enscript installed before. &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Hope you enjoy the source control and as much as I do :)&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Special Thanks for &lt;a href="http://www.guerratopia.com/subversion-websvn-en-ubuntu"&gt;Guerrix and his post on how to install subversion and websvn.&lt;/a&gt;&lt;/p&gt;&lt;img src="http://agilior.pt/blogs/pedro.rainho/aggbug/11698.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Pedro Rainho</dc:creator>
            <guid>http://agilior.pt/blogs/pedro.rainho/archive/2010/02/06/11698.aspx</guid>
            <pubDate>Sat, 06 Feb 2010 19:07:53 GMT</pubDate>
            <wfw:comment>http://agilior.pt/blogs/pedro.rainho/comments/11698.aspx</wfw:comment>
            <comments>http://agilior.pt/blogs/pedro.rainho/archive/2010/02/06/11698.aspx#feedback</comments>
            <wfw:commentRss>http://agilior.pt/blogs/pedro.rainho/comments/commentRss/11698.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Virtualbox as a service on Windows</title>
            <link>http://agilior.pt/blogs/pedro.rainho/archive/2009/07/16/9264.aspx</link>
            <description>Did you ever imagine how to run VirtualBox as a windows Service. Check this &lt;a href="http://forums.virtualbox.org/viewtopic.php?f=6&amp;amp;t=15449"&gt;post&lt;/a&gt; on VirtualBox forum and you will have the solution.&lt;br /&gt;
&lt;br /&gt;
Thanks &lt;a href="http://www.agilior.pt/blogs/joao.manso"&gt;João Manso&lt;/a&gt;&lt;img src="http://agilior.pt/blogs/pedro.rainho/aggbug/9264.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Pedro Rainho</dc:creator>
            <guid>http://agilior.pt/blogs/pedro.rainho/archive/2009/07/16/9264.aspx</guid>
            <pubDate>Thu, 16 Jul 2009 07:43:18 GMT</pubDate>
            <wfw:comment>http://agilior.pt/blogs/pedro.rainho/comments/9264.aspx</wfw:comment>
            <comments>http://agilior.pt/blogs/pedro.rainho/archive/2009/07/16/9264.aspx#feedback</comments>
            <wfw:commentRss>http://agilior.pt/blogs/pedro.rainho/comments/commentRss/9264.aspx</wfw:commentRss>
        </item>
        <item>
            <title>BSOD on windows guest with VirtualBox</title>
            <link>http://agilior.pt/blogs/pedro.rainho/archive/2009/07/14/9232.aspx</link>
            <description>Today I came across a blue screen in VirtualBox 3.0.2 in host Ubuntu and guest windows xp. The problem was related with a file &lt;font face="Arial"&gt;intelppm.sys. The solution was simple:&lt;br /&gt;
&lt;br /&gt;
&lt;/font&gt;
&lt;p&gt;&lt;font face="Courier New" color="#000080"&gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Intelppm&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;And changing the '&lt;font face="Courier New" color="#000080"&gt;Start&lt;/font&gt;' value to '&lt;font face="Courier New" color="#000080"&gt;4&lt;/font&gt;'.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
Check this post &lt;a href="javascript:void(0);/*1247610166638*/"&gt;here&lt;/a&gt; and you will get more info. The post talks about Virtual PC but the solution is the same for VirtualBox&lt;img src="http://agilior.pt/blogs/pedro.rainho/aggbug/9232.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Pedro Rainho</dc:creator>
            <guid>http://agilior.pt/blogs/pedro.rainho/archive/2009/07/14/9232.aspx</guid>
            <pubDate>Tue, 14 Jul 2009 20:24:04 GMT</pubDate>
            <wfw:comment>http://agilior.pt/blogs/pedro.rainho/comments/9232.aspx</wfw:comment>
            <comments>http://agilior.pt/blogs/pedro.rainho/archive/2009/07/14/9232.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://agilior.pt/blogs/pedro.rainho/comments/commentRss/9232.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Disable beep on ubuntu shutdown</title>
            <link>http://agilior.pt/blogs/pedro.rainho/archive/2009/07/14/9230.aspx</link>
            <description>If you use ubuntu you probably had listen the stupid beep upon reboot/shutdown. To disable this stupid beep just do this:&lt;br /&gt;
&lt;br /&gt;
sudo gedit /etc/modprobe.d/blacklist.conf&lt;br /&gt;
&lt;br /&gt;
And add this&lt;br /&gt;
&lt;br /&gt;
blacklist pcspkr&lt;br /&gt;
&lt;br /&gt;
At the end of the file.&lt;br /&gt;
&lt;br /&gt;
Teboot and no more stupid beep.&lt;br /&gt;
&lt;br /&gt;
This was tested with Ubuntu 9.04 Jaunty&lt;img src="http://agilior.pt/blogs/pedro.rainho/aggbug/9230.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Pedro Rainho</dc:creator>
            <guid>http://agilior.pt/blogs/pedro.rainho/archive/2009/07/14/9230.aspx</guid>
            <pubDate>Tue, 14 Jul 2009 16:59:25 GMT</pubDate>
            <wfw:comment>http://agilior.pt/blogs/pedro.rainho/comments/9230.aspx</wfw:comment>
            <comments>http://agilior.pt/blogs/pedro.rainho/archive/2009/07/14/9230.aspx#feedback</comments>
            <wfw:commentRss>http://agilior.pt/blogs/pedro.rainho/comments/commentRss/9230.aspx</wfw:commentRss>
        </item>
        <item>
            <title>VirtualBox Clone VDI</title>
            <link>http://agilior.pt/blogs/pedro.rainho/archive/2009/07/14/9229.aspx</link>
            <description>Long time I'm a user of VirtualBox, why??? it's much more faster that virtualpc and much more faster that vmware player.&lt;br /&gt;
&lt;br /&gt;
So if any one want to clone a vm just has to do:&lt;br /&gt;
&lt;br /&gt;
VBoxManager clonehd "source.vdi" "destination.vdi"&lt;br /&gt;
&lt;br /&gt;
this command is valid either in windows or linux.&lt;img src="http://agilior.pt/blogs/pedro.rainho/aggbug/9229.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Pedro Rainho</dc:creator>
            <guid>http://agilior.pt/blogs/pedro.rainho/archive/2009/07/14/9229.aspx</guid>
            <pubDate>Tue, 14 Jul 2009 16:53:20 GMT</pubDate>
            <wfw:comment>http://agilior.pt/blogs/pedro.rainho/comments/9229.aspx</wfw:comment>
            <comments>http://agilior.pt/blogs/pedro.rainho/archive/2009/07/14/9229.aspx#feedback</comments>
            <wfw:commentRss>http://agilior.pt/blogs/pedro.rainho/comments/commentRss/9229.aspx</wfw:commentRss>
        </item>
        <item>
            <title>From Windows to Ubuntu</title>
            <link>http://agilior.pt/blogs/pedro.rainho/archive/2009/06/25/9039.aspx</link>
            <description>&lt;p&gt;A few months ago I was using my home pc, with vista ultimate, and since the beginning I had problems like:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Network card should be connected at 1gbit/s and some times was connected at 100mbit/s why, I really don’t know.      &lt;ul&gt;       &lt;li&gt;Solution sometimes I had to restart others I had to disable and enable my network card. Never found the problem and had always the latest drivers.&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;One other problem that I had ever since the beginning was with my creative 5.1 speakers, the sound was not stable. Sometimes the sound goes up and sometimes went down, why??? I don’t know. A friend had exactly the same problem solution…. buy new speakers… stupid when I told him the problem was not with speaker was with vista :P &lt;/li&gt;    &lt;li&gt;One other problem that I had was copy files from usb disk to my pc… speed 15mb/s – 20mb/s note that the speed of usb 2 is 400mbits/s. Even on my notebook with xp I got better speeds. &lt;/li&gt;    &lt;li&gt;Copy over lan using 1gbit/s values are between 10mb/s to 15mb/s, impressive hummm &lt;/li&gt;    &lt;li&gt;copy over ftp speed between 10mb/s to 20mb/s &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;And there was lots of other problems.&lt;/p&gt;  &lt;p&gt;After I become very irritated about this… I had two choices downgrade to xp or use Ubuntu.&lt;/p&gt;  &lt;p&gt;I start using Linux back in 98 with Redhat and I stop using it a few years ago… shame on me.&lt;/p&gt;  &lt;p&gt;After doing some search about programs that I use in windows and similar programs in ubuntu, I did the switch and format, and install Ubuntu. And this was probably the BEST choice I had done recently why???&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;It’s much more faster that vista and Ubuntu has visual effects too. &lt;/li&gt;    &lt;li&gt;took me just a few seconds to boot Ubuntu. Next release of ubuntu will be even faster on reboot. &lt;/li&gt;    &lt;li&gt;Ubuntu only uses 350mb – 400mb of memory after reboot. Vista after reboot consumes me 1.5gb of memory. &lt;/li&gt;    &lt;li&gt;Every single driver was detected no need to search for drivers and install drivers. The only driver I had to install was the ATI driver and took me one mouse click. &lt;/li&gt;    &lt;li&gt;The problems I had with network card and speakers are vanished now you understand why I told my friend was stupid buy new speakers lol &lt;/li&gt;    &lt;li&gt;Now copy usb to disk 35mb/s – 40mb/s more than double the speed &lt;/li&gt;    &lt;li&gt;copy using ftp 75mb/s – 80mb/s with 1gbit/s network card. Three to four times faster that vista. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;The most impressive is that I can do every thing with ubuntu, let’s see:&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="400" border="1"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="199"&gt;&lt;strong&gt;Windows&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="199"&gt;&lt;strong&gt;Ubuntu&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;Explorer&lt;/td&gt;        &lt;td valign="top" width="199"&gt;Nautilus&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;Windows update, just updates windows and MS programs&lt;/td&gt;        &lt;td valign="top" width="199"&gt;Update manager, updates every single application in ubuntu&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;Notepad&lt;/td&gt;        &lt;td valign="top" width="199"&gt;Gedit&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;Messenger&lt;/td&gt;        &lt;td valign="top" width="199"&gt;Pidgin / Empathy&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;gtalk&lt;/td&gt;        &lt;td valign="top" width="199"&gt;Pidgin / Empathy&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;Remote desktop&lt;/td&gt;        &lt;td valign="top" width="199"&gt;Terminal server client&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;Windows media player&lt;/td&gt;        &lt;td valign="top" width="199"&gt;Banshee, much better can every subscribe podcasts etc…, Movie player&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;Calculator&lt;/td&gt;        &lt;td valign="top" width="199"&gt;Calculator like win 7&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;mspaint&lt;/td&gt;        &lt;td valign="top" width="199"&gt;Gimp&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;MS office&lt;/td&gt;        &lt;td valign="top" width="199"&gt;Openoffice&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;Outlook&lt;/td&gt;        &lt;td valign="top" width="199"&gt;Evolution, much better&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;Filezilla&lt;/td&gt;        &lt;td valign="top" width="199"&gt;Filezilla&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;VirtualBox&lt;/td&gt;        &lt;td valign="top" width="199"&gt;VirtualBox&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;Nero&lt;/td&gt;        &lt;td valign="top" width="199"&gt;Brasero&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;Firefox&lt;/td&gt;        &lt;td valign="top" width="199"&gt;Firefox&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;Tcpview&lt;/td&gt;        &lt;td valign="top" width="199"&gt;Net Activity viewer&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;deamon tools&lt;/td&gt;        &lt;td valign="top" width="199"&gt;Gmount-iso&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;Acrobat reader&lt;/td&gt;        &lt;td valign="top" width="199"&gt;Acrobat reader&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;AVG&lt;/td&gt;        &lt;td valign="top" width="199"&gt;Avast&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;Windows Firewall&lt;/td&gt;        &lt;td valign="top" width="199"&gt;Gufw&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;Tweetdeck&lt;/td&gt;        &lt;td valign="top" width="199"&gt;Tweetdeck&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;.Net&lt;/td&gt;        &lt;td valign="top" width="199"&gt;Mono&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;Silverlight&lt;/td&gt;        &lt;td valign="top" width="199"&gt;Monolight&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;Flash&lt;/td&gt;        &lt;td valign="top" width="199"&gt;Flash&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;Netbeans&lt;/td&gt;        &lt;td valign="top" width="199"&gt;Netbeans&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;Ruby&lt;/td&gt;        &lt;td valign="top" width="199"&gt;Ruby&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;And the list continues…&lt;/p&gt;  &lt;p&gt;The only, and only program I miss Is Windows Live Writer the rest every thing you can imagine it’s at one click of distance.&lt;/p&gt;  &lt;p&gt;I just had to click on “Add and Remove…” type the program you want to install and that’s it… no need to use browser, search for a app, and then download, and then install…&lt;/p&gt;  &lt;p&gt;No in, ubuntu, just open “Add and Remove…” type, for instance Filezilla, check it for install and that’s it…&lt;/p&gt;  &lt;p&gt;In Ubuntu I even can mount ntfs usb disk. And I can read and write… what do I need more :)&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;what you need more…&lt;/p&gt;  &lt;p&gt;Now there is only one reason why I still have a Windows VM…. It’s because I’m a .Net developer and need I need Visual Studio and other tools… despite this in my home pc I just have Ubuntu.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;How much it costs ubuntu… zero euro. Now everybody knows that vista ultimate is too expensive.&lt;/p&gt;  &lt;p&gt;I’m even planning on migrate my work notebook into ubuntu and work with VM.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;I definitely invite every one to do a test drive on Ubuntu just download VirtualBox and download Ubuntu and create a VM to test Ubuntu and I think every one will love it.&lt;/p&gt;  &lt;p&gt; It’s fast…….&lt;/p&gt;&lt;img src="http://agilior.pt/blogs/pedro.rainho/aggbug/9039.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Pedro Rainho</dc:creator>
            <guid>http://agilior.pt/blogs/pedro.rainho/archive/2009/06/25/9039.aspx</guid>
            <pubDate>Thu, 25 Jun 2009 19:29:33 GMT</pubDate>
            <wfw:comment>http://agilior.pt/blogs/pedro.rainho/comments/9039.aspx</wfw:comment>
            <comments>http://agilior.pt/blogs/pedro.rainho/archive/2009/06/25/9039.aspx#feedback</comments>
            <wfw:commentRss>http://agilior.pt/blogs/pedro.rainho/comments/commentRss/9039.aspx</wfw:commentRss>
        </item>
        <item>
            <title>WCF and net.pipe exception</title>
            <link>http://agilior.pt/blogs/pedro.rainho/archive/2009/04/22/7597.aspx</link>
            <description>&lt;p&gt;Today I came across an odd problem related with WCF and net.pipe binding.&lt;/p&gt;  &lt;p&gt;If I expose one pipe on address “net.pipe://&lt;strong&gt;aaa&lt;/strong&gt;/service/endpoint” and another on address “net.pipe://&lt;strong&gt;bbb&lt;/strong&gt;/service/endpoint” I got this exception &lt;/p&gt;  &lt;p&gt;“Cannot listen on pipe name net.pipe://bbb/service/endpoint because another pipe endpoint is already listening on that name. “&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;I found this very strange.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;The logical explanation I have is this: &lt;/p&gt;  &lt;p&gt;- net.pipe:// represents the transport protocol.&lt;/p&gt;  &lt;p&gt;- aaa or bbb represents the machine or domain. Since net pipes are local I think aaa and bbb are ignored.&lt;/p&gt;  &lt;p&gt;- service/endpoint represents the absolute path where the service is exposed.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;So the solution to solve this problem was this:&lt;/p&gt;  &lt;p&gt;net.pipe://pipe/&lt;strong&gt;aaa&lt;/strong&gt;/service/endpoint&lt;/p&gt;  &lt;p&gt;net.pipe://pipe/&lt;strong&gt;bbb&lt;/strong&gt;/service/endpoint&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Now the absolute path /aaa/service/endpoint and /bbb/service/endpoint are different and no exception is generated&lt;/p&gt;&lt;img src="http://agilior.pt/blogs/pedro.rainho/aggbug/7597.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Pedro Rainho</dc:creator>
            <guid>http://agilior.pt/blogs/pedro.rainho/archive/2009/04/22/7597.aspx</guid>
            <pubDate>Wed, 22 Apr 2009 13:59:24 GMT</pubDate>
            <wfw:comment>http://agilior.pt/blogs/pedro.rainho/comments/7597.aspx</wfw:comment>
            <comments>http://agilior.pt/blogs/pedro.rainho/archive/2009/04/22/7597.aspx#feedback</comments>
            <wfw:commentRss>http://agilior.pt/blogs/pedro.rainho/comments/commentRss/7597.aspx</wfw:commentRss>
        </item>
        <item>
            <title>How to create a Tool Window in Visual Studio</title>
            <link>http://agilior.pt/blogs/pedro.rainho/archive/2009/04/21/7589.aspx</link>
            <description>&lt;p&gt;After you create an Add-in you need to create a User Control&lt;/p&gt;  &lt;p&gt;&lt;a href="file:///C:/Documents and Settings/prainho/Local Settings/Temp/WindowsLiveWriter-429641856/supfiles1B7A7828/image[56].png"&gt;&lt;img title="image_thumb[30]" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="335" alt="image_thumb[30]" src="http://agilior.pt/blogs/images/agilior_pt/blogs/pedro.rainho/WindowsLiveWriter/HowtocreateaToolWindowinVisualStudio_F385/image_thumb%5B30%5D_b828c9c7-794a-4357-8cdc-e4669a73b90e.png" width="547" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Then I will have to change the Connect.cs file &lt;/p&gt;  &lt;p&gt;The first thing you need to do is declare 2 fields one for the window it self and other for the user control&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="color: blue"&gt;private &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Window &lt;/span&gt;_toolWindow;
&lt;span style="color: blue"&gt;private &lt;/span&gt;&lt;span style="color: #2b91af"&gt;MyAddInToolWindow &lt;/span&gt;_toolWindowControl;&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Next you will need to change the OnConnection method. This method receives notification that the Add-in is being loaded. This method when it’s generated adds the necessary code to show a add-in icon in the Tools menu.&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: gray"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: green"&gt;Implements the OnConnection method of the IDTExtensibility2 interface. Receives notification that the Add-in is being loaded.&lt;/span&gt;&lt;span style="color: gray"&gt;&amp;lt;/summary&amp;gt;
/// &amp;lt;param term='application'&amp;gt;&lt;/span&gt;&lt;span style="color: green"&gt;Root object of the host application.&lt;/span&gt;&lt;span style="color: gray"&gt;&amp;lt;/param&amp;gt;
/// &amp;lt;param term='connectMode'&amp;gt;&lt;/span&gt;&lt;span style="color: green"&gt;Describes how the Add-in is being loaded.&lt;/span&gt;&lt;span style="color: gray"&gt;&amp;lt;/param&amp;gt;
/// &amp;lt;param term='addInInst'&amp;gt;&lt;/span&gt;&lt;span style="color: green"&gt;Object representing this Add-in.&lt;/span&gt;&lt;span style="color: gray"&gt;&amp;lt;/param&amp;gt;
/// &amp;lt;seealso class='IDTExtensibility2' /&amp;gt;
&lt;/span&gt;&lt;span style="color: blue"&gt;public void &lt;/span&gt;OnConnection(&lt;span style="color: blue"&gt;object &lt;/span&gt;application, &lt;span style="color: #2b91af"&gt;ext_ConnectMode &lt;/span&gt;connectMode, &lt;span style="color: blue"&gt;object &lt;/span&gt;addInInst, &lt;span style="color: blue"&gt;ref &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Array &lt;/span&gt;custom)
{
    _applicationObject = (&lt;span style="color: #2b91af"&gt;DTE2&lt;/span&gt;)application;
    _addInInstance = (&lt;span style="color: #2b91af"&gt;AddIn&lt;/span&gt;)addInInst;
    &lt;span style="color: blue"&gt;if&lt;/span&gt;(connectMode == &lt;span style="color: #2b91af"&gt;ext_ConnectMode&lt;/span&gt;.ext_cm_UISetup)
    {
        &lt;font color="#0000ff"&gt;...&lt;/font&gt;
    }
}&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Next I need to change this method to enable me to show my tool window. To do that I just need to do this:&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: gray"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: green"&gt;Implements the OnConnection method of the IDTExtensibility2 interface. Receives notification that the Add-in is being loaded.&lt;/span&gt;&lt;span style="color: gray"&gt;&amp;lt;/summary&amp;gt;
/// &amp;lt;param term='application'&amp;gt;&lt;/span&gt;&lt;span style="color: green"&gt;Root object of the host application.&lt;/span&gt;&lt;span style="color: gray"&gt;&amp;lt;/param&amp;gt;
/// &amp;lt;param term='connectMode'&amp;gt;&lt;/span&gt;&lt;span style="color: green"&gt;Describes how the Add-in is being loaded.&lt;/span&gt;&lt;span style="color: gray"&gt;&amp;lt;/param&amp;gt;
/// &amp;lt;param term='addInInst'&amp;gt;&lt;/span&gt;&lt;span style="color: green"&gt;Object representing this Add-in.&lt;/span&gt;&lt;span style="color: gray"&gt;&amp;lt;/param&amp;gt;
/// &amp;lt;seealso class='IDTExtensibility2' /&amp;gt;
&lt;/span&gt;&lt;span style="color: blue"&gt;public void &lt;/span&gt;OnConnection(&lt;span style="color: blue"&gt;object &lt;/span&gt;application, &lt;span style="color: #2b91af"&gt;ext_ConnectMode &lt;/span&gt;connectMode, &lt;span style="color: blue"&gt;object &lt;/span&gt;addInInst, &lt;span style="color: blue"&gt;ref &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Array &lt;/span&gt;custom)
{
    _applicationObject = (&lt;span style="color: #2b91af"&gt;DTE2&lt;/span&gt;)application;
    _addInInstance = (&lt;span style="color: #2b91af"&gt;AddIn&lt;/span&gt;)addInInst;
    &lt;span style="color: blue"&gt;if&lt;/span&gt;(connectMode == &lt;span style="color: #2b91af"&gt;ext_ConnectMode&lt;/span&gt;.ext_cm_UISetup)
    {
        &lt;span style="color: blue"&gt;...&lt;/span&gt;    &lt;/pre&gt;

&lt;pre class="code"&gt;    }
    &lt;span style="color: blue"&gt;else if &lt;/span&gt;(connectMode == &lt;span style="color: #2b91af"&gt;ext_ConnectMode&lt;/span&gt;.ext_cm_AfterStartup)
    {
        CreateToolWindow();
    }
}&lt;/pre&gt;

&lt;pre class="code"&gt; &lt;/pre&gt;

&lt;p&gt;If connect mode is After Startup, I will show the tool window.&lt;/p&gt;

&lt;p&gt;To show the tool window I just need to call method  “CreateToolWindow2”. This method receives some parameters and one of the parameters is the “Namespace.Usercontrol”, in this case &lt;span style="color: #a31515"&gt;"MyAddin1.MyAddInToolWindow"&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;private void &lt;/span&gt;CreateToolWindow()
{
    &lt;span style="color: blue"&gt;if &lt;/span&gt;(_toolWindow == &lt;span style="color: blue"&gt;null &lt;/span&gt;|| _toolWindow.Visible == &lt;span style="color: blue"&gt;false&lt;/span&gt;)
    {
        &lt;span style="color: blue"&gt;#region &lt;/span&gt;Load Tool Window
        &lt;span style="color: blue"&gt;object &lt;/span&gt;programmableObject = &lt;span style="color: blue"&gt;null&lt;/span&gt;;
        &lt;span style="color: blue"&gt;string &lt;/span&gt;guidString = &lt;span style="color: #a31515"&gt;"{73000449-0035-43ad-985F-A3071ECBC079}"&lt;/span&gt;;
        &lt;span style="color: #2b91af"&gt;Windows2 &lt;/span&gt;windows2 = (&lt;span style="color: #2b91af"&gt;Windows2&lt;/span&gt;)_applicationObject.Windows;
        &lt;span style="color: #2b91af"&gt;Assembly &lt;/span&gt;asm = &lt;span style="color: #2b91af"&gt;Assembly&lt;/span&gt;.GetExecutingAssembly();
        _toolWindow = windows2.CreateToolWindow2(_addInInstance, asm.Location,
            &lt;span style="color: #a31515"&gt;"MyAddin1.MyAddInToolWindow"&lt;/span&gt;,
            &lt;span style="color: #a31515"&gt;"MyAddin1"&lt;/span&gt;, guidString, &lt;span style="color: blue"&gt;ref &lt;/span&gt;programmableObject);
        _toolWindow.Visible = &lt;span style="color: blue"&gt;true&lt;/span&gt;;
        _toolWindowControl = (&lt;span style="color: #2b91af"&gt;MyAddInToolWindow&lt;/span&gt;)_toolWindow.Object;
        &lt;span style="color: blue"&gt;#endregion
    &lt;/span&gt;}
}&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;pre class="code"&gt; &lt;/pre&gt;

&lt;p&gt;After the creation of the tool window don’t forget to do _toolWindow.Visible = &lt;span style="color: blue"&gt;true&lt;/span&gt;; other wise the tool window might now show :)&lt;/p&gt;

&lt;p&gt;After this, just press run and test it. &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="file:///C:/Documents and Settings/prainho/Local Settings/Temp/WindowsLiveWriter-429641856/supfiles1B7A7828/image[71].png"&gt;&lt;img title="image_thumb[37]" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="307" alt="image_thumb[37]" src="http://agilior.pt/blogs/images/agilior_pt/blogs/pedro.rainho/WindowsLiveWriter/HowtocreateaToolWindowinVisualStudio_F385/image_thumb%5B37%5D_ff5f9f47-229c-46a6-bc48-19a116dc47b8.png" width="445" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;And you can also dock the tool window.&lt;/p&gt;

&lt;p&gt;&lt;a href="file:///C:/Documents and Settings/prainho/Local Settings/Temp/WindowsLiveWriter-429641856/supfiles1B7A7828/image[75].png"&gt;&lt;img title="image_thumb[39]" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="315" alt="image_thumb[39]" src="http://agilior.pt/blogs/images/agilior_pt/blogs/pedro.rainho/WindowsLiveWriter/HowtocreateaToolWindowinVisualStudio_F385/image_thumb%5B39%5D_ae9f61a7-293f-48fd-b096-ad99b0fbc292.png" width="456" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Now, if you close the tool window and then open it again the tool window will not show. You will need to change the method Exec and add the CreateToolWindow().&lt;/p&gt;

&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: gray"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: green"&gt;Implements the Exec method of the IDTCommandTarget interface. This is called when the command is invoked.&lt;/span&gt;&lt;span style="color: gray"&gt;&amp;lt;/summary&amp;gt;
/// &amp;lt;param term='commandName'&amp;gt;&lt;/span&gt;&lt;span style="color: green"&gt;The name of the command to execute.&lt;/span&gt;&lt;span style="color: gray"&gt;&amp;lt;/param&amp;gt;
/// &amp;lt;param term='executeOption'&amp;gt;&lt;/span&gt;&lt;span style="color: green"&gt;Describes how the command should be run.&lt;/span&gt;&lt;span style="color: gray"&gt;&amp;lt;/param&amp;gt;
/// &amp;lt;param term='varIn'&amp;gt;&lt;/span&gt;&lt;span style="color: green"&gt;Parameters passed from the caller to the command handler.&lt;/span&gt;&lt;span style="color: gray"&gt;&amp;lt;/param&amp;gt;
/// &amp;lt;param term='varOut'&amp;gt;&lt;/span&gt;&lt;span style="color: green"&gt;Parameters passed from the command handler to the caller.&lt;/span&gt;&lt;span style="color: gray"&gt;&amp;lt;/param&amp;gt;
/// &amp;lt;param term='handled'&amp;gt;&lt;/span&gt;&lt;span style="color: green"&gt;Informs the caller if the command was handled or not.&lt;/span&gt;&lt;span style="color: gray"&gt;&amp;lt;/param&amp;gt;
/// &amp;lt;seealso class='Exec' /&amp;gt;
&lt;/span&gt;&lt;span style="color: blue"&gt;public void &lt;/span&gt;Exec(&lt;span style="color: blue"&gt;string &lt;/span&gt;commandName, &lt;span style="color: #2b91af"&gt;vsCommandExecOption &lt;/span&gt;executeOption, &lt;span style="color: blue"&gt;ref object &lt;/span&gt;varIn, &lt;span style="color: blue"&gt;ref object &lt;/span&gt;varOut, &lt;span style="color: blue"&gt;ref bool &lt;/span&gt;handled)
{
    handled = &lt;span style="color: blue"&gt;false&lt;/span&gt;;
    &lt;span style="color: blue"&gt;if&lt;/span&gt;(executeOption == &lt;span style="color: #2b91af"&gt;vsCommandExecOption&lt;/span&gt;.vsCommandExecOptionDoDefault)
    {
        &lt;span style="color: blue"&gt;if&lt;/span&gt;(commandName == &lt;span style="color: #a31515"&gt;"MyAddin1.Connect.MyAddin1"&lt;/span&gt;)
        {
            handled = &lt;span style="color: blue"&gt;true&lt;/span&gt;;
            CreateToolWindow();
            &lt;span style="color: blue"&gt;return&lt;/span&gt;;
        }
    }
}&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Now test it and you can close and the open the tool window and you will have no problems.&lt;/p&gt;

&lt;p&gt;One other thing you can do Is show the icon in menu “View” instead of menu “Tools”, to do that just change the method OnConnection and where you have the string “Tools” just change it to “View” very simple :)&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Here is where the icon will appear after this change.&lt;/p&gt;

&lt;p&gt; &lt;a href="file:///C:/Documents and Settings/prainho/Local Settings/Temp/WindowsLiveWriter-429641856/supfiles1B7A7828/image[64].png"&gt;&lt;img title="image_thumb[34]" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="189" alt="image_thumb[34]" src="http://agilior.pt/blogs/images/agilior_pt/blogs/pedro.rainho/WindowsLiveWriter/HowtocreateaToolWindowinVisualStudio_F385/image_thumb%5B34%5D_81faa65b-84e3-46d6-8656-a583571a2d05.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;This is a very fast tutorial, there are other in the web that explains everything, one other choice is check &lt;a href="http://msdn.microsoft.com/en-us/default.aspx"&gt;MSDN&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://agilior.pt/blogs/pedro.rainho/aggbug/7589.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Pedro Rainho</dc:creator>
            <guid>http://agilior.pt/blogs/pedro.rainho/archive/2009/04/21/7589.aspx</guid>
            <pubDate>Tue, 21 Apr 2009 14:17:12 GMT</pubDate>
            <wfw:comment>http://agilior.pt/blogs/pedro.rainho/comments/7589.aspx</wfw:comment>
            <comments>http://agilior.pt/blogs/pedro.rainho/archive/2009/04/21/7589.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://agilior.pt/blogs/pedro.rainho/comments/commentRss/7589.aspx</wfw:commentRss>
        </item>
        <item>
            <title>How to create an add-in in Visual Studio</title>
            <link>http://agilior.pt/blogs/pedro.rainho/archive/2009/04/21/7588.aspx</link>
            <description>&lt;p&gt;Create Add-ins is very simple&lt;/p&gt;  &lt;p&gt;Create a project.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://agilior.pt/blogs/images/agilior_pt/blogs/pedro.rainho/WindowsLiveWriter/HowtocreateanaddininVisualStudio_ED36/image_4.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="140" alt="image" src="http://agilior.pt/blogs/images/agilior_pt/blogs/pedro.rainho/WindowsLiveWriter/HowtocreateanaddininVisualStudio_ED36/image_thumb_1.png" width="379" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Then select the project as a Visual Studio Add-in.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://agilior.pt/blogs/images/agilior_pt/blogs/pedro.rainho/WindowsLiveWriter/HowtocreateanaddininVisualStudio_ED36/image_6.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="311" alt="image" src="http://agilior.pt/blogs/images/agilior_pt/blogs/pedro.rainho/WindowsLiveWriter/HowtocreateanaddininVisualStudio_ED36/image_thumb_2.png" width="432" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;And then follow the Wizard.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://agilior.pt/blogs/images/agilior_pt/blogs/pedro.rainho/WindowsLiveWriter/HowtocreateanaddininVisualStudio_ED36/image_8.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="333" alt="image" src="http://agilior.pt/blogs/images/agilior_pt/blogs/pedro.rainho/WindowsLiveWriter/HowtocreateanaddininVisualStudio_ED36/image_thumb_3.png" width="436" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Here you choose the language, I’m going to user C#.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://agilior.pt/blogs/images/agilior_pt/blogs/pedro.rainho/WindowsLiveWriter/HowtocreateanaddininVisualStudio_ED36/image_10.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="335" alt="image" src="http://agilior.pt/blogs/images/agilior_pt/blogs/pedro.rainho/WindowsLiveWriter/HowtocreateanaddininVisualStudio_ED36/image_thumb_4.png" width="438" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Here you choose where the add-in will work.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://agilior.pt/blogs/images/agilior_pt/blogs/pedro.rainho/WindowsLiveWriter/HowtocreateanaddininVisualStudio_ED36/image_12.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="335" alt="image" src="http://agilior.pt/blogs/images/agilior_pt/blogs/pedro.rainho/WindowsLiveWriter/HowtocreateanaddininVisualStudio_ED36/image_thumb_5.png" width="438" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Here you choose the add-in name and description.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://agilior.pt/blogs/images/agilior_pt/blogs/pedro.rainho/WindowsLiveWriter/HowtocreateanaddininVisualStudio_ED36/image_14.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="343" alt="image" src="http://agilior.pt/blogs/images/agilior_pt/blogs/pedro.rainho/WindowsLiveWriter/HowtocreateanaddininVisualStudio_ED36/image_thumb_6.png" width="448" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Here you choose how the add-in will work.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://agilior.pt/blogs/images/agilior_pt/blogs/pedro.rainho/WindowsLiveWriter/HowtocreateanaddininVisualStudio_ED36/image_16.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="349" alt="image" src="http://agilior.pt/blogs/images/agilior_pt/blogs/pedro.rainho/WindowsLiveWriter/HowtocreateanaddininVisualStudio_ED36/image_thumb_7.png" width="457" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Here you choose the information you want to show when you do Help/About in Visual Studio.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://agilior.pt/blogs/images/agilior_pt/blogs/pedro.rainho/WindowsLiveWriter/HowtocreateanaddininVisualStudio_ED36/image_18.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="343" alt="image" src="http://agilior.pt/blogs/images/agilior_pt/blogs/pedro.rainho/WindowsLiveWriter/HowtocreateanaddininVisualStudio_ED36/image_thumb_8.png" width="449" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Here is the final summary.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://agilior.pt/blogs/images/agilior_pt/blogs/pedro.rainho/WindowsLiveWriter/HowtocreateanaddininVisualStudio_ED36/image_20.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="346" alt="image" src="http://agilior.pt/blogs/images/agilior_pt/blogs/pedro.rainho/WindowsLiveWriter/HowtocreateanaddininVisualStudio_ED36/image_thumb_9.png" width="453" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;And finally our add-in is created. Just press run and you will have a icon of the add-in in Visual Studio Tools menu.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://agilior.pt/blogs/images/agilior_pt/blogs/pedro.rainho/WindowsLiveWriter/HowtocreateanaddininVisualStudio_ED36/image_22.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="298" alt="image" src="http://agilior.pt/blogs/images/agilior_pt/blogs/pedro.rainho/WindowsLiveWriter/HowtocreateanaddininVisualStudio_ED36/image_thumb_10.png" width="316" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;As you can see it’s very simple to create an add-in, basically it’s just Next, next, next. &lt;/p&gt;&lt;img src="http://agilior.pt/blogs/pedro.rainho/aggbug/7588.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Pedro Rainho</dc:creator>
            <guid>http://agilior.pt/blogs/pedro.rainho/archive/2009/04/21/7588.aspx</guid>
            <pubDate>Tue, 21 Apr 2009 13:54:17 GMT</pubDate>
            <wfw:comment>http://agilior.pt/blogs/pedro.rainho/comments/7588.aspx</wfw:comment>
            <comments>http://agilior.pt/blogs/pedro.rainho/archive/2009/04/21/7588.aspx#feedback</comments>
            <wfw:commentRss>http://agilior.pt/blogs/pedro.rainho/comments/commentRss/7588.aspx</wfw:commentRss>
        </item>
    </channel>
</rss>