<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;AkEFRnwzfip7ImA9WhRQEkk.&quot;"><id>tag:blogger.com,1999:blog-1202160988770338210</id><updated>2011-12-07T09:03:37.286Z</updated><category term="Architect" /><category term="Google Maps" /><category term="Mobile" /><category term="Windows 2003" /><category term="Visual Studio" /><category term="Ecology" /><category term="Social" /><category term="Microsoft" /><category term="CSS" /><category term="Javascript" /><category term="Office" /><category term="Photosynth" /><category term="Fonts" /><category term="SQL Server" /><category term="Tech" /><category term="Photography" /><category term="Shortcuts" /><category term="Design" /><category term="Windows" /><category term="Fun" /><category term="IIS" /><category term="Ajax" /><category term="ASP.NET" /><category term="Web" /><category term="Retro" /><category term="Blogging" /><category term="C#" /><category term="Development" /><category term="Browsers" /><category term="Games" /><category term="Database" /><category term="Consoles" /><category term="Operating Systems" /><category term="Sharepoint" /><category term="HTML" /><category term="GPS" /><category term="Tools" /><category term="Software" /><category term="Ubuntu" /><category term="Events" /><category term=".NET" /><category term="Silverlight" /><title>Tiago Epifânio Tech Blog</title><subtitle type="html">Musings of a software developer</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://tiagoe.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://tiagoe.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Tiago Epifânio</name><uri>http://www.blogger.com/profile/16997996364698512042</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-7UlRoFCjGfE/TqwR64TnHxI/AAAAAAAAAQY/Tq77yOf-h4I/s220/F%25C3%25A9rias%2BMadrid%2B634.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>76</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/tiagoe" /><feedburner:info uri="tiagoe" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;A04EQXozcSp7ImA9Wx9bFkk.&quot;"><id>tag:blogger.com,1999:blog-1202160988770338210.post-3071873886757466552</id><published>2011-02-25T16:05:00.001Z</published><updated>2011-02-25T16:05:00.489Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-25T16:05:00.489Z</app:edited><title>Windows 7 shell integration add-on for Foobar2000</title><content type="html">&lt;p&gt;Just found this very nice add-on for &lt;a href="http://www.foobar2000.org/" target="_blank"&gt;Foobar2000&lt;/a&gt; that lets you control it directly from the windows 7 taskbar. Just like Windows Media Player does:&lt;/p&gt;  &lt;p&gt;The add-on is developed by winTense and can be found in their site:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://wintense.com/plugins/foo_w7shell"&gt;http://wintense.com/plugins/foo_w7shell&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Here’s a complete list of the plug-in’s features:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Album art in thumbnail&lt;/li&gt;    &lt;li&gt;Play/pause/stop/next track/previous track buttons in thumbnail&lt;/li&gt;    &lt;li&gt;Progress indicator&lt;/li&gt;    &lt;li&gt;Customizable jump lists&lt;/li&gt;    &lt;li&gt;Overlay icon to display play/pause state&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;And here’s a nice snaphost of the plug-in in action:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_H9pKG-gOXvc/TWfTKBZDwYI/AAAAAAAAANQ/rnHOU5Wdezs/s1600-h/foobar%5B3%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="foobar" border="0" alt="foobar" src="http://lh4.ggpht.com/_H9pKG-gOXvc/TWfTK1pxkEI/AAAAAAAAANU/S7DTamYNcr0/foobar_thumb%5B1%5D.png?imgmax=800" width="310" height="268" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1202160988770338210-3071873886757466552?l=tiagoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tiagoe.blogspot.com/feeds/3071873886757466552/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1202160988770338210&amp;postID=3071873886757466552" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/3071873886757466552?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/3071873886757466552?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tiagoe/~3/solzuHglWAo/windows-7-shell-integration-add-on-for.html" title="Windows 7 shell integration add-on for Foobar2000" /><author><name>Tiago Epifânio</name><uri>http://www.blogger.com/profile/16997996364698512042</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-7UlRoFCjGfE/TqwR64TnHxI/AAAAAAAAAQY/Tq77yOf-h4I/s220/F%25C3%25A9rias%2BMadrid%2B634.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/_H9pKG-gOXvc/TWfTK1pxkEI/AAAAAAAAANU/S7DTamYNcr0/s72-c/foobar_thumb%5B1%5D.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://tiagoe.blogspot.com/2011/02/windows-7-shell-integration-add-on-for.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUAESHc9eyp7ImA9WxFRGUo.&quot;"><id>tag:blogger.com,1999:blog-1202160988770338210.post-1220178227023330471</id><published>2010-05-04T13:55:00.001+01:00</published><updated>2010-05-04T13:55:09.963+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-04T13:55:09.963+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ASP.NET" /><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio" /><title>Converting Visual Studio 2008 Websites to Web Application</title><content type="html">&lt;p&gt;I know I should already be talking about VS 2010 but I had to this today, so I just want to share this link (which helped me a lot):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://gurustop.net/blog/2008/08/03/converting-vs-2008-website-to-web-application/"&gt;http://gurustop.net/blog/2008/08/03/converting-vs-2008-website-to-web-application/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;It’s a very good tutorial with a nice introduction to the problem.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1202160988770338210-1220178227023330471?l=tiagoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tiagoe.blogspot.com/feeds/1220178227023330471/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1202160988770338210&amp;postID=1220178227023330471" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/1220178227023330471?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/1220178227023330471?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tiagoe/~3/MAQcpPKZAQQ/converting-visual-studio-2008-websites.html" title="Converting Visual Studio 2008 Websites to Web Application" /><author><name>Tiago Epifânio</name><uri>http://www.blogger.com/profile/16997996364698512042</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-7UlRoFCjGfE/TqwR64TnHxI/AAAAAAAAAQY/Tq77yOf-h4I/s220/F%25C3%25A9rias%2BMadrid%2B634.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tiagoe.blogspot.com/2010/05/converting-visual-studio-2008-websites.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkYHRXY-fip7ImA9WxFRGU0.&quot;"><id>tag:blogger.com,1999:blog-1202160988770338210.post-3117250312608297389</id><published>2010-05-03T16:22:00.001+01:00</published><updated>2010-05-03T16:22:14.856+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-03T16:22:14.856+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Tools" /><category scheme="http://www.blogger.com/atom/ns#" term="Tech" /><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Database" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server" /><title>DBComparer – Free utility to compare SQL Sever databases</title><content type="html">&lt;p&gt;Just found this free database comparer. It works with SQL Server 2005 and 2008:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dbcomparer.com/"&gt;http://www.dbcomparer.com/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;It is a very light application that lets you know the difference between two databases. It doesn’t allow you to make changes, though. You’ll have to do it manually. Anyway, it’s very helpful and, most of all, free.&lt;/p&gt;  &lt;p&gt;The only thing I would ask for, would be a portable version so I could run it in production environments. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1202160988770338210-3117250312608297389?l=tiagoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tiagoe.blogspot.com/feeds/3117250312608297389/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1202160988770338210&amp;postID=3117250312608297389" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/3117250312608297389?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/3117250312608297389?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tiagoe/~3/0e1O3ae283s/dbcomparer-free-utility-to-compare-sql.html" title="DBComparer – Free utility to compare SQL Sever databases" /><author><name>Tiago Epifânio</name><uri>http://www.blogger.com/profile/16997996364698512042</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-7UlRoFCjGfE/TqwR64TnHxI/AAAAAAAAAQY/Tq77yOf-h4I/s220/F%25C3%25A9rias%2BMadrid%2B634.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tiagoe.blogspot.com/2010/05/dbcomparer-free-utility-to-compare-sql.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A08CRXk-fyp7ImA9WxFSEk4.&quot;"><id>tag:blogger.com,1999:blog-1202160988770338210.post-2857140307959945252</id><published>2010-04-14T11:11:00.001+01:00</published><updated>2010-04-14T11:11:04.757+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-14T11:11:04.757+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight" /><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft" /><title>Open letter to Microsoft about Silverlight. I mean Flash. I mean Silverlight.</title><content type="html">&lt;p&gt;Dear Microsoft,&lt;/p&gt;  &lt;p&gt;Recently you announced you will support Silverlight applications in your new, to be released, Windows Phone 7 series operative system. That’s great news.&lt;/p&gt;  &lt;p&gt;Yesterday you announced a bunch of new products: Visual Studio 2010, .NET 4.0, Silverlight 4. Once again, great news.&lt;/p&gt;  &lt;p&gt;Yesterday you also announced and a new mobile phone named &lt;a href="http://www.kin.com/"&gt;KIN&lt;/a&gt;. Sadly it won’t support Windows Phone 7 yet, since the OS is not to be released before the holiday season.&lt;/p&gt;  &lt;p&gt;Curious about the KIN, I browsed to its official site &lt;a href="http://www.kin.com"&gt;www.kin.com&lt;/a&gt;. Cool site, teenager oriented, lots of Flash animations and interactivity. &lt;/p&gt;  &lt;p&gt;Wait, did I say Flash? No, it’s got to be Siverlight of course. Let me just check.&lt;/p&gt;  &lt;p&gt;(… me browsing…)&lt;/p&gt;  &lt;p&gt;Dear Microsoft,&lt;/p&gt;  &lt;p&gt;Being a mature company as you are, I noticed you use Flash technology in some of your sites (specifically the KIN and the XBox web sites). Does this mean that we should be using it in our sites if we want to be successful too? &lt;/p&gt;  &lt;p&gt;Thanks in advance.&lt;/p&gt;  &lt;p&gt;Yours truly,&lt;/p&gt;  &lt;p&gt;Tiago&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1202160988770338210-2857140307959945252?l=tiagoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tiagoe.blogspot.com/feeds/2857140307959945252/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1202160988770338210&amp;postID=2857140307959945252" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/2857140307959945252?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/2857140307959945252?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tiagoe/~3/mfNB3S-d0po/open-letter-to-microsoft-about.html" title="Open letter to Microsoft about Silverlight. I mean Flash. I mean Silverlight." /><author><name>Tiago Epifânio</name><uri>http://www.blogger.com/profile/16997996364698512042</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-7UlRoFCjGfE/TqwR64TnHxI/AAAAAAAAAQY/Tq77yOf-h4I/s220/F%25C3%25A9rias%2BMadrid%2B634.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://tiagoe.blogspot.com/2010/04/open-letter-to-microsoft-about.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkYHQ3cyeSp7ImA9WxBXEE4.&quot;"><id>tag:blogger.com,1999:blog-1202160988770338210.post-8303903714598342522</id><published>2010-01-21T00:31:00.001Z</published><updated>2010-01-21T00:35:32.991Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-21T00:35:32.991Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Web" /><category scheme="http://www.blogger.com/atom/ns#" term="CSS" /><category scheme="http://www.blogger.com/atom/ns#" term="HTML" /><title>CSS Style &lt;input type=”file”&gt; tags</title><content type="html">&lt;p&gt;Inputs of type=”file” are probably the hardest tags to style in html. Due to security issues browsers don’t allow you to change it too much.&lt;/p&gt;  &lt;p&gt;Of course we have tricks but since each browser makes its own implementation of the control (and it’s poorly documented stuff) the tricky part is to find something that works for all browsers.&lt;/p&gt;  &lt;p&gt;If you google for it you’ll find a few tutorials that are hard to understand and use too much javascript, jquery and css.&lt;/p&gt;  &lt;p&gt;I found a relatively simple way to achieve this and I’ll try to make it easy to understand. It goes in 4 steps.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;STEP 1 – Create a text box and a input “type file”&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Start with a textbox and a div with a input “type file” inside of it. The div should be the size of the “browse…” button that you want to use.&lt;/p&gt;  &lt;p&gt;The only tricky part for now is the &lt;strong&gt;overflow&lt;/strong&gt; property in the css class of the &lt;strong&gt;div &lt;/strong&gt;being set to &lt;strong&gt;hidden&lt;/strong&gt;. That causes the overflowing content of the div to be hidden from sight. See it in the screenshot.&lt;/p&gt;  &lt;p&gt;html:&lt;/p&gt;  &lt;pre&gt;&amp;lt;input id=&amp;quot;fileName&amp;quot; class=&amp;quot;file_input_textbox&amp;quot; readonly /&amp;gt;
 
&amp;lt;div class=&amp;quot;file_input_div&amp;quot;&amp;gt;
  &amp;lt;input type=&amp;quot;file&amp;quot; /&amp;gt;
&amp;lt;/div&amp;gt;&lt;/pre&gt;

&lt;p&gt;css:&lt;/p&gt;

&lt;pre&gt;.file_input_textbox
{
	float: left
}

.file_input_div
{
  position: relative; 
  width: 100px; 
  height: 23px; 
  overflow: hidden;
}&lt;/pre&gt;

&lt;p&gt;screenshot:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://lh6.ggpht.com/_H9pKG-gOXvc/S1egX-h3PJI/AAAAAAAAALs/wlxragNDavA/s1600-h/image%5B11%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_H9pKG-gOXvc/S1egYb_1f-I/AAAAAAAAALw/8YiMr1Ormnk/image_thumb%5B5%5D.png?imgmax=800" width="362" height="238" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEP 2 – The fun part: oversize the input&amp;#160; “type=file”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now we have to make the button part of the input “type=file” show in the &lt;strong&gt;div &lt;/strong&gt;and completely fill it&lt;strong&gt;. &lt;/strong&gt;Aligning it to the right is now enough because the different browsers act differently in this case.&lt;/p&gt;

&lt;p&gt;So, the big trick in this tutorial? Oversize the control. How? Just set its font size to an absurd size (probably 30px will be enough, though).&lt;/p&gt;

&lt;p&gt;html:&lt;/p&gt;

&lt;pre&gt;&amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;fileName&amp;quot; class=&amp;quot;file_input_textbox&amp;quot; readonly=&amp;quot;readonly&amp;quot;&amp;gt;

&amp;lt;div class=&amp;quot;file_input_div&amp;quot;&amp;gt;
  &amp;lt;input type=&amp;quot;file&amp;quot; &lt;strong&gt;&lt;font color="#ff0000"&gt;class=&amp;quot;file_input_hidden&amp;quot;&lt;/font&gt;&lt;/strong&gt;  /&amp;gt;
&amp;lt;/div&amp;gt;&lt;/pre&gt;

&lt;p&gt;css:&lt;/p&gt;

&lt;pre&gt;.file_input_hidden
{
  font-size: 23px; 
  position: absolute; 
  right: 0px; 
  top: 0px; 
  opacity: 0; 
}&lt;/pre&gt;

&lt;p&gt;screenshot:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://lh3.ggpht.com/_H9pKG-gOXvc/S1egZK6LPTI/AAAAAAAAAL0/bJYRcdz3zDE/s1600-h/image%5B15%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_H9pKG-gOXvc/S1egZnTKxDI/AAAAAAAAAL4/lvH0MBu5leE/image_thumb%5B7%5D.png?imgmax=800" width="382" height="251" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEP 3 – Make the input “type=file” invisible and put your customized button behind it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Making the file input invisible doesn’t mean that you cant click it. So, make it invisible, put a customized button behind it.&lt;/p&gt;

&lt;p&gt;That way, you will see your customized button but when you click it, you will in fact be clicking the real (invisible) browse button (the one that is oversized, overflowing, over the customized button, remember?)&lt;/p&gt;

&lt;p&gt;You can customize your browse button by changing the “file_input_button” css class.&lt;/p&gt;

&lt;p&gt;html:&lt;/p&gt;

&lt;pre&gt;&amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;fileName&amp;quot; class=&amp;quot;file_input_textbox&amp;quot; readonly=&amp;quot;readonly&amp;quot;&amp;gt;
 
&amp;lt;div class=&amp;quot;file_input_div&amp;quot;&amp;gt;
  &lt;strong&gt;&lt;font color="#ff0000"&gt;&amp;lt;input type=&amp;quot;button&amp;quot; value=&amp;quot;Search files&amp;quot; class=&amp;quot;file_input_button&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/strong&gt;
  &amp;lt;input type=&amp;quot;file&amp;quot; class=&amp;quot;file_input_hidden&amp;quot; /&amp;gt;
&amp;lt;/div&amp;gt;&lt;/pre&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;css:&lt;/p&gt;

&lt;pre&gt;&lt;font color="#ff0000"&gt;&lt;strong&gt;.file_input_button
{
	width: 100px; 
	position: absolute; 
	top: 0px;
	background-color: #33BB00;
	color: #FFFFFF;
	border-style: solid;
}&lt;/strong&gt;&lt;/font&gt;

.file_input_hidden
{
	font-size: 45px; 
	position: absolute; 
	right: 0px; 
	top: 0px; 
	opacity: 0; 
	
&lt;strong&gt;&lt;font color="#ff0000"&gt;	filter: alpha(opacity=0); 
	-ms-filter: &amp;quot;alpha(opacity=0)&amp;quot;; 
	-khtml-opacity: 0; 
	-moz-opacity: 0;&lt;/font&gt;&lt;/strong&gt;
}&lt;/pre&gt;

&lt;p&gt;screenshot:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://lh3.ggpht.com/_H9pKG-gOXvc/S1egaE6T-OI/AAAAAAAAAL8/_OvR7H5qfc8/s1600-h/image%5B19%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_H9pKG-gOXvc/S1egauKHukI/AAAAAAAAAMA/_Tu5wNBPMnY/image_thumb%5B9%5D.png?imgmax=800" width="349" height="230" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEP 4 – Final step: Fill the text box with the name of the selected file&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you tried the previous steps, will have noticed that after you select a file, nothing shows in the text box. That’s because the file name is indeed being written in the hidden input “type=file”.&lt;/p&gt;

&lt;p&gt;So, in this final step you shall add a simple javascript instruction to the &lt;strong&gt;onchange &lt;/strong&gt;event of the input “type=file” tag. That instruction copies its value (the filename) to the text box.&lt;/p&gt;

&lt;p&gt;html:&lt;/p&gt;

&lt;pre&gt;&amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;fileName&amp;quot; class=&amp;quot;file_input_textbox&amp;quot; readonly=&amp;quot;readonly&amp;quot;&amp;gt;
 
&amp;lt;div class=&amp;quot;file_input_div&amp;quot;&amp;gt;
  &amp;lt;input type=&amp;quot;button&amp;quot; value=&amp;quot;Search files&amp;quot; class=&amp;quot;file_input_button&amp;quot; /&amp;gt;
  &amp;lt;input type=&amp;quot;file&amp;quot; class=&amp;quot;file_input_hidden&amp;quot; &lt;strong&gt;&lt;font color="#ff0000"&gt;onchange=&amp;quot;javascript: document.getElementById('fileName').value = this.value&amp;quot;&lt;/font&gt;&lt;/strong&gt; /&amp;gt;
&amp;lt;/div&amp;gt;&lt;/pre&gt;

&lt;p&gt;And… voilá. It should be working. I’ve tested it in Firefox 3, IE6, IE7, IE8, Opera 10, Chrome 3 and it worked perfectly in all of them.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The complete solution&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So, here is the complete code (css and html all in one):&lt;/p&gt;

&lt;pre&gt;//css
.file_input_textbox
{
	float: left
}

.file_input_div
{
	position: relative; 
	width: 100px; 
	height: 23px; 
	overflow: hidden;
}

.file_input_button
{
	width: 100px; 
	position: absolute; 
	top: 0px;
	background-color: #33BB00;
	color: #FFFFFF;
	border-style: solid;
}

.file_input_hidden
{
	font-size: 45px; 
	position: absolute; 
	right: 0px; 
	top: 0px; 
	opacity: 0; 
	
	filter: alpha(opacity=0); 
	-ms-filter: &amp;quot;alpha(opacity=0)&amp;quot;; 
	-khtml-opacity: 0; 
	-moz-opacity: 0;
}

 
//html
&amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;fileName&amp;quot; class=&amp;quot;file_input_textbox&amp;quot; readonly=&amp;quot;readonly&amp;quot;&amp;gt;
 
&amp;lt;div class=&amp;quot;file_input_div&amp;quot;&amp;gt;
  &amp;lt;input type=&amp;quot;button&amp;quot; value=&amp;quot;Search files&amp;quot; class=&amp;quot;file_input_button&amp;quot; /&amp;gt;
  &amp;lt;input type=&amp;quot;file&amp;quot; class=&amp;quot;file_input_hidden&amp;quot; &lt;font color="#000000"&gt;onchange=&amp;quot;javascript: document.getElementById('fileName').value = this.value&amp;quot;&lt;/font&gt; /&amp;gt;
&amp;lt;/div&amp;gt;&lt;/pre&gt;

&lt;p&gt;There. I hope it works for you as well as it did for me. If you find it doesn't work that well, feel free to let me know. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1202160988770338210-8303903714598342522?l=tiagoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tiagoe.blogspot.com/feeds/8303903714598342522/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1202160988770338210&amp;postID=8303903714598342522" title="34 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/8303903714598342522?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/8303903714598342522?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tiagoe/~3/kYCkwKEzj8o/css-style-typefile-tags.html" title="CSS Style &amp;lt;input type=”file”&amp;gt; tags" /><author><name>Tiago Epifânio</name><uri>http://www.blogger.com/profile/16997996364698512042</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-7UlRoFCjGfE/TqwR64TnHxI/AAAAAAAAAQY/Tq77yOf-h4I/s220/F%25C3%25A9rias%2BMadrid%2B634.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_H9pKG-gOXvc/S1egYb_1f-I/AAAAAAAAALw/8YiMr1Ormnk/s72-c/image_thumb%5B5%5D.png?imgmax=800" height="72" width="72" /><thr:total>34</thr:total><feedburner:origLink>http://tiagoe.blogspot.com/2010/01/css-style-typefile-tags.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4MSXozeSp7ImA9WxBQGUw.&quot;"><id>tag:blogger.com,1999:blog-1202160988770338210.post-8117387940511872436</id><published>2010-01-19T00:00:00.000Z</published><updated>2010-01-19T16:03:08.481Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-19T16:03:08.481Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Web" /><category scheme="http://www.blogger.com/atom/ns#" term="Operating Systems" /><category scheme="http://www.blogger.com/atom/ns#" term="IIS" /><category scheme="http://www.blogger.com/atom/ns#" term="Windows 2003" /><title>Error 403.13 (Client Certificate Revoked) in IIS 6.0</title><content type="html">&lt;p&gt;This error is a confirmed problem by Microsoft when you are trying to setup your WebSite to accept client certificates in IIS6 in Windows 2003. You can read about it here:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://support.microsoft.com/kb/884115"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;http://support.microsoft.com/kb/884115&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Some possible solutions are discussed in here:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://forums.iis.net/p/1146625/1930096.aspx"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;http://forums.iis.net/p/1146625/1930096.aspx&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Basically it occurs because IIS can’t access the CLR (Certificate Revocation List).&lt;/p&gt;  &lt;p&gt;The most radical solution (the one I had to use, unfortunately) is to disable the CLR checking. That can be done by setting the IIS CertCheckMode Metabase Property to 1 (if you want to reenable it, just set it to 0):&lt;/p&gt;  &lt;p&gt;&lt;em&gt;to affect one web site only:&lt;/em&gt;&lt;/p&gt;  &lt;pre&gt;cd \inetpub\adminscripts
cscript adsutil.vbs SET w3svc/{WebSiteId}/CertCheckMode 1&lt;/pre&gt;

&lt;p&gt;or &lt;em&gt;to affect all web sites:&lt;/em&gt;&lt;/p&gt;

&lt;pre&gt;cd \inetpub\adminscripts
cscript adsutil.vbs SET w3svc/CertCheckMode 1&lt;/pre&gt;

&lt;p&gt;If you need to know your Web Site Id, check this link: &lt;a href="http://blog.crowe.co.nz/archive/2007/08/04/IIS-Web-Site-Identifiers.aspx"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;http://blog.crowe.co.nz/archive/2007/08/04/IIS-Web-Site-Identifiers.aspx&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If that solution is not good enough for you, you can change CertCheckMode to value 4 (the client CRL is replaced by the CRL at a remote location, even if the CRL that is cached on the client is valid) and then set the RevocationURLRetrievalTimeout to a higher value like this:&lt;/p&gt;

&lt;pre&gt;cd \inetpub\adminscripts
cscript adsutil.vbs SET w3svc/{WebSiteId}/RevocationURLRetrievalTimeout 120000&lt;/pre&gt;

&lt;p&gt;The script above sets the timeout interval for downloading the CRL to 2 minutes.&lt;/p&gt;

&lt;p&gt;Be sure your server can access the CRL (setup proxy, check connection, etc.).&lt;/p&gt;

&lt;p&gt;Also read:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;&lt;a href="http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/0c08d268-1634-4486-8382-b735e295b3aa.mspx?mfr=true"&gt;CertCheckMode Metabase Property (IIS 6.0)&lt;/a&gt;&lt;/font&gt;&lt;/u&gt; &lt;/li&gt;

  &lt;li&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;&lt;a href="http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/a7540ad3-0a18-41b8-81e0-43523a92347d.mspx?mfr=true"&gt;RevocationFreshnessTime Metabase Property (IIS 6.0)&lt;/a&gt;&lt;/font&gt;&lt;/u&gt; &lt;/li&gt;

  &lt;li&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;&lt;a href="http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/2b9bf1c5-785a-4420-84c4-3011abc59008.mspx?mfr=true"&gt;RevocationURLRetrievalTimeout Metabase Property (IIS 6.0)&lt;/a&gt;&lt;/font&gt;&lt;/u&gt; &lt;/li&gt;

  &lt;li&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;&lt;/font&gt;&lt;/u&gt;&lt;a href="http://support.microsoft.com/kb/884115"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;http://support.microsoft.com/kb/884115&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;&lt;a href="http://forums.iis.net/p/1146625/1930096.aspx"&gt;Thread &amp;quot;IIS 6.0 CRL Checking issue&amp;quot; in IIS forum&lt;/a&gt;&lt;/font&gt;&lt;/u&gt;&lt;/li&gt;

  &lt;li&gt;&lt;a href="http://blog.crowe.co.nz/archive/2007/08/04/IIS-Web-Site-Identifiers.aspx"&gt;IIS Web Site Identifiers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1202160988770338210-8117387940511872436?l=tiagoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tiagoe.blogspot.com/feeds/8117387940511872436/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1202160988770338210&amp;postID=8117387940511872436" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/8117387940511872436?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/8117387940511872436?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tiagoe/~3/8oyG17p5WxQ/error-40313-client-certificate-revoked.html" title="Error 403.13 (Client Certificate Revoked) in IIS 6.0" /><author><name>Tiago Epifânio</name><uri>http://www.blogger.com/profile/16997996364698512042</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-7UlRoFCjGfE/TqwR64TnHxI/AAAAAAAAAQY/Tq77yOf-h4I/s220/F%25C3%25A9rias%2BMadrid%2B634.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tiagoe.blogspot.com/2010/01/error-40313-client-certificate-revoked.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEANSXcyeip7ImA9WxBQFUo.&quot;"><id>tag:blogger.com,1999:blog-1202160988770338210.post-2692455722122026045</id><published>2010-01-15T00:25:00.000Z</published><updated>2010-01-15T16:26:38.992Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-15T16:26:38.992Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Web" /><category scheme="http://www.blogger.com/atom/ns#" term="Design" /><title>Best Practices for Web Forms Design</title><content type="html">&lt;p&gt;Here’s a great document by &lt;a href="http://www.lukew.com" target="_blank"&gt;Luke Wroblewski&lt;/a&gt; concerning Web Forms Design theory:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.lukew.com/resources/articles/WebForms_LukeW.pdf"&gt;http://www.lukew.com/resources/articles/WebForms_LukeW.pdf&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Ever wondered if you should right or left align your fields’ labels? If you should put your labels on top of the fields, etc? It’s all there with lots of screen shots.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1202160988770338210-2692455722122026045?l=tiagoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tiagoe.blogspot.com/feeds/2692455722122026045/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1202160988770338210&amp;postID=2692455722122026045" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/2692455722122026045?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/2692455722122026045?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tiagoe/~3/M6b2ZkCVLS0/best-practices-for-web-forms-design.html" title="Best Practices for Web Forms Design" /><author><name>Tiago Epifânio</name><uri>http://www.blogger.com/profile/16997996364698512042</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-7UlRoFCjGfE/TqwR64TnHxI/AAAAAAAAAQY/Tq77yOf-h4I/s220/F%25C3%25A9rias%2BMadrid%2B634.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tiagoe.blogspot.com/2010/01/best-practices-for-web-forms-design.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUMFSXsyfip7ImA9WxBSFU8.&quot;"><id>tag:blogger.com,1999:blog-1202160988770338210.post-2276054201663931533</id><published>2009-12-23T00:16:00.001Z</published><updated>2009-12-23T00:16:58.596Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-23T00:16:58.596Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Operating Systems" /><category scheme="http://www.blogger.com/atom/ns#" term="Tools" /><category scheme="http://www.blogger.com/atom/ns#" term="Tech" /><category scheme="http://www.blogger.com/atom/ns#" term="Windows" /><category scheme="http://www.blogger.com/atom/ns#" term="Software" /><category scheme="http://www.blogger.com/atom/ns#" term="Ubuntu" /><title>Yay to Ubuntu (or How to Partition an SD Card)</title><content type="html">&lt;p&gt;For some obscure reason you can find the need to partition an SD card. Here are 3 reasons (ordered by “geekiness”):&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;perhaps you need a partition to hold windows files and another to keep you linux files (if that makes any sense)&lt;/li&gt;    &lt;li&gt;if you have a 4GB card with personality issues which thinks it has 32GB capacity (don’t ask)&lt;/li&gt;    &lt;li&gt;you can, so you do it&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Here’s a link that teaches you how to do it:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.pirillo.com/profiles/blogs/how-to-partition-an-sd-card"&gt;&lt;u&gt;&lt;font color="#0066cc"&gt;http://geeks.pirillo.com/profiles/blogs/how-to-partition-an-sd-card&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Basically you can choose from two scenarios:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;do it in Windows and pay some cash for a program like Arconis Disk Director&lt;/li&gt;    &lt;li&gt;do it in Ubuntu for free using only the operating system (and in case you’re wondering, it’s easy)&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I know my fellow blogger &lt;a href="http://devcatharsis.blogspot.com" target="_blank"&gt;Mário Romano&lt;/a&gt; is going to be pissed off by this post but in the other hand, his “archenemy” Mr. M, will be quite happy about it. Always fun to watch them fight about Windows vs. Ubuntu.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1202160988770338210-2276054201663931533?l=tiagoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tiagoe.blogspot.com/feeds/2276054201663931533/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1202160988770338210&amp;postID=2276054201663931533" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/2276054201663931533?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/2276054201663931533?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tiagoe/~3/Bmg3EIYMi_s/yay-to-ubuntu-or-how-to-partition-sd.html" title="Yay to Ubuntu (or How to Partition an SD Card)" /><author><name>Tiago Epifânio</name><uri>http://www.blogger.com/profile/16997996364698512042</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-7UlRoFCjGfE/TqwR64TnHxI/AAAAAAAAAQY/Tq77yOf-h4I/s220/F%25C3%25A9rias%2BMadrid%2B634.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://tiagoe.blogspot.com/2009/12/yay-to-ubuntu-or-how-to-partition-sd.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUMRHw_eip7ImA9WxNbFks.&quot;"><id>tag:blogger.com,1999:blog-1202160988770338210.post-8095903068169776287</id><published>2009-11-19T22:04:00.001Z</published><updated>2009-11-19T22:04:45.242Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-19T22:04:45.242Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Tools" /><category scheme="http://www.blogger.com/atom/ns#" term="Software" /><category scheme="http://www.blogger.com/atom/ns#" term="Database" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server" /><title>Run SQL Server Management Studio with Windows Authentication, Cross Domain</title><content type="html">&lt;p&gt;Ok, I’ve talked about this in another &lt;a href="http://tiagoe.blogspot.com/2007/12/how-to-run-internet-explorer-with.html" target="_blank"&gt;context&lt;/a&gt;, before.&lt;/p&gt;  &lt;p&gt;Sometimes you need to use Management Studio to connect to a database server which happens to be in a different domain than your pc. Well, it all goes ok if you can use SQL Authentication, but if you need to use Windows Authentication, you just don’t have an option to enter your login and password.&lt;/p&gt;  &lt;p&gt;You’ll be forced to use the domain user you’ve used to login to your pc. You can’t use the &lt;strong&gt;runas&lt;/strong&gt; option of your context menu because you just can’t run applications in the context of users of other untrusted domains. So this is a dead end.&lt;/p&gt;  &lt;p&gt;Unless.&lt;/p&gt;  &lt;p&gt;Well, you actually can do something. Run Management Studio from the command prompt using the &lt;strong&gt;runas &lt;/strong&gt;command and use &lt;strong&gt;/netonly&lt;/strong&gt; and &lt;strong&gt;/user&lt;/strong&gt; options to tell your OS that you want to run the application in the context of your current user but to use different credentials for remote access only. Like this:&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;pre&gt;runas /netonly /user:username@domain &amp;quot;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Ssms.exe&amp;quot;&lt;/pre&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Don’t forget to replace &lt;strong&gt;username&lt;/strong&gt; and &lt;strong&gt;domain &lt;/strong&gt;with your real username and domain, of course.&lt;/p&gt;

&lt;p&gt;I’ve used this trick with Management Studio and Internet Explorer, before. And it works.&lt;/p&gt;

&lt;p&gt;Cheers.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1202160988770338210-8095903068169776287?l=tiagoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tiagoe.blogspot.com/feeds/8095903068169776287/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1202160988770338210&amp;postID=8095903068169776287" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/8095903068169776287?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/8095903068169776287?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tiagoe/~3/mSUEn2BCpxE/run-sql-server-management-studio-with.html" title="Run SQL Server Management Studio with Windows Authentication, Cross Domain" /><author><name>Tiago Epifânio</name><uri>http://www.blogger.com/profile/16997996364698512042</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-7UlRoFCjGfE/TqwR64TnHxI/AAAAAAAAAQY/Tq77yOf-h4I/s220/F%25C3%25A9rias%2BMadrid%2B634.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tiagoe.blogspot.com/2009/11/run-sql-server-management-studio-with.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUQNSHc5eip7ImA9WxNUGU4.&quot;"><id>tag:blogger.com,1999:blog-1202160988770338210.post-8694703294328972440</id><published>2009-11-11T09:54:00.001Z</published><updated>2009-11-11T09:56:39.922Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-11T09:56:39.922Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Photosynth" /><category scheme="http://www.blogger.com/atom/ns#" term="Social" /><title>The Berlin Wall, 20 years gone</title><content type="html">&lt;p&gt;Time for an off-topic post. I should probably share this on twitter only, but I guess this way it makes easier for me to find it later, if I wish so.&lt;/p&gt;  &lt;p&gt;A lot of photos of the Berlin Wall and the recent 20 years after commemorations. You can click many of them to see the before and after version. Very cool.&lt;/p&gt;  &lt;p&gt;Here it is:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.boston.com/bigpicture/2009/11/the_berlin_wall_20_years_gone.html"&gt;http://www.boston.com/bigpicture/2009/11/the_berlin_wall_20_years_gone.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;And, just a bit on the geekier side of things, here’s a Photosynth of a wall section now destined to live in art galleries:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://photosynth.net/view.aspx?cid=579a478e-c65a-46f4-87cb-bec102cd8074"&gt;http://photosynth.net/view.aspx?cid=579a478e-c65a-46f4-87cb-bec102cd8074&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Auf Wiedersehen.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1202160988770338210-8694703294328972440?l=tiagoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tiagoe.blogspot.com/feeds/8694703294328972440/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1202160988770338210&amp;postID=8694703294328972440" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/8694703294328972440?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/8694703294328972440?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tiagoe/~3/ir_l4F4MUkU/berlin-wall-20-years-gone.html" title="The Berlin Wall, 20 years gone" /><author><name>Tiago Epifânio</name><uri>http://www.blogger.com/profile/16997996364698512042</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-7UlRoFCjGfE/TqwR64TnHxI/AAAAAAAAAQY/Tq77yOf-h4I/s220/F%25C3%25A9rias%2BMadrid%2B634.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tiagoe.blogspot.com/2009/11/berlin-wall-20-years-gone.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C08GQ348cSp7ImA9WxNVFks.&quot;"><id>tag:blogger.com,1999:blog-1202160988770338210.post-8185423992088008521</id><published>2009-10-26T23:46:00.001Z</published><updated>2009-10-27T16:43:42.079Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-27T16:43:42.079Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Photography" /><title>A Tip for Canon G10 Owners: get around The 1 Second Aperture priority Mode Limitation</title><content type="html">&lt;p&gt;&lt;a href="http://lh4.ggpht.com/_H9pKG-gOXvc/SucgujQ2T1I/AAAAAAAAAIs/fk9odoRcKGI/s1600-h/canon-g10_front%5B18%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="canon-g10_front" border="0" alt="canon-g10_front" align="right" src="http://lh4.ggpht.com/_H9pKG-gOXvc/SucgvGusvRI/AAAAAAAAAIw/J4dd9H6hj-o/canon-g10_front_thumb%5B16%5D.jpg?imgmax=800" width="220" height="167" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;If you have a Canon G10 and like to shoot in Aperture Priority (Av) mode, you’ve probably become aware that the camera limits the shutter speed to 1 second, max.&lt;/p&gt;  &lt;p&gt;That’s quite a limitation for a nice camera like the G10.&lt;/p&gt;  &lt;p&gt;Anyhow, there’s a little workaround (or at least something that’ll be enough for most of us, proud owners of a G10).&lt;/p&gt;  &lt;p&gt;The trick can be found here (you should read it for details):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://g10tipstricks.blogspot.com/2009/01/getting-around-canon-g10s-1-second-av.html"&gt;http://g10tipstricks.blogspot.com/2009/01/getting-around-canon-g10s-1-second-av.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Basically it consists in 3 steps:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Change your mode to Shutter Speed (Tv) priority&amp;#160; (weird, I know, but keep reading)&lt;/li&gt;    &lt;li&gt;Point your camera to your subject and take a quick meter reading (press that asterisk button in your camera)&lt;/li&gt;    &lt;li&gt;Rotate the control ring. The LCD will display a dual meter (aperture and shutter speed) which you can change according to you criteria&lt;/li&gt;    &lt;li&gt;Take your shot&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Although not exactly what you were looking for, it’s still a pretty nice cool workaround, don’t you think?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1202160988770338210-8185423992088008521?l=tiagoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tiagoe.blogspot.com/feeds/8185423992088008521/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1202160988770338210&amp;postID=8185423992088008521" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/8185423992088008521?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/8185423992088008521?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tiagoe/~3/ugAxJZBG2WY/tip-for-canon-g10-owners-get-around-1.html" title="A Tip for Canon G10 Owners: get around The 1 Second Aperture priority Mode Limitation" /><author><name>Tiago Epifânio</name><uri>http://www.blogger.com/profile/16997996364698512042</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-7UlRoFCjGfE/TqwR64TnHxI/AAAAAAAAAQY/Tq77yOf-h4I/s220/F%25C3%25A9rias%2BMadrid%2B634.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/_H9pKG-gOXvc/SucgvGusvRI/AAAAAAAAAIw/J4dd9H6hj-o/s72-c/canon-g10_front_thumb%5B16%5D.jpg?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://tiagoe.blogspot.com/2009/10/tip-for-canon-g10-owners-get-around-1.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEUDQXsyeCp7ImA9WxNUFEs.&quot;"><id>tag:blogger.com,1999:blog-1202160988770338210.post-6600614068265989251</id><published>2009-10-26T23:23:00.002Z</published><updated>2009-11-05T23:04:30.590Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-05T23:04:30.590Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="GPS" /><category scheme="http://www.blogger.com/atom/ns#" term="Google Maps" /><title>Getting GPS Coordinates from Google Maps, The Easy Way</title><content type="html">&lt;p&gt;It’s a pain in the ass every time you need to get the GPS coordinates from a location in &lt;a href="http://maps.google.com" target="_blank"&gt;google maps&lt;/a&gt;, right? You’ll find yourself “googling” about methods that will do the trick (hopefully you’ll land in this page) like pasting javascript in your address bar or installing just another extension in your firefox. &lt;/p&gt;  &lt;p&gt;You’ll probably do it every time you need it because you don’t remember the trick you used last time. I find it hard to remember complicated javascript sentences or the name of that specific extension too, don’t worry.&lt;/p&gt;  &lt;p&gt;Well, I found an easy way to get your gps coordinates easily, in 2 steps. And I have pictures of it, too :-)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Step 1.&lt;/strong&gt; Go to google maps and find the location you desire. Right click the exact location you need and select the option “&lt;strong&gt;What’s here?&lt;/strong&gt;”:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_H9pKG-gOXvc/SvNZ967brLI/AAAAAAAAAI0/OzmRhHzd0sE/s1600-h/image%5B7%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_H9pKG-gOXvc/SvNZ-dGlXOI/AAAAAAAAAI4/6KkrRYJWpmg/image_thumb%5B2%5D.png?imgmax=800" width="412" height="315" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Step 2.&lt;/strong&gt; Click the &lt;strong&gt;green arrow &lt;/strong&gt;(not the red indicator) to get your GPS coordinates:&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://lh5.ggpht.com/_H9pKG-gOXvc/SvNZ-9HG6cI/AAAAAAAAAI8/SSCCfmeDHss/s1600-h/image%5B11%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_H9pKG-gOXvc/SvNZ_SEcegI/AAAAAAAAAJA/UvXMz2uFJDQ/image_thumb%5B4%5D.png?imgmax=800" width="419" height="314" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Voilá.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1202160988770338210-6600614068265989251?l=tiagoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tiagoe.blogspot.com/feeds/6600614068265989251/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1202160988770338210&amp;postID=6600614068265989251" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/6600614068265989251?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/6600614068265989251?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tiagoe/~3/b1wU9ap3Qx0/getting-gps-coordinates-from-google.html" title="Getting GPS Coordinates from Google Maps, The Easy Way" /><author><name>Tiago Epifânio</name><uri>http://www.blogger.com/profile/16997996364698512042</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-7UlRoFCjGfE/TqwR64TnHxI/AAAAAAAAAQY/Tq77yOf-h4I/s220/F%25C3%25A9rias%2BMadrid%2B634.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_H9pKG-gOXvc/SvNZ-dGlXOI/AAAAAAAAAI4/6KkrRYJWpmg/s72-c/image_thumb%5B2%5D.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://tiagoe.blogspot.com/2009/10/getting-gps-coordinates-from-google.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEYHSHg9eyp7ImA9WxNWFUw.&quot;"><id>tag:blogger.com,1999:blog-1202160988770338210.post-8365396944661161369</id><published>2009-10-14T11:28:00.001+01:00</published><updated>2009-10-14T11:28:59.663+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-14T11:28:59.663+01:00</app:edited><title>T-SQL Tidy</title><content type="html">&lt;p&gt;Just found this very useful site where you can tidy/format your Transact-SQL statements into “nice looking SQL”:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.tsqltidy.com/"&gt;http://www.tsqltidy.com/&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Management Studio could use this feature.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1202160988770338210-8365396944661161369?l=tiagoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tiagoe.blogspot.com/feeds/8365396944661161369/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1202160988770338210&amp;postID=8365396944661161369" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/8365396944661161369?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/8365396944661161369?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tiagoe/~3/ZXQsVz2TVVs/t-sql-tidy.html" title="T-SQL Tidy" /><author><name>Tiago Epifânio</name><uri>http://www.blogger.com/profile/16997996364698512042</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-7UlRoFCjGfE/TqwR64TnHxI/AAAAAAAAAQY/Tq77yOf-h4I/s220/F%25C3%25A9rias%2BMadrid%2B634.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tiagoe.blogspot.com/2009/10/t-sql-tidy.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUDRHw4eCp7ImA9WxNRE0w.&quot;"><id>tag:blogger.com,1999:blog-1202160988770338210.post-6337428680274852082</id><published>2009-09-06T23:09:00.000+01:00</published><updated>2009-09-07T11:11:15.230+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-07T11:11:15.230+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Tools" /><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio" /><title>Uninstalling Visual Studio 2008</title><content type="html">&lt;p&gt;Turns out that uninstalling VS2008 can be a pain in the ass. I was trying to uninstall it but all I was getting this annoying message:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;“A problem has been encountered while loading the setup components. Canceling setup.”&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Then the setup would exit. After searching the web (does anyone else hate verbs like &lt;em&gt;googling&lt;/em&gt; or &lt;em&gt;binging&lt;/em&gt;?) I found this great tool from Microsoft:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/vstudio/bb968856.aspx"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;http://msdn.microsoft.com/en-us/vstudio/bb968856.aspx&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;You have the removal tool there but you also have the manual unistall instructions if you prefer.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1202160988770338210-6337428680274852082?l=tiagoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tiagoe.blogspot.com/feeds/6337428680274852082/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1202160988770338210&amp;postID=6337428680274852082" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/6337428680274852082?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/6337428680274852082?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tiagoe/~3/BiuxcTKejR0/uninstalling-visual-studio-2008.html" title="Uninstalling Visual Studio 2008" /><author><name>Tiago Epifânio</name><uri>http://www.blogger.com/profile/16997996364698512042</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-7UlRoFCjGfE/TqwR64TnHxI/AAAAAAAAAQY/Tq77yOf-h4I/s220/F%25C3%25A9rias%2BMadrid%2B634.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tiagoe.blogspot.com/2009/09/uninstalling-visual-studio-2008.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQAQ346cSp7ImA9WxJbEkg.&quot;"><id>tag:blogger.com,1999:blog-1202160988770338210.post-3617417020344789098</id><published>2009-07-22T09:45:00.001+01:00</published><updated>2009-07-22T09:45:42.019+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-22T09:45:42.019+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Javascript" /><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><title>How Much is 1+20?</title><content type="html">&lt;p&gt;The answer is 120…&lt;/p&gt;  &lt;p&gt;… if the sum is made in javascript and the value 20 is actually a string variable.&lt;/p&gt;  &lt;p&gt;This can happen if you read a numeric value from a text box (&amp;lt;input&amp;gt;) and forget to use &lt;strong&gt;parseInt&lt;/strong&gt; to convert it to a numeric value. &lt;/p&gt;  &lt;p&gt;Implicit conversions suck.&lt;/p&gt;  &lt;p&gt;Thank &lt;em&gt;[insert your favorite deity here]&lt;/em&gt; there’s debug.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1202160988770338210-3617417020344789098?l=tiagoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tiagoe.blogspot.com/feeds/3617417020344789098/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1202160988770338210&amp;postID=3617417020344789098" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/3617417020344789098?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/3617417020344789098?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tiagoe/~3/28QI_R46SHc/how-much-is-120.html" title="How Much is 1+20?" /><author><name>Tiago Epifânio</name><uri>http://www.blogger.com/profile/16997996364698512042</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-7UlRoFCjGfE/TqwR64TnHxI/AAAAAAAAAQY/Tq77yOf-h4I/s220/F%25C3%25A9rias%2BMadrid%2B634.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tiagoe.blogspot.com/2009/07/how-much-is-120.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkMBRXc8eip7ImA9WxJbEUU.&quot;"><id>tag:blogger.com,1999:blog-1202160988770338210.post-441343224861678557</id><published>2009-07-21T16:00:00.001+01:00</published><updated>2009-07-21T16:00:54.972+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-21T16:00:54.972+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Tech" /><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term=".NET" /><category scheme="http://www.blogger.com/atom/ns#" term="Software" /><category scheme="http://www.blogger.com/atom/ns#" term="C#" /><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft" /><category scheme="http://www.blogger.com/atom/ns#" term="Office" /><title>Convert Word Documents to PDF Programmatically in 5 Steps (.NET)</title><content type="html">&lt;p&gt;Here’s a great article about converting Word documents to PDF (or XPS) programmatically using Word 12.0 Object Library:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb412305.aspx" target="_blank"&gt;http://msdn.microsoft.com/en-us/library/bb412305.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;You’ll need to install:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Microsoft Word 2007 (make sure you select the “Programmability support” checkbox in your installation);&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=F1FC413C-6D89-4F15-991B-63B07BA5F2E5&amp;amp;displaylang=en"&gt;2007 Microsoft Office Add-in: Microsoft Save as PDF&lt;/a&gt; (or &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=BCE8F991-F0A4-47A0-866B-2FD84A329E02&amp;amp;displaylang=en"&gt;2007 Microsoft Office Add-in: Microsoft Save as XPS&lt;/a&gt;)&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Cheers to MSDN.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1202160988770338210-441343224861678557?l=tiagoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tiagoe.blogspot.com/feeds/441343224861678557/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1202160988770338210&amp;postID=441343224861678557" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/441343224861678557?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/441343224861678557?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tiagoe/~3/qWtCBD8R9j0/convert-word-documents-to-pdf.html" title="Convert Word Documents to PDF Programmatically in 5 Steps (.NET)" /><author><name>Tiago Epifânio</name><uri>http://www.blogger.com/profile/16997996364698512042</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-7UlRoFCjGfE/TqwR64TnHxI/AAAAAAAAAQY/Tq77yOf-h4I/s220/F%25C3%25A9rias%2BMadrid%2B634.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://tiagoe.blogspot.com/2009/07/convert-word-documents-to-pdf.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkAMQHY4cSp7ImA9WxJVFUo.&quot;"><id>tag:blogger.com,1999:blog-1202160988770338210.post-6243812738660044266</id><published>2009-07-03T00:53:00.001+01:00</published><updated>2009-07-03T00:53:01.839+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-03T00:53:01.839+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Tech" /><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term=".NET" /><category scheme="http://www.blogger.com/atom/ns#" term="Software" /><category scheme="http://www.blogger.com/atom/ns#" term="C#" /><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight" /><title>Silverlight and WCF Duplex Services</title><content type="html">&lt;p&gt;Real duplex services would be great to have in Silverlight but unfortunately (and for good reasons – damn you, security) browsers don’t allow Silverlight apps to host Services.&lt;/p&gt;  &lt;p&gt;But someone down in Seattle thought that such a behavior would be nice to have for lazy developers, like yours truly, who wouldn’t be pleased if they had to learn how to use sockets (that’s the alternative).&lt;/p&gt;  &lt;p&gt;So, they added WCF Polling Duplex Support in Silverlight 2 applications. This isn’t true Duplex support, of course, but through a smart polling mechanism you get something very similar.&lt;/p&gt;  &lt;p&gt;In practical terms, the server can send messages to the client application whenever it needs.&lt;/p&gt;  &lt;p&gt;Why is this polling mechanism smart? The client polls the server for any new data and the server leaves that request in “stand by” until it has anything to send to the client. That’s basically it. I won’t go further in details because there’s people out there who would explain it much better.&lt;/p&gt;  &lt;p&gt;So, if you’re still reading this and want to find out more about it, here’s some links:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc645026(VS.95).aspx" target="_blank"&gt;MSDN&lt;/a&gt; – Great text with a simple client/server code sample;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://petermcg.wordpress.com/2008/09/03/silverlight-polling-duplex-part-1-architecture/" target="_blank"&gt;Silverlight 2 WCF Polling Duplex Support&lt;/a&gt; – Peter McGrattan’s 4 part article. Very good details and code samples. Be sure you read &lt;a href="http://petermcg.wordpress.com/2008/09/03/silverlight-polling-duplex-part-2-the-server/" target="_blank"&gt;part 2&lt;/a&gt;, &lt;a href="http://petermcg.wordpress.com/2008/09/03/silverlight-polling-duplex-part-3-the-client/" target="_blank"&gt;part 3&lt;/a&gt; and &lt;a href="http://petermcg.wordpress.com/2008/11/19/silverlight-polling-duplex-part-4-wpf-client/" target="_blank"&gt;part 4&lt;/a&gt;;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://weblogs.asp.net/dwahlin/archive/2008/06/16/pushing-data-to-a-silverlight-client-with-wcf-duplex-service-part-i.aspx" target="_blank"&gt;Pushing Data to a Silverlight Client with a WCF Duplex Service&lt;/a&gt; – Dan Wahlin’s approach on the subject. Another great article with code sample that you can download and test. Also read &lt;a href="http://weblogs.asp.net/dwahlin/archive/2008/06/19/pushing-data-to-a-silverlight-client-with-a-wcf-duplex-service-part-ii.aspx" target="_blank"&gt;part 2&lt;/a&gt;;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I’m using this technology to develop my Online Multiplayer Silverlight game. The networking is basically WCF Duplex Polling together with JSON serialization of the objects I need to pass from server to client and vice-versa.&lt;/p&gt;  &lt;p&gt;Of course if you want to develop a game with real time communication between the server and the client, you will have to use sockets. I’m using WCF because the communication only happens every few seconds, not all the time. So, I’m using WCF because I can.&lt;/p&gt;  &lt;p&gt;It’s getting late. See you.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1202160988770338210-6243812738660044266?l=tiagoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tiagoe.blogspot.com/feeds/6243812738660044266/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1202160988770338210&amp;postID=6243812738660044266" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/6243812738660044266?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/6243812738660044266?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tiagoe/~3/-VtSnahlE94/silverlight-and-wcf-duplex-services.html" title="Silverlight and WCF Duplex Services" /><author><name>Tiago Epifânio</name><uri>http://www.blogger.com/profile/16997996364698512042</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-7UlRoFCjGfE/TqwR64TnHxI/AAAAAAAAAQY/Tq77yOf-h4I/s220/F%25C3%25A9rias%2BMadrid%2B634.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tiagoe.blogspot.com/2009/07/silverlight-and-wcf-duplex-services.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUMFQXw6fip7ImA9WxJVFEk.&quot;"><id>tag:blogger.com,1999:blog-1202160988770338210.post-6883103609249273241</id><published>2009-06-30T23:08:00.000+01:00</published><updated>2009-07-01T12:23:30.216+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-01T12:23:30.216+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Tech" /><category scheme="http://www.blogger.com/atom/ns#" term="Games" /><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term=".NET" /><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight" /><title>JSON serialization and deserialization in Silverlight</title><content type="html">&lt;p&gt;Silverlight doesn’t support Xml Serialization, so you have to use JSON. The good news is that it’s easy to do so.&lt;/p&gt;  &lt;p&gt;Here’s a nice article about this subject written by &lt;a href="http://www.silverlightshow.net/Profile.aspx?userId=72a9c98f-cd6a-41ca-81a4-716880254d57" target="_blank"&gt;Martin Mihaylov&lt;/a&gt; from which you can copy some code snippets:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.silverlightshow.net/items/JSON-serialization-and-deserialization-in-Silverlight.aspx"&gt;http://www.silverlightshow.net/items/JSON-serialization-and-deserialization-in-Silverlight.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;By the way, I’ll be using this for a Silverlight online game I’m currently developing. It will also use WCF Duplex Services for Silverlight. More on those subjects soon.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1202160988770338210-6883103609249273241?l=tiagoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tiagoe.blogspot.com/feeds/6883103609249273241/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1202160988770338210&amp;postID=6883103609249273241" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/6883103609249273241?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/6883103609249273241?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tiagoe/~3/PhrJgKvr9Tc/json-serialization-and-deserialization.html" title="JSON serialization and deserialization in Silverlight" /><author><name>Tiago Epifânio</name><uri>http://www.blogger.com/profile/16997996364698512042</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-7UlRoFCjGfE/TqwR64TnHxI/AAAAAAAAAQY/Tq77yOf-h4I/s220/F%25C3%25A9rias%2BMadrid%2B634.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tiagoe.blogspot.com/2009/06/json-serialization-and-deserialization.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkENRX85eip7ImA9WxJXE00.&quot;"><id>tag:blogger.com,1999:blog-1202160988770338210.post-4769754992618744431</id><published>2009-06-06T18:18:00.001+01:00</published><updated>2009-06-06T18:18:14.122+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-06T18:18:14.122+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Operating Systems" /><category scheme="http://www.blogger.com/atom/ns#" term="Tech" /><category scheme="http://www.blogger.com/atom/ns#" term="Software" /><title>Burn CD/DVD Images from Windows 7</title><content type="html">&lt;p&gt;Just used this new feature of Windows 7: Windows Disc Image Burner.&lt;/p&gt;  &lt;p&gt;I have a recent installation of the OS and needed to burn a DVD. I was desperately thinking that I had to go find a lost copy of Nero somewhere, install it and then burn the disc, when I right-clicked the .iso file and guess what:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_H9pKG-gOXvc/Siqk0_tQ-7I/AAAAAAAAAHA/_4N23ONS9JI/s1600-h/image%5B5%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_H9pKG-gOXvc/Siqk1S3-pmI/AAAAAAAAAHE/vawtmHTPyoo/image_thumb%5B1%5D.png?imgmax=800" width="244" height="141" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Burn disc image!!&lt;/p&gt;  &lt;p&gt;So, finally, Windows comes with a built-in feature to burn cd’s. Wow, that’s cool. It’s just uncool that we had to wait so much for it.&lt;/p&gt;  &lt;p&gt;   &lt;p&gt;Read about this feature here:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://technet.microsoft.com/en-us/magazine/dd451080.aspx"&gt;http://technet.microsoft.com/en-us/magazine/dd451080.aspx&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Bye (nero).&lt;/p&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1202160988770338210-4769754992618744431?l=tiagoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tiagoe.blogspot.com/feeds/4769754992618744431/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1202160988770338210&amp;postID=4769754992618744431" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/4769754992618744431?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/4769754992618744431?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tiagoe/~3/XUvzhYm2TGQ/burn-cddvd-images-from-windows-7.html" title="Burn CD/DVD Images from Windows 7" /><author><name>Tiago Epifânio</name><uri>http://www.blogger.com/profile/16997996364698512042</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-7UlRoFCjGfE/TqwR64TnHxI/AAAAAAAAAQY/Tq77yOf-h4I/s220/F%25C3%25A9rias%2BMadrid%2B634.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_H9pKG-gOXvc/Siqk1S3-pmI/AAAAAAAAAHE/vawtmHTPyoo/s72-c/image_thumb%5B1%5D.png?imgmax=800" height="72" width="72" /><thr:total>4</thr:total><feedburner:origLink>http://tiagoe.blogspot.com/2009/06/burn-cddvd-images-from-windows-7.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUICSH48eCp7ImA9WxJRF04.&quot;"><id>tag:blogger.com,1999:blog-1202160988770338210.post-8365013166587660301</id><published>2009-05-18T23:01:00.000+01:00</published><updated>2009-05-19T13:52:49.070+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-19T13:52:49.070+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term=".NET" /><category scheme="http://www.blogger.com/atom/ns#" term="C#" /><title>String.IsNullOrEmpty() in C#</title><content type="html">&lt;p&gt;Please, please, don’t write code like this:&lt;/p&gt;  &lt;pre&gt;&lt;span style="color: blue"&gt;if&lt;/span&gt; (someString != &lt;span style="color: blue"&gt;null&lt;/span&gt; &amp;amp;&amp;amp; !someString.Equals(&lt;span style="color: maroon"&gt;&amp;quot;&amp;quot;&lt;/span&gt;))
{
	doThis();
}&lt;/pre&gt;

&lt;p&gt;There’s a much cleaner way to do it:&lt;/p&gt;

&lt;pre&gt;&lt;span style="color: blue"&gt;if&lt;/span&gt; (!&lt;span style="color: blue"&gt;string&lt;/span&gt;.IsNullOrEmpty(someString))
{
	doThis();
}&lt;/pre&gt;

&lt;p&gt;Thank you very much.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1202160988770338210-8365013166587660301?l=tiagoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tiagoe.blogspot.com/feeds/8365013166587660301/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1202160988770338210&amp;postID=8365013166587660301" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/8365013166587660301?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/8365013166587660301?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tiagoe/~3/vYImMsmBBGw/stringisnullorempty-in-c.html" title="String.IsNullOrEmpty() in C#" /><author><name>Tiago Epifânio</name><uri>http://www.blogger.com/profile/16997996364698512042</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-7UlRoFCjGfE/TqwR64TnHxI/AAAAAAAAAQY/Tq77yOf-h4I/s220/F%25C3%25A9rias%2BMadrid%2B634.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://tiagoe.blogspot.com/2009/05/stringisnullorempty-in-c.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0QARn07cCp7ImA9WxJSFkk.&quot;"><id>tag:blogger.com,1999:blog-1202160988770338210.post-7007812593681201481</id><published>2009-05-06T14:18:00.001+01:00</published><updated>2009-05-06T22:29:07.308+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-06T22:29:07.308+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term=".NET" /><category scheme="http://www.blogger.com/atom/ns#" term="ASP.NET" /><title>MaxLength in Multiline TextBox (ASP.NET)</title><content type="html">&lt;p&gt;When you add a TextBox with the property TextMode = “Multiline” the MaxLength property is completely ignored and that makes the browser unable to limit the size of the text you enter in the text box. (that happens because the ASP.NET generates an html &amp;lt;textarea&amp;gt; tag instead of &amp;lt;input&amp;gt; and the textarea is of unlimited size).&lt;/p&gt;  &lt;p&gt;The solution is to add a RegularExpressionValidator Control with the following regular expression (in the example, maximum length is set to 250):&lt;/p&gt;  &lt;pre&gt;[\s\S]{0,250}&lt;/pre&gt;

&lt;p&gt;This is the regular expression I use. Some people use others but I think this one fills my needs. The explanation is here:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;\s = Any whitespace characters, like spaces, tabs and newlines&lt;/p&gt;

  &lt;p&gt;\S = Any character that is not a whitespace&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;pre&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;asp:TextBox&lt;/span&gt; &lt;span style="color: red"&gt;id&lt;/span&gt;=&amp;quot;&lt;span style="color: blue"&gt;TextBox1&lt;/span&gt;&amp;quot; &lt;span style="color: red"&gt;TextMode&lt;/span&gt;=&amp;quot;&lt;span style="color: blue"&gt;Multiline&lt;/span&gt;&amp;quot; &lt;span style="color: red"&gt;Rows&lt;/span&gt;=&amp;quot;&lt;span style="color: blue"&gt;5&lt;/span&gt;&amp;quot; &lt;span style="color: red"&gt;runat&lt;/span&gt;=&amp;quot;&lt;span style="color: blue"&gt;server&lt;/span&gt;&amp;quot;/&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;asp:RegularExpressionValidator&lt;/span&gt; &lt;span style="color: red"&gt;id&lt;/span&gt;=&amp;quot;&lt;span style="color: blue"&gt;RegularExpressionValidator1&lt;/span&gt;&amp;quot; 
                     &lt;span style="color: red"&gt;ControlToValidate&lt;/span&gt;=&amp;quot;&lt;span style="color: blue"&gt;TextBox1&lt;/span&gt;&amp;quot;
                     &lt;span style="color: red"&gt;ValidationExpression&lt;/span&gt;=&amp;quot;&lt;span style="color: blue"&gt;[\s\S]{0,250}&lt;/span&gt;&amp;quot;
                     &lt;span style="color: red"&gt;ErrorMessage&lt;/span&gt;=&amp;quot;&lt;span style="color: blue"&gt;Maximum size is 250&lt;/span&gt;&amp;quot;
                     &lt;span style="color: red"&gt;runat&lt;/span&gt;=&amp;quot;&lt;span style="color: blue"&gt;server&lt;/span&gt;&amp;quot;/&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1202160988770338210-7007812593681201481?l=tiagoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tiagoe.blogspot.com/feeds/7007812593681201481/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1202160988770338210&amp;postID=7007812593681201481" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/7007812593681201481?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/7007812593681201481?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tiagoe/~3/b7xbFYDVL38/maxlength-in-multiline-textbox-aspnet.html" title="MaxLength in Multiline TextBox (ASP.NET)" /><author><name>Tiago Epifânio</name><uri>http://www.blogger.com/profile/16997996364698512042</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-7UlRoFCjGfE/TqwR64TnHxI/AAAAAAAAAQY/Tq77yOf-h4I/s220/F%25C3%25A9rias%2BMadrid%2B634.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://tiagoe.blogspot.com/2009/05/maxlength-in-multiline-textbox-aspnet.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU4MRn84fyp7ImA9WxJSFUw.&quot;"><id>tag:blogger.com,1999:blog-1202160988770338210.post-2161825564532233224</id><published>2009-05-05T10:05:00.001+01:00</published><updated>2009-05-05T11:06:27.137+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-05T11:06:27.137+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Operating Systems" /><category scheme="http://www.blogger.com/atom/ns#" term="Tech" /><category scheme="http://www.blogger.com/atom/ns#" term="Software" /><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft" /><title>Windows 7 RC is Out</title><content type="html">&lt;p&gt;&lt;img style="margin: 0px 20px 0px 0px; display: inline" align="left" src="http://www.microsoft.com/presspass/images/gallery/logos/thumbnails/Windows7_v_Thumb.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;Windows 7 Release Candidate is out and available for everyone.&lt;/p&gt;  &lt;p&gt;Microsoft is saying you don’t have to rush because there’ll be licenses for everyone.&lt;/p&gt;  &lt;p&gt;The good thing is that &lt;strong&gt;“The RC will expire on June 1, 2010” &lt;/strong&gt;(although “&lt;strong&gt;Starting on March 1, 2010, your PC will begin shutting down every two hours&lt;/strong&gt;”).&lt;/p&gt;  &lt;p&gt;Anyway, you’ll have about one year to try out the product and decide if you’re going to get your final release license.&lt;/p&gt;  &lt;p&gt;Get you download instructions here:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/windows/windows-7/download.aspx"&gt;http://www.microsoft.com/windows/windows-7/download.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Bye bye Vista :D&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1202160988770338210-2161825564532233224?l=tiagoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tiagoe.blogspot.com/feeds/2161825564532233224/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1202160988770338210&amp;postID=2161825564532233224" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/2161825564532233224?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/2161825564532233224?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tiagoe/~3/PdlIuWLgz-k/windows-7-rc-is-out.html" title="Windows 7 RC is Out" /><author><name>Tiago Epifânio</name><uri>http://www.blogger.com/profile/16997996364698512042</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-7UlRoFCjGfE/TqwR64TnHxI/AAAAAAAAAQY/Tq77yOf-h4I/s220/F%25C3%25A9rias%2BMadrid%2B634.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tiagoe.blogspot.com/2009/05/windows-7-rc-is-out.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkAGSXsyfyp7ImA9WxJSEEk.&quot;"><id>tag:blogger.com,1999:blog-1202160988770338210.post-4676398507832434097</id><published>2009-04-29T23:38:00.001+01:00</published><updated>2009-04-29T23:38:48.597+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-29T23:38:48.597+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Tech" /><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Software" /><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio" /><title>Stop Visual Studio from Launching multiple “IIS”</title><content type="html">&lt;p&gt;If you have a Visual Studio 2005 or 2008 Solution with several Web Sites (not Web Projects… Web Sites) then when you Start Debug, multiple “tiny IISs” (Development Servers) are started:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_H9pKG-gOXvc/SfjW5k09OyI/AAAAAAAAAGQ/vCO6wAeKfBo/s1600-h/image%5B7%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="111" alt="image" src="http://lh4.ggpht.com/_H9pKG-gOXvc/SfjW7_zQhRI/AAAAAAAAAGU/Bn1KIxW93DQ/image_thumb%5B3%5D.png?imgmax=800" width="371" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;It can be annoying if you have a Solution with something like 5 Web Sites… It will take a while to start and your PC may become a bit slower.&lt;/p&gt;  &lt;p&gt;So, if you want to avoid this, you have two options:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Set your Web Site’s &lt;strong&gt;Always Start When Debugging &lt;/strong&gt;option to false&lt;strong&gt;.&lt;/strong&gt; If set to False, this option makes your Web site to only start when it is the startup project:       &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_H9pKG-gOXvc/SfjW8FUm3zI/AAAAAAAAAGY/rgmMsgZNBR0/s1600-h/image%5B22%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="292" alt="image" src="http://lh5.ggpht.com/_H9pKG-gOXvc/SfjW8qcultI/AAAAAAAAAGc/cvSBiswBHxM/image_thumb%5B12%5D.png?imgmax=800" width="374" border="0" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;Set the &lt;strong&gt;Use Dynamic Ports&lt;/strong&gt; option to False and manually set the &lt;strong&gt;Port number&lt;/strong&gt; for your site. The several web sites in your solution can use the same port number. That way, when you Start Debugging, only one “Development Server” comes up.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_H9pKG-gOXvc/SfjW9Mot1RI/AAAAAAAAAGg/ZU7PqgZpRUM/s1600-h/image%5B21%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="305" alt="image" src="http://lh4.ggpht.com/_H9pKG-gOXvc/SfjW91MM60I/AAAAAAAAAGk/8OZYmdi41Yg/image_thumb%5B11%5D.png?imgmax=800" width="350" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Time to go to bed. Bye.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1202160988770338210-4676398507832434097?l=tiagoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tiagoe.blogspot.com/feeds/4676398507832434097/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1202160988770338210&amp;postID=4676398507832434097" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/4676398507832434097?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/4676398507832434097?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tiagoe/~3/R15QM_nV_34/stop-visual-studio-from-launching.html" title="Stop Visual Studio from Launching multiple “IIS”" /><author><name>Tiago Epifânio</name><uri>http://www.blogger.com/profile/16997996364698512042</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-7UlRoFCjGfE/TqwR64TnHxI/AAAAAAAAAQY/Tq77yOf-h4I/s220/F%25C3%25A9rias%2BMadrid%2B634.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/_H9pKG-gOXvc/SfjW7_zQhRI/AAAAAAAAAGU/Bn1KIxW93DQ/s72-c/image_thumb%5B3%5D.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://tiagoe.blogspot.com/2009/04/stop-visual-studio-from-launching.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A04MQnw8cSp7ImA9WxJTGEs.&quot;"><id>tag:blogger.com,1999:blog-1202160988770338210.post-853730836102001220</id><published>2009-04-27T23:06:00.001+01:00</published><updated>2009-04-27T23:06:23.279+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-27T23:06:23.279+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Operating Systems" /><category scheme="http://www.blogger.com/atom/ns#" term="Tech" /><category scheme="http://www.blogger.com/atom/ns#" term="Software" /><category scheme="http://www.blogger.com/atom/ns#" term="Browsers" /><title>Windows Proxy</title><content type="html">&lt;p&gt;From time to time this happens to me. Working behind a corporate firewall you usually need to use an http proxy.&lt;/p&gt;  &lt;p&gt;Usually it’s enough to have the proxy configured in Internet Explorer settings. But sometimes you need to setup the proxy in Windows itself.&lt;/p&gt;  &lt;p&gt;For instance, when running Windows Live installer (windows live messenger, windows live writer, etc.) you have do this.&lt;/p&gt;  &lt;p&gt;Here’s the command line commands to import the proxy from IE (to know more about the commands click on them):&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Windows XP:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;gt; &lt;a href="http://msdn.microsoft.com/en-us/library/aa384069.aspx" target="_blank"&gt;proxycfg&lt;/a&gt; –u&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Windows Vista:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;gt; &lt;a href="http://support.microsoft.com/kb/242468" target="_blank"&gt;netsh&lt;/a&gt;     &lt;br /&gt;&amp;gt; &lt;a href="http://technet.microsoft.com/en-us/library/cc731131.aspx" target="_blank"&gt;winhttp&lt;/a&gt;    &lt;br /&gt;&amp;gt; import proxy source=ie&lt;/p&gt;  &lt;p&gt;Bye.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1202160988770338210-853730836102001220?l=tiagoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tiagoe.blogspot.com/feeds/853730836102001220/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1202160988770338210&amp;postID=853730836102001220" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/853730836102001220?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/853730836102001220?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tiagoe/~3/ApS2aCPZUxc/windows-proxy.html" title="Windows Proxy" /><author><name>Tiago Epifânio</name><uri>http://www.blogger.com/profile/16997996364698512042</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-7UlRoFCjGfE/TqwR64TnHxI/AAAAAAAAAQY/Tq77yOf-h4I/s220/F%25C3%25A9rias%2BMadrid%2B634.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tiagoe.blogspot.com/2009/04/windows-proxy.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUMMRXozeyp7ImA9WxJTGU0.&quot;"><id>tag:blogger.com,1999:blog-1202160988770338210.post-4661245916411277694</id><published>2009-04-25T01:07:00.002+01:00</published><updated>2009-04-28T09:31:24.483+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-28T09:31:24.483+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Tools" /><category scheme="http://www.blogger.com/atom/ns#" term="Tech" /><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term=".NET" /><category scheme="http://www.blogger.com/atom/ns#" term="Software" /><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio" /><title>TFS Branching Guide 2.0</title><content type="html">&lt;p&gt;Here’s a link to the Team Foundation Server &lt;strong&gt;Branching Guide&lt;/strong&gt; 2.0&lt;strong&gt;:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://tfsbranchingguideii.codeplex.com/"&gt;http://tfsbranchingguideii.codeplex.com/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Great document if you want to understand the philosophy behind branching and know a few typical scenarios.&lt;/p&gt;  &lt;p&gt;And to think that I’ve been using SourceSafe all this time…&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1202160988770338210-4661245916411277694?l=tiagoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tiagoe.blogspot.com/feeds/4661245916411277694/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1202160988770338210&amp;postID=4661245916411277694" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/4661245916411277694?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1202160988770338210/posts/default/4661245916411277694?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tiagoe/~3/xoGiL-8aRDE/tfs-branching-guide-20.html" title="TFS Branching Guide 2.0" /><author><name>Tiago Epifânio</name><uri>http://www.blogger.com/profile/16997996364698512042</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-7UlRoFCjGfE/TqwR64TnHxI/AAAAAAAAAQY/Tq77yOf-h4I/s220/F%25C3%25A9rias%2BMadrid%2B634.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tiagoe.blogspot.com/2009/04/tfs-branching-guide-20.html</feedburner:origLink></entry></feed>

