<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8581906</id><updated>2011-12-15T03:57:02.521+01:00</updated><title type='text'>Jose Blanco's Weblog</title><subtitle type='html'>It's now safe to turn off your computer(and other random thoughts about MOBILE, .NET and generic things)</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://joseblanco.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://joseblanco.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Jose Blanco</name><uri>http://www.blogger.com/profile/07526585792164739920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>40</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8581906.post-114287884993090937</id><published>2006-03-20T18:48:00.000+01:00</published><updated>2006-07-18T16:17:13.583+02:00</updated><title type='text'>A lot of IIS restarts. Strange behavior!</title><content type='html'>Suddenly, one app goes slowly...&lt;br /&gt;&lt;br /&gt;Watching the IIS log of one of our application, all I can found was a lot of IIS restarts. Digging into the IIS configurations, app code and all I can suppose I can't found any result.&lt;br /&gt;&lt;br /&gt;Then I try to test the app in debug mode, and all I can find was a error like this:&lt;br /&gt;"An unhandled exception of type 'System.Threading.ThreadAbortException' occurred in Unknown Module.&lt;br /&gt;&lt;br /&gt;Additional information: Subproceso anulado.&lt;br /&gt;"&lt;br /&gt;&lt;br /&gt;Well... the IIS restarts any time I wrote into the MS Access database. Perhaps a problem with the ODBC?... No&lt;br /&gt;&lt;br /&gt;Resolution:&lt;br /&gt;The problem was that someone had taken the decision to put the database into the bin directory for avoiding web downloads of it and ensuring IIS read/write permissions. Bad Idea!!!. Why? Because IIS has a file watcher to the bin and its subdirectories, and when one file into them changes IIS recycles the &lt;a href="http://www.gotdotnet.com/team/clr/AppdomainFAQ.aspx" target="_blank"&gt;appDomain&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;How can you avoid web downloads of some of your files?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;1. Open the Web.config file in a text editor such as Notepad. The Web.config file is located in the root directory of your Web application.&lt;br /&gt;&lt;br /&gt;2. In the Web.config file add the &lt;httphandlers&gt;configuration element under the &lt;system.web&gt;element.&lt;br /&gt;Note You must not copy the &lt;httphandlers&gt;element from the Machine.config file. The reason you must not copy the &lt;httphandlers&gt;element is because the &lt;httphandlers&gt;element permits you to add additional file types without completely overriding the Machine.config settings.&lt;br /&gt;&lt;br /&gt;3. In the &lt;httphandlers&gt;element, use &lt;add&gt;sub tags to specify additional file types that you want blocked. Set the verb attribute equal to “*”. When you do this, you specify that all types of HTTP requests are blocked. Define the path attribute as a wildcard character that matches the types of files you want to block. For example, you may specify “*.mdb”. Finally, set the type attribute to “System.Web.HttpForbiddenHandler". The code sample that follows shows how to configure the "httpHandlers" section in the Web.config file.&lt;br /&gt;&lt;br /&gt;&lt;code class="csharpcode"&gt;&lt;br /&gt;&amp;lt;system.web&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;httphandlers&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;add type="System.Web.HttpForbiddenHandler" path="*.mdb" verb="*" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;add type="System.Web.HttpForbiddenHandler" path="*.csv" verb="*" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/httphandlers&amp;gt;&lt;br /&gt;&amp;lt;/system.web&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;4. Save the Web.config file. The ASP.NET application automatically restarts. &lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8581906-114287884993090937?l=joseblanco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joseblanco.blogspot.com/feeds/114287884993090937/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8581906&amp;postID=114287884993090937' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/114287884993090937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/114287884993090937'/><link rel='alternate' type='text/html' href='http://joseblanco.blogspot.com/2006/03/lot-of-iis-restarts-strange-behavior.html' title='A lot of IIS restarts. Strange behavior!'/><author><name>Jose Blanco</name><uri>http://www.blogger.com/profile/07526585792164739920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8581906.post-111004006970826113</id><published>2005-03-05T17:00:00.000+01:00</published><updated>2005-03-05T17:27:49.710+01:00</updated><title type='text'>JPG image support in MIDP. How to detect it in J2ME</title><content type='html'>(Soporte para imagenes JPG en MIDP. Como detectarlo en J2ME)&lt;br /&gt;&lt;br /&gt;At my last project we have to show certain downloaded images in a mobile phone using J2ME. The images are in jpeg format, and we pass them throughout an adapter for preprocess the width and the format.&lt;br /&gt;&lt;br /&gt;As they are camera images, if we send to the phone in png format, they has more or less 15 KB, but if we send them in jpg, only 3 or 4 KB are needed, but...&lt;br /&gt;&lt;br /&gt;As &lt;a href="http://java.sun.com/products/midp/" target="_blank" title="MIDP Standard"&gt;MIDP standard&lt;/a&gt; says:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;"...Implementations are required to support images stored in the PNG format, as specified by the PNG (Portable Network Graphics) Specification, &lt;a href="http://www.ietf.org/rfc/rfc2083.txt" target="_blank" title="PNG Specification"&gt;Version 1.0&lt;/a&gt;. All conforming MIDP implementations are also conformant to the minimum set of requirements given by the PNG Specification."&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Well, to manage those problem we execute the following routine when the application loads.&lt;br /&gt;&lt;br /&gt;boolean support_JPG = false;&lt;br /&gt;try{&lt;br /&gt;&amp;nbsp;&amp;nbsp;Image img = Image.createImage("/res/p.jpg");&lt;br /&gt;&amp;nbsp;&amp;nbsp;support_JPG= true ;&lt;br /&gt;&amp;nbsp;&amp;nbsp;img = null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;System.out.println("JPG support is true");&lt;br /&gt;catch(Exception e){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println("JPG support is false");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;They idea is put a small pixel jpeg file(160 bytes) in the resources and try to load it, and if no exception is thrown, we suppose that the jpg format is supported by the phone, and we store this value in a boolean variable called support_JPG. Another thing thath you can do, is call this routine only the first time that the app runs in the phone and store this value using RMS(Recommended).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8581906-111004006970826113?l=joseblanco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joseblanco.blogspot.com/feeds/111004006970826113/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8581906&amp;postID=111004006970826113' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/111004006970826113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/111004006970826113'/><link rel='alternate' type='text/html' href='http://joseblanco.blogspot.com/2005/03/jpg-image-support-in-midp-how-to.html' title='JPG image support in MIDP. How to detect it in J2ME'/><author><name>Jose Blanco</name><uri>http://www.blogger.com/profile/07526585792164739920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8581906.post-110966946397899562</id><published>2005-03-01T10:28:00.000+01:00</published><updated>2005-03-01T10:31:03.980+01:00</updated><title type='text'>ILUNGA, the world's most difficult word to translate</title><content type='html'>(ILUNGA, la palabra mas dificil de traducir)&lt;br /&gt;&lt;br /&gt;The world's most difficult word to translate has been identified as "ilunga" from the Tshiluba language spoken in south-eastern DR Congo. &lt;br /&gt;&lt;br /&gt;Ilunga means "a person who is ready to forgive any abuse for the first time, to tolerate it a second time, but never a third time". &lt;br /&gt;&lt;br /&gt;It seems straightforward enough, but the 1,000 language experts identified it as the hardest word to translate. &lt;br /&gt;&lt;br /&gt;In second place was shlimazl which is Yiddish for "a chronically unlucky person". &lt;br /&gt;&lt;br /&gt;Third was Naa, used in the Kansai area of Japan to emphasise statements or agree with someone.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8581906-110966946397899562?l=joseblanco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joseblanco.blogspot.com/feeds/110966946397899562/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8581906&amp;postID=110966946397899562' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/110966946397899562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/110966946397899562'/><link rel='alternate' type='text/html' href='http://joseblanco.blogspot.com/2005/03/ilunga-worlds-most-difficult-word-to.html' title='ILUNGA, the world&apos;s most difficult word to translate'/><author><name>Jose Blanco</name><uri>http://www.blogger.com/profile/07526585792164739920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8581906.post-110906613375017295</id><published>2005-02-22T10:50:00.000+01:00</published><updated>2005-02-22T10:57:03.373+01:00</updated><title type='text'>Napster's DRM just cracked</title><content type='html'>(El DRM de Napster ya ha sido roto)&lt;br /&gt;&lt;br /&gt;0. Download and install &lt;a href="http://www.napster.com/" target="_blank"&gt;Napster&lt;/a&gt;, sign up for 14 day free trial.&lt;br /&gt;&lt;br /&gt;1. Download and install the latest version of &lt;a href="http://www.winamp.com/" target="_blank"&gt;Winamp&lt;/a&gt;, or if that doesn't work, get an &lt;a href="http://oldversion.com/program.php?n=winamp" target="_blank"&gt;older version&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2. Download and install the Winamp Plug-in &lt;a href="http://marv.kordix.com/Output_Stacker.exe" target="_blank"&gt;Output Stacker&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;3. Open Winamp Options-&gt;Plug-ins-&gt;Output-&gt;Dietmar's Output Stacker-&gt;Configure&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a. Add out_ds.dll from Winamp/Plug-ins folder&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;b. Add out_disk.dll from Winamp/Plug-ins folder&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;c. Select out_disk.dll in the Output Stacker-&gt;Configure&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;d. Set the output directory and output file mode to Force WAV file&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;e. Exit preferences&lt;br /&gt;&lt;br /&gt;4. Load downloaded Napster protected WMAs into your Winamp playlist&lt;br /&gt;&lt;br /&gt;5. Press play and each file will be converted to WAV as it plays&lt;br /&gt;&lt;br /&gt;6. Burn WAVs to CD with your favorite burning program&lt;br /&gt;&lt;br /&gt;this post was totally copied from &lt;a href="http://blog.kordix.com/marv/archives/000400.html" target="_blank"&gt;http://blog.kordix.com/marv/archives/000400.html&lt;/a&gt;. Three computers, one fast networked drive, and a few dedicated people: Turning Napster's 14 day free trial into 252 full 80 minute CDs of free music.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8581906-110906613375017295?l=joseblanco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joseblanco.blogspot.com/feeds/110906613375017295/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8581906&amp;postID=110906613375017295' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/110906613375017295'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/110906613375017295'/><link rel='alternate' type='text/html' href='http://joseblanco.blogspot.com/2005/02/napsters-drm-just-cracked.html' title='Napster&apos;s DRM just cracked'/><author><name>Jose Blanco</name><uri>http://www.blogger.com/profile/07526585792164739920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8581906.post-110848247710157165</id><published>2005-02-15T16:45:00.000+01:00</published><updated>2005-02-15T16:47:57.103+01:00</updated><title type='text'>Nokia and Microsoft put music and music stores on mobile phones worldwide</title><content type='html'>(Nokia y Microsoft ponen musica y tinedas de musica en los telefonos moviles)&lt;br /&gt;&lt;br /&gt;In a deal that lays the groundwork for the next generation of mobile entertainment, Loudeye, Nokia and Microsoft have unveiled an alliance that will put music and music stores on mobile phones worldwide, making cell phones a viable alternative to music players like the iPod, reports &lt;a href="http://today.reuters.co.uk/news/newsArticle.aspx?type=entertainmentNews&amp;storyID=2005-02-15T090031Z_01_CUT532218_RTRUKOC_0_MUSIC-MOBILE.xml" target="_blank"&gt;Reuters&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;"Wireless operators in the United States and more than 30 other countries now can offer their own branded mobile music services to subscribers that consumers can access using their phones and their PCs interchangeably".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8581906-110848247710157165?l=joseblanco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joseblanco.blogspot.com/feeds/110848247710157165/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8581906&amp;postID=110848247710157165' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/110848247710157165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/110848247710157165'/><link rel='alternate' type='text/html' href='http://joseblanco.blogspot.com/2005/02/nokia-and-microsoft-put-music-and.html' title='Nokia and Microsoft put music and music stores on mobile phones worldwide'/><author><name>Jose Blanco</name><uri>http://www.blogger.com/profile/07526585792164739920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8581906.post-110794519076590510</id><published>2005-02-09T11:23:00.000+01:00</published><updated>2005-02-09T11:34:43.780+01:00</updated><title type='text'>Super Bowl 2005 Ads</title><content type='html'>(Anuncios de la Super Bowl del 2005)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://dyn.ifilm.com/superbowlads/" target="b_lank"&gt;Here&lt;/a&gt; you can find all the commercials from Super Bowl XXXIX.&lt;br /&gt;&lt;br /&gt;The advertisers are: Paramount Pictures, Anheuser Busch, Ameriquest Mortgage Company, Buena Vista Pictures, CareerBuilder.com, Cialis, &lt;b&gt;&lt;a href="http://www.silestone.com" target="_blank"&gt;Silestone&lt;/a&gt;&lt;/b&gt; (A spanish company), DirecTV, Emerald Nuts of California, FedEx, Frito Lay, General Motors, GoDaddy.com, Heineken, Honda, MBNA, Mastercard, McDonalds, MGM, Degree, McIlhenny Tabasco, Michelob, Microsoft, Napster, NFL, Novartis Ciba Vision, Olympus, Pepsi, Pizza Hut, Quizno's, Sony Pictures, Subway, 20th Century Fox, Toyota, Warner Bros., Visa, Volvo, Ford Mustang, Ford Truckm, Verizon Wireless and Bubblicious.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8581906-110794519076590510?l=joseblanco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joseblanco.blogspot.com/feeds/110794519076590510/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8581906&amp;postID=110794519076590510' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/110794519076590510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/110794519076590510'/><link rel='alternate' type='text/html' href='http://joseblanco.blogspot.com/2005/02/super-bowl-2005-ads.html' title='Super Bowl 2005 Ads'/><author><name>Jose Blanco</name><uri>http://www.blogger.com/profile/07526585792164739920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8581906.post-110665127612244512</id><published>2005-01-25T11:54:00.000+01:00</published><updated>2005-01-25T12:07:56.123+01:00</updated><title type='text'>Publishing a teletext in Internet</title><content type='html'>(Publicando un teletexto en Internet)&lt;br /&gt;&lt;br /&gt;In my last project I have published in Internet the teletext of two of the most important Spanish television channels. The project was based on .Net technology and &lt;a href="http://www.sysmedia.com/teletext/planet.htm" target="_blank"&gt;Sysmedia PLANET Web Gateway&lt;/a&gt;, which provides the automatic publishing of teletext services to the web, exporting the teletext to GIF or XML files.&lt;br /&gt;&lt;br /&gt;Those channels are:&lt;br /&gt;&lt;a href="http://www.teletexto-telecinco.com/" target="_blank"&gt;Telecinco teletext&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.teletexto-telemadrid.com/" target="_blank"&gt;TeleMadrid teletext&lt;/a&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8581906-110665127612244512?l=joseblanco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joseblanco.blogspot.com/feeds/110665127612244512/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8581906&amp;postID=110665127612244512' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/110665127612244512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/110665127612244512'/><link rel='alternate' type='text/html' href='http://joseblanco.blogspot.com/2005/01/publishing-teletext-in-internet.html' title='Publishing a teletext in Internet'/><author><name>Jose Blanco</name><uri>http://www.blogger.com/profile/07526585792164739920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8581906.post-110570439451345324</id><published>2005-01-14T13:25:00.000+01:00</published><updated>2005-01-14T13:06:34.513+01:00</updated><title type='text'>Strange strings in user agents</title><content type='html'>(Cadenas extrañas en los user agents)&lt;br /&gt;&lt;br /&gt;Seeing the logs of an IIS server, I have found a lot of user agents with very strange strings added to the normal user agent string.&lt;br /&gt;&lt;br /&gt;For example:&lt;br /&gt;&lt;br /&gt;Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; &lt;b&gt;ESB{A8417D9D-5087-4807-9D73-9E09290256CD}&lt;/b&gt;)&lt;br /&gt;Mozilla/4.0+(&lt;b&gt;compatible;+MSIE+5.5;+Windows+NT+4.0;+H010818&lt;/b&gt;)&lt;br /&gt;Mozilla/3.0 (&lt;b&gt;compatible; HP Web PrintSmart 04b0 1.0.1.34&lt;/b&gt;)&lt;br /&gt;Mozilla/4.5 (compatible; &lt;b&gt;HTTrack 3.0x&lt;/b&gt;; Windows 98)&lt;br /&gt;&lt;br /&gt;Searching in google, I found this web &lt;a href="http://www.zytrax.com/tech/web/browser_ids.htm#mystery" target="_blank"&gt;http://www.zytrax.com/tech/web/browser_ids.htm#mystery&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Most of them are &lt;a href="http://www.google.com/search?hl=en&amp;c2coff=1&amp;q=Browser+Helper+Objects&amp;spell=1" target="_blank"&gt;Browser Help Objects&lt;/a&gt; and other are &lt;a href="http://www.google.com/search?q=define:spyware" target="_blank"&gt;spyware&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8581906-110570439451345324?l=joseblanco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joseblanco.blogspot.com/feeds/110570439451345324/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8581906&amp;postID=110570439451345324' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/110570439451345324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/110570439451345324'/><link rel='alternate' type='text/html' href='http://joseblanco.blogspot.com/2005/01/strange-strings-in-user-agents.html' title='Strange strings in user agents'/><author><name>Jose Blanco</name><uri>http://www.blogger.com/profile/07526585792164739920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8581906.post-110391279348111598</id><published>2004-12-24T18:53:00.000+01:00</published><updated>2004-12-25T13:12:03.456+01:00</updated><title type='text'>Get the primary key(ID) of the last inserted record in Access and SQL Server</title><content type='html'>(Obtener la clave primaria(ID) del ultimo registro insertado en Access y SQL Server)&lt;br /&gt;&lt;br /&gt;One of the most common things that you have to do when you are working with databases is taking the &lt;a href="http://www.google.com/search?q=define:primary%20key" target="_blank"&gt;primary key&lt;/a&gt; of the last inserted record. Usually, after making the insert, you make another query with the same parameters that you use in the insert for taking the primary key of the inserted record.&lt;br /&gt;&lt;br /&gt;There is 3 solutions:&lt;br /&gt;&lt;br /&gt;1) &lt;em&gt;SELECT @@IDENTITY&lt;/em&gt;(MS Access and SQL Server)&lt;br /&gt;&lt;br /&gt;I have tested it in MS Access and SQL Server with a desktop app and with some store procedures having the correct values in both cases,  &lt;strong&gt;BUT&lt;/strong&gt; it doesn't work well in any other cases, because it returns the last IDENTITY value produced on a connection, regardless of the table that produced the value, and regardless of the scope of the statement that produced the value. So if you made 2 inserts and you want get the id of the first one, Select @@identity returns to you the id of the second insert. Another problem is if you insert a value in a table, and this insertion throws a trigger which makes an insert in another one table. In this case SELECT @@IDENTITY returns the ID of this second table.&lt;br /&gt;&lt;br /&gt;2) &lt;em&gt;SELECT IDENT_CURRENT('tablename')&lt;/em&gt;(only SQL Server 2000)&lt;br /&gt;This new function returns the last IDENTITY value produced in a table, regardless of the connection that created the value, and regardless of the scope of the statement that produced the value.&lt;br /&gt;&lt;br /&gt;3) &lt;em&gt;SELECT SCOPE_IDENTITY()&lt;/em&gt;(only SQL Server 2000)&lt;br /&gt;This new function returns the last IDENTITY value produced on a connection and by a statement in the same scope, regardless of the table that produced the value.&lt;br /&gt;&lt;br /&gt;For more information read &lt;a href="http://www.databasejournal.com/features/mssql/article.php/3307541" target="_blak"&gt;http://www.databasejournal.com/features/mssql/article.php/3307541&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8581906-110391279348111598?l=joseblanco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joseblanco.blogspot.com/feeds/110391279348111598/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8581906&amp;postID=110391279348111598' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/110391279348111598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/110391279348111598'/><link rel='alternate' type='text/html' href='http://joseblanco.blogspot.com/2004/12/get-primary-keyid-of-last-inserted.html' title='Get the primary key(ID) of the last inserted record in Access and SQL Server'/><author><name>Jose Blanco</name><uri>http://www.blogger.com/profile/07526585792164739920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8581906.post-110264216948099399</id><published>2004-12-10T02:05:00.000+01:00</published><updated>2004-12-10T11:57:45.173+01:00</updated><title type='text'>DOCTYPE and XML declarations. Headers and document definitions </title><content type='html'>(DOCTYPE y declaraciones XML. Cabeceras y definiciones de documentos)&lt;br /&gt;&lt;br /&gt;Via this &lt;a href="http://www.thozie.de/english/mobileweb/markup/structure.htm" target="_blank"&gt;web&lt;/a&gt; I found a lot DOCTYPEs of markup languages(I have added someone).&lt;br /&gt;&lt;br /&gt;If you have fought with mobile phones, you have found a lot of problems with this.&lt;br /&gt;&lt;br /&gt;Let's see the rest of the page and the following pages, it's excellent. It has an interesting relationship about how tags must be used in those languages.&lt;br /&gt;&lt;br /&gt;A lot of work waiting for you!!!&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;b&gt;WML 1.1&lt;/b&gt;&lt;br /&gt;&amp;lt;?xml version="1.0"?&amp;gt;&amp;lt;!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml11.dtd"&amp;gt;&amp;lt;wml&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;WML 1.2&lt;/b&gt;&lt;br /&gt;&amp;lt;?xml version="1.0"?&amp;gt;&amp;lt;!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN" "http://www.wapforum.org/DTD/wml12.dtd"&gt;&amp;lt;wml&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;WML 1.3&lt;/b&gt;&lt;br /&gt;&amp;lt;?xml version="1.0"?&amp;gt;&amp;lt;!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.3//EN" "http://www.wapforum.org/DTD/wml13.dtd"&amp;gt;&amp;lt;wml&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;WML 2.0&lt;/b&gt;&lt;br /&gt;&amp;lt;?xml version="1.0"?&amp;gt;&amp;lt;!DOCTYPE html PUBLIC "-//WAPFORUM//DTD WML 2.0//EN" "http://www.wapforum.org/dtd/wml20.dtd" &amp;gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" xmlns:wml="http://www.wapforum.org/2001/wml"&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;XHTML 1.0&lt;/b&gt;&lt;br /&gt;&amp;lt;?xml version="1.0"?&amp;gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd"&amp;gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;XHTML Basic&lt;/b&gt;&lt;br /&gt;&amp;lt;?xml version="1.0"?&amp;gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd"&amp;gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml xml:lang="en" lang="en"&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;XHTML-MP-WAP&lt;/b&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;lt;!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd"&amp;gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml"&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;HTML 4.01&lt;/b&gt;&lt;br /&gt;&amp;lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"&amp;gt;&amp;lt;HTML&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;HTML 4 Mobile&lt;/b&gt;&lt;br /&gt;&amp;lt;!DOCTYPE HTML SYSTEM "-//W3C//DTD HTML 4.0//EN" "html40-mobile.dtd"&amp;gt;&amp;lt;HTML&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;cHTML&lt;/b&gt;&lt;br /&gt;&amp;lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD Compact HTML 1.0 Draft//EN"&amp;gt;&amp;lt;HTML&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;i-mode 3.0&lt;/b&gt;&lt;br /&gt;&amp;lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD Compact HTML1.0 Draft//EN"&amp;gt;&amp;lt;HTML&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Palm Web Clipping&lt;/b&gt;&lt;br /&gt;&amp;lt;!DOCTYPE HTML PUBLIC "-//POS//DTD Palm OS HTML 3.2 Final//EN"&amp;gt;&amp;lt;HTML&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8581906-110264216948099399?l=joseblanco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joseblanco.blogspot.com/feeds/110264216948099399/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8581906&amp;postID=110264216948099399' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/110264216948099399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/110264216948099399'/><link rel='alternate' type='text/html' href='http://joseblanco.blogspot.com/2004/12/doctype-and-xml-declarations-headers.html' title='DOCTYPE and XML declarations. Headers and document definitions '/><author><name>Jose Blanco</name><uri>http://www.blogger.com/profile/07526585792164739920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8581906.post-110137686915980207</id><published>2004-11-25T10:33:00.000+01:00</published><updated>2004-11-25T11:02:38.836+01:00</updated><title type='text'>Speed up Acrobat Reader 6 start up</title><content type='html'>(Acelerar el arranque del Acrobat Reader 6)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The first trick is don't load all plug-ings provided by the &lt;a href="http://www.adobe.com/products/acrobat/readstep2.html" target="_blank"&gt;Acrobat Reader&lt;/a&gt; or third party at the start up.&lt;br /&gt;&lt;br /&gt;How to do it?&lt;br /&gt;Go to the folder where the Acrobat is installed, usually "C:\Program Files\Adobe\Acrobat 6.0\Reader".&lt;br /&gt;&lt;br /&gt;Take the plug-ins from the &lt;em&gt;plug_ins&lt;/em&gt; folder and put them in the &lt;em&gt;optional&lt;/em&gt; directory.  This way the plug-ins will still work, they just won't be loaded at startup.&lt;br /&gt;&lt;br /&gt;Don't move the EWH32.api and Search.api plug-ings. As far as I know they are the integration with the browser and the search API.&lt;br /&gt;&lt;br /&gt;The second trick is turn off the &lt;a href="http://www.google.com/search?hl=en&amp;lr=&amp;q=define%3ASplash+screen" target="_blank"&gt;Splash screen&lt;/a&gt;: &lt;br /&gt;Edit - Preferences - Startup then uncheck the box named Display Splash screen. &lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8581906-110137686915980207?l=joseblanco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joseblanco.blogspot.com/feeds/110137686915980207/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8581906&amp;postID=110137686915980207' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/110137686915980207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/110137686915980207'/><link rel='alternate' type='text/html' href='http://joseblanco.blogspot.com/2004/11/speed-up-acrobat-reader-6-start-up.html' title='Speed up Acrobat Reader 6 start up'/><author><name>Jose Blanco</name><uri>http://www.blogger.com/profile/07526585792164739920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8581906.post-110112716597440220</id><published>2004-11-22T13:36:00.000+01:00</published><updated>2004-11-22T13:39:25.976+01:00</updated><title type='text'>Gmail RSS based</title><content type='html'>(El RSS de Gmail)&lt;br /&gt;&lt;br /&gt;Here is the atom file for gmail service &lt;a href="https://gmail.google.com/gmail/feed/atom" target="_blank"&gt;https://gmail.google.com/gmail/feed/atom&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Enjoy&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8581906-110112716597440220?l=joseblanco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joseblanco.blogspot.com/feeds/110112716597440220/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8581906&amp;postID=110112716597440220' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/110112716597440220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/110112716597440220'/><link rel='alternate' type='text/html' href='http://joseblanco.blogspot.com/2004/11/gmail-rss-based.html' title='Gmail RSS based'/><author><name>Jose Blanco</name><uri>http://www.blogger.com/profile/07526585792164739920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8581906.post-110078932255961620</id><published>2004-11-18T15:37:00.000+01:00</published><updated>2004-11-18T15:48:42.560+01:00</updated><title type='text'>Desktop Google AdSense Statistics Application</title><content type='html'>(Aplicacion de escritorio para estadisticas de Google AdSense)&lt;br /&gt;&lt;br /&gt;I have downloaded and install &lt;a target="_blank" href="http://www.nix.fr/en/csvadstats.aspx"&gt;this application&lt;/a&gt;. It lets me have my AdSense statistics at my desktop, with a lot of reports and charts. See &lt;a  target="_blank" href="http://www.nix.fr/en/csvadstats.aspx?q=capture"&gt;screenshots&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;At first sight, there's a little problem with language. You must close and reopen it if you want to have it in English.&lt;br /&gt;&lt;br /&gt;It's a Beta, so...&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8581906-110078932255961620?l=joseblanco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joseblanco.blogspot.com/feeds/110078932255961620/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8581906&amp;postID=110078932255961620' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/110078932255961620'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/110078932255961620'/><link rel='alternate' type='text/html' href='http://joseblanco.blogspot.com/2004/11/desktop-google-adsense-statistics.html' title='Desktop Google AdSense Statistics Application'/><author><name>Jose Blanco</name><uri>http://www.blogger.com/profile/07526585792164739920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8581906.post-110059799249194397</id><published>2004-11-16T10:32:00.000+01:00</published><updated>2004-11-16T10:39:52.490+01:00</updated><title type='text'>RFID: A solution to supermarket queues</title><content type='html'>(RFID: Una solucion para las colas en los supermercados)&lt;br /&gt;&lt;br /&gt;In this &lt;a target="_blank" href="http://blog.opennetcf.org/ncowburn/PermaLink,guid,b4cece54-42f4-4786-934b-810d2ec1b550.aspx"&gt;article&lt;/a&gt; Neil Cowburn(an &lt;a target="_blank" href="http://www.opennetcf.org/"&gt;openNetCF&lt;/a&gt;) talks about RFID.&lt;br /&gt;&lt;br /&gt;IMHO he forgot to talk about the difficult adoption of this for the people, and the problem of what happens with broken or pulled up!!! tags.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8581906-110059799249194397?l=joseblanco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joseblanco.blogspot.com/feeds/110059799249194397/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8581906&amp;postID=110059799249194397' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/110059799249194397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/110059799249194397'/><link rel='alternate' type='text/html' href='http://joseblanco.blogspot.com/2004/11/rfid-solution-to-supermarket-queues.html' title='RFID: A solution to supermarket queues'/><author><name>Jose Blanco</name><uri>http://www.blogger.com/profile/07526585792164739920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8581906.post-109961384204408563</id><published>2004-11-05T01:39:00.000+01:00</published><updated>2004-11-05T01:17:22.046+01:00</updated><title type='text'>Calling doPostBack from a child window for example a popup</title><content type='html'>(Ejecutar doPostBack desde una ventana hija como por ejemplo un popup)&lt;br /&gt;&lt;br /&gt;In web applications you often open a &lt;a target="_blank" href="http://www.google.com/search?hl=en&amp;lr=&amp;q=define%3Apopup+"&gt;popup&lt;/a&gt; with any data which fill some field in the opener window.&lt;br /&gt;&lt;br /&gt;For example if you have a field that could have different data depending on the values that you have selected in other fields, you normally will not want to load this data when the page will be loaded. Instead of this, when you are going to fill this field, you open a popup, given it the values of the other fields, and when you select something into the popup you fill the field in the opener and close the popup.&lt;br /&gt;&lt;br /&gt;See an example:&lt;br /&gt;&lt;br /&gt;I have a textbox named TextBox1 which going to be filled by a link into a popup created using &lt;a target="_blank" href="http://msdn.microsoft.com/workshop/author/dhtml/reference/methods/open_0.asp"&gt;window.open()&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In the popup I put the following code:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&amp;lt;a href="#" onclick="window.opener.document.getElementById('TextBox1').value='Filled From Popup';window.opener.__doPostBack('TextBox1','');window.close();"&amp;gt;doPostBack and close&amp;lt;/a&amp;gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;When you click in the link you can see that the textbox will be filled with the text &lt;em&gt;Filled From Popup&lt;/em&gt;, the doPostBack will be executed, and the popup will be closed.&lt;br /&gt;&lt;br /&gt;One reminder: If ASP.Net doesn't create the javascript code for __doPostBack in the opener window, you can force it. &lt;a target="_blank" href="http://joseblanco.blogspot.com/2004/11/force-aspnet-to-put-dopostback-client.html"&gt;See this post&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8581906-109961384204408563?l=joseblanco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joseblanco.blogspot.com/feeds/109961384204408563/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8581906&amp;postID=109961384204408563' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109961384204408563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109961384204408563'/><link rel='alternate' type='text/html' href='http://joseblanco.blogspot.com/2004/11/calling-dopostback-from-child-window.html' title='Calling doPostBack from a child window for example a popup'/><author><name>Jose Blanco</name><uri>http://www.blogger.com/profile/07526585792164739920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8581906.post-109961154075440931</id><published>2004-11-05T01:10:00.000+01:00</published><updated>2004-11-05T00:39:00.753+01:00</updated><title type='text'>Force ASP.Net to put the __doPostBack client javascript onto the page</title><content type='html'>(Forzar a ASP.Net a poner el javascript de cliente __doPostBack en una pagina)&lt;br /&gt;&lt;br /&gt;Only two HTML form elements (button and image button) cause form postback. If you have a text box, a link button or a custom control that renders an HTML element that does not cause postback, ASP.Net doesn't write __doPostBack javascript client code.&lt;br /&gt;&lt;br /&gt;If you want that asp.Net write the client code there's a simple way, put in your code:&lt;br /&gt;&lt;em&gt;&lt;blockquote&gt;Page.GetPostBackClientEvent(LinkButton1, "")&lt;/blockquote&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;LinkButton1 is the ID of and link button that I have put in my page&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8581906-109961154075440931?l=joseblanco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joseblanco.blogspot.com/feeds/109961154075440931/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8581906&amp;postID=109961154075440931' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109961154075440931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109961154075440931'/><link rel='alternate' type='text/html' href='http://joseblanco.blogspot.com/2004/11/force-aspnet-to-put-dopostback-client.html' title='Force ASP.Net to put the __doPostBack client javascript onto the page'/><author><name>Jose Blanco</name><uri>http://www.blogger.com/profile/07526585792164739920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8581906.post-109958962164891559</id><published>2004-11-04T18:13:00.000+01:00</published><updated>2004-11-04T18:33:41.646+01:00</updated><title type='text'>SQL Mobile Beta 1 is here</title><content type='html'>(SQL Mobile Beta 1 esta aqui)&lt;br /&gt;&lt;br /&gt;Microsoft &lt;a target="_blank" href="http://www.microsoft.com/sql/ce/mobility/beta1.asp"&gt;SQL Server Mobile Edition&lt;/a&gt; (formerly code-named "Laguna"), the next release of SQL Server Windows CE Edition (SQL Server CE), is a mobile database solution designed for developers who target Microsoft Windows mobile-based devices. &lt;br /&gt;&lt;br /&gt;New features and enhancements planned for SQL Server Mobile Edition will focus on the following key areas:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;- Integration with SQL Server 2005(or 2000), the next release of SQL Server, and Microsoft Visual Studio 2005 (formerly code-named "&lt;a target="_blank" href="http://msdn.microsoft.com/vstudio/whidbey/default.aspx"&gt;Whidbey&lt;/a&gt;"), the next release of Visual Studio .NET &lt;br /&gt;- Increased reliability and performance &lt;br /&gt;- Faster development of mobile applications&lt;br /&gt;- Column-level tracking:Only the modified columns will be synchronized, not all row&lt;br /&gt;- Row-level locking &lt;br /&gt;-&lt;a target="_blank" href="http://www.microsoft.com/sql/ce/productinfo/SQLMobile.asp"&gt;Read more here&lt;/a&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;SQL Mobile Beta 1 is available with both Microsoft SQL Server 2005 Beta 2 and Microsoft Visual Studio® 2005 Beta 1. Both are only available right now to MSDN Subscribers.&lt;br /&gt;&lt;br /&gt;Companies and users of SQL Mobile that plan to synchronize to SQL Server 2000 or SQL Server 2005 Beta 2 databases will need to install &lt;a target="_blank" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=0A6174A4-C009-4768-8284-698C32EC84E3&amp;displaylang=en"&gt;Server Tools&lt;/a&gt; on their servers running Internet Information Services (IIS).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8581906-109958962164891559?l=joseblanco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joseblanco.blogspot.com/feeds/109958962164891559/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8581906&amp;postID=109958962164891559' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109958962164891559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109958962164891559'/><link rel='alternate' type='text/html' href='http://joseblanco.blogspot.com/2004/11/sql-mobile-beta-1-is-here.html' title='SQL Mobile Beta 1 is here'/><author><name>Jose Blanco</name><uri>http://www.blogger.com/profile/07526585792164739920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8581906.post-109958532501297767</id><published>2004-11-04T17:13:00.000+01:00</published><updated>2004-11-04T17:22:05.013+01:00</updated><title type='text'>Enterprise Mobile Dev point of view from Russell Beattie</title><content type='html'>(Punto de vista de Russell Beattie sobre los desarrollos moviles empresariales)&lt;br /&gt;&lt;br /&gt;As good expert of mobile development &lt;a href="http://www.russellbeattie.com/Russell_Beattie_resume.html" target="_blank"&gt;Russell Beattie&lt;/a&gt; talks about how development tools are more important than the underlying language.&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" href="http://www.russellbeattie.com/notebook/1007340.html"&gt;Read the article&lt;/a&gt; in his blog&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8581906-109958532501297767?l=joseblanco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joseblanco.blogspot.com/feeds/109958532501297767/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8581906&amp;postID=109958532501297767' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109958532501297767'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109958532501297767'/><link rel='alternate' type='text/html' href='http://joseblanco.blogspot.com/2004/11/enterprise-mobile-dev-point-of-view.html' title='Enterprise Mobile Dev point of view from Russell Beattie'/><author><name>Jose Blanco</name><uri>http://www.blogger.com/profile/07526585792164739920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8581906.post-109905341174760438</id><published>2004-10-29T14:25:00.000+02:00</published><updated>2004-10-29T14:36:51.746+02:00</updated><title type='text'>Navigate to a desired URL typing one word in internet explorer</title><content type='html'>(Navegar a una URL escribiendo una solo palabra con Internet Explorer)&lt;br /&gt;&lt;br /&gt;A long time ago I read a trick for &lt;a href="http://www.microsoft.com/windows/ie/default.mspx" target="_blank"&gt;internet explorer&lt;/a&gt; which avoids me a lot of typing. For example to go to the blogspot page for posting, I type in internet explorer the word post and it sends me to the http://www.blogger.com/app/post.pyra?blogID=XXXXXX. How?&lt;br /&gt;&lt;br /&gt;Go to the desired URL, once loaded go to bookmarks and click in Add to bookmarks. In the name, put a single word(in the previous example I put post ). Be sure that the folder selected is Bookmarks(it could be has a start at its left), because the trick doesn't work in subfolders. Click on accept and all is done.&lt;br /&gt;&lt;br /&gt;Now you type the word in explorer and it goes to the desired page.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8581906-109905341174760438?l=joseblanco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joseblanco.blogspot.com/feeds/109905341174760438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8581906&amp;postID=109905341174760438' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109905341174760438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109905341174760438'/><link rel='alternate' type='text/html' href='http://joseblanco.blogspot.com/2004/10/navigate-to-desired-url-typing-one.html' title='Navigate to a desired URL typing one word in internet explorer'/><author><name>Jose Blanco</name><uri>http://www.blogger.com/profile/07526585792164739920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8581906.post-109898133902544110</id><published>2004-10-28T18:00:00.000+02:00</published><updated>2004-10-28T18:35:39.026+02:00</updated><title type='text'>XHTML FAQ. &lt;img&gt; tag disappears!!!</title><content type='html'>(Preguntas frecuentes de XHTML. La etiqueta &amp;lt;img&amp;gt; desaparece!!!)&lt;br /&gt;&lt;br /&gt;As I can read into this &lt;a target="_blank" href="http://www.w3c.org/MarkUp/2004/xhtml-faq"&gt;FAQ&lt;/a&gt; (&lt;a target="_blank" href="http://www.w3c.es/Traducciones/es/Markup/2004/xhtml-faq.htm"&gt;Same FAQ in Spanish&lt;/a&gt;), provided by the &lt;a target="_blank" href="http://www.w3c.org"&gt;W3C&lt;/a&gt;(&lt;a target="_blank" href="http://www.google.com/search?q=define:World%20Wide%20Web%20Consortium"&gt;World Wide Web Consortium&lt;/a&gt;) many things about relationships between HTML and XHTML 1.0, why migrate to XHTML, which user agent support it, which mime type you must use, but also I have seen something that I'm surprised that img tag disappears!!! in XHTML 2.0.&lt;br /&gt;&lt;br /&gt;The title of the section is &lt;em&gt;&lt;strong&gt;Is &amp;lt;img&amp;gt; being replaced by in XHTML?&lt;/strong&gt;&lt;/em&gt;, and the reason is &lt;em&gt;very reasonable&lt;/em&gt;. All images are equivalent to some piece of content; If XHTML 2.0 allows you to put a src attribute on any element at all, this says that if the image is available, and the browser can process it, use it, otherwise use the content of the element. For example:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&amp;lt;p src="map.png"&amp;gt;&amp;lt;span src="map.gif"&amp;gt;Exit from station...&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Although it is better to use content negotiation if your server supports it (and most do):&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&amp;lt;p src="map"&amp;gt;Exit from station...&amp;lt;/p&amp;gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Which would negotiate with the browser which sort of image it accepts, and give the browser its preferred sort. If there is no available image, then the content of the element would be used. This has an added advantage that you can later add other image types on your server and you don't have to change the page for it still to work.&lt;br /&gt;&lt;br /&gt;One more thing: Other killed. The term &lt;em&gt;browser&lt;/em&gt;, which should be replaced, in most cases by &lt;em&gt;&lt;a target="_blank" href="http://www.psychedelix.com/agents.html"&gt;user agent&lt;/a&gt;&lt;/em&gt;. Just read &lt;a target="_blank"  href="http://www.w3c.org/MarkUp/2004/xhtml-faq#ua"&gt;Why do you say "user agent" everywhere, instead of "browser"?&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8581906-109898133902544110?l=joseblanco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joseblanco.blogspot.com/feeds/109898133902544110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8581906&amp;postID=109898133902544110' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109898133902544110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109898133902544110'/><link rel='alternate' type='text/html' href='http://joseblanco.blogspot.com/2004/10/xhtml-faq-tag-disappears.html' title='XHTML FAQ. &amp;lt;img&amp;gt; tag disappears!!!'/><author><name>Jose Blanco</name><uri>http://www.blogger.com/profile/07526585792164739920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8581906.post-109897275334363190</id><published>2004-10-28T16:05:00.000+02:00</published><updated>2004-10-28T16:12:33.343+02:00</updated><title type='text'>Google Cheat Sheet. Google search tips</title><content type='html'>(La chuleta de Google. Trucos para las busquedas)&lt;br /&gt;&lt;br /&gt;I have read in &lt;a href="http://google.dirson.com"&gt;Dirson&lt;/a&gt; that Google brings its &lt;a href="http://www.google.com/help/cheatsheet.html"&gt;Cheat Sheet&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Some examples:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;~auto loan&lt;/em&gt;: loan info for both the word auto and its synonyms: truck, car, etc.&lt;br /&gt;&lt;em&gt;red * blue&lt;/em&gt;: the words red and blue separated by exactly one word.&lt;br /&gt;&lt;em&gt;[#]…[#]&lt;/em&gt;: Search within a range. DVD $100...150(DVDs between $100 and $150)&lt;br /&gt;&lt;br /&gt;There are more, let's read and enjoy&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8581906-109897275334363190?l=joseblanco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joseblanco.blogspot.com/feeds/109897275334363190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8581906&amp;postID=109897275334363190' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109897275334363190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109897275334363190'/><link rel='alternate' type='text/html' href='http://joseblanco.blogspot.com/2004/10/google-cheat-sheet-google-search-tips.html' title='Google Cheat Sheet. Google search tips'/><author><name>Jose Blanco</name><uri>http://www.blogger.com/profile/07526585792164739920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8581906.post-109895377003129600</id><published>2004-10-28T10:51:00.000+02:00</published><updated>2004-10-28T11:23:42.973+02:00</updated><title type='text'>Tips for Google Desktop Search</title><content type='html'>(Trucos para el Google Desktop Search)&lt;br /&gt;&lt;br /&gt;Via &lt;a href="http://insidegoogle.blogspot.com"&gt;InsideGoogle&lt;/a&gt; I found &lt;a href="http://users.tns.net/~skingery/firefox/GDS_Tips.html"&gt;this web page&lt;/a&gt; with many interested tips about Google Desktop.&lt;br /&gt;&lt;br /&gt;Some of them are:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Some preferences you should set&lt;br /&gt;Move index file to a different drive&lt;br /&gt;Files on Mapped Network Drives&lt;br /&gt;Finding a File by Part of the Name&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Have a good desktop search :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8581906-109895377003129600?l=joseblanco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joseblanco.blogspot.com/feeds/109895377003129600/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8581906&amp;postID=109895377003129600' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109895377003129600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109895377003129600'/><link rel='alternate' type='text/html' href='http://joseblanco.blogspot.com/2004/10/tips-for-google-desktop-search.html' title='Tips for Google Desktop Search'/><author><name>Jose Blanco</name><uri>http://www.blogger.com/profile/07526585792164739920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8581906.post-109890285382043907</id><published>2004-10-27T19:02:00.000+02:00</published><updated>2004-10-27T20:47:33.820+02:00</updated><title type='text'>Change the owner of all tables in SQL Server</title><content type='html'>(Cambiar el propietario de todas las tablas en SQL Server)&lt;br /&gt;&lt;br /&gt;Normally you use &lt;a href="msdn.microsoft.com/library/ en-us/tsqlref/ts_sp_ca-cz_1lpu.asp"&gt;sp_changeobjectowner&lt;/a&gt;(SQL Server 2000 SP3)&lt;br /&gt;&lt;br /&gt;Sample:&lt;br /&gt;Remenber to have the right permissions. In this sample I'm running as dbo and i have logged by using sa&lt;br /&gt;&lt;br /&gt;use Northwind&lt;br /&gt;EXECUTE sp_changeobjectowner 'EmployeeTerritory', 'guest'&lt;br /&gt;&lt;br /&gt;To take back this, the parameters change a little:&lt;br /&gt;&lt;br /&gt;use Northwind&lt;br /&gt;EXECUTE sp_changeobjectowner 'guest.EmployeeTerritory', 'dbo'&lt;br /&gt;&lt;br /&gt;Well you must do it for all tables, but using an undocumented Stored Procedure called &lt;strong&gt;sp_MSforeachtable&lt;/strong&gt; you can do this in one line of code:&lt;br /&gt;&lt;br /&gt;use Northwind&lt;br /&gt;sp_MSforeachtable @command1="sp_changeobjectowner '?', 'dbo'"&lt;br /&gt;&lt;br /&gt;Another undocumented Stored Procedure  is sp_MSforeachdb which could be used for change the owner of all Databases&lt;br /&gt;&lt;br /&gt;Of course among of this use you can manage to make more interesting things mainly if You are a DBA&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Another tip: If you are into the Entreprise Manager seen the data in a table and you want to modify a field an insert null in it, put the cursor in it and press CTRL+0 (Control and zero).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8581906-109890285382043907?l=joseblanco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joseblanco.blogspot.com/feeds/109890285382043907/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8581906&amp;postID=109890285382043907' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109890285382043907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109890285382043907'/><link rel='alternate' type='text/html' href='http://joseblanco.blogspot.com/2004/10/change-owner-of-all-tables-in-sql.html' title='Change the owner of all tables in SQL Server'/><author><name>Jose Blanco</name><uri>http://www.blogger.com/profile/07526585792164739920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8581906.post-109878943183186703</id><published>2004-10-26T13:26:00.000+02:00</published><updated>2004-10-26T13:45:28.533+02:00</updated><title type='text'>Taking the max of AdSense. A little tricks</title><content type='html'>(Usando AdSense a tope. Unos pequeños trucos)&lt;br /&gt;&lt;br /&gt;I have started to put AdSense in &lt;a href="http://joseblanco.blogspot.com" target="_blank"&gt;my weblog&lt;/a&gt; one week ago, and I have started to test something things to taking the max of it.&lt;br /&gt;&lt;br /&gt;There are 2 tricks using 2 google web tools:&lt;br /&gt;&lt;br /&gt;1- One year ago, when Google created its advertising tool called &lt;a href="https://adwords.google.com/" target="_blank"&gt;AdWords&lt;/a&gt;, &lt;a href="http://arcadi.blogspot.com" target="_blank"&gt;Arcadi&lt;/a&gt; show me a web tool provided by Google for knowing how many could cost to You put an advertising in AdWords. You put a word in it and the tool told You how many searches by month it brings and how cost it to You based on &lt;a href="https://adwords.google.com/support/bin/answer.py?answer=6309&amp;topic=29" target="_blank"&gt;cost-per-click(aka: CPC)&lt;/a&gt;. This tool is only accessible while you are trying to create a new account in &lt;a href="https://adwords.google.com/select/WizardChooseAudience?newaccount=true" target="_blank"&gt;AdWords&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It's the "Create Ad Groups", the second step in the process. One recommendation, fill the fields with more or less good things because the wizard check all them very intensively. When you are in the this step there will be a button with the text "Calculate estimates". I tried visual basic as keyword and these are the results:&lt;br /&gt;&lt;br /&gt;Keyword-Clicks/Day Average-Cost-Per-Click-Cost Average-Position&lt;br /&gt;&lt;br /&gt;visual basic-720.0-0.14 Euros-100.09 Euros-1.3&lt;br /&gt;&lt;br /&gt;Overall-720.0-0.14 Euros-100.09 Euros-1.32&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://adwords.google.com/select/KeywordSandbox" target="_blank"&gt;The word concordance tool&lt;/a&gt; gives You the other searches which people search similar to the word You write. This tool can be tested for many languages and for many countries.&lt;br /&gt;&lt;br /&gt;Well, the trick are those tools. Using them, I put a google_hints variable in the AdSense code(You can see it in &lt;a href="http://joseblanco.blogspot.com" target="_blank"&gt;my weblog&lt;/a&gt; code), which right now are google_hints="ado+net,Net,asp+net,asp+net+code,compact+framework,&lt;br /&gt;visual+basic,wifi,bluetooth,mobile,dot+net";&lt;br /&gt;&lt;br /&gt;Even It is not permitted by &lt;a href="https://www.google.com/adsense/localized-terms" target="_blank"&gt;AdSense terms&lt;/a&gt;, if You are interested in some of the advertising, just click ;)&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8581906-109878943183186703?l=joseblanco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joseblanco.blogspot.com/feeds/109878943183186703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8581906&amp;postID=109878943183186703' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109878943183186703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109878943183186703'/><link rel='alternate' type='text/html' href='http://joseblanco.blogspot.com/2004/10/taking-max-of-adsense-little-tricks.html' title='Taking the max of AdSense. A little tricks'/><author><name>Jose Blanco</name><uri>http://www.blogger.com/profile/07526585792164739920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8581906.post-109853000982128478</id><published>2004-10-23T13:08:00.000+02:00</published><updated>2004-10-23T13:13:29.820+02:00</updated><title type='text'>Joel Spolsky interviewed at Microsoft Watch. A must read</title><content type='html'>(Joel Spolsky entrevistado en Microsoft Watch. Hay que leerlo)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft-watch.com/article2/0,1995,1682011,00.asp?kc=MWRSS02129TX1K0000535"&gt;Two technology titans face to face&lt;/a&gt; talking about Microsoft, Google, etc.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8581906-109853000982128478?l=joseblanco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joseblanco.blogspot.com/feeds/109853000982128478/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8581906&amp;postID=109853000982128478' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109853000982128478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109853000982128478'/><link rel='alternate' type='text/html' href='http://joseblanco.blogspot.com/2004/10/joel-spolsky-interviewed-at-microsoft.html' title='Joel Spolsky interviewed at Microsoft Watch. A must read'/><author><name>Jose Blanco</name><uri>http://www.blogger.com/profile/07526585792164739920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8581906.post-109848733798323727</id><published>2004-10-23T01:14:00.000+02:00</published><updated>2004-10-23T01:22:17.983+02:00</updated><title type='text'>Get WIFI Adapters signal strength</title><content type='html'>(Obtener la intensidad de señal de los tarjetas WIFI)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;If you want to know if your wifi adapter is in the range of any wifi net(do not do it for making an wifi scanner to warchalk or something else... remember, this code is only for research projects, bla bla bla)&lt;br /&gt;&lt;br /&gt;First of all add a reference to System.Management.dll and then an Imports System.Management&lt;br /&gt;&lt;code class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt; GetSignalStrength() &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;Try&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;Dim&lt;/span&gt; Oq &lt;span class="kwrd"&gt;As&lt;/span&gt; ObjectQuery = &lt;span class="kwrd"&gt;New&lt;/span&gt; ObjectQuery(&lt;span class="str"&gt;"SELECT * FROM MSNdis_80211_ReceivedSignalStrength Where active=true"&lt;/span&gt;)&lt;br /&gt;            &lt;span class="kwrd"&gt;Dim&lt;/span&gt; Ms &lt;span class="kwrd"&gt;As&lt;/span&gt; ManagementScope = &lt;span class="kwrd"&gt;New&lt;/span&gt; ManagementScope(&lt;span class="str"&gt;"root\wmi"&lt;/span&gt;)&lt;br /&gt;            &lt;span class="kwrd"&gt;Dim&lt;/span&gt; query &lt;span class="kwrd"&gt;As&lt;/span&gt; ManagementObjectSearcher = &lt;span class="kwrd"&gt;New&lt;/span&gt; ManagementObjectSearcher(Ms, Oq)&lt;br /&gt;            &lt;span class="kwrd"&gt;Dim&lt;/span&gt; outp &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt; = &lt;span class="str"&gt;""&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;For&lt;/span&gt; &lt;span class="kwrd"&gt;Each&lt;/span&gt; Mo &lt;span class="kwrd"&gt;As&lt;/span&gt; ManagementObject &lt;span class="kwrd"&gt;In&lt;/span&gt; query.&lt;span class="kwrd"&gt;Get&lt;/span&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;If&lt;/span&gt; &lt;span class="kwrd"&gt;CType&lt;/span&gt;(Mo(&lt;span class="str"&gt;"Active"&lt;/span&gt;), &lt;span class="kwrd"&gt;Boolean&lt;/span&gt;) = &lt;span class="kwrd"&gt;True&lt;/span&gt; &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;br /&gt;                    outp &amp;amp;= &lt;span class="kwrd"&gt;CType&lt;/span&gt;(Mo(&lt;span class="str"&gt;"Ndis80211ReceivedSignalStrength"&lt;/span&gt;), &lt;span class="kwrd"&gt;String&lt;/span&gt;) + Environment.NewLine&lt;br /&gt;                &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;Next&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;If&lt;/span&gt; outp = &lt;span class="str"&gt;""&lt;/span&gt; &lt;span class="kwrd"&gt;Then&lt;/span&gt; outp = &lt;span class="str"&gt;"There isn't any WIFI adapter active"&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;Return&lt;/span&gt; Trim(outp)&lt;br /&gt;        &lt;span class="kwrd"&gt;Catch&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; Exception&lt;br /&gt;            &lt;span class="kwrd"&gt;Return&lt;/span&gt; e.Message&lt;br /&gt;        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Try&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;End&lt;/span&gt; Function&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8581906-109848733798323727?l=joseblanco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joseblanco.blogspot.com/feeds/109848733798323727/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8581906&amp;postID=109848733798323727' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109848733798323727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109848733798323727'/><link rel='alternate' type='text/html' href='http://joseblanco.blogspot.com/2004/10/get-wifi-adapters-signal-strength.html' title='Get WIFI Adapters signal strength'/><author><name>Jose Blanco</name><uri>http://www.blogger.com/profile/07526585792164739920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8581906.post-109845784015225375</id><published>2004-10-22T17:02:00.000+02:00</published><updated>2004-10-25T14:49:42.073+02:00</updated><title type='text'>v2.0 Select Random Rows from MS Access </title><content type='html'>(v2.0 Seleccionar filas aleatoriamente en MS Access)&lt;br /&gt;&lt;br /&gt;Adding in the query "ORDER BY Rnd(filedName)" or with code&lt;br /&gt;&lt;br /&gt;&lt;code class="csharpcode"&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;Dim&lt;/span&gt; adapter &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;New&lt;/span&gt; OleDbDataAdapter(&lt;span class="str"&gt;"SELECT * from myTable"&lt;/span&gt;, &lt;span class="str"&gt;"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&lt;/span&gt; + System.Web.HttpContext.Current.Request.MapPath(&lt;span class="str"&gt;"data.mdb"&lt;/span&gt;) + &lt;span class="str"&gt;";"&lt;/span&gt;)&lt;br /&gt;            &lt;span class="kwrd"&gt;Dim&lt;/span&gt; data &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;New&lt;/span&gt; DataSet&lt;br /&gt;            adapter.Fill(data)&lt;br /&gt;            &lt;span class="kwrd"&gt;Dim&lt;/span&gt; table &lt;span class="kwrd"&gt;As&lt;/span&gt; DataTable = data.Tables(0)&lt;br /&gt;            &lt;span class="kwrd"&gt;If&lt;/span&gt; table.Rows.Count = 0 &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;Throw&lt;/span&gt; &lt;span class="kwrd"&gt;New&lt;/span&gt; Exception(&lt;span class="str"&gt;"The query return 0 rows"&lt;/span&gt;)&lt;br /&gt;            &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;Dim&lt;/span&gt; Random &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;New&lt;/span&gt; Random(System.DateTime.Now.Millisecond)&lt;br /&gt;            &lt;span class="rem"&gt;'first column of the random row&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;Dim&lt;/span&gt; sResult &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt; = table.Rows(Random.&lt;span class="kwrd"&gt;Next&lt;/span&gt;(0, table.Rows.Count)).Item(0).ToString()&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://joseblanco.blogspot.com/2004/10/select-random-rows-from-ms-access.html#comments"&gt;Thanks Arcadi&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8581906-109845784015225375?l=joseblanco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joseblanco.blogspot.com/feeds/109845784015225375/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8581906&amp;postID=109845784015225375' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109845784015225375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109845784015225375'/><link rel='alternate' type='text/html' href='http://joseblanco.blogspot.com/2004/10/v20-select-random-rows-from-ms-access.html' title='v2.0 Select Random Rows from MS Access '/><author><name>Jose Blanco</name><uri>http://www.blogger.com/profile/07526585792164739920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8581906.post-109845027518891031</id><published>2004-10-22T13:08:00.000+02:00</published><updated>2004-10-25T14:46:56.053+02:00</updated><title type='text'>Select Random Rows from MS Access</title><content type='html'>(Seleccionar filas aleatoriamente en MS Access)&lt;br /&gt;&lt;br /&gt;Usually you have to take a random row from an Access DB, the following code makes it.&lt;br /&gt;&lt;br /&gt;Tip: If You're accesing Access in a web (.aspx page, web service) You need remenber that ASPnet user must have full access(read, create, delete, modify) to the folder where the mdb lies, because it has to modify the .mdb file and create/deltete the .ldb file.&lt;br /&gt;&lt;br /&gt;Added: Better code in &lt;a href="http://joseblanco.blogspot.com/2004/10/v20-select-random-rows-from-ms-access.html"&gt;v2.0 Select Random Rows from MS Access&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;code class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;Dim&lt;/span&gt; adapter &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;New&lt;/span&gt; OleDbDataAdapter(&lt;span class="str"&gt;"SELECT * from myTable"&lt;/span&gt;, &lt;span class="str"&gt;"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&lt;/span&gt; + System.Web.HttpContext.Current.Request.MapPath(&lt;span class="str"&gt;"data.mdb"&lt;/span&gt;) + &lt;span class="str"&gt;";"&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; data &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;New&lt;/span&gt; DataSet&lt;br /&gt;        adapter.Fill(data)&lt;br /&gt;        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; table &lt;span class="kwrd"&gt;As&lt;/span&gt; DataTable = data.Tables(0)&lt;br /&gt;        &lt;span class="kwrd"&gt;If&lt;/span&gt; table.Rows.Count = 0 &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;Throw&lt;/span&gt; &lt;span class="kwrd"&gt;New&lt;/span&gt; Exception(&lt;span class="str"&gt;"The query return 0 rows"&lt;/span&gt;)&lt;br /&gt;        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;br /&gt;        table.Columns.Add(&lt;span class="str"&gt;"Random"&lt;/span&gt;, &lt;span class="kwrd"&gt;GetType&lt;/span&gt;(&lt;span class="kwrd"&gt;Double&lt;/span&gt;))&lt;br /&gt;        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; random &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;New&lt;/span&gt; Random&lt;br /&gt;        &lt;span class="kwrd"&gt;For&lt;/span&gt; &lt;span class="kwrd"&gt;Each&lt;/span&gt; row &lt;span class="kwrd"&gt;As&lt;/span&gt; DataRow &lt;span class="kwrd"&gt;In&lt;/span&gt; table.Rows&lt;br /&gt;            row(&lt;span class="str"&gt;"Random"&lt;/span&gt;) = random.NextDouble&lt;br /&gt;        &lt;span class="kwrd"&gt;Next&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; dv &lt;span class="kwrd"&gt;As&lt;/span&gt; DataView = table.DefaultView&lt;br /&gt;        dv.Sort = &lt;span class="str"&gt;"Random ASC"&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; sResult &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;        &lt;span class="rem"&gt;'the first column&lt;/span&gt;&lt;br /&gt;        sResult = dv.Item(0).Row(0).ToString()&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8581906-109845027518891031?l=joseblanco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joseblanco.blogspot.com/feeds/109845027518891031/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8581906&amp;postID=109845027518891031' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109845027518891031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109845027518891031'/><link rel='alternate' type='text/html' href='http://joseblanco.blogspot.com/2004/10/select-random-rows-from-ms-access.html' title='Select Random Rows from MS Access'/><author><name>Jose Blanco</name><uri>http://www.blogger.com/profile/07526585792164739920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8581906.post-109830069686879848</id><published>2004-10-20T21:24:00.000+02:00</published><updated>2004-10-20T21:31:36.866+02:00</updated><title type='text'>Extend Bluetooth coverage on a USB Bluetooth adapter(aka:dongle)</title><content type='html'>(Ampliar la covertura bluetooth de un adaptador USB(conocido como dongle))&lt;br /&gt;&lt;br /&gt;Via &lt;a href="http://www.blueseeker.com"&gt;blueseeker&lt;/a&gt; I found &lt;a href="http://www.popsci.com/popsci/how2/article/0,20967,714017,00.html"&gt;this interested article&lt;/a&gt; talking about USB coverage&lt;br /&gt;&lt;center&gt;&lt;br /&gt;&lt;a href="http://i.timeinc.net/popsci/images/h20/how1104bluetooth_485x652.gif" target="_blank"&gt;Enlarge this image&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.popsci.com/popsci/how2/article/0,20967,714017,00.html"&gt;&lt;img src="http://i.timeinc.net/popsci/images/h20/how1104bluetooth_170x218.gif" border="0"&gt;&lt;/a&gt;&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;&lt;a href="http://i.timeinc.net/popsci/images/h20/how1104bluetooth_485x652.gif"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8581906-109830069686879848?l=joseblanco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joseblanco.blogspot.com/feeds/109830069686879848/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8581906&amp;postID=109830069686879848' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109830069686879848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109830069686879848'/><link rel='alternate' type='text/html' href='http://joseblanco.blogspot.com/2004/10/extend-bluetooth-coverage-on-usb.html' title='Extend Bluetooth coverage on a USB Bluetooth adapter(aka:dongle)'/><author><name>Jose Blanco</name><uri>http://www.blogger.com/profile/07526585792164739920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8581906.post-109828797267905630</id><published>2004-10-20T17:44:00.000+02:00</published><updated>2004-10-20T17:59:32.680+02:00</updated><title type='text'>A critical point of view of Google Desktop</title><content type='html'>(Una vision critica del Google Desktop)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/francip/archive/2004/10/19/244656.aspx"&gt;This post&lt;/a&gt; has a very critical point of view of Google Desktop, by the microsoftie &lt;a href="http://blogs.msdn.com/francip/"&gt;Franci Penov&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;"1-It hooks up WinInet.dll. Hooking up system level component and intercepting all incoming/outgoing traffic on my machine has nothing to do with my desktop search. (Btw, it's amazing how many antivirus programs Google Desktop is incompatible with because of this)&lt;br /&gt;2-...."&lt;br /&gt;&lt;br /&gt;Let's read all his conclusions and take your owns.&lt;br /&gt;&lt;br /&gt;Other good article of Google Desktop at &lt;a href="http://www.infoworld.com/article/04/10/14/HNgoogledesktopsearch_1.html"&gt;Infoworld&lt;/a&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8581906-109828797267905630?l=joseblanco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joseblanco.blogspot.com/feeds/109828797267905630/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8581906&amp;postID=109828797267905630' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109828797267905630'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109828797267905630'/><link rel='alternate' type='text/html' href='http://joseblanco.blogspot.com/2004/10/critical-point-of-view-of-google.html' title='A critical point of view of Google Desktop'/><author><name>Jose Blanco</name><uri>http://www.blogger.com/profile/07526585792164739920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8581906.post-109822722119522427</id><published>2004-10-20T01:00:00.000+02:00</published><updated>2004-10-20T01:07:01.196+02:00</updated><title type='text'>Bill Gates and his optimism for the future of computing </title><content type='html'>(Billl Gates y su optimismo sobre el futuro de la informatica)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.informationweek.com/story/showArticle.jhtml?articleID=49901115"&gt;Here&lt;/a&gt; You can find and article written by Bill Gates talking about his ideas about the future/present of computing.&lt;br /&gt;&lt;br /&gt;The title of the article is &lt;strong&gt;"My optimism for the future of computing has never been greater".&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Let's read...&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8581906-109822722119522427?l=joseblanco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joseblanco.blogspot.com/feeds/109822722119522427/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8581906&amp;postID=109822722119522427' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109822722119522427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109822722119522427'/><link rel='alternate' type='text/html' href='http://joseblanco.blogspot.com/2004/10/bill-gates-and-his-optimism-for-future.html' title='Bill Gates and his optimism for the future of computing '/><author><name>Jose Blanco</name><uri>http://www.blogger.com/profile/07526585792164739920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8581906.post-109821536376073399</id><published>2004-10-19T21:31:00.000+02:00</published><updated>2004-10-19T21:49:23.760+02:00</updated><title type='text'>Avoid doPostBack and trap the caller object</title><content type='html'>(Evitar doPostBack y obtener el objeto que lo llama)&lt;br /&gt;&lt;br /&gt;Sometimes you want to avoid the execution of the doPostBack, or make something before the doPostBack will be executed.&lt;br /&gt;&lt;br /&gt;The following snippet do that. First We replace the __doPostBack with another variable called newPostBack, and maintain the old in another variable called oldPostBack.&lt;br /&gt;When any object calls doPostBack, the function that will be executed will be newPostBack. In newPostBack function We can trap the caller object into the parameter eventTarget.&lt;br /&gt;The ID of the object is btnDoit, and We get its outerHTML and do not execute the doPostBack.&lt;br /&gt;If another object calls the doPostBack it will be executed normally.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;script id="anti_doPostBack" language="javascript"&amp;gt;&lt;br /&gt;&amp;lt;!--&lt;br /&gt;// Replace the postback&lt;br /&gt;oldPostBack = __doPostBack;&lt;br /&gt;__doPostBack = newPostBack;&lt;br /&gt;&lt;br /&gt;var oldPostBack&lt;br /&gt;&lt;br /&gt;function newPostBack(eventTarget, eventArgument) {&lt;br /&gt;if (eventTarget == "btnDoit") {&lt;br /&gt;alert(document.getElementById('btnDoit').outerHTML);&lt;br /&gt;} else {&lt;br /&gt;//If the call to __doPostBack was NOT from btnDoit,&lt;br /&gt;//then call the original __doPostBack.&lt;br /&gt;oldPostBack(eventTarget, eventArgument);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;//--&amp;gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8581906-109821536376073399?l=joseblanco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joseblanco.blogspot.com/feeds/109821536376073399/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8581906&amp;postID=109821536376073399' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109821536376073399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109821536376073399'/><link rel='alternate' type='text/html' href='http://joseblanco.blogspot.com/2004/10/avoid-dopostback-and-trap-caller.html' title='Avoid doPostBack and trap the caller object'/><author><name>Jose Blanco</name><uri>http://www.blogger.com/profile/07526585792164739920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8581906.post-109817620774149139</id><published>2004-10-19T10:25:00.000+02:00</published><updated>2004-10-19T10:56:47.740+02:00</updated><title type='text'>Export datagrid to Excel</title><content type='html'>(Exportar un datagrid a Excel)&lt;br /&gt;&lt;br /&gt;Usually I have to export reports to Excel. The most common way is make a web page which put the excel mime type and sends the report table&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Response.ContentType = "application/vnd.ms-excel"&lt;br /&gt;Response.Write(sReportTable)&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;If the reports are only queries to the database, is very simple, because you only have to pass the query to the page, but if you have to make some calculations you have to put the code in the page.&lt;br /&gt;&lt;br /&gt;The solution is getting the outerHTML of the datagrid(DataGrid1 is the ID of the datagrid object in my .aspx page) and putting it in the clipboard. How?&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;a href="#" onclick="var ret;ret = window.clipboardData.setData('Text',document.getElementById('DataGrid1').outerHTML);if(ret){alert('Copy OK');}else{alert('Copy failed');}"&amp;gt;Copy&amp;lt;/a&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Just open Excel an Edit-Paste&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8581906-109817620774149139?l=joseblanco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joseblanco.blogspot.com/feeds/109817620774149139/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8581906&amp;postID=109817620774149139' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109817620774149139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109817620774149139'/><link rel='alternate' type='text/html' href='http://joseblanco.blogspot.com/2004/10/export-datagrid-to-excel.html' title='Export datagrid to Excel'/><author><name>Jose Blanco</name><uri>http://www.blogger.com/profile/07526585792164739920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8581906.post-109795012022034193</id><published>2004-10-16T19:50:00.000+02:00</published><updated>2004-10-16T20:08:40.220+02:00</updated><title type='text'>Openwave Supports I-Mode in Europe</title><content type='html'>(Openwave soportara imode en Europa)&lt;br /&gt;&lt;br /&gt;An agreement between NTT DoCoMo and Openwave had been sign for supporting this technology in all products of Openwave(&lt;a href="http://www.openwave.com/us/products/"&gt;servers and clients&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;Today 51 mobile device manufacturers license the Openwave Mobile Browser, which has shipped in more than 600 million handsets and supports mobile phone networks in use around the world, including WCMDA, CDMA, GSM, TDMA, iDEN, PHS, and PDC.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.openwave.com/us/openwave_iq/inside_the_wave/2004/september/imode_europe.htm"&gt;The Openwave notice &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As I can understand(with my more than 5 years old experience in mobility), imode hasn't any sense, but Openwave have taken her decision. Perhaps NTT Docomo has given enough money to Openwave.&lt;br /&gt;&lt;br /&gt;Imode as a language(real cHTML) will lose the battle with a more standardized XHTML(Visual Studio .Net 2005 write it as default markup language). Imode as a platform will lose the battle with the phones which use standard internet.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8581906-109795012022034193?l=joseblanco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joseblanco.blogspot.com/feeds/109795012022034193/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8581906&amp;postID=109795012022034193' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109795012022034193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109795012022034193'/><link rel='alternate' type='text/html' href='http://joseblanco.blogspot.com/2004/10/openwave-supports-i-mode-in-europe.html' title='Openwave Supports I-Mode in Europe'/><author><name>Jose Blanco</name><uri>http://www.blogger.com/profile/07526585792164739920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8581906.post-109768791026484798</id><published>2004-10-13T19:16:00.000+02:00</published><updated>2004-10-13T19:18:30.263+02:00</updated><title type='text'>PalmOne licenses Microsoft Exchange for mobile e-mail</title><content type='html'>(PalmOne licencia Microsoft Exchange para email movil)&lt;br /&gt;&lt;br /&gt;As You can read at &lt;a href="http://www.infoworld.com/article/04/10/05/HNpalmonems_1.html?MOBILE%20APPLICATIONS"&gt;Infoworld&lt;/a&gt; the first PalmOne device to include the Microsoft technology will be a new Treo smart phone. The Microsoft's Exchange Server ActiveSync protocol, allow users of PalmOne devices will no longer need to install third-party client and server software to be able to access e-mail, calendar and contact information on a server running Microsoft's Exchange Server 2003 software.&lt;br /&gt;&lt;br /&gt;More on &lt;a href="http://www.microsoft.com/presspass/press/2004/oct04/10-05PalmOnePR.asp"&gt;Microsoft Press&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8581906-109768791026484798?l=joseblanco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joseblanco.blogspot.com/feeds/109768791026484798/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8581906&amp;postID=109768791026484798' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109768791026484798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109768791026484798'/><link rel='alternate' type='text/html' href='http://joseblanco.blogspot.com/2004/10/palmone-licenses-microsoft-exchange.html' title='PalmOne licenses Microsoft Exchange for mobile e-mail'/><author><name>Jose Blanco</name><uri>http://www.blogger.com/profile/07526585792164739920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8581906.post-109725780585878882</id><published>2004-10-08T19:32:00.000+02:00</published><updated>2004-10-08T19:50:05.856+02:00</updated><title type='text'>Old bugs in new software. Successful proof of concept!</title><content type='html'>(Viejos agujeros en el nuevo software. Prueba de concepto exitosa!)&lt;br /&gt;&lt;br /&gt;While I'm reading blogs I've found the &lt;a href="http://www.derkeiler.com/Mailing-Lists/NT-Bugtraq/2004-09/0068.html"&gt;proof of concept&lt;/a&gt; of &lt;a href="http://joseblanco.blogspot.com/2004/10/old-bugs-in-new-software.html"&gt;the bug in canonicalization of the URLs&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;In my machine the bug works so it's time to patch it with the &lt;a href="http://joseblanco.blogspot.com/2004/10/old-bugs-in-new-software-solution-2.html"&gt;method 2&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconthecookieauthenticationprovider.asp"&gt;standard forms authentication &lt;/a&gt;setup requires the presence of "web.config" to set the authentication method and login procedure. The presence of this file prevents access to certain files (.aspx files for example) unless authenticated.&lt;br /&gt;Put in web.config&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;authentication mode="Forms"&amp;gt;&lt;br /&gt;&amp;lt;forms name=".FORM" loginurl="login.aspx"&amp;gt;&lt;br /&gt;&amp;lt;/authentication&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;--- Example ---&lt;br /&gt;The webroot for your website is:&lt;br /&gt;c:\inetpub\wwwroot\mysite&lt;br /&gt;You want to secure files in a sub directory "secure"&lt;br /&gt;c:\inetpub\wwwroot\mysite\secure\web.config&lt;br /&gt;A request to http://localhost/secure/somefile.aspx would then redirect the user to a predefined authentication page(login.aspx), as defined in web.config, before allowing the user access to "somefile.aspx".&lt;br /&gt;&lt;br /&gt;--- Bug ---&lt;br /&gt;1. Using Mozilla not IE, you make a request to http://localhost/secure\somefile.aspx The use of a backslash rather than a forward slash appears to bypass the expected authentication model invoked in .NET forms authentication&lt;br /&gt;2. Using IE, you make a request to http://localhost/secure\somefile.aspx - IE automatically replaces the backslash "\" with a forward slash "/" and everything appears fine. However, replace the backslash "\" with %5C (%5C being hex value for \) and all is not so fine:&lt;br /&gt;http://localhost/secure%5Csomefile.aspx&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8581906-109725780585878882?l=joseblanco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joseblanco.blogspot.com/feeds/109725780585878882/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8581906&amp;postID=109725780585878882' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109725780585878882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109725780585878882'/><link rel='alternate' type='text/html' href='http://joseblanco.blogspot.com/2004/10/old-bugs-in-new-software-successful.html' title='Old bugs in new software. Successful proof of concept!'/><author><name>Jose Blanco</name><uri>http://www.blogger.com/profile/07526585792164739920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8581906.post-109725525535702134</id><published>2004-10-08T18:48:00.000+02:00</published><updated>2004-10-08T19:11:01.396+02:00</updated><title type='text'>Running multiple versions of .Net Framework(aka:Side-by-Side Execution)</title><content type='html'>(Usando varias versiones del .Net Framework(Conocido como Side-by-Side Execution))&lt;br /&gt;&lt;br /&gt;Three weeks ago I put my hands on .Net Framework 2.o Beta, and I found the problem that my ASP.Net applications compiled under version 1.0 and 1.1 fail. As I usually do on this cases I made a search in google with this text &lt;a href="http://www.google.com/search?hl=en&amp;lr=&amp;amp;q=Running+multiple+versions+of+.Net+Framework"&gt;Running multiple versions of .Net Framework&lt;/a&gt; and I found the problem quickly.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.asp.net/faq/SideBySide.aspx"&gt;This page&lt;/a&gt; gave me the solution. The problem was that when I installed the new version of framework it registered this version for all sites in the IIS.&lt;br /&gt;&lt;br /&gt;The solution is re-register those sites with the correct version. It can be done with the command line ASP.NET IIS Registration Tool (&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cptools/html/cpgrfaspnetiisregistrationtoolaspnet_regiisexe.asp"&gt;Aspnet_regiis.exe&lt;/a&gt;), provided with the framework.&lt;br /&gt;&lt;br /&gt;For the very lazy people exits a GUI implementation &lt;a href="http://www.denisbauer.com/NETTools/ASPNETVersionSwitcher.aspx"&gt;ASP.NET Version Switcher&lt;/a&gt;&lt;br /&gt;&lt;center&gt;&lt;br /&gt;Screenshot of ASP.NET Version Switcher&lt;br /&gt;&lt;img alt="ASP.NET Version Switcher" src="http://www.denisbauer.com/NETTools/ASPNETVersionSwitcher.jpg" /&gt;&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8581906-109725525535702134?l=joseblanco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joseblanco.blogspot.com/feeds/109725525535702134/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8581906&amp;postID=109725525535702134' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109725525535702134'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109725525535702134'/><link rel='alternate' type='text/html' href='http://joseblanco.blogspot.com/2004/10/running-multiple-versions-of-net.html' title='Running multiple versions of .Net Framework(aka:Side-by-Side Execution)'/><author><name>Jose Blanco</name><uri>http://www.blogger.com/profile/07526585792164739920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8581906.post-109722491309310704</id><published>2004-10-08T10:22:00.000+02:00</published><updated>2004-10-08T10:41:53.093+02:00</updated><title type='text'>Old bugs in new software. Solution 2</title><content type='html'>(Viejos agujeros en el nuevo software. Solucion 2)&lt;br /&gt;&lt;br /&gt;This is a trick that Web site administrators can apply to their Web server to protect it from the &lt;a href="http://joseblanco.blogspot.com/2004/10/old-bugs-in-new-software.html"&gt;bug in canonicalization of the URLs&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Microsoft has released an ASP.NET &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/elmah.asp"&gt;HTTP module &lt;/a&gt;that you can download at &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=DA77B852-DFA0-4631-AAF9-8BCC6C743026&amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?familyid=DA77B852-DFA0-4631-AAF9-8BCC6C743026&amp;amp;displaylang=en&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Enjoy and pray. Another bug could be waiting for you &lt;a href="http://www.imdb.com/title/tt0106179/"&gt;Out There &lt;/a&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8581906-109722491309310704?l=joseblanco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joseblanco.blogspot.com/feeds/109722491309310704/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8581906&amp;postID=109722491309310704' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109722491309310704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109722491309310704'/><link rel='alternate' type='text/html' href='http://joseblanco.blogspot.com/2004/10/old-bugs-in-new-software-solution-2.html' title='Old bugs in new software. Solution 2'/><author><name>Jose Blanco</name><uri>http://www.blogger.com/profile/07526585792164739920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8581906.post-109716065926520617</id><published>2004-10-07T16:27:00.000+02:00</published><updated>2004-10-07T17:41:04.606+02:00</updated><title type='text'>Old bugs in new software</title><content type='html'>(Viejos agujeros en el nuevo software)&lt;br /&gt;&lt;br /&gt;Upss..., it isn't official, but could be a &lt;a href="http://www.google.com/search?q=define:bug"&gt;bug&lt;/a&gt; in ASP.Net which let users read authorized files through a problem in canonicalization of the &lt;a href="http://www.google.com/search?hl=en&amp;lr=&amp;amp;q=define%3Aurl"&gt;URLs&lt;/a&gt;.(The article is in &lt;a title="http://www.microsoft.com/security/incident/aspnet.mspx" href="http://www.microsoft.com/security/incident/aspnet.mspx"&gt;http://www.microsoft.com/security/incident/aspnet.mspx&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;The "&lt;a href="http://support.microsoft.com/?kbid=887459"&gt;Programmatically check for canonicalization issues with ASP.NET&lt;/a&gt;" article gives you a explanation and a solution?¿ for this problem, but I post here the code for vb and C#.&lt;br /&gt;&lt;br /&gt;Put in the Application_BeginRequest event handler of the Global.asax file.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Visual Basic .NET&lt;/strong&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;script language="vb" runat="server"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Sub Application_BeginRequest(Sender as Object, E as EventArgs)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;If (Request.Path.IndexOf(chr(92)) &amp;gt;= 0 OR System.IO.Path.GetFullPath Request.PhysicalPath) &amp;lt;&amp;gt; Request.PhysicalPath) then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Throw New HttpException(404, "Not Found")&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;End If&lt;br /&gt;&amp;nbsp;&amp;nbsp;End Sub&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;C#&lt;/strong&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;script language="C#" runat="server"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;void Application_BeginRequest(object source, EventArgs e){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (Request.Path.IndexOf('\\') &amp;gt;= 0 System.IO.Path.GetFullPath(Request.PhysicalPath) != Request.PhysicalPath) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;throw new HttpException(404, "not found");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8581906-109716065926520617?l=joseblanco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joseblanco.blogspot.com/feeds/109716065926520617/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8581906&amp;postID=109716065926520617' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109716065926520617'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109716065926520617'/><link rel='alternate' type='text/html' href='http://joseblanco.blogspot.com/2004/10/old-bugs-in-new-software.html' title='Old bugs in new software'/><author><name>Jose Blanco</name><uri>http://www.blogger.com/profile/07526585792164739920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8581906.post-109715132009213714</id><published>2004-10-07T13:19:00.000+02:00</published><updated>2004-10-07T14:15:20.093+02:00</updated><title type='text'>3,2,1 Go</title><content type='html'>3,2,1 Despegue&lt;br /&gt;&lt;br /&gt;Well, this is my first post, and I'm sure that only friends going to read this post, but it doesn't matter ;)&lt;br /&gt;&lt;br /&gt;The main reason of this &lt;a href="http://www.google.com/search?hl=en&amp;lr=&amp;amp;q=define%3Ablog" target="_blank"&gt;blog&lt;/a&gt; is to be a share point for interchange impressions about mobility and about &lt;a href="http://www.microsoft.com/net/"&gt;.NET development&lt;/a&gt;.(but this is not an obstacle for speaking about another things).&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8581906-109715132009213714?l=joseblanco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joseblanco.blogspot.com/feeds/109715132009213714/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8581906&amp;postID=109715132009213714' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109715132009213714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8581906/posts/default/109715132009213714'/><link rel='alternate' type='text/html' href='http://joseblanco.blogspot.com/2004/10/321-go.html' title='3,2,1 Go'/><author><name>Jose Blanco</name><uri>http://www.blogger.com/profile/07526585792164739920</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry></feed>
