<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;DUEMRX86fSp7ImA9WhRVFEQ.&quot;"><id>tag:blogger.com,1999:blog-7639707040768375472</id><updated>2012-01-13T15:34:44.115-08:00</updated><category term="keychain access" /><category term="russian spam" /><category term="slow sql queries" /><category term="google webmaster sitemaps ping search engines" /><category term="http modules" /><category term="google maps" /><category term=".mac" /><category term="iis7" /><category term="apple" /><category term="System.Drawing" /><category term="mac os" /><category term="ipad" /><category term="email encryption" /><category term="date time string format" /><category term="sql server" /><category term="kindle" /><category term="shrink" /><category term="filters" /><category term="imagemap" /><category term="query analyzer" /><category term="Image.Save()" /><category term="infinite loop" /><category term="syncing" /><category term="msdeploy" /><category term="s/mime" /><category term="rdp" /><category term="spam" /><category term="xcopy" /><category term="GIcon" /><category term="cannot delete directory" /><category term="ipad mini" /><category term="asp.net" /><category term="session state not working" /><category term="large database" /><category term="dotnet" /><category term="microsoft web deploy" /><category term="entourage" /><category term="gmail" /><title>Orb of Knowledge</title><subtitle type="html">Information I find useful; thoughts I want to share.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://orb-of-knowledge.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://orb-of-knowledge.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Thomas</name><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>27</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/OrbOfKnowledge" /><feedburner:info uri="orbofknowledge" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;AkcGSH8zcSp7ImA9WhZbEUU.&quot;"><id>tag:blogger.com,1999:blog-7639707040768375472.post-3730689747296875942</id><published>2011-06-15T18:15:00.000-07:00</published><updated>2011-06-15T18:33:49.189-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-15T18:33:49.189-07:00</app:edited><title>Official Toyota Extended Warranties</title><content type="html">Recently I've been shopping for a new Toyota vehicle. Most dealers now have fleet/internet salesmen that are easy to deal with via e-mail, as the B.S. gets cut out to a large degree since they know you're shopping on the internet and are more up-to-speed on things like invoice pricing, dealer holdbacks, and the rest.&lt;br /&gt;&lt;br /&gt;In fact, after filling out the form at &lt;a href="http://cars.overstock.com"&gt;cars.overstock.com&lt;/a&gt; to receive price quotes from nearby dealers, I was able to easily come to a deal with Derrick B. at Puente Hills Toyota in the City of Industry, CA.&lt;br /&gt;&lt;br /&gt;But even if you agree to a specific price, they can still make money off you in other ways... typically with the finance department, which handles financing, as well as things like extended warranties...&lt;br /&gt;&lt;br /&gt;I knew to expect this, so I wanted to go in armed with information. Here is some data that I've picked up in my reading that might help you:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;I have read that the official Toyota extended warranty is a pretty good deal, as long as you don't overpay. You can shop around at different dealerships (more below).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Third parties like Fidelity, JM&amp;amp;A, etc. are often pushed by some dealerships, instead of the official Toyota warranties, and have confusingly similar names for their products, e.g. "Platinum" extended warranty, with the same mileage breakouts that Toyota's official extended warranties have. Don't be fooled. The warranty you get should be Toyota ExtraCare, officially branded.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;You don't need to buy the extended warranty when you buy the vehicle. It's not clear to me how long you have to buy it (some say 30 days, some say 60, some say up until the basic warranty runs out). But it's clear you do NOT need to be pressured into buying it that night (unless you really need to finance it with your vehicle purchase).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;You can buy the warranty from any dealership, even out of state. One that was recommended frequently online was Toyota of Greenfield, in Massachusetts. Ask for Troy. He appears to be affiliated with &lt;a href="http://fd-warranty.com/toyotascion/index.html"&gt;this website&lt;/a&gt; which has some good information on extended warranties (the official ones, which they sell). For several kinds of Toyotas, I was seeing people quoted in the $600 - $900 range for a $0 deductible platinum 7-year warranty in the 70K to 100K mileage range (from Troy). And many other people were getting charged upwards of $1500-$2500 at their own dealerships, so don't get suckered.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7639707040768375472-3730689747296875942?l=orb-of-knowledge.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/VkD6NEsQ3ReH8-pfP1DZwTc8hXE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VkD6NEsQ3ReH8-pfP1DZwTc8hXE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/VkD6NEsQ3ReH8-pfP1DZwTc8hXE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VkD6NEsQ3ReH8-pfP1DZwTc8hXE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OrbOfKnowledge/~4/cQfoNAG4_Lk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orb-of-knowledge.blogspot.com/feeds/3730689747296875942/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7639707040768375472&amp;postID=3730689747296875942" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/3730689747296875942?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/3730689747296875942?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OrbOfKnowledge/~3/cQfoNAG4_Lk/official-toyota-extended-warranties.html" title="Official Toyota Extended Warranties" /><author><name>Thomas</name><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><feedburner:origLink>http://orb-of-knowledge.blogspot.com/2011/06/official-toyota-extended-warranties.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0ANRnY6eSp7ImA9Wx5XFk0.&quot;"><id>tag:blogger.com,1999:blog-7639707040768375472.post-7151790386323516614</id><published>2010-09-15T18:09:00.000-07:00</published><updated>2010-09-15T18:49:57.811-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-15T18:49:57.811-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="kindle" /><category scheme="http://www.blogger.com/atom/ns#" term="ipad mini" /><category scheme="http://www.blogger.com/atom/ns#" term="ipad" /><category scheme="http://www.blogger.com/atom/ns#" term="apple" /><title>Thoughts on iPad Mini</title><content type="html">There have been rumors swirling that Apple will release a new version of the iPad in time for the holidays. There have been other rumors that Apple will release an iPad in a smaller form-factor.&lt;br /&gt;&lt;br /&gt;In general I subscribe to the philosophy that most rumor-mongers are full of shit.&lt;br /&gt;&lt;br /&gt;However, I think these rumors do make sense, and I'll go into why exactly in a minute. But first, my guesses. Everyone likes to make guesses. Here's mine:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;Apple will release an "iPad Mini" in November, running iOS 4.2, with a 6" screen at 1024x768 (213dpi), putting it's screen resolution and size on par with the Kindle 3. The smaller form factor (60% reduction in size) would lead to a lighter device. You've now eliminated 2 of the 3 advantages the Kindle has over iPad: higher resolution reading, lighter weight, leaving only one: viewing in direct sunlight.&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;Will Apple also re-design the screen to work better in sunlight (or at least eliminate the polarity issue that causes the screen to look completely off when wearing sunglasses)? Maybe. I doubt we'll see many advances along that line until next year's release. (I'm lumping "overheating" issues into that third Kindle advantage of viewing in direct sunlight, by the way.)&lt;br /&gt;&lt;br /&gt;I think it goes without saying that any new release of iPad will come  with a front-facing camera for FaceTime support.&lt;br /&gt;&lt;br /&gt;How I came up with the precise specs for my guess above is by looking at what Apple did already with iPhone 4, and how they are trying to inflict minimal pain on iOS developers. iPhone 4 doubled the resolution and kept the screen size the same. This makes it fairly easy for iOS developers to adapt their applications -- double your graphics sizes, and you're done.&lt;br /&gt;&lt;br /&gt;What would be even easier? If the resolution increased but the pixel count remained exactly the same. Then developers don't need to do anything! Obviously the screen size is going to have to come down if the resolution increases, which is no surprise if one of the goals is to compete against the Kindle form-factor at six inches diagonal. The 213 dpi I've posited is not "retina" level, &lt;span style="font-style: italic;"&gt;per se&lt;/span&gt;, though it's still in the range of Kindle 3 DPI. And I think that's where this device is squarely aimed. (Alas, I was not able to find the actual Kindle 3 DPI documented anywhere officially, but it's said to be in the 200s.)&lt;br /&gt;&lt;br /&gt;I've read rumors of a  7" iPad Mini, but I would be surprised if Apple went with that size, since it would mean a sub-200 DPI resolution at 183 DPI, and if you think about it, not a whole lot more than the resolution of the iPhone 3, which was 163 DPI. It also would not allow Apple to cut the weight as much as they can with a smaller screen.&lt;br /&gt;&lt;br /&gt;Apple wants to have their iPad cake and eat Kindle's, too. What's that, you want a full-sized mobile computing device? Here's the iPad. Oh, you're mainly interested in reading, but wouldn't mind getting these hundreds of thousands of apps that Kindle doesn't offer? Here's iPad Mini.&lt;br /&gt;&lt;br /&gt;Apple could release this product in November for the holidays, and developers would have to do &lt;span style="font-style: italic;"&gt;nothing at all&lt;/span&gt; -- all of their software would run perfectly on this new device because nothing has changed in terms of the pixel count or aspect ratio.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Food for thought...&lt;/span&gt; Next Spring... will Apple release iPad 2 with a full retina display increase to ~326dpi, and a doubling of the pixels for the large form-factor (original) iPad line? If so, how long until Apple finally eliminates pixels entirely? Why are developers still using PNGs sprinkled with pixel fairy dust, rather than vector graphics? Will iOS 5 and Mac OS XI eliminate these relics once and for all?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Full disclosure: I am a long-term investor in both Apple and Amazon stock.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7639707040768375472-7151790386323516614?l=orb-of-knowledge.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/TtaguKeKdZRvEK6KIjjrvijhguk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TtaguKeKdZRvEK6KIjjrvijhguk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/TtaguKeKdZRvEK6KIjjrvijhguk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TtaguKeKdZRvEK6KIjjrvijhguk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OrbOfKnowledge/~4/J1rSsifqxoQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orb-of-knowledge.blogspot.com/feeds/7151790386323516614/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7639707040768375472&amp;postID=7151790386323516614" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/7151790386323516614?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/7151790386323516614?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OrbOfKnowledge/~3/J1rSsifqxoQ/thoughts-on-ipad-mini.html" title="Thoughts on iPad Mini" /><author><name>Thomas</name><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><feedburner:origLink>http://orb-of-knowledge.blogspot.com/2010/09/thoughts-on-ipad-mini.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUUFQnszeip7ImA9Wx5XFEw.&quot;"><id>tag:blogger.com,1999:blog-7639707040768375472.post-8182044952803108821</id><published>2010-09-13T15:33:00.001-07:00</published><updated>2010-09-13T15:33:33.582-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-13T15:33:33.582-07:00</app:edited><title>Geo::IP built for ActivePerl 5.12</title><content type="html">&lt;a href="http://www.winzig.com/perl-ppd/Geo-IP.html"&gt;You can find it here.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7639707040768375472-8182044952803108821?l=orb-of-knowledge.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/hIcVWOvpbzTLLWRUyJo6Q8q2uYA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hIcVWOvpbzTLLWRUyJo6Q8q2uYA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/hIcVWOvpbzTLLWRUyJo6Q8q2uYA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hIcVWOvpbzTLLWRUyJo6Q8q2uYA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OrbOfKnowledge/~4/Ro2H-RIDzqg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orb-of-knowledge.blogspot.com/feeds/8182044952803108821/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7639707040768375472&amp;postID=8182044952803108821" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/8182044952803108821?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/8182044952803108821?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OrbOfKnowledge/~3/Ro2H-RIDzqg/geoip-built-for-activeperl-512.html" title="Geo::IP built for ActivePerl 5.12" /><author><name>Thomas</name><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><feedburner:origLink>http://orb-of-knowledge.blogspot.com/2010/09/geoip-built-for-activeperl-512.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEEDRX85eip7ImA9Wx5XFE0.&quot;"><id>tag:blogger.com,1999:blog-7639707040768375472.post-2782647379270663276</id><published>2010-09-13T11:22:00.001-07:00</published><updated>2010-09-13T11:31:14.122-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-13T11:31:14.122-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="xcopy" /><category scheme="http://www.blogger.com/atom/ns#" term="msdeploy" /><category scheme="http://www.blogger.com/atom/ns#" term="microsoft web deploy" /><title>MSDeploy vs. xcopy network bandwidth throughput</title><content type="html">MSDeploy (aka Microsoft Web Deploy) is great for syncing up all kinds of things between two machines. One issue I've noticed recently is, for whatever reason, it doesn't always do well at maxing out your network bandwidth.&lt;br /&gt;&lt;br /&gt;We were recently syncing up large SQL Server backups between two boxes connected through a gigabit ethernet switch. I initially decided to use msdeploy.exe, because I wanted it to not only bring over the latest files, but delete the ones on the destination server that no longer exist on the source server. Using -verb=sync and an xml -source:manifest and -dest:manifest file, I ran the test sync from the destination server, and watched the network usage with task manager.&lt;br /&gt;&lt;br /&gt;The average throughput was in the 5-15% range on our gigabit connection.&lt;br /&gt;&lt;br /&gt;As a test, I ran xcopy /S /D for the same directory tree, and was getting over 90% throughput most of the time, often at 99% throughput!&lt;br /&gt;&lt;br /&gt;Unfortunately, xcopy will not truly sync, it's only copying the files over. So now what we do in our .bat file is run the xcopy command first to copy over all the newest data at a high rate of speed, and then we call the same msdeploy command as before, and it deletes any files on destination not found on source. Since all the copying of new data has been done by xcopy, it finishes very quickly and now we're synced up.&lt;br /&gt;&lt;br /&gt;I am aware of robocopy's ability to do a lot of this stuff, but it's clear that msdeploy is where Microsoft is putting it's eggs for a lot of the newer syncing technology, so we default to using that first, and now just augment with xcopy when pure throughput is needed.&lt;br /&gt;&lt;br /&gt;If anyone knows why msdeploy is so much slower, please comment and I will update this article with any tips to gain performance. My guess is it's due to using the HTTP agent? It just seems weird, because I'm talking about copying of really huge files, so the slowdown is not with hash checking.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7639707040768375472-2782647379270663276?l=orb-of-knowledge.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/3aY85ecAkhljn-aDD0X2S505XP0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3aY85ecAkhljn-aDD0X2S505XP0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/3aY85ecAkhljn-aDD0X2S505XP0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3aY85ecAkhljn-aDD0X2S505XP0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OrbOfKnowledge/~4/fD14ElLGp4M" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orb-of-knowledge.blogspot.com/feeds/2782647379270663276/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7639707040768375472&amp;postID=2782647379270663276" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/2782647379270663276?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/2782647379270663276?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OrbOfKnowledge/~3/fD14ElLGp4M/msdeploy-vs-xcopy-network-bandwidth.html" title="MSDeploy vs. xcopy network bandwidth throughput" /><author><name>Thomas</name><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><feedburner:origLink>http://orb-of-knowledge.blogspot.com/2010/09/msdeploy-vs-xcopy-network-bandwidth.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0cCQ30zeSp7ImA9Wx5REE0.&quot;"><id>tag:blogger.com,1999:blog-7639707040768375472.post-6179765494240080567</id><published>2010-08-16T17:17:00.001-07:00</published><updated>2010-08-16T17:31:02.381-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-16T17:31:02.381-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="google webmaster sitemaps ping search engines" /><title>Notifying Major Search Engines with sitemap_gen.py</title><content type="html">If you're using sitemaps on your website, you can notify the major search engines whenever your sitemap is updated. They usually offer a "ping" URL that you can hit. The ping URLs for the major search engines are below. You would substitute the full URL to your sitemap.xml (or .gz) file, encoded, wherever you see &lt;span style="font-style: italic;"&gt;&lt;sitemap_url&gt;&lt;/sitemap_url&gt;&lt;/span&gt; &lt;span style="font-style: italic;"&gt;sitemap_url&lt;/span&gt; below. And read the note at the bottom of this post for more info on the YahooDemo appid used below:&lt;br /&gt;&lt;br /&gt;&lt;ul style="font-family: verdana;"&gt;&lt;li&gt;http://www.google.com/webmasters/tools/ping?sitemap=&lt;span style="font-style: italic;"&gt;sitemap_url&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;http://search.yahooapis.com/SiteExplorerService/V1/updateNotification?appid=&lt;span style="font-style: italic; color: rgb(0, 153, 0);"&gt;YahooDemo&lt;/span&gt;&amp;amp;url=&lt;span style="font-style: italic;"&gt;sitemap_url&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;http://www.bing.com/webmaster/ping.aspx?siteMap=&lt;span style="font-style: italic;"&gt;sitemap_url&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;http://submissions.ask.com/ping?sitemap=&lt;span style="font-style: italic;"&gt;sitemap_url&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;In addition, if you're using Google's sitemap_gen.py python script for generating your sitemap, they have a hash of tuples for each site you want to notify. Only Google's is included by default. Here is a version of the NOTIFICATION_SITES hash that has Google, Bing, Yahoo, and Ask.com:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;NOTIFICATION_SITES = [&lt;br /&gt;('http', 'www.google.com', 'webmasters/tools/ping', {}, '', 'sitemap'),&lt;br /&gt;('http', 'search.yahooapis.com', 'SiteExplorerService/V1/updateNotification', {'appid' : '&lt;span style="color: rgb(0, 153, 0);"&gt;YahooDemo&lt;/span&gt;'}, '', 'url'),&lt;br /&gt;('http', 'submissions.ask.com', 'ping', {}, '', 'sitemap'),&lt;br /&gt;('http', 'www.bing.com', 'webmaster/ping.aspx', {}, '', 'siteMap')&lt;br /&gt;]&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This should work as-is, but if the Yahoo one fails for you, or if you want to follow Yahoo's rules more closely, you should &lt;a href="https://developer.apps.yahoo.com/wsregapp/"&gt;sign up for an official Yahoo Developer appid&lt;/a&gt;, and replace "YahooDemo" in the code above with your appid.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7639707040768375472-6179765494240080567?l=orb-of-knowledge.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/VN3vsCtjAvO1ygvvlp-rrBwSK4E/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VN3vsCtjAvO1ygvvlp-rrBwSK4E/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/VN3vsCtjAvO1ygvvlp-rrBwSK4E/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VN3vsCtjAvO1ygvvlp-rrBwSK4E/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OrbOfKnowledge/~4/kIVhr160Dt0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orb-of-knowledge.blogspot.com/feeds/6179765494240080567/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7639707040768375472&amp;postID=6179765494240080567" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/6179765494240080567?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/6179765494240080567?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OrbOfKnowledge/~3/kIVhr160Dt0/notifying-major-search-engines-with.html" title="Notifying Major Search Engines with sitemap_gen.py" /><author><name>Thomas</name><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><feedburner:origLink>http://orb-of-knowledge.blogspot.com/2010/08/notifying-major-search-engines-with.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A04ESX0ycCp7ImA9WxFaGU8.&quot;"><id>tag:blogger.com,1999:blog-7639707040768375472.post-49021124958005519</id><published>2010-07-23T16:55:00.001-07:00</published><updated>2010-07-23T17:05:08.398-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-23T17:05:08.398-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="iis7" /><category scheme="http://www.blogger.com/atom/ns#" term="asp.net" /><category scheme="http://www.blogger.com/atom/ns#" term="http modules" /><category scheme="http://www.blogger.com/atom/ns#" term="session state not working" /><title>Session State not working even though you have enabled it?!</title><content type="html">This was a doozie... I was working on a local dev box running Windows Vista and .NET 2.0. I pulled down another developer's web project that uses Session State variables, and when I went to test it, I received this error:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-weight: bold;"&gt;"System.Web.HttpException: Session state can only be used when enableSessionState is set to true, either in a configuration file or in the Page directive..."&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;I did some sleuthing, and find different recommendations:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Add &lt;pages enablesessionstate="true"&gt; to your web.config file, within the &lt;configuration&gt;&lt;web.config&gt; area.&lt;br /&gt;&lt;/web.config&gt;&lt;/configuration&gt;&lt;/pages&gt;&lt;/li&gt;&lt;li&gt;Add &lt;sessionstate mode="InProc" cookieless="false" timeout="20"&gt; to the same area.&lt;/sessionstate&gt;&lt;/li&gt;&lt;li&gt;Make sure &lt;add name="Session" type="System.Web.SessionState.SessionStateModule"&gt; is in the httpModules area of your root level web.config file (some people said machine.config, not sure which, but I tried both).&lt;/add&gt;&lt;/li&gt;&lt;li&gt;Add EnableSessionState="true" to the .aspx @Page directive.&lt;/li&gt;&lt;/ol&gt;Well, I tried all of these. Yet I still received this error. I opened up IIS Manager and looked at the root level of the site. There's even a configuration panel for "Session State," and "InProc" was already selected. EVERYTHING was turned on, why wasn't it working???&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;I just figured it out, although I have no idea how or why it was required:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;In IIS Manager (in IIS7), go to the top level of the website in question.&lt;/li&gt;&lt;li&gt;Instead of clicking on the Session State panel, double-click the "Modules" area.&lt;/li&gt;&lt;li&gt;Scan that list and see if you have a module for Session State configured (I did not).&lt;/li&gt;&lt;li&gt;If not, click the Add Managed Module... button.&lt;/li&gt;&lt;li&gt;Type "Session" in the first box (no quotes).&lt;/li&gt;&lt;li&gt;In the second box, type "System.Web.SessionState.SessionStateModule" (no quotes)&lt;/li&gt;&lt;li&gt;Click the checkbox "invoke only requests to asp.net" (at least, that's what I did)&lt;/li&gt;&lt;/ul&gt;Now try your application again. If you're lucky like me, it just worked!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7639707040768375472-49021124958005519?l=orb-of-knowledge.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/GYRiu9u8xyIeSr-XZO7Xs-7kfoc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GYRiu9u8xyIeSr-XZO7Xs-7kfoc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/GYRiu9u8xyIeSr-XZO7Xs-7kfoc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GYRiu9u8xyIeSr-XZO7Xs-7kfoc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OrbOfKnowledge/~4/M3JYla1HVq4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orb-of-knowledge.blogspot.com/feeds/49021124958005519/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7639707040768375472&amp;postID=49021124958005519" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/49021124958005519?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/49021124958005519?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OrbOfKnowledge/~3/M3JYla1HVq4/session-state-not-working-even-though.html" title="Session State not working even though you have enabled it?!" /><author><name>Thomas</name><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><feedburner:origLink>http://orb-of-knowledge.blogspot.com/2010/07/session-state-not-working-even-though.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkYAR3oyeSp7ImA9WxFaGU4.&quot;"><id>tag:blogger.com,1999:blog-7639707040768375472.post-7115158105690130389</id><published>2010-05-01T12:16:00.000-07:00</published><updated>2010-07-23T17:09:06.491-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-23T17:09:06.491-07:00</app:edited><title>Information on 3G iPad GPS and International Roaming</title><content type="html">&lt;span style="font-weight: bold; color: rgb(102, 102, 102);"&gt;UPDATE: &lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;I am back from my trip in Italy, and everything worked great. I used only about 100MB of 3G data on the iPad, although keep in mind I was also using an iPhone some of the time. It worked perfectly for our trip. Being able to consult maps, the web, and related information was very handy.&lt;br /&gt;&lt;br /&gt;I can also highly recommend the TomTom for Italy iPhone app (with the hardware phone holder that amplifies the GPS and charges the phone). We drove all over Italy using this device, and rarely made mistakes in getting to our destinations!&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr noshade="noshade" size="1"&gt;&lt;br /&gt;First, let's talk GPS in the iPad&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The GPS in the iPad works with or without a 3G plan.&lt;br /&gt;&lt;br /&gt;It's called "Assisted  GPS," but don't let the name fool you, it's true GPS. The "assist" you get from the cell towers is that you get an immediate approximate location, and more importantly, the tower information tells the GPS chip in the iPad which GPS satellites to lock onto. This speeds up the process of acquiring a true GPS lock.&lt;br /&gt;&lt;br /&gt;However, if you are in an area with zero 3G cell coverage, your iPad will still obtain a GPS lock, it's just going to be a bit slower initially.&lt;br /&gt;&lt;br /&gt;In addition, if you're near any WiFi routers, the iPad will acquire an approximate location based on data from services like Skyhook, automatically. (Assuming you're able to connect to at least one of those WiFi routers to obtain an internet connection that the iPad can use to query the remote Skyhook data!)&lt;br /&gt;&lt;br /&gt;Based on my  testing yesterday, the GPS in my iPad (without any 3G plan enabled, mind you) was following me pretty damn precisely. I walked  the sidewalk around my office complex, with the map program open, and it was dead accurate and  very smooth updating, more so than my iPhone.&lt;br /&gt;&lt;br /&gt;Of course, if you haven't enabled the 3G plan, and if you have no  WiFi connection, you won't be able to use many GPS programs anyway, since they  typically are downloading maps and other stuff from the net.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3G Data Plans&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Most people know &lt;a href="http://www.att.com/shop/wireless/devices/ipad.jsp"&gt;AT&amp;amp;T is offering two plans, $15 for 250MB  and $30 for unlimited&lt;/a&gt;. If you get low on the 250MB plan, they provide warnings so you'll know.  You then have the option of paying another $15 for another 250MB, or  paying $30 for 30 days of unlimited, from that point in time. (No, you can't just pay an extra $15 to 'upgrade' to unlimited!) These  plans auto-renew, until you cancel, but there's no lock in or contract.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.wireless.att.com/learn/international/roaming/ipad-data-plans.jsp"&gt;AT&amp;amp;T also has international data roaming plans.&lt;/a&gt; These are priced  the same as adding data roaming on iPhone or any other device, with several tiers, and the  top end capping out at $200 for 200MB of data (in a 30-day window, just like the domestic plans). Unlike the iPhone plans, there are no overages or overage fees -- you simply run out of your allotment, and to continue, you must add another international roaming plan. (Keep in mind you'll need WiFi access to enable this plan, since your 3G coverage will have run out!)&lt;br /&gt;&lt;br /&gt;Contrast this with the iPhone roaming plans, where if you go over, you're not warned initially, and you're paying $5 per MB over!&lt;br /&gt;&lt;br /&gt;The international plans are a one-time fee, they do not auto-renew. You can also pick which day they start on, up to a year from your purchase date. So you can time it perfectly for your departure date.&lt;br /&gt;&lt;br /&gt;Note: You must have an existing 3G data plan on the iPad to add international  roaming.&lt;br /&gt;&lt;br /&gt;It is simple to add both the 3G data plan and the international data add-on directly from the iPad settings app, look for "Cellular Data."&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$200! $200! Anything Cheaper?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The only thing that would be cheaper is if you were to just get a pre-paid micro-sim card in the country you're traveling to. Instead of the high rates you're paying AT&amp;amp;T,  you'll be paying a fraction of that. The problem is the micro-sim format  is still really new (as of May 2010), and you may have trouble locating a provider in your travel destination that carries them. But the iPad is unlocked and it will work if you can find one. (Some people suggest cutting down a regular SIM card to fit the micro-sim slot, which may work.)&lt;br /&gt;&lt;br /&gt;Personally, I did not want to wander around on my vacation looking for a foreign cell provider with a micro-sim, so I bit the bullet and ordered an international plan from AT&amp;amp;T. I'll be traveling May 7 - 23 in Italy, and will post an update when I return if I have any trouble. (I'm traveling with an iPhone 3GS with 100MB data plan, the iPad with 200MB, and a blackberry with unlimited email data... yeah, work is fun!)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7639707040768375472-7115158105690130389?l=orb-of-knowledge.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/7EBSk8Shu1thP70hD-GR9eum64U/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7EBSk8Shu1thP70hD-GR9eum64U/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/7EBSk8Shu1thP70hD-GR9eum64U/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7EBSk8Shu1thP70hD-GR9eum64U/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OrbOfKnowledge/~4/MfbfMq2cdNY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orb-of-knowledge.blogspot.com/feeds/7115158105690130389/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7639707040768375472&amp;postID=7115158105690130389" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/7115158105690130389?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/7115158105690130389?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OrbOfKnowledge/~3/MfbfMq2cdNY/information-on-3g-ipad-gps-and.html" title="Information on 3G iPad GPS and International Roaming" /><author><name>Thomas</name><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>4</thr:total><feedburner:origLink>http://orb-of-knowledge.blogspot.com/2010/05/information-on-3g-ipad-gps-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8CRH87fyp7ImA9Wx5XFEw.&quot;"><id>tag:blogger.com,1999:blog-7639707040768375472.post-2649799635415907437</id><published>2010-03-02T17:35:00.000-08:00</published><updated>2010-09-13T14:54:25.107-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-13T14:54:25.107-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="cannot delete directory" /><category scheme="http://www.blogger.com/atom/ns#" term="msdeploy" /><category scheme="http://www.blogger.com/atom/ns#" term="microsoft web deploy" /><category scheme="http://www.blogger.com/atom/ns#" term="infinite loop" /><title>MSDeploy Bug: Archives Directories Referenced in HTTP Redirect Virtual Directories</title><content type="html">&lt;span style="font-size:180%;"&gt;&lt;br /&gt;Alternate title:  &lt;span style="font-weight: bold;"&gt;MSDeploy Recursively Copying Data Files During Sync (Infinite Loop)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We were testing &lt;a href="http://learn.iis.net/page.aspx/427/migrate-from-iis-60-to-iis-70/"&gt;msdeploy&lt;/a&gt; recently to migrate an IIS 6 web server to IIS 7, and discovered something that took a while to track down.&lt;br /&gt;&lt;br /&gt;When you run the -verb:sync option (aka -verb:migrate), and you are trying to archive one or more of your IIS 6 websites to an archive directory, you may discover that msdeploy goes into an infinite loop recursively copying directories into each other. In our case, it eventually bombed, but only after creating a directory structure so deep that Windows itself could not delete it. &lt;span style="color: rgb(153, 153, 153);"&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;(Sidebar: to fix that issue, we had to write a little script that would dig down dozens of directories at a time, then move the remaining directory tree to the root level, then continue digging another dozen directories deep, move the next tree to the root level, and so on until it finished. Then we were able to delete each of these dozen-directory-deep trees from the root level! &lt;/span&gt;&lt;a style="color: rgb(153, 153, 153);" href="http://support.microsoft.com/default.aspx/kb/320081"&gt;This idea was adapted from Microsoft's article.&lt;/a&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;)&lt;/span&gt;&lt;/blockquote&gt;Anyway, back to the problem at hand...&lt;br /&gt;&lt;br /&gt;It turns out, long-forgotten, were virtual directories in IIS that were created for the purpose of creating HTTP Redirects. IIS 6 forces you to first create a virtual directory, give it a real directory that it points to, and only THEN can you change its properties so that it acts like an HTTP Redirect to another resource entirely.&lt;br /&gt;&lt;br /&gt;You may not have realized, but IIS 6 is still storing your original directory location in the metainfo for that virtual directory. If you, like someone here (OK, me), just filled in "D:\" or some other root level directory temporarily, then msdeploy will try to archive that directory when it's doing its sync function. YES, I realized long ago that it wasn't wise to use a root level directory, for security reasons alone, but it only takes one of these slipping past you to cause this problem.....&lt;br /&gt;&lt;br /&gt;And if you, like us, decided to tell msdeploy to archive to the same drive that you referenced in that virtual directory, you will discover that msdeploy will happily attempt to recursively archive your folder, &lt;span style="color: rgb(51, 51, 51);"&gt;archive your folder,&lt;/span&gt; &lt;span style="color: rgb(102, 102, 102);"&gt;archive your folder,&lt;/span&gt; &lt;span style="color: rgb(153, 153, 153);"&gt;archive your folder,&lt;/span&gt; &lt;span style="color: rgb(192, 192, 192);"&gt;archive your folder,&lt;/span&gt; &lt;span style="color: rgb(204, 204, 204);"&gt;archive your folder..........&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;I feel this is a bug in msdeploy. Why does it need to archive these 'old' directory references in virtual directories that are being used as redirects?&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;The fix is to go back through all of your HTTP Redirect virtual directories, switch the radio button over to the primary directory setting, change the directory to something harmless (e.g. c:\temp\my-special-directory), and then change the setting back to your HTTP Redirect. I actually did this editing the MetaBase.xml file directly, but that's outside the scope of this article!&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;Good luck and back up your MetaBase and IIS sites before screwing with this...&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7639707040768375472-2649799635415907437?l=orb-of-knowledge.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/i-HaLFvt8pTQXWLEQUnTbWm6jq8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/i-HaLFvt8pTQXWLEQUnTbWm6jq8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/i-HaLFvt8pTQXWLEQUnTbWm6jq8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/i-HaLFvt8pTQXWLEQUnTbWm6jq8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OrbOfKnowledge/~4/oXgG4YItCMw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orb-of-knowledge.blogspot.com/feeds/2649799635415907437/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7639707040768375472&amp;postID=2649799635415907437" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/2649799635415907437?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/2649799635415907437?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OrbOfKnowledge/~3/oXgG4YItCMw/msdeploy-bug-archives-directories.html" title="MSDeploy Bug: Archives Directories Referenced in HTTP Redirect Virtual Directories" /><author><name>Thomas</name><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><feedburner:origLink>http://orb-of-knowledge.blogspot.com/2010/03/msdeploy-bug-archives-directories.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkACSXw5eCp7ImA9WxBUEUs.&quot;"><id>tag:blogger.com,1999:blog-7639707040768375472.post-7188491584276977627</id><published>2010-02-25T20:02:00.000-08:00</published><updated>2010-02-25T22:12:48.220-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-25T22:12:48.220-08:00</app:edited><title>iPhone ActiveSync on Gmail, with Custom From: Address</title><content type="html">I finally figured out how to get my iPhone to use ActiveSync for Gmail, while still allowing me to use a custom reply-to address. Your mileage may vary, but here you go.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;NOTE: This procedure worked for me, but may not work for you. Backup your iPhone  before trying it!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102); font-style: italic;"&gt;(Outside the scope of this document, you must already have 2 accounts setup on your iPhone: (1) An IMAP account that is downloading email from gmail.com, and (2) an ActiveSync account that you're using to sync up Contacts and Calendars. And you must have your vanity reply-to address already registered within your Gmail account. For the purpose of this article, I'll say my vanity address is me@mydomain.com.)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So, with the above as our starting point.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Go into iPhone Settings, then click "Mail/Contacts/Calendars."&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Click on the "Fetch New Data" option.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Scroll down and click on "Advanced."&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Set your IMAP account to "Manual."&lt;br /&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;Set your ActiveSync account to "Push."&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Back out 2 screens so that you're on the "Mail/Contacts/Calendars"  settings area.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Click on your ActiveSync account, and then turn Mail ON. (Calendar and Contacts are probably already ON.)&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Click the "Account Info" button at the top.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Change the "Email" field to be your vanity reply-to address, e.g. &lt;span style="font-style: italic;"&gt;me@mydomain.com&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;Back out 2 screens, to the "Mail/Contacts/Calendars" screen.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Click on your IMAP account.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Underneath "IMAP Account Information," there should be a field  named "Address." Edit that field to use that same vanity address, e.g. &lt;span style="font-style: italic;"&gt;me@mydomain.com&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;Below that are 3 fields for "Incoming Mail Server." Erase the text  in each of those 3 fields. (We do this so that your phone won't ever try downloading mail via IMAP.)&lt;br /&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;Now back out to the main screen (the home screen).&lt;br /&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;Start the Mail app, and once you're in the inbox, click the  back button, and then once more until you see your 2 accounts shown.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Click the ActiveSync account,  and then click "Inbox."&lt;/li&gt;&lt;/ol&gt; Now you should be in your ActiveSync inbox, and it will download your  email.&lt;br /&gt;&lt;br /&gt;If you start a new message, or reply to an existing message, it should  use your me@mydomain.com vanity address as the From: address. The gmail.com address is still exposed in the "hidden" headers, like Return-Path, but there's not much you can do about that.&lt;br /&gt;&lt;br /&gt;NOTE: This worked for me, but may not work for you. Backup your iPhone before trying!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7639707040768375472-7188491584276977627?l=orb-of-knowledge.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/c6njBBYm6kpl6nY9lb5NGnqDIjM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/c6njBBYm6kpl6nY9lb5NGnqDIjM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/c6njBBYm6kpl6nY9lb5NGnqDIjM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/c6njBBYm6kpl6nY9lb5NGnqDIjM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OrbOfKnowledge/~4/dUak87PA0Ys" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orb-of-knowledge.blogspot.com/feeds/7188491584276977627/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7639707040768375472&amp;postID=7188491584276977627" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/7188491584276977627?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/7188491584276977627?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OrbOfKnowledge/~3/dUak87PA0Ys/iphone-activesync-on-gmail-with-custom.html" title="iPhone ActiveSync on Gmail, with Custom From: Address" /><author><name>Thomas</name><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><feedburner:origLink>http://orb-of-knowledge.blogspot.com/2010/02/iphone-activesync-on-gmail-with-custom.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C08DR3Y6cSp7ImA9WxBWFE8.&quot;"><id>tag:blogger.com,1999:blog-7639707040768375472.post-22677163594416627</id><published>2010-02-05T17:42:00.001-08:00</published><updated>2010-02-05T18:04:36.819-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-05T18:04:36.819-08:00</app:edited><title>iPhone Video Orientation (Tallscreen/Vertical Video)</title><content type="html">We have been working with &lt;a href="http://encoding.com"&gt;Encoding.com&lt;/a&gt; recently to get "tallscreen" (vertically-oriented viewing mode) support working on incoming iPhone videos. Encoding.com now finally supports these videos, but you will need to recognize things correctly on your end, or you won't like the results.&lt;br /&gt;&lt;br /&gt;In short, you need to recognize that the video is vertically oriented, and if it is, you want to swap your output WIDTH and HEIGHT numbers in your encoding.com request. If you do that, encoding.com will do the rest.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;To understand why, here is what I've learned about how iPhone video works...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The iPhone records video to disk the same way each time: as if you've turned the phone 90 degrees to the left, and put it in landscape mode. This is considered "0 degrees," and the video is recorded in this landscape mode, at 640 x 480 (4:3), no matter which way you have the phone oriented.&lt;br /&gt;&lt;br /&gt;If you turn the phone to any of the other positions, it doesn't change the way it writes the bits on disk, it just records the "Rotation" flag according to the orientation the phone was in when the recording process started.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;0 degrees&lt;/span&gt;: landscape, turned on the phone's left side&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;90 degrees&lt;/span&gt;: vertical/normal, with home button on bottom&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;180 degrees&lt;/span&gt;: landscape, but turned on the phone's right side instead of left&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;270 degrees&lt;/span&gt;: vertical/upside-down, with home button on top&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;All of Apple's recent video players (i.e. Quicktime) are aware of this rotation flag, and so you might never realize your video is being recorded the way it is until you try to view it on a player that doesn't support it, or encode the video with an encoder that doesn't recognize it. In one of these players or encoders, the video would look to be turned on it's side or upside down.&lt;br /&gt;&lt;br /&gt;Encoding.com now supports this flag, and I have confirmed it recognizes it correctly in all 4 positions.&lt;br /&gt;&lt;br /&gt;So the only thing you need to do is to recognize that if the rotation is 90 or 270, you need to flip the Width and Height numbers, that's it. Encoding.com does the rest.&lt;br /&gt;&lt;br /&gt;So, for example, a user uploads a vertically-oriented video to you (either 90 or 270 degree rotation), recorded at the usual iPhone 640 x 480. You see that it's rotated, and your encoding.com request specifies that the output you want is now flipped, 480 x 640 (W x H). Encoding.com gets your source video, sees the rotation flag, and flips it properly while encoding -- and since you specified the proper output size, the video comes out as expected!&lt;br /&gt;&lt;br /&gt;(If the video rotation is 180 degrees, you don't need to do anything. The W x H does not change, since it's still in landscape, and encoding.com will correctly flip the video 180 degrees when encoding it.)&lt;br /&gt;&lt;br /&gt;Currently we are using the open source "&lt;a href="http://mediainfo.sourceforge.net/en"&gt;MediaInfo&lt;/a&gt;" program to easily obtain information about an incoming video, and to find whether or not the "Rotation" flag has been set, and to what.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7639707040768375472-22677163594416627?l=orb-of-knowledge.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/EvBQRpHjOVW0l610mCOJ3zfAg2A/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EvBQRpHjOVW0l610mCOJ3zfAg2A/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/EvBQRpHjOVW0l610mCOJ3zfAg2A/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EvBQRpHjOVW0l610mCOJ3zfAg2A/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OrbOfKnowledge/~4/t-_2bFogkS0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orb-of-knowledge.blogspot.com/feeds/22677163594416627/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7639707040768375472&amp;postID=22677163594416627" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/22677163594416627?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/22677163594416627?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OrbOfKnowledge/~3/t-_2bFogkS0/iphone-video-orientation.html" title="iPhone Video Orientation (Tallscreen/Vertical Video)" /><author><name>Thomas</name><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><feedburner:origLink>http://orb-of-knowledge.blogspot.com/2010/02/iphone-video-orientation.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkANSX4-cCp7ImA9WxJaGUg.&quot;"><id>tag:blogger.com,1999:blog-7639707040768375472.post-5925974412380643015</id><published>2009-08-10T18:03:00.001-07:00</published><updated>2009-08-10T18:39:58.058-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-10T18:39:58.058-07:00</app:edited><title>Microsoft Junk Mail Reporting Program (JMRP) Sucks!</title><content type="html">Anyone else frustrated with Microsoft's &lt;a href="http://postmaster.live.com/Services.aspx"&gt;Junk Mail Reporting Program&lt;/a&gt; (JMRP)?&lt;br /&gt;&lt;br /&gt;It's a feedback loop that lets legitimate email senders receive junk mail reports from hotmail.com/msn.com/live.com email users.&lt;br /&gt;&lt;br /&gt;Well, that's how it's &lt;span style="font-style: italic;"&gt;supposed&lt;/span&gt; to work.&lt;br /&gt;&lt;br /&gt;We have been on this feedback loop for years now, and our company sends only legitimate email that our subscribers specifically request. As any mail sender knows, you can't avoid a few people each day that hit the "Report Spam" button for your email rather than "Delete." (Usually it's an accident since they put the buttons so close together, and don't tell them what a negative impact the Report Spam button has in the first place.)&lt;br /&gt;&lt;br /&gt;So this JMRP program is supposed to solve this. You get on this program, and Microsoft will forward any spam reports to you for your email, and you can unsubscribe the user. Perfect!&lt;br /&gt;&lt;br /&gt;Unfortunately, Microsoft routinely fails to send all the reports to us. If someone is reporting us as spam, and we aren't alerted to this, how can we unsubscribe the user? Now we're being punished for the spam report that we seem to be ignoring, because we're not getting the report in the first place!&lt;br /&gt;&lt;br /&gt;We have confirmed this is happening by reviewing example reports Microsoft shows for us in their web interface (called SNDS -- "Smart" Network Data Services). We routinely see junk reports for emails that were never sent to us. We've even researched our mail server logs to make sure that no attempt from Microsoft was accidentally rejected or not processed. Nope. Everything is fine on our end.&lt;br /&gt;&lt;br /&gt;Within a few days, our 'level' on JMRP (in the "SNDS" interface) shows as yellow or even red, even though our email routines have not changed one iota. This must be due to these missing reports.&lt;br /&gt;&lt;br /&gt;It gets worse. When we've tried to explain what's happening, no one at JMRP gets it. Either they get confused and think we aren't on the feedback loop yet, and send us to the 30 part form that subscribes you to the program, or they simply do not get it, and I have to explain the problem again. And again. And again.&lt;br /&gt;&lt;br /&gt;This time I thought it was different -- we actually got someone to repeat back the problem to us as if they understood it (after only 5 or 6 emails back and forth). AWESOME right? Nope. The next email we received was someone saying now they understand the problem and are doing research to help us fix it. What questions do they ask us to fill out (again)? Oh, the same 30 part questionnaire you fill out when you join the JMRP program.... nothing at all that would help them actually figure out what is wrong on their end.&lt;br /&gt;&lt;br /&gt;I lost it at this point and berated the support drone for failing to grasp the problem. What do I get back? A response from a different drone saying, "I'm sorry you're [insert totally incorrect description of our problem here]." This is after there must be a paper trail a mile long of me repeatedly explaining the problem in very simple terms:&lt;br /&gt;&lt;br /&gt;WE ARE ON JMRP ALREADY.&lt;br /&gt;YOU ARE NOT SENDING US ALL THE JUNK REPORTS.&lt;br /&gt;&lt;br /&gt;It never reaches anyone with a clue. And if it does, that person is never to be heard from again.&lt;br /&gt;&lt;br /&gt;So we are stuck with thousands of our subscribers not receiving email from us that they want.&lt;br /&gt;&lt;br /&gt;I understand fighting spam is a top priority for Microsoft, but the system they've devised is routinely blocking non-spam email from a company like ours, that has been sending only legitimate email for 15 years now, a company that is jumping through every single hoop they hold in front of us. What good is this system?&lt;br /&gt;&lt;br /&gt;If you have any complaints about JMRP or the SNDS system, please post them as comments here. If Microsoft wants to contact me, please leave a comment and I will contact you in whatever way you wish.&lt;br /&gt;&lt;br /&gt;Right now, JMRP is a big fat failure. It's worse than a failure, people actually think it's working, and it's seriously damaging the ability for legitimate senders to get through.&lt;br /&gt;&lt;br /&gt;P.S. My favorite part of JMRP is the SNDS web interface. Check out the unreadable header, complete with nearly invisible white navigation links laid over a light blue background. You can just about make out "View Data," but I defy you to read the rest of the links:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://4.bp.blogspot.com/_lq9ilTKybgE/SoDLpbrsFbI/AAAAAAAAbPs/6OMpbz4UdgQ/s800/Picture+15.png" alt="" id="BLOGGER_PHOTO_ID_5368514668491707826" border="0" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7639707040768375472-5925974412380643015?l=orb-of-knowledge.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/YPpzLEO3CYgYGCbJAqYv-c5g9rY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YPpzLEO3CYgYGCbJAqYv-c5g9rY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/YPpzLEO3CYgYGCbJAqYv-c5g9rY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YPpzLEO3CYgYGCbJAqYv-c5g9rY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OrbOfKnowledge/~4/9KUNOcHvqyo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orb-of-knowledge.blogspot.com/feeds/5925974412380643015/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7639707040768375472&amp;postID=5925974412380643015" title="7 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/5925974412380643015?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/5925974412380643015?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OrbOfKnowledge/~3/9KUNOcHvqyo/microsoft-junk-mail-reporting-program.html" title="Microsoft Junk Mail Reporting Program (JMRP) Sucks!" /><author><name>Thomas</name><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><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_lq9ilTKybgE/SoDLpbrsFbI/AAAAAAAAbPs/6OMpbz4UdgQ/s72-c/Picture+15.png" height="72" width="72" /><thr:total>7</thr:total><feedburner:origLink>http://orb-of-knowledge.blogspot.com/2009/08/microsoft-junk-mail-reporting-program.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEYERXg7fSp7ImA9WxJaFEg.&quot;"><id>tag:blogger.com,1999:blog-7639707040768375472.post-5810184376852411692</id><published>2009-08-04T21:48:00.000-07:00</published><updated>2009-08-04T23:01:44.605-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-04T23:01:44.605-07:00</app:edited><title>Configuring a Wireless Bridge Using Two Apple Airport Expresses</title><content type="html">Here's the scenario: You want to setup a wireless network, and you also need to connect a non-WiFi network device to your new wireless network. E.g. you're setting up a wireless network at work, and you've got a network printer that only has ethernet, no WiFi, that you want to connect to your network. For the purpose of this exercise, we'll use this scenario to explain the setup.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step 1. &lt;/span&gt;&lt;a style="font-weight: bold;" href="https://www.amazon.com/dp/B0015YJOK2?tag=readinisfundemen&amp;amp;camp=213381&amp;amp;creative=390973&amp;amp;linkCode=as4&amp;amp;creativeASIN=B0015YJOK2&amp;amp;adid=1M6WW92XQTKEYWGYW0PF&amp;amp;"&gt;Buy Two Airport Expresses&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;.&lt;/span&gt;  I recommend these because they are easy to setup, they work great, and the design is ingenious (it's about the size of your standard wall plug). If you don't have any ethernet cable, you'll need to buy at least one, maybe two &lt;a href="https://www.amazon.com/dp/B0000AJ3MT?tag=readinisfundemen&amp;amp;camp=213381&amp;amp;creative=390973&amp;amp;linkCode=as4&amp;amp;creativeASIN=B0000AJ3MT&amp;amp;adid=04M4H0ZZZGJ0HE1WXHYE&amp;amp;"&gt;ethernet cables&lt;/a&gt;. One will go from the cable/dsl modem to an airport express, the other will connect your printer to the second airport.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Optionally: You may want to buy the more expensive &lt;/span&gt;&lt;a style="font-style: italic;" href="https://www.amazon.com/dp/B001UE8LRY?tag=readinisfundemen&amp;amp;camp=213381&amp;amp;creative=390973&amp;amp;linkCode=as4&amp;amp;creativeASIN=B001UE8LRY&amp;amp;adid=0RTRY6ADS6Y1YCCMN4WX&amp;amp;"&gt;Airport Extremes&lt;/a&gt;&lt;span style="font-style: italic;"&gt; instead of the Expresses, in the event that you want more ethernet ports available. But you can always add on a &lt;/span&gt;&lt;a style="font-style: italic;" href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;amp;location=http%3A%2F%2Fwww.amazon.com%2Fs%3Fie%3DUTF8%26x%3D0%26ref%255F%3Dnb%255Fss%255Fgw%26y%3D0%26field-keywords%3Dlinksys%2520switch%26url%3Dsearch-alias%253Daps&amp;amp;tag=readinisfundemen&amp;amp;linkCode=ur2&amp;amp;camp=1789&amp;amp;creative=390957"&gt;cheap switch&lt;/a&gt;&lt;span style="font-style: italic;"&gt; later if you need more ports on an Airport Express.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step 2. Unwrap both devices, and mark them to keep them straight.&lt;/span&gt; Put a sticker or mark one with a Sharpie so you can tell them apart. One of these will be the heart of your wifi network, the one every device connects to -- we'll call this &lt;span style="font-style: italic;"&gt;Airport A&lt;/span&gt;. It will be connected to your cable/dsl modem.&lt;br /&gt;&lt;br /&gt;The other will be connected to your non-Wifi device (e.g. your printer), allowing it to connect to &lt;span style="font-style: italic;"&gt;Airport A&lt;/span&gt; and the Internet... we'll call this one &lt;span style="font-style: italic;"&gt;Airport B&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step 3. Plug Airport A into power.&lt;/span&gt; Plug&lt;span style="font-style: italic;"&gt; &lt;/span&gt;it into the wall near your cable/dsl modem. You'll see an amber light blinking on the Airport, this is normal.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step 4. Insert the Airport Express setup CD into your computer, and run the software.&lt;/span&gt; After a minute you should see an Airport available named "Base Station xxxxxx," where xxxxxx will be a series of letters and numbers. Select this, and press the Continue button to configure it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step 5. Configure Airport A.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You'll have a few options to fill in now:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;AirPort Express Name:&lt;/span&gt; You can name it anything you want, such as Airport A.&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;AirPort Express Password:&lt;/span&gt; This is a password on the device you'll need whenever you want to re-configure the Airport Express. You will not be sharing this with others.&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Select what you want to do with Airport Express:&lt;/span&gt; Choose &lt;span style="font-weight: bold;"&gt;"I want to create a new wireless network."&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;Continue to the next screen:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Wireless Network Name:&lt;/span&gt; This is different from above. Other people will use this to identify your WiFi network if you want them to connect to it. (And, hey, maybe even when you don't want them to connect to it?!)&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;WPA/WPA2 Personal:&lt;/span&gt; Choose this option and enter a password you will be comfortable giving to your guests to use your WiFi network. For strong security, this should be different from the password you chose on the previous screen. You wouldn't want your guests to be able to re-configure your Airport Express.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Continue to the next screen:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Select how you connect to the Internet.&lt;/span&gt; For this example, you'll choose the first option, "I use a DSL or cable modem with a static IP address or DHCP."&lt;/li&gt;&lt;/ul&gt;Continue past the next screen, "Using DHCP," is the normal option for most people. Your ISP will send information to the Airport Express to connect it to the internet using this setting.&lt;br /&gt;&lt;br /&gt;Continue to the next screen and after reviewing your choices, press "Update."&lt;br /&gt;&lt;br /&gt;The on-screen options should prompt you to finish and allow Airport A to restart if necessary. You should also restart your cable/dsl modem at this time.&lt;br /&gt;&lt;br /&gt;You can now connect to the internet by connecting your computers to Airport A.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step 6. Plug Airport B into power.&lt;/span&gt; Plug&lt;span style="font-style: italic;"&gt; &lt;/span&gt;it into the wall near your printer. You'll see an amber light blinking the Airport, this is normal.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step 7. Restart the Airport Utility software.&lt;/span&gt; If you don't see the new "Base Station xxxxxx" appear, go ahead and restart the Airport Utility software. Within a minute you should see it appear on the left side. Select it and continue on to configure it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step 8. Configure Airport B.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You'll have a few options to fill in now:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;AirPort Express Name:&lt;/span&gt; You can name it anything you want, such as Airport B.&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;AirPort Express Password:&lt;/span&gt; This is a password on the device you'll need whenever you want to re-configure the Airport Express. You will not be sharing this with others. You should choose the same password as you chose above (not your WiFi password, but the first password you chose for the device configuration), just to keep them straight.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Select what you want to do with Airport Express:&lt;/span&gt; Choose &lt;span style="font-weight: bold;"&gt;"I want AirPort Express to join my current network."&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt; Continue to the next screen:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Select what you want to do with AirPort Express:&lt;/span&gt; Choose &lt;span style="font-weight: bold;"&gt;"I want Airport Express to wirelessly join my current network."&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt; Continue to the next screen:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Wireless Network Name:&lt;/span&gt; Enter the Wireless Network name you chose for Airport A here. This is the WiFi network that Airport B will connect to, wirelessly.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Wireless Security:&lt;/span&gt; Choose "WPA/WPA2 Personal."&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Wireless Password:&lt;/span&gt; Enter the same Wireless Network password you chose above for Airport A's WiFi network. (The password you established to give out to your guests.)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt; Continue to the next screen and after reviewing your choices, press "Update."&lt;br /&gt;&lt;br /&gt;The on-screen options should prompt you to finish and allow Airport A to restart if necessary.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step 9. Connect Airport B to your printer with an ethernet cable.&lt;/span&gt; Follow your printer's instructions for setting up your network connectivity on the printer. When prompted, select "DHCP" and not static IP address.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step 10. You're done.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7639707040768375472-5810184376852411692?l=orb-of-knowledge.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ciio1wzQtFEXNr5TLRWnyJGup2w/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ciio1wzQtFEXNr5TLRWnyJGup2w/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ciio1wzQtFEXNr5TLRWnyJGup2w/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ciio1wzQtFEXNr5TLRWnyJGup2w/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OrbOfKnowledge/~4/u9RVXTPxnCo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orb-of-knowledge.blogspot.com/feeds/5810184376852411692/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7639707040768375472&amp;postID=5810184376852411692" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/5810184376852411692?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/5810184376852411692?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OrbOfKnowledge/~3/u9RVXTPxnCo/configuring-wireless-bridge-using-two.html" title="Configuring a Wireless Bridge Using Two Apple Airport Expresses" /><author><name>Thomas</name><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><feedburner:origLink>http://orb-of-knowledge.blogspot.com/2009/08/configuring-wireless-bridge-using-two.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkYHQ38yfyp7ImA9WxNbEU4.&quot;"><id>tag:blogger.com,1999:blog-7639707040768375472.post-1228593898111130871</id><published>2009-08-04T18:27:00.001-07:00</published><updated>2009-11-13T09:42:12.197-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-13T09:42:12.197-08:00</app:edited><title>Extremely Fast Luhn Function for C# (Credit Card Validation)</title><content type="html">If you want to validate that a credit card number is valid, you need to use the Luhn algorithm. It uses the last digit in the card number and calculates a checksum to ensure the number is valid. (Obviously this doesn't ensure that the card &lt;span style="font-style: italic;"&gt;actually works&lt;/span&gt;, only that the number seems real.)&lt;br /&gt;&lt;br /&gt;Everyone and their mother has posted a .NET/C# version of Luhn, but they were all really drawn out and slow. I initially settled on &lt;a href="http://www.codeproject.com/KB/validation/creditcardvalidator.aspx?msg=1101845"&gt;this one by Paul Ingles hosted on CodeProject&lt;/a&gt;., since at least his code was commented and readable. I shortened it up and eliminated some blocks of code and variables, making it easier for me to follow, but without any change in performance. Then I swapped in some tricks to speed it up about 4x (cast char to int and subtract 48 to get the integer version of a number that starts as a char string).&lt;br /&gt;&lt;br /&gt;I felt this was good enough, but then I stumbled upon &lt;a href="http://microcoder.livejournal.com/17175.html"&gt;this pseudo code for Luhn algorithm by Cliff L. Biffle&lt;/a&gt;. Not only is it much, much shorter, but it was about another 8x faster than my code! I went from validating 100,000 numbers in &lt;span style="font-weight: bold;"&gt;550ms&lt;/span&gt; to 100,000 in &lt;span style="font-weight: bold;"&gt;15ms&lt;/span&gt;, a 37x speed increase!&lt;br /&gt;&lt;br /&gt;I wrote a C# function implementing the pseudocode, and here it is below.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(64, 128, 128); font-style: italic;"&gt;/// Extremely fast Luhn algorithm implementation, based on &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(64, 128, 128); font-style: italic;"&gt;/// pseudo code from Cliff L. Biffle (http://microcoder.livejournal.com/17175.html)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(64, 128, 128); font-style: italic;"&gt;/// &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(64, 128, 128); font-style: italic;"&gt;/// Copyleft Thomas @ Orb of Knowledge:&lt;br /&gt;/// http://orb-of-knowledge.blogspot.com/2009/08/extremely-fast-luhn-function-for-c.html &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(64, 128, 128); font-style: italic;"&gt;/// &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 0); font-weight: bold;"&gt;private&lt;/span&gt; &lt;span style="color: rgb(0, 128, 0); font-weight: bold;"&gt;static&lt;/span&gt; &lt;span style="color: rgb(176, 0, 64);"&gt;bool&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;IsValidNumber&lt;/span&gt;(&lt;span style="color: rgb(176, 0, 64);"&gt;string&lt;/span&gt; number)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 0); font-weight: bold;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(176, 0, 64);"&gt;    int&lt;/span&gt;[] DELTAS = &lt;span style="color: rgb(0, 128, 0); font-weight: bold;"&gt;new&lt;/span&gt; &lt;span style="color: rgb(176, 0, 64);"&gt;int&lt;/span&gt;[] &lt;span style="color: rgb(0, 128, 0); font-weight: bold;"&gt;{&lt;/span&gt; &lt;span style="color: rgb(102, 102, 102);"&gt;0&lt;/span&gt;, &lt;span style="color: rgb(102, 102, 102);"&gt;1&lt;/span&gt;, &lt;span style="color: rgb(102, 102, 102);"&gt;2&lt;/span&gt;, &lt;span style="color: rgb(102, 102, 102);"&gt;3&lt;/span&gt;, &lt;span style="color: rgb(102, 102, 102);"&gt;4&lt;/span&gt;, -&lt;span style="color: rgb(102, 102, 102);"&gt;4&lt;/span&gt;, -&lt;span style="color: rgb(102, 102, 102);"&gt;3&lt;/span&gt;, -&lt;span style="color: rgb(102, 102, 102);"&gt;2&lt;/span&gt;, -&lt;span style="color: rgb(102, 102, 102);"&gt;1&lt;/span&gt;, &lt;span style="color: rgb(102, 102, 102);"&gt;0&lt;/span&gt; &lt;span style="color: rgb(0, 128, 0); font-weight: bold;"&gt;}&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(176, 0, 64);"&gt;    int&lt;/span&gt; checksum = &lt;span style="color: rgb(102, 102, 102);"&gt;0&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(176, 0, 64);"&gt;    char&lt;/span&gt;[] chars = number.ToCharArray();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 0); font-weight: bold;"&gt;    for&lt;/span&gt; (&lt;span style="color: rgb(176, 0, 64);"&gt;int&lt;/span&gt; i = chars.Length - 1; i &gt; -1; i--)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 0); font-weight: bold;"&gt;    {&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(176, 0, 64);"&gt;     int&lt;/span&gt; j = ((&lt;span style="color: rgb(176, 0, 64);"&gt;int&lt;/span&gt;)chars[i]) - &lt;span style="color: rgb(102, 102, 102);"&gt;48&lt;/span&gt;;&lt;br /&gt;       checksum += j;&lt;br /&gt;  &lt;span style="color: rgb(0, 128, 0); font-weight: bold;"&gt;     if&lt;/span&gt; (((i - chars.Length) % 2) == &lt;span style="color: rgb(102, 102, 102);"&gt;0&lt;/span&gt;)&lt;br /&gt;           checksum += DELTAS[j];&lt;br /&gt;&lt;span style="color: rgb(0, 128, 0); font-weight: bold;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 0); font-weight: bold;"&gt;    return&lt;/span&gt; ((checksum % &lt;span style="color: rgb(102, 102, 102);"&gt;10&lt;/span&gt;) == &lt;span style="color: rgb(102, 102, 102);"&gt;0&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 0); font-weight: bold;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;That's it!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7639707040768375472-1228593898111130871?l=orb-of-knowledge.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/iV89yRUdkTCo7PwDgWonka43Kjk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/iV89yRUdkTCo7PwDgWonka43Kjk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/iV89yRUdkTCo7PwDgWonka43Kjk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/iV89yRUdkTCo7PwDgWonka43Kjk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OrbOfKnowledge/~4/CT_OQ6d71B0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orb-of-knowledge.blogspot.com/feeds/1228593898111130871/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7639707040768375472&amp;postID=1228593898111130871" title="11 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/1228593898111130871?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/1228593898111130871?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OrbOfKnowledge/~3/CT_OQ6d71B0/extremely-fast-luhn-function-for-c.html" title="Extremely Fast Luhn Function for C# (Credit Card Validation)" /><author><name>Thomas</name><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>11</thr:total><feedburner:origLink>http://orb-of-knowledge.blogspot.com/2009/08/extremely-fast-luhn-function-for-c.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0ADSXY-fyp7ImA9WxRXFUg.&quot;"><id>tag:blogger.com,1999:blog-7639707040768375472.post-752866996358244669</id><published>2008-10-20T18:01:00.000-07:00</published><updated>2008-10-20T18:16:18.857-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-20T18:16:18.857-07:00</app:edited><title>Strange Behavior When Your .NET Application Uses ActiveX/COM and Data Execution Prevention (DEP) is Enabled?</title><content type="html">This issue was extremely obscure, but I wanted to document it anyway. &lt;span style="font-weight: bold;"&gt;The moral of the story is, if your .NET application is using an ActiveX/COM object, and is behaving strangely on Vista with DEP enabled, try to get DEP turned off and see if anything changes.&lt;/span&gt; In our case, a third party ActiveX/COM object was trying to pop up a window, and DEP was killing it, causing strange behavior in the application we were debugging.&lt;br /&gt;&lt;br /&gt;Details...&lt;br /&gt;&lt;br /&gt;We've got a MagTek MICRImage check reader, and we've written a program in .NET that communicates with it, and everything works fine. We are using SaxComm8.ocx to communicate with the reader (an ActiveX object that is using AxInterop for .NET use).&lt;br /&gt;&lt;br /&gt;Next thing you know, we are trying to debug the application, and the checkreader no longer triggers any "check read" events when you scan a check. Communication otherwise works fine with the reader. We'd checked everything to do with your serial ports.&lt;br /&gt;&lt;br /&gt;In our case, it turns out it was a combination of the SaxComm8.ocx code being overwritten by a previous version we had that was a trial only. Typically this trial version pops up a warning box about the trial period. But in Vista with DEP running, this dialog was never appearing. Most likely this was then causing the SaxComm8 object to go into a weird state, no longer communicating with the reader.&lt;br /&gt;&lt;br /&gt;Finally found that DEP was causing the problem. Then I discovered Vista would not allow me to disable DEP for this app (WHY?!). Used the command &lt;span style="font-weight: bold;"&gt;bcdedit /set nx AlwaysOff&lt;/span&gt;, and restarted. Of course, now DEP is totally disabled, but finally I was able to see the trial notice popup and realize what was happening.&lt;br /&gt;&lt;br /&gt;Once I overwrote all trial copies of the .ocx file, I did a  &lt;span style="font-weight: bold;font-size:100%;" &gt;regsvr32 /u saxcomm8.ocx&lt;/span&gt; to unregister it, and a &lt;span style="font-weight: bold;"&gt;regsvr32 saxcomm8.ocx&lt;/span&gt;, to register it, and now everything works!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7639707040768375472-752866996358244669?l=orb-of-knowledge.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/D35FqAwPv05PHfez2FQ6gs2ithM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/D35FqAwPv05PHfez2FQ6gs2ithM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/D35FqAwPv05PHfez2FQ6gs2ithM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/D35FqAwPv05PHfez2FQ6gs2ithM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OrbOfKnowledge/~4/c7tpnG_OJVw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orb-of-knowledge.blogspot.com/feeds/752866996358244669/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7639707040768375472&amp;postID=752866996358244669" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/752866996358244669?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/752866996358244669?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OrbOfKnowledge/~3/c7tpnG_OJVw/strange-behavior-when-your-net.html" title="Strange Behavior When Your .NET Application Uses ActiveX/COM and Data Execution Prevention (DEP) is Enabled?" /><author><name>Thomas</name><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><feedburner:origLink>http://orb-of-knowledge.blogspot.com/2008/10/strange-behavior-when-your-net.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMHQno_fCp7ImA9WxRTFEQ.&quot;"><id>tag:blogger.com,1999:blog-7639707040768375472.post-2556357834692684352</id><published>2008-09-03T18:46:00.001-07:00</published><updated>2008-09-03T18:57:13.444-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-03T18:57:13.444-07:00</app:edited><title>Unable to Install Update for Office 2008 for Mac</title><content type="html">If you are trying to install an update for Office 2008 for Mac, and you're getting an error that says, "A version of the software required to install this update was not found on this volume," keep reading for a possible solution that worked for us....&lt;br /&gt;&lt;br /&gt;We had installed Office 2008 for Mac fresh on an iMac with Mac OS X 10.5.4. We then ran auto update, and 12.1.1 updater ran successfully and patched Office. We then ran auto updater again, and it wanted to patch to 12.1.2. This FAILED indicating no volume could be found running the appropriate version, similar to this:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.entourage.mvps.org/Images/error/version_not_found_error.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; cursor: pointer; width: 393px;" src="http://www.entourage.mvps.org/Images/error/version_not_found_error.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;We did the steps below and it worked:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Download the update from &lt;a href="http://www.microsoft.com/mac/downloads.mspx"&gt;MacTopia&lt;/a&gt;, instead of letting the Microsoft AutoUpdater download it.&lt;/li&gt;&lt;li&gt;Once the .dmg file is downloaded and mounts as a virtual disk, copy the updater software from the virtual disk over to your desktop, and unmount the virtual disk.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;OPTIONALLY&lt;/span&gt;: &lt;span style="font-style: italic;"&gt;Temporarily&lt;/span&gt; run as an Administrator account, if possible... (this worked for me)&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;OPTIONALLY&lt;/span&gt;: Run Disk Utility and fix permissions on your disk.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;OPTIONALLY&lt;/span&gt;: Reboot.&lt;/li&gt;&lt;li&gt;Run the updater software directly from your desktop. It should work.&lt;/li&gt;&lt;/ol&gt;You can skip over the steps 3, 4, and 5 if you want to try your luck, but if it doesn't work, try it again doing those optional steps.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7639707040768375472-2556357834692684352?l=orb-of-knowledge.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Rb6BkP5gFYntSwnHDt_BjLuvb78/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Rb6BkP5gFYntSwnHDt_BjLuvb78/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Rb6BkP5gFYntSwnHDt_BjLuvb78/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Rb6BkP5gFYntSwnHDt_BjLuvb78/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OrbOfKnowledge/~4/YdHdfK37heA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orb-of-knowledge.blogspot.com/feeds/2556357834692684352/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7639707040768375472&amp;postID=2556357834692684352" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/2556357834692684352?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/2556357834692684352?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OrbOfKnowledge/~3/YdHdfK37heA/unable-to-install-update-for-office.html" title="Unable to Install Update for Office 2008 for Mac" /><author><name>Thomas</name><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><feedburner:origLink>http://orb-of-knowledge.blogspot.com/2008/09/unable-to-install-update-for-office.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUQDRH85cCp7ImA9WxZVFUs.&quot;"><id>tag:blogger.com,1999:blog-7639707040768375472.post-8289721739281572518</id><published>2008-03-26T13:10:00.000-07:00</published><updated>2008-03-26T13:29:35.128-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-03-26T13:29:35.128-07:00</app:edited><title>Triggering Events on page load (and right before)</title><content type="html">&lt;ol&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Use &lt;a href="http://www.prototypejs.org/"&gt;prototype.js&lt;/a&gt; in your page.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Call the Prototype function &lt;span style="color: rgb(102, 102, 102);font-family:courier new;" &gt;Event.observe()&lt;/span&gt; for the 'load' event.&lt;/span&gt; You can call the &lt;span style="color: rgb(102, 102, 102);font-family:courier new;" &gt;Event.observe()&lt;/span&gt; function as many times as you want, it will simply append your code each time, so as not to clobber each other when the event is fired. There are two ways you might perform this call. If you have a function you want to run, simply call:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:courier new;" &gt;Event.observe(window, 'load', yourFunctionName);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you have a bit of code you want to run, call this instead:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:courier new;" &gt;Event.observe(window, 'load', function() {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:courier new;" &gt;    // your bit of code here&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:courier new;" &gt;});&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;"&gt;Do you want it to run onLoad... or onDOMLoad?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;One important thing to realize is that the 'load' event for a page only fires AFTER all images on the page have been loaded. This may take a while, depending on your page design. You may be thinking that you will just run your bit of code when the page first starts loading. The problem with that is the DOM is not completely available yet, so your code will usually fail.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://tanny.ica.com/ICA/TKO/tkoblog.nsf/dx/domcontentloaded-for-browsers-part-iv"&gt;This guy has some javascript code&lt;/a&gt; that allows you to basically "observe" the onDOMLoad event, even in browsers that don't really export such an event. If you use his code to attach code to this event, it will run after the DOM is available, but before the "onload" event is fired for the page body.&lt;br /&gt;&lt;br /&gt;The downside is it doesn't use prototype.js, so it may actually overlap a bit of that functionality. However, as of Prototype.js 1.6, their site was actually pointing to people to this guy's examples, so presumably that means there is no current expectation that Prototype does or will offer similar functionality.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7639707040768375472-8289721739281572518?l=orb-of-knowledge.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/WLrfTyqogegQ639qry4_ECsn3TE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WLrfTyqogegQ639qry4_ECsn3TE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/WLrfTyqogegQ639qry4_ECsn3TE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WLrfTyqogegQ639qry4_ECsn3TE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OrbOfKnowledge/~4/bTAn0NyQ0sw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orb-of-knowledge.blogspot.com/feeds/8289721739281572518/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7639707040768375472&amp;postID=8289721739281572518" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/8289721739281572518?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/8289721739281572518?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OrbOfKnowledge/~3/bTAn0NyQ0sw/triggering-events-on-page-load-and.html" title="Triggering Events on page load (and right before)" /><author><name>Thomas</name><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><feedburner:origLink>http://orb-of-knowledge.blogspot.com/2008/03/triggering-events-on-page-load-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkEDRnkzfCp7ImA9WB9WEEg.&quot;"><id>tag:blogger.com,1999:blog-7639707040768375472.post-6100962694758568885</id><published>2007-11-14T08:37:00.000-08:00</published><updated>2007-11-14T08:44:37.784-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-11-14T08:44:37.784-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="System.Drawing" /><category scheme="http://www.blogger.com/atom/ns#" term="Image.Save()" /><category scheme="http://www.blogger.com/atom/ns#" term="dotnet" /><title>System.Drawing.Image.Save() results in ArgumentException: "Parameter is not valid"</title><content type="html">If you are using the .NET &lt;span style="font-family: courier new;"&gt;Image.Save()&lt;/span&gt; method to save an image, and you receive an &lt;span style="font-family: courier new;"&gt;ArgumentException&lt;/span&gt; with the message "Parameter is not valid," you probably spent a while examining the parameters you were passing into the &lt;span style="font-family: courier new;"&gt;Save()&lt;/span&gt; call, right? You probably banged your head against the wall and said, "Dear GOD, please tell me WHICH PARAMETER is not valid!"&lt;br /&gt;&lt;br /&gt;Unfortunately, the error message is completely unhelpful, and you are seeing it because you had a brain fart. You have called &lt;span style="font-family:courier new;"&gt;Dispose()&lt;/span&gt; on the image object before you tried to &lt;span style="font-family:courier new;"&gt;Save()&lt;/span&gt; it.&lt;br /&gt;&lt;br /&gt;If this helps you, please comment on this post, thanks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7639707040768375472-6100962694758568885?l=orb-of-knowledge.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/CBnVFFWqSoGkuwnVKou1g4IFPb0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CBnVFFWqSoGkuwnVKou1g4IFPb0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/CBnVFFWqSoGkuwnVKou1g4IFPb0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CBnVFFWqSoGkuwnVKou1g4IFPb0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OrbOfKnowledge/~4/CMXcH4LQbAw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orb-of-knowledge.blogspot.com/feeds/6100962694758568885/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7639707040768375472&amp;postID=6100962694758568885" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/6100962694758568885?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/6100962694758568885?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OrbOfKnowledge/~3/CMXcH4LQbAw/systemdrawingimagesave-parameter-is-not.html" title="System.Drawing.Image.Save() results in ArgumentException: &quot;Parameter is not valid&quot;" /><author><name>Thomas</name><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>4</thr:total><feedburner:origLink>http://orb-of-knowledge.blogspot.com/2007/11/systemdrawingimagesave-parameter-is-not.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0ICQ3s-eip7ImA9WB9XEE8.&quot;"><id>tag:blogger.com,1999:blog-7639707040768375472.post-7765791056097464491</id><published>2007-11-02T10:23:00.000-07:00</published><updated>2007-11-02T11:52:42.552-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-11-02T11:52:42.552-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="GIcon" /><category scheme="http://www.blogger.com/atom/ns#" term="imagemap" /><category scheme="http://www.blogger.com/atom/ns#" term="google maps" /><title>Google Maps GIcon imageMap Property</title><content type="html">Been fooling around with Google Maps API lately. When using custom markers on the maps, you should specify the imageMap property, so that the markers are still clickable even when beneath a "shadow," in Firefox. Yet the Google Maps API never describes the format in detail, simply stating it is "an array of integers representing the x/y coordinates of the       image map we should use to specify the clickable part of the       icon image in browsers other than Internet Explorer."&lt;br /&gt;&lt;br /&gt;I searched high and low and could not find anyone that explained the format in more detail, but after studying the HTML image map formats, it became clearer that Google wants you to use the same format for this imagemap array as the "polygon" type of imagemap that HTML uses.&lt;br /&gt;&lt;br /&gt;Specifically, your &lt;span style="font-weight: bold;"&gt;x,y&lt;/span&gt; pairs should denote points OUTLINING the area you want to be clickable. In very simple terms, if you have a square icon that is 8x8, and you wanted the entire square to be clickable, you would use an array of: [0,0, 7,0, 7,7, 0,7]. The first pair is the top/left corner, the second pair is top/right, the third is bottom/right, and the fourth is bottom/left.&lt;br /&gt;&lt;br /&gt;They key is to think of your starting point, and traveling from point to point in order, encircling the area to make clickable for your GIcon (aka google.maps.Icon).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7639707040768375472-7765791056097464491?l=orb-of-knowledge.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/33yDinQa6s3pCxnZa0-X5hYjD3M/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/33yDinQa6s3pCxnZa0-X5hYjD3M/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/33yDinQa6s3pCxnZa0-X5hYjD3M/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/33yDinQa6s3pCxnZa0-X5hYjD3M/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OrbOfKnowledge/~4/xd0X9-_67lQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orb-of-knowledge.blogspot.com/feeds/7765791056097464491/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7639707040768375472&amp;postID=7765791056097464491" title="25 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/7765791056097464491?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/7765791056097464491?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OrbOfKnowledge/~3/xd0X9-_67lQ/google-maps-gicon-imagemap-property.html" title="Google Maps GIcon imageMap Property" /><author><name>Thomas</name><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>25</thr:total><feedburner:origLink>http://orb-of-knowledge.blogspot.com/2007/11/google-maps-gicon-imagemap-property.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4CSHk_fCp7ImA9WB9SE0s.&quot;"><id>tag:blogger.com,1999:blog-7639707040768375472.post-8915983387462876907</id><published>2007-10-02T15:36:00.000-07:00</published><updated>2007-10-02T15:42:49.744-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-10-02T15:42:49.744-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="filters" /><category scheme="http://www.blogger.com/atom/ns#" term="russian spam" /><category scheme="http://www.blogger.com/atom/ns#" term="spam" /><category scheme="http://www.blogger.com/atom/ns#" term="gmail" /><title>Filter for Spam on GMail</title><content type="html">I've been getting a ton of spam on GMail lately that falls into two categories: Russian-language spam, and another spam with several variations, of the form:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span id="st" name="st" class="st"&gt;Hello&lt;/span&gt;! &lt;span id="st" name="st" class="st"&gt;I&lt;/span&gt; &lt;span id="st" name="st" class="st"&gt;am&lt;/span&gt; &lt;span id="st" name="st" class="st"&gt;bored&lt;/span&gt; &lt;span id="st" name="st" class="st"&gt;this&lt;/span&gt; evening. &lt;span id="st" name="st" class="st"&gt;I&lt;/span&gt; &lt;span id="st" name="st" class="st"&gt;am&lt;/span&gt; nice girl that would like to chat with you&lt;/li&gt;&lt;li&gt;Hello! I am bored this morning. (etc)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span id="st" name="st" class="st"&gt;Hello&lt;/span&gt;! &lt;span id="st" name="st" class="st"&gt;I&lt;/span&gt; &lt;span id="st" name="st" class="st"&gt;am&lt;/span&gt; tired &lt;span id="st" name="st" class="st"&gt;this&lt;/span&gt; evening. &lt;span id="st" name="st" class="st"&gt;(etc)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Hello! I am tired this morning. (etc)&lt;/li&gt;&lt;li&gt;And so forth...&lt;/li&gt;&lt;/ul&gt;So I've been honing a Gmail filter that knocks both out at once. So far I don't have any false positives, and I have about 5000 legitimate emails and 5000 spams in my gmailbox. Create a filter, and in the box for "has the words," just paste:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-size:130%;"&gt;и|KOI8|windows-1251|("Hello! I am" (tired|bored) (today|tonight|this))&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;You can also test this against your mailbox in general by putting that exact text in the search box in gmail, and if you want it to search everything, add a space and then &lt;span style="font-family:courier new;"&gt;in:anywhere&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;If you have any other filtering tips, post a comment.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7639707040768375472-8915983387462876907?l=orb-of-knowledge.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Wf61GVSKoMcf5K0mrRuSS8NMDkY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Wf61GVSKoMcf5K0mrRuSS8NMDkY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Wf61GVSKoMcf5K0mrRuSS8NMDkY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Wf61GVSKoMcf5K0mrRuSS8NMDkY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OrbOfKnowledge/~4/PIJBeyL4Hjk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orb-of-knowledge.blogspot.com/feeds/8915983387462876907/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7639707040768375472&amp;postID=8915983387462876907" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/8915983387462876907?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/8915983387462876907?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OrbOfKnowledge/~3/PIJBeyL4Hjk/filter-for-spam-on-gmail.html" title="Filter for Spam on GMail" /><author><name>Thomas</name><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><feedburner:origLink>http://orb-of-knowledge.blogspot.com/2007/10/filter-for-spam-on-gmail.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEYGQXo8fCp7ImA9WB5XEUU.&quot;"><id>tag:blogger.com,1999:blog-7639707040768375472.post-2240051676962423420</id><published>2007-07-11T12:20:00.001-07:00</published><updated>2007-07-11T12:28:40.474-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-07-11T12:28:40.474-07:00</app:edited><title>Handler "$HANDLER" has a bad module "IsapiModule" in its module list</title><content type="html">If you've seen this error when trying to get a CGI handler working in IIS7 on Windows Vista, check your applicationHost.config file (in c:\windows\system32\inetserv\config). Specifically, look in the &amp;lt;modules&amp;gt; list to make sure you have an entry specifying:&lt;br /&gt;&lt;br /&gt;&amp;lt;add name="IsapiModule" type="" precondition="" /&amp;gt;&lt;br /&gt;&lt;br /&gt;I was beating my head against the wall with this error message until I added this. (In my case it was within &amp;lt;location path="My Website"&amp;gt;&amp;lt;system.webserver&amp;gt;&amp;lt;modules&amp;gt;, just to be specific.)&lt;br /&gt;&lt;br /&gt;I already had an entry for IsapiModule in globalModules, mind you. I have no idea why this is required, so far the IIS7 configuration system leaves a lot to be desired.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Microsoft, when providing a gun that can shoot you in the foot, it might help to add some safeties. &lt;/span&gt;How about making it really easy to configure common CGI modules like Perl, PHP, Python, Ruby, etc?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7639707040768375472-2240051676962423420?l=orb-of-knowledge.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/cq3hYsA31zy0ZxmUnY3kKquUA4A/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/cq3hYsA31zy0ZxmUnY3kKquUA4A/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/cq3hYsA31zy0ZxmUnY3kKquUA4A/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/cq3hYsA31zy0ZxmUnY3kKquUA4A/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OrbOfKnowledge/~4/zxv0UrkOIP0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orb-of-knowledge.blogspot.com/feeds/2240051676962423420/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7639707040768375472&amp;postID=2240051676962423420" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/2240051676962423420?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/2240051676962423420?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OrbOfKnowledge/~3/zxv0UrkOIP0/handler-has-bad-module-isapimodule-in.html" title="Handler &quot;$HANDLER&quot; has a bad module &quot;IsapiModule&quot; in its module list" /><author><name>Thomas</name><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><feedburner:origLink>http://orb-of-knowledge.blogspot.com/2007/07/handler-has-bad-module-isapimodule-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUMHRH8_fip7ImA9WBFaGUk.&quot;"><id>tag:blogger.com,1999:blog-7639707040768375472.post-8608671103557008078</id><published>2007-05-23T12:10:00.000-07:00</published><updated>2007-05-23T12:10:35.146-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-05-23T12:10:35.146-07:00</app:edited><title>Ummm... my BlackBerry has GMaps+GPS and NO support?</title><content type="html">&lt;a href="http://googleblog.blogspot.com/2007/05/cingular-blackberry-8800-has-google.html"&gt;Official Google Blog: Cingular BlackBerry 8800 has Google Maps and GPS&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Steve acts like this is some new development in phones... yet my BlackBerry 8703e has full GPS support, runs Google Maps, and does not benefit from this special code unlock that google has provided for these 8800 phones.&lt;br /&gt;&lt;br /&gt;Why?&lt;br /&gt;&lt;br /&gt;Oh... my phone runs on Sprint PCS network. Perhaps Sprint hasn't paid google for the favor yet?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7639707040768375472-8608671103557008078?l=orb-of-knowledge.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/cNECqO9ZthUiW9DquLiAz64qeMc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/cNECqO9ZthUiW9DquLiAz64qeMc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/cNECqO9ZthUiW9DquLiAz64qeMc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/cNECqO9ZthUiW9DquLiAz64qeMc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OrbOfKnowledge/~4/pQ4gh6P3Fig" height="1" width="1"/&gt;</content><link rel="related" href="http://googleblog.blogspot.com/2007/05/cingular-blackberry-8800-has-google.html" title="Ummm... my BlackBerry has GMaps+GPS and NO support?" /><link rel="replies" type="application/atom+xml" href="http://orb-of-knowledge.blogspot.com/feeds/8608671103557008078/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7639707040768375472&amp;postID=8608671103557008078" title="6 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/8608671103557008078?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/8608671103557008078?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OrbOfKnowledge/~3/pQ4gh6P3Fig/ummm-my-blackberry-has-gmapsgps-and-no.html" title="Ummm... my BlackBerry has GMaps+GPS and NO support?" /><author><name>Thomas</name><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><feedburner:origLink>http://orb-of-knowledge.blogspot.com/2007/05/ummm-my-blackberry-has-gmapsgps-and-no.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4CQnkyeip7ImA9WBFVGUg.&quot;"><id>tag:blogger.com,1999:blog-7639707040768375472.post-5564100999237268595</id><published>2007-04-18T21:27:00.000-07:00</published><updated>2007-04-18T21:29:23.792-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-04-18T21:29:23.792-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="query analyzer" /><category scheme="http://www.blogger.com/atom/ns#" term="sql server" /><category scheme="http://www.blogger.com/atom/ns#" term="date time string format" /><title>Handy SQL Server Query: Date String For Filename</title><content type="html">Here's a simple piece of code for creating a string in YYYYMMDDHHMMSS format, suitable for use as a filename:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 153); font-size: 85%;"&gt;&lt;span style="font-family: courier new;"&gt;REPLACE(REPLACE(REPLACE(CONVERT(char(19), GETDATE(), 120), ' ', ''), '-', ''), ':', '')&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you ran this at 1:23:05 PM on December 3, 2006, it would return "20061203132305".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7639707040768375472-5564100999237268595?l=orb-of-knowledge.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/STLkK2AxhZtWvVKPMDa9IQfCtLk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/STLkK2AxhZtWvVKPMDa9IQfCtLk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/STLkK2AxhZtWvVKPMDa9IQfCtLk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/STLkK2AxhZtWvVKPMDa9IQfCtLk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OrbOfKnowledge/~4/Wwu9kSH5CFk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orb-of-knowledge.blogspot.com/feeds/5564100999237268595/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7639707040768375472&amp;postID=5564100999237268595" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/5564100999237268595?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/5564100999237268595?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OrbOfKnowledge/~3/Wwu9kSH5CFk/handy-sql-server-query-date-string-for.html" title="Handy SQL Server Query: Date String For Filename" /><author><name>Thomas</name><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><feedburner:origLink>http://orb-of-knowledge.blogspot.com/2007/04/handy-sql-server-query-date-string-for.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak8FQHw6eip7ImA9WB9WEEg.&quot;"><id>tag:blogger.com,1999:blog-7639707040768375472.post-2202188381391589642</id><published>2007-04-18T21:22:00.000-07:00</published><updated>2007-11-14T08:46:51.212-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-11-14T08:46:51.212-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="sql server" /><category scheme="http://www.blogger.com/atom/ns#" term="large database" /><category scheme="http://www.blogger.com/atom/ns#" term="shrink" /><title>SQL Server 2000 Database Doesn't Shrink After Removing Columns</title><content type="html">If you've ever come across a situation where you've removed text, ntext or image columns from a SQL Server 2000 database, and the size of your database doesn't shrink even after compressing it, you may have run into the problem described here:&lt;br /&gt;&lt;br /&gt;&lt;a style="font-weight: bold;" href="http://support.microsoft.com/kb/324432/"&gt;DBCC SHRINKFILE and SHRINKDATABASE commands may not work because of sparsely populated text, ntext, or image columns&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The solution is to create a DTS package to transfer all of your database objects into a new database, and remove the old one, and then rename the new one to your original database name (if necessary). We did this recently and recovered 50% of the disk space wasted.&lt;br /&gt;&lt;br /&gt;Hopefully this problem was solved in SQL Server 2005.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7639707040768375472-2202188381391589642?l=orb-of-knowledge.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/uTHQuDVWK0KbLTzwPR9dzwApjT0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/uTHQuDVWK0KbLTzwPR9dzwApjT0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/uTHQuDVWK0KbLTzwPR9dzwApjT0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/uTHQuDVWK0KbLTzwPR9dzwApjT0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OrbOfKnowledge/~4/a8J_l2WgMlc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orb-of-knowledge.blogspot.com/feeds/2202188381391589642/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7639707040768375472&amp;postID=2202188381391589642" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/2202188381391589642?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/2202188381391589642?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OrbOfKnowledge/~3/a8J_l2WgMlc/sql-server-2000-database-doesnt-shrink.html" title="SQL Server 2000 Database Doesn't Shrink After Removing Columns" /><author><name>Thomas</name><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><feedburner:origLink>http://orb-of-knowledge.blogspot.com/2007/04/sql-server-2000-database-doesnt-shrink.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEEEQHY_eip7ImA9WBFVGUg.&quot;"><id>tag:blogger.com,1999:blog-7639707040768375472.post-2781785597122407728</id><published>2007-04-18T20:04:00.000-07:00</published><updated>2007-04-18T20:16:41.842-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-04-18T20:16:41.842-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="rdp" /><category scheme="http://www.blogger.com/atom/ns#" term="query analyzer" /><category scheme="http://www.blogger.com/atom/ns#" term="sql server" /><category scheme="http://www.blogger.com/atom/ns#" term="slow sql queries" /><title>Using SQL Query Analyzer via RDP Can Be Slow</title><content type="html">I won't bore you with how I discovered this phenomenon, but rest assured if you run Microsoft Query Analyzer on a remote computer using Remote Desktop Protocol (RDP), you may notice strangely slow execution times when returning a large number of rows in text-result mode. If you switch to grid results, or if you minimize the query analyzer while the query is running, you will not have this problem!&lt;br /&gt;&lt;br /&gt;A real world example:&lt;br /&gt;&lt;br /&gt;A SQL Query that returns 40,000 records. When running this query in text results mode via RDP, Query Analyzer consistently took 8-9 seconds to finish. When running in grid results mode, it took &lt; 1 second! When minimized in text results mode, it took 2-3 seconds (most likely due to my slow reflexes minimizing the window).  You may find that this is true for many programs that are outputting a large volume of text to the screen -- keep then minimized if possible. And it's not what you might initially think, that a large number of screen-draws are being performed, slowing things down. Nope, my query analyzer results were not scrolling down the screen visibly.  This is just some weird behavior with RDP and certain text displaying screens. If anyone knows why this happens, feel free to comment below. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(153, 153, 153);"&gt;(Note: this behavior was specifically observed using RDP connected to a Windows 2003 Server running SQL Server 2000.)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7639707040768375472-2781785597122407728?l=orb-of-knowledge.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/BW4vsZYlBFXRECCr6TRuXJkcDvA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BW4vsZYlBFXRECCr6TRuXJkcDvA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/BW4vsZYlBFXRECCr6TRuXJkcDvA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BW4vsZYlBFXRECCr6TRuXJkcDvA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OrbOfKnowledge/~4/h0z5eBi_pl4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orb-of-knowledge.blogspot.com/feeds/2781785597122407728/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7639707040768375472&amp;postID=2781785597122407728" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/2781785597122407728?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/2781785597122407728?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OrbOfKnowledge/~3/h0z5eBi_pl4/using-sql-query-analyzer-via-rdp-can-be.html" title="Using SQL Query Analyzer via RDP Can Be Slow" /><author><name>Thomas</name><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><feedburner:origLink>http://orb-of-knowledge.blogspot.com/2007/04/using-sql-query-analyzer-via-rdp-can-be.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C08DRHs_eSp7ImA9WBFVGUg.&quot;"><id>tag:blogger.com,1999:blog-7639707040768375472.post-874873182114674478</id><published>2007-04-18T19:56:00.000-07:00</published><updated>2007-04-18T20:04:35.541-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-04-18T20:04:35.541-07:00</app:edited><title>TimeZones in JavaScript</title><content type="html">If you want to obtain the user's timezone offset in JavaScript (that is, the difference between their timezone and Greenwich Mean Time, or GMT), use this snippet:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102); font-weight: bold;font-size:130%;" &gt;&lt;span style="font-family: courier new;"&gt;(new Date().getTimezoneOffset()/60)*(-1)&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7639707040768375472-874873182114674478?l=orb-of-knowledge.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/7BbAc42ygbqUFwAOU3hKSGYhXrk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7BbAc42ygbqUFwAOU3hKSGYhXrk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/7BbAc42ygbqUFwAOU3hKSGYhXrk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7BbAc42ygbqUFwAOU3hKSGYhXrk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OrbOfKnowledge/~4/y1wtmBm-7ic" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orb-of-knowledge.blogspot.com/feeds/874873182114674478/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7639707040768375472&amp;postID=874873182114674478" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/874873182114674478?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7639707040768375472/posts/default/874873182114674478?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OrbOfKnowledge/~3/y1wtmBm-7ic/timezones-in-javascript.html" title="TimeZones in JavaScript" /><author><name>Thomas</name><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><feedburner:origLink>http://orb-of-knowledge.blogspot.com/2007/04/timezones-in-javascript.html</feedburner:origLink></entry></feed>

