<?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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;A0IMQ3Y4eip7ImA9WxBbEEk.&quot;"><id>tag:blogger.com,1999:blog-11467244</id><updated>2010-03-08T06:59:42.832-05:00</updated><title>Christopher Miller's random thoughts</title><subtitle type="html">Semi-random notes on programming, adoption, and life in general</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://anotherlab.rajapet.net/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://anotherlab.rajapet.net/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Chris Miller</name><uri>http://www.blogger.com/profile/07265018778273203357</uri><email>noreply@blogger.com</email></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>446</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/ChristopherMillersRandomThoughts" /><feedburner:info uri="christophermillersrandomthoughts" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;C08DRns9eip7ImA9WxBUEk8.&quot;"><id>tag:blogger.com,1999:blog-11467244.post-2157569135361658919</id><published>2010-02-25T16:58:00.001-05:00</published><updated>2010-02-26T17:04:37.562-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-26T17:04:37.562-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="icons" /><category scheme="http://www.blogger.com/atom/ns#" term="Windows 7" /><category scheme="http://www.blogger.com/atom/ns#" term="Vista" /><title>What to do when a Windows 7 desktop icon has the wrong image</title><content type="html">&lt;p&gt;We are in the middle of rebranding our applications and as part of the rebranding, the icons for each application have been updated.&amp;#160; We are having lots of fun cramming Vista styled icons through ancient resource compilers, but that’s another story.&lt;/p&gt;  &lt;p&gt;We provided a rebranded application to our QA tem for testing.&amp;#160; The first thing the QA manager did was to drag the app to her Windows 7 desktop, replacing the previous version.&amp;#160;&amp;#160; Oddly enough, the image appeared for the icon.&amp;#160; I went back and checked the build process, that image was no longer there.&amp;#160; yet, it appeared on her desktop.&amp;#160; It also occurs with Vista as well.&lt;/p&gt;  &lt;p&gt;I had originally posted how to do this by deleting the iconcach.db, but that is such a crude hack that I have pulled it.&amp;#160; After posting this message, I came across a much simpler mechanism.&amp;#160; &lt;/p&gt;  &lt;p&gt;If you call &lt;span class="postbody"&gt;&lt;a title="MSDN: SHChangeNotify Function" href="http://msdn.microsoft.com/en-us/library/bb762118%28VS.85%29.aspx"&gt;SHChangeNotify(SHCNE_UPDATEDIR, SHCNF_IDLIST, 0, 0)&lt;/a&gt;, from shell32.dll, this will cause the icon cache to be refreshed.&amp;#160; This happens in real time, no need to restart explorer or rebooting.&amp;#160; This is easy to call from just about every programming environment. If you need a stand alone app,&amp;#160; Helge Klien wrote a simple command line tool and posted it at &lt;a title="Free Tool: Refresh the Desktop Programmatically" href="http://blogs.sepago.de/helge/2007/11/22/free-tool-refresh-the-desktop-programmatically/"&gt;Free Tool: Refresh the Desktop Programmatically&lt;/a&gt;.&amp;#160; I’ve added the SHChangeNotify() call to my installers, the users will never be bothered by this.&lt;/span&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11467244-2157569135361658919?l=anotherlab.rajapet.net' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=apcumLL4J-g:P3c5n1lZwao:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=apcumLL4J-g:P3c5n1lZwao:2nqncYFp4_M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=2nqncYFp4_M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=apcumLL4J-g:P3c5n1lZwao:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?i=apcumLL4J-g:P3c5n1lZwao:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=apcumLL4J-g:P3c5n1lZwao:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=apcumLL4J-g:P3c5n1lZwao:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=apcumLL4J-g:P3c5n1lZwao:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ChristopherMillersRandomThoughts/~4/apcumLL4J-g" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://anotherlab.rajapet.net/feeds/2157569135361658919/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://anotherlab.rajapet.net/2010/02/what-to-do-when-windows-7-desktop-icon.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/2157569135361658919?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/2157569135361658919?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ChristopherMillersRandomThoughts/~3/apcumLL4J-g/what-to-do-when-windows-7-desktop-icon.html" title="What to do when a Windows 7 desktop icon has the wrong image" /><author><name>Chris Miller</name><uri>http://www.blogger.com/profile/07265018778273203357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10716448619272595213" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://anotherlab.rajapet.net/2010/02/what-to-do-when-windows-7-desktop-icon.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEBRX45eCp7ImA9WxBVEUo.&quot;"><id>tag:blogger.com,1999:blog-11467244.post-3511510861354313354</id><published>2010-02-14T14:10:00.001-05:00</published><updated>2010-02-14T14:10:54.020-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-14T14:10:54.020-05:00</app:edited><title>This connection is Untrusted (another ID10T error)</title><content type="html">&lt;p&gt;The other day, my PC died.&amp;#160; After some angst, I was able to &lt;a title="What do you mean the computer wont turn on?" href="http://anotherlab.rajapet.net/2010/02/what-do-you-mean-computer-wont-turn-on.html"&gt;fix it by replacing the power supply&lt;/a&gt;.&amp;#160; After starting the PC, I fired up Firefox to check my email.&amp;#160; That’s when the first error message popped up.&amp;#160; I was presented with this lovely error dialog.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_natoSxTaPFU/S3hKtJSmaGI/AAAAAAAAAZo/2jHsuLhWuSY/s1600-h/SecureConnectionFailed5.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="SecureConnectionFailed" border="0" alt="SecureConnectionFailed" src="http://lh3.ggpht.com/_natoSxTaPFU/S3hKtg-YufI/AAAAAAAAAZs/b3fIYhR2eJs/SecureConnectionFailed_thumb3.png?imgmax=800" width="358" height="162" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Lovely.&amp;#160; This came from &lt;a title="Offers bookmark synchronization, search enhancement and web discovery based on sites bookmarked by users." href="http://www.xmarks.com/"&gt;Xmarks&lt;/a&gt;, a browser add-in that I use to keep my browser books marks synchronized across multiple machines.&amp;#160; Which is a really cool thing to have, but I digress.&amp;#160; Still, check it out.&lt;/p&gt;  &lt;p&gt;I didn’t play too much attention to it when I saw it.&amp;#160; I just figured it was a glitch on the Xmarks site and cancelled out of it.&amp;#160; I should have paid more attention to it, that dialog had the clue to explain what the problem was.&lt;/p&gt;  &lt;p&gt;After cancelling that dialog, I went to my webmail account.&amp;#160; I host my rajapet.net email account through Google Apps and I have HTTPS url to get into the email.&amp;#160; That brought up the “This connection is Untrusted” dialog.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_natoSxTaPFU/S3hKtwOwcyI/AAAAAAAAAZw/J6XRghjMalQ/s1600-h/ThisCertificateIsUntrusted3.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="ThisCertificateIsUntrusted" border="0" alt="ThisCertificateIsUntrusted" src="http://lh6.ggpht.com/_natoSxTaPFU/S3hKuJkVnNI/AAAAAAAAAZ0/X10GFblQGKs/ThisCertificateIsUntrusted_thumb1.png?imgmax=800" width="351" height="196" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Oh joy. I just figured that their SSL certificate had expired and I clicked through that one.&amp;#160; I went to my GMail account and the same thing happened.&amp;#160; I tried a few other sites, every site that used a SSL certificate did the same thing.&amp;#160; What did I break?&lt;/p&gt;  &lt;p&gt;When I followed the motherboard vendor suggestion of &lt;a href="http://anotherlab.rajapet.net/2010/02/what-do-you-mean-computer-wont-turn-on.html#biosreset"&gt;resetting the bios&lt;/a&gt;, that included resetting the clock.&amp;#160; My PC date was set to January 1st, 2001.&amp;#160; That was causing the SSL certificate grief.&amp;#160; When you get a SSL certificate for your site, it has a starting and ending date.&amp;#160; Lets take a close look at the error message from the Xmarks add-in.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_natoSxTaPFU/S3hKuo7nAkI/AAAAAAAAAZ4/zD8Ua9r3Rlc/s1600-h/SecureConnectionFailedClip%5B3%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="SecureConnectionFailedClip" border="0" alt="SecureConnectionFailedClip" src="http://lh4.ggpht.com/_natoSxTaPFU/S3hKvOtLYJI/AAAAAAAAAZ8/tpH0hPUxD5o/SecureConnectionFailedClip_thumb%5B1%5D.png?imgmax=800" width="359" height="94" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The earliest date that this certificate would be considered valid for was 2/6/2009.&amp;#160; Had I paid closer attention to the error dialog, I would seen that my clock was off.&amp;#160; I went into the Windows clock applet and synched up with a time server and everything went back to normal.&amp;#160; Then I rebooted the machine and went into the BIOS settings to make sure everything was the way I liked.&amp;#160; File this as an &lt;a href="http://ars.userfriendly.org/cartoons/?id=19990211"&gt;ID10T&lt;/a&gt; error.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11467244-3511510861354313354?l=anotherlab.rajapet.net' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=ORtKGvNge5w:of13QL-hlMY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=ORtKGvNge5w:of13QL-hlMY:2nqncYFp4_M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=2nqncYFp4_M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=ORtKGvNge5w:of13QL-hlMY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?i=ORtKGvNge5w:of13QL-hlMY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=ORtKGvNge5w:of13QL-hlMY:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=ORtKGvNge5w:of13QL-hlMY:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=ORtKGvNge5w:of13QL-hlMY:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ChristopherMillersRandomThoughts/~4/ORtKGvNge5w" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://anotherlab.rajapet.net/feeds/3511510861354313354/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://anotherlab.rajapet.net/2010/02/this-connection-is-untrusted-another.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/3511510861354313354?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/3511510861354313354?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ChristopherMillersRandomThoughts/~3/ORtKGvNge5w/this-connection-is-untrusted-another.html" title="This connection is Untrusted (another ID10T error)" /><author><name>Chris Miller</name><uri>http://www.blogger.com/profile/07265018778273203357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10716448619272595213" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://anotherlab.rajapet.net/2010/02/this-connection-is-untrusted-another.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUIHQHk8fip7ImA9WxBVEUo.&quot;"><id>tag:blogger.com,1999:blog-11467244.post-873606224683836168</id><published>2010-02-13T23:10:00.001-05:00</published><updated>2010-02-14T13:52:11.776-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-14T13:52:11.776-05:00</app:edited><title>What do you mean the computer wont turn on?</title><content type="html">&lt;p&gt;Last Monday, I came home from work and went to check my email on my home PC.&amp;#160; I went into my home office and sat down at the PC.&amp;#160; I turned on the monitors (I run two monitors on my main dev machine at home and at the office) and banged on the shift key to wake things up.&lt;/p&gt;  &lt;p&gt;Nothing happened.&amp;#160; That was odd.&amp;#160; My PC was very quiet but you can usually hear a faint hum from the CPU fan.&amp;#160; Not this time.&amp;#160; This machine is on pretty much 24/7.&amp;#160; I leave it on overnight so that my &lt;a title="Everybody needs Windows Home Server" href="http://www.microsoft.com/windows/products/winfamily/windowshomeserver/default.mspx"&gt;Windows Home Server&lt;/a&gt; can back it up.&amp;#160; I also leave it on during the day in case I need to access it from work.&lt;/p&gt;  &lt;p&gt;We had come contractors in the house for some home remodeling projects, one of them may have tripped a circuit breaker.&amp;#160; My PC is set not to reboot if the power comes back on after an outage.&amp;#160; If we have power outage from a storm, I don’t want my machine coming back online until I”m sure the power is staying on.&lt;/p&gt;  &lt;p&gt;So I pressed the power button.&amp;#160; Nothing happening.&amp;#160; It’s a soft power button, it doesn’t stay pressed in.&amp;#160; I pressed it again.&amp;#160; More nothing.&amp;#160;&amp;#160; I have a case where the side panel comes right off.&amp;#160; So I took it off and looked for the motherboard power LED.&amp;#160; Most motherboards have an LED to indicate the power supply is connected.&lt;/p&gt;  &lt;p&gt;I could see that the light was on, so it looked like it was getting power.&amp;#160; I pulled the power cord from the PC and double checked all of the connecters.&amp;#160; Nothing appeared to be loose.&amp;#160; I plugged the cable back and tried the power.&amp;#160; Nothing.&amp;#160; I was starting to get a little nervous at this point.&amp;#160; This is my main home PC, I depend on it being in working order.&amp;#160; It’s a few years old, I &lt;a title="Time to get a new PC" href="http://anotherlab.rajapet.net/2007/05/time-to-get-new-pc.html"&gt;had it custom built&lt;/a&gt; using parts that should last a while.&lt;/p&gt;  &lt;p&gt;Since none of the obvious suspects appeared to be the root cause, I decided to see if the motherboard manual has a trouble shooting section.&amp;#160; It didn’t.&amp;#160; I went to the ASUS web site and drilled down through the support pages until I found a trouble shooting guide.&amp;#160; &lt;a name="biosreset"&gt;One of the things it suggested was to reset the BIOS settings&lt;/a&gt; by pulling the battery out and putting it back in upside down.&lt;/p&gt;  &lt;p&gt;So I did that and nothing happened.&amp;#160;&amp;#160; Usually when a PC wont come on, you usually see something on the screen or hear something from the hard drives.&amp;#160; Even if the machine wont boot, the disk drives will spin up.&amp;#160; That pointed the fickle finger of fate back to the power supply.&amp;#160; There is a power switch on the power supply.&amp;#160; This switch controlled whether or not the power supply provided any juice to the motherboard.&lt;/p&gt;  &lt;p&gt;While looking at the motherboard, I flicked the power supply switch back on.&amp;#160; The motherboard light came on and then dimmed a bit.&amp;#160; It’s not supposed to do that.&amp;#160; That meant the power supply was most probably toast.&amp;#160; It was about 11pm at this point, and my nerves were shot.&amp;#160; But it meant I had a shot for getting this machine back online.&lt;/p&gt;  &lt;p&gt;When I had this PC built, I had picked an &lt;a href="http://www.legitreviews.com/article/217/1/"&gt;Antec Sonata II&lt;/a&gt; case.&amp;#160; There were a couple of reasons.&amp;#160; It’s a very easy case to work with, no sharp edges on the inside.&amp;#160; It’s also designed to be a quiet case, which is nice for a home office.&amp;#160; Instead of 80mm case fan, it has a pair on 120mm fans to push the air through the case.&amp;#160; By being larger, they can run a lower speed and push more air with less noise.&amp;#160; It also came with a decent Antec 450 watt power supply.&amp;#160; Well, in my case, not so decent.&amp;#160; But the power supply could be easily removed.&lt;/p&gt;  &lt;p&gt;So I needed a new power supply and I needed it ASAP.&amp;#160; Around here (Albany, NY), the options for locally obtained computer parts are slim.&amp;#160; It’s basically Best Buy.&amp;#160; So I went on their site and looked over their &lt;a href="http://www.bestbuy.com/site/Computer-Cases-Components/Power-Supplies/abcat0507009.c?id=abcat0507009"&gt;list of power supplies&lt;/a&gt;.&amp;#160; They actually had a decent selection.&amp;#160; I didn’t need anything crazy, but I wanted a good one.&amp;#160; I found one that had good reviews on Best Buy and a few other sites AND was in stock at the local Best Buy shop.&amp;#160; It was a &lt;a href="http://www.corsair.com/products/tx/default.aspx"&gt;Corsair 650 watt&lt;/a&gt; model. &lt;/p&gt;  &lt;p&gt;So I dragged my PC into work to have our IT manager take a look.&amp;#160; He basically confirmed my suspicion that the power supply was shot.&amp;#160; At lunch time, I went over to Best Buy and bought the Corsair.&amp;#160; This was a 650TX, which is a non-modular power supply.&amp;#160; A non-modular power supply means that all of the cables are permanently attached.&amp;#160; It had many connectors.&amp;#160; It looked like a mechanical squid.&amp;#160; It would have been nice to get a &lt;a href="http://www.corsair.com/products/hx650/default.aspx"&gt;modular supply&lt;/a&gt; and only attach the cables that I actually needed.&amp;#160; Unfortunately, I would have to order that online and I wanted to get this machine running right now.&amp;#160; We swapped the power supplies and my machine booted right up.&lt;/p&gt;  &lt;p&gt;So my machine is back up and running.&amp;#160; It had some other issues, but I was able to resolve them.&amp;#160; I’m a bit disappointed with Antec.&amp;#160; That power supply should not have died.&amp;#160; If I were to build a new PC tomorrow, I would not use an Antec power supply.&amp;#160; I would get a current generation Sonata, like the &lt;a href="http://www.antec.com/Believe_it/product.php?id=NzIx"&gt;Sonata Elite&lt;/a&gt;.&amp;#160; That model does not come with a power supply, you bring your own.&amp;#160; I’ll probably go with another Corsair.&lt;/p&gt;  &lt;p&gt;Through out all of this, I was able to stay sane by the knowledge that I had a backup of everything on that machine.&amp;#160; If the power supply had not been the problem, I would have been getting a new PC.&amp;#160; Which is usually a good thing, but not when it’s not on the budget.&amp;#160; A couple of weeks ago, I bought a WIndows Home Server.&amp;#160; I bought a &lt;a href="http://www.hp.com/united-states/campaigns/mediasmart-server/"&gt;HP MediaSmart Server&lt;/a&gt;.&amp;#160; I got the &lt;a href="http://www.shopping.hp.com/product/computer/categories/home_servers/1/accessories/FL705AA%2523ABA"&gt;EX495&lt;/a&gt; and I’ve been very happy with.&amp;#160; It backs up all of the PC’s on my home network every night.&amp;#160; I was able to access the backups from another PC and I could easily access them.&amp;#160; I highly recommend having a WIndows Home Server at home.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11467244-873606224683836168?l=anotherlab.rajapet.net' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=_yUzak0JWBU:iODafy5c3Z4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=_yUzak0JWBU:iODafy5c3Z4:2nqncYFp4_M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=2nqncYFp4_M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=_yUzak0JWBU:iODafy5c3Z4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?i=_yUzak0JWBU:iODafy5c3Z4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=_yUzak0JWBU:iODafy5c3Z4:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=_yUzak0JWBU:iODafy5c3Z4:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=_yUzak0JWBU:iODafy5c3Z4:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ChristopherMillersRandomThoughts/~4/_yUzak0JWBU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://anotherlab.rajapet.net/feeds/873606224683836168/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://anotherlab.rajapet.net/2010/02/what-do-you-mean-computer-wont-turn-on.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/873606224683836168?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/873606224683836168?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ChristopherMillersRandomThoughts/~3/_yUzak0JWBU/what-do-you-mean-computer-wont-turn-on.html" title="What do you mean the computer wont turn on?" /><author><name>Chris Miller</name><uri>http://www.blogger.com/profile/07265018778273203357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10716448619272595213" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://anotherlab.rajapet.net/2010/02/what-do-you-mean-computer-wont-turn-on.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEDQHY5fip7ImA9WxBRFUU.&quot;"><id>tag:blogger.com,1999:blog-11467244.post-1738500333370019931</id><published>2010-01-04T00:57:00.001-05:00</published><updated>2010-01-04T00:57:51.826-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-04T00:57:51.826-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="TiVo" /><category scheme="http://www.blogger.com/atom/ns#" term="Amazon" /><title>Just watched a movie in HD using Amazon Video On Demand through my Tivo</title><content type="html">&lt;p&gt;I had some credits with my Amazon account so I decided to “rent” a movie through their Amazon &lt;a href="http://www.amazon.com/Video-On-Demand/b/ref=topnav_storetab_atv?ie=UTF8&amp;amp;node=16261631"&gt;Video On Demand&lt;/a&gt; program.&amp;#160; TiVo had offered the Amazon Video on Demand for while, I decided to see what the experience would be with a HD movie. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_natoSxTaPFU/S0GDXFy_vMI/AAAAAAAAAYQ/LqHXl5KpfV4/s1600-h/AmazonVOD2%5B3%5D.jpg"&gt;&lt;img style="border-right-width: 0px; margin: 0px 10px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="AmazonVOD2" border="0" alt="AmazonVOD2" align="left" src="http://lh3.ggpht.com/_natoSxTaPFU/S0GDXWvsMqI/AAAAAAAAAYU/evSD9yqGURs/AmazonVOD2_thumb%5B1%5D.jpg?imgmax=800" width="244" height="184" /&gt;&lt;/a&gt; From &lt;a href="http://support.tivo.com/app/answers/detail/a_id/257#high"&gt;what I read on the TiVo site&lt;/a&gt;, HD movies from Amazon are only available through a select hardware devices, you can’t order them on through the Amazon site for a PC.&amp;#160; I have a TiVo HD, which is one of the &lt;a href="http://www.amazon.com/gp/video/ontv/ontv/ref=amb_link_86331431_5?pf_rd_m=ATVPDKIKX0DER&amp;amp;pf_rd_s=right-1&amp;amp;pf_rd_r=01YMC69GZ4P8C0Z5TWXF&amp;amp;pf_rd_t=1401&amp;amp;pf_rd_p=506462311&amp;amp;pf_rd_i=1000465121"&gt;approved hardware devices&lt;/a&gt;.&amp;#160; &lt;/p&gt;  &lt;p&gt;I’m not sure why you can’t get HD movies on your PC.&amp;#160; It’s not a hardware limitation, you can download TV shows in HD through Amazon.com.&amp;#160; It must be a studio thing.&amp;#160; It’s not an issue for me, if I’m going to download a movie in HD, I’m going to want to watch it on my HDTV while sitting on my couch.&lt;/p&gt;  &lt;p&gt;With Amazon Video on Demand, you can buy a movie outright or you rent it.&amp;#160; If you buy it, it’s downloaded to your device and you can watch it as often as you like.&amp;#160; You can download it to 2 locations (like a TiVo and a Windows PC), plus two portable devices.&amp;#160; The portable devices must be “Play for Sure” compliant, which rules out anything designed at &lt;a href="http://apple.com/ipod"&gt;One Infinite Loop&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;With a rental, you have up to 30 days to watch the movie once it starts downloading.&amp;#160; Once you start watching, you have 48 hours to watch it.&amp;#160; Within that 48 hours, you can watch it as many times as you want, but then it’s gone.&amp;#160; Which is just as well, a full length HD movie is going to take a chunk out of the available space on a TiVo.&lt;/p&gt;  &lt;p&gt;I decided to rent a movie.&amp;#160; I wanted to see &lt;a href="http://www.amazon.com/s/ref=nb_ss?url=search-alias%3Damazontv&amp;amp;field-keywords=terminator+salvation+hd&amp;amp;x=0&amp;amp;y=0"&gt;Terminator Salvation&lt;/a&gt; and the rental price was $2.99.&amp;#160; The purchase price for download was $11.99, but if I wanted to own it, I think I would just get the DVD for $15.99.&amp;#160; I don’t own a Blu-Ray player yet, so the Amazon download would be at a higher resolution than DVD.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_natoSxTaPFU/S0GDXgGpWgI/AAAAAAAAAYY/zUVLMkwLoDo/s1600-h/TerminatorSalvation%5B3%5D.jpg"&gt;&lt;img style="border-right-width: 0px; margin: 0px 10px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="TerminatorSalvation" border="0" alt="TerminatorSalvation" align="left" src="http://lh5.ggpht.com/_natoSxTaPFU/S0GDXmHJRPI/AAAAAAAAAYc/FTtq7S1v4U4/TerminatorSalvation_thumb%5B1%5D.jpg?imgmax=800" width="124" height="164" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;So I selected Terminator Salvation in HD from the Amazon Video on Demand list on my TiVo.&amp;#160; I already synced up my Amazon account with my TiVo &lt;a href="http://www.tivo.com/mytivo/howto/downloadmoviesandtv/howto_movies_tv_amazon.html"&gt;so I only needed to enter my 5 digit pass code to complete the purchase&lt;/a&gt;.&amp;#160; It then displayed a screen that said that download would start within 30 minutes. It was a pretty easy process.&lt;/p&gt;  &lt;p&gt;Sure enough with 15 minutes, the little blue light on my TiVo came on.&amp;#160; That was the signal that the TiVo was downloading content from the Internet.&amp;#160; I gave it a 20 minute head start and then started watching the movie.&lt;/p&gt;  &lt;p&gt;I don’t know how it works on other devices, but with Amazon Video on Demand on the TiVo, it’s streaming at a fixed bit rate.&amp;#160; It doesn’t scale the quality based on the bandwidth of the Internet connection.&amp;#160; I have a decent download pipe, 20 Mb/s through Verizon FiOS.&amp;#160; My TiVo has a wired connection to my router, so I don’t have to deal with the general vagueness of 802.11g wireless.&amp;#160; So that means I can start watching while it was still downloading.&amp;#160; If my TiVo was going through a wireless connection, I think I would have waited until the movie had been completely downloaded before starting to watch it.&lt;/p&gt;  &lt;p&gt;The quality was very good.&amp;#160; The bitrate was &lt;span class="unbox_info_list"&gt;2800 kbps and the resolution was 1080i.&amp;#160; That beats what I would get from the DVD version.&amp;#160; Amazon Video on Demand to the TiVo only supports stereo sounds, but I don’t have a true 5:1 surround sound setup yet and that loss didn’t really affect me,&amp;#160; The movie was downloading at roughly the same rate I was watching it, with the 20 minute head start, I was able to watch from start to finish with out any hiccups.&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span class="unbox_info_list"&gt;The experience was very good.&amp;#160; $2.99 seems like the going rate for movie rentals.&amp;#160; I’m not sure what my cable company charges, but since they have a “$2.99 value section”, I would assume that new HD releases would cost more.&amp;#160; Plus, my TiVo can’t access the cable company’s VOD, so it’s a moot point.&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span class="unbox_info_list"&gt;As for the movie itself?&amp;#160; Terminator Salvation was fun.&amp;#160; I think it was better than the reviews that it got.&amp;#160; I thought the ending was a hokey, but I got my money’s worth out of it.&amp;#160; I would do this again with another movie.&lt;/span&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11467244-1738500333370019931?l=anotherlab.rajapet.net' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=gMqapP-0gDo:BGWU-FdR2Y0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=gMqapP-0gDo:BGWU-FdR2Y0:2nqncYFp4_M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=2nqncYFp4_M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=gMqapP-0gDo:BGWU-FdR2Y0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?i=gMqapP-0gDo:BGWU-FdR2Y0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=gMqapP-0gDo:BGWU-FdR2Y0:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=gMqapP-0gDo:BGWU-FdR2Y0:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=gMqapP-0gDo:BGWU-FdR2Y0:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ChristopherMillersRandomThoughts/~4/gMqapP-0gDo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://anotherlab.rajapet.net/feeds/1738500333370019931/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://anotherlab.rajapet.net/2010/01/just-watched-movie-in-hd-using-amazon.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/1738500333370019931?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/1738500333370019931?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ChristopherMillersRandomThoughts/~3/gMqapP-0gDo/just-watched-movie-in-hd-using-amazon.html" title="Just watched a movie in HD using Amazon Video On Demand through my Tivo" /><author><name>Chris Miller</name><uri>http://www.blogger.com/profile/07265018778273203357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10716448619272595213" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://anotherlab.rajapet.net/2010/01/just-watched-movie-in-hd-using-amazon.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUAGR3wyfyp7ImA9WxBSF0w.&quot;"><id>tag:blogger.com,1999:blog-11467244.post-6343891247652163822</id><published>2009-12-24T23:02:00.001-05:00</published><updated>2009-12-24T23:02:06.297-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-24T23:02:06.297-05:00</app:edited><title>There is no sense of humor on the North Face</title><content type="html">&lt;p&gt;I was just read about how &lt;a href="http://www.techdirt.com/articles/20091214/2350107352.shtml"&gt;the North Face is suing the South Butt&lt;/a&gt;. The &lt;a href="http://www.thesouthbutt.com/"&gt;South Butt&lt;/a&gt; is a parody line of clothing started by Jimmy Winkelmann, a college freshman at the University of Missouri.&amp;#160; The South Butt clothing line features a logo that is a clever spoof of the ever present North Face logo.&lt;/p&gt;  &lt;p&gt;I’m not a lawyer and nor do I &lt;a href="http://snowclones.org/2007/08/17/im-not-an-x-but-i-play-one-on-tv/"&gt;play one on TV&lt;/a&gt;, but it sounds the South Butt was a clear and obvious parody and would be protected by the &lt;a href="http://en.wikipedia.org/wiki/Fair_use"&gt;fair use&lt;/a&gt; laws.&amp;#160; Parody is a fair use, even when done as a commercial venture.&amp;#160; That has been taken all the way to the Supreme Court.&amp;#160; In Campell v. Acuff-Rose Music, Roy Orbison’s publishers tried to sue 2 Live Crew for their song “Pretty Woman”, which parodied Orbison’s “Oh, Pretty Woman”.&amp;#160; The Supreme court ruled that the 2 Live Crew song was protected by &lt;a title="Limitations on exclusive rights: Fair use" href="http://www.copyright.gov/title17/92chap1.html#107"&gt;§ 107 of the Copyright Act of 1976&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;This is just a dumb move on the part of North face.&amp;#160; I don’t know how Winkelmann’s venture crossed the North Face radar, but I’m sure it didn’t much exposure until the North Face lawyers got involved.&amp;#160; That caused a &lt;a title="When trying to block information backfires" href="http://www.thestreisandeffect.com/about/"&gt;Streisand Effect&lt;/a&gt;, generating tons of publicity for the Butt Face.&amp;#160; Now the North Face looks like a bully with no sense of humor.&lt;/p&gt;  &lt;p&gt;When you compare the two logos, you can clearly see the difference.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_natoSxTaPFU/SzQ5O4sYm6I/AAAAAAAAAYA/zcE89_F0-H0/s1600-h/NorthFaceLogo%5B2%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="NorthFaceLogo" border="0" alt="NorthFaceLogo" src="http://lh6.ggpht.com/_natoSxTaPFU/SzQ5PMbZmtI/AAAAAAAAAYE/CmzoVBCnc_A/NorthFaceLogo_thumb.jpg?imgmax=800" width="94" height="47" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;versus&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_natoSxTaPFU/SzQ5PdyLnxI/AAAAAAAAAYI/oRwiryC33Qg/s1600-h/SouthFaceLogo%5B2%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="SouthFaceLogo" border="0" alt="SouthFaceLogo" src="http://lh4.ggpht.com/_natoSxTaPFU/SzQ5PUKe58I/AAAAAAAAAYM/CzxIeMqvtyU/SouthFaceLogo_thumb.jpg?imgmax=800" width="79" height="56" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The South Butt logo is clearly parodying the North Face logo.&amp;#160; I can see the need for the North Face to protect their logo.&amp;#160; That logo is the identifying marker for their product line.&amp;#160; When someone is wearing a North Face jacket, you are aware of the brand from 30 feet away.&amp;#160; The South Butt does not dilute the North Face brand.&amp;#160; It make fun of it, but that is protected by law.&amp;#160; There is no upside for North Face with this suit.&amp;#160; They will most likely lose their case and will ahve wasted time on and money on a pointless venture.&amp;#160; If by some bizarre luck they actually win, then they will look like bullies.&amp;#160; Either way, lots of bad publicity for them.&lt;/p&gt;  &lt;p&gt;My daughters wear North Face jackets.&amp;#160; It’s a status symbol for their age group.&amp;#160; If the North Face continues with this suit, I’ll think twice before I buy anymore.&amp;#160; I may just buy a Butt Face jacket for my own amusement.&amp;#160; I’ve already become a fan of their &lt;a href="http://www.facebook.com/pages/South-Butt/276080795511"&gt;Facebook page&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11467244-6343891247652163822?l=anotherlab.rajapet.net' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=zy62Z1RaB7s:Ri6f4q_7_pc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=zy62Z1RaB7s:Ri6f4q_7_pc:2nqncYFp4_M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=2nqncYFp4_M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=zy62Z1RaB7s:Ri6f4q_7_pc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?i=zy62Z1RaB7s:Ri6f4q_7_pc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=zy62Z1RaB7s:Ri6f4q_7_pc:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=zy62Z1RaB7s:Ri6f4q_7_pc:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=zy62Z1RaB7s:Ri6f4q_7_pc:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ChristopherMillersRandomThoughts/~4/zy62Z1RaB7s" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://anotherlab.rajapet.net/feeds/6343891247652163822/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://anotherlab.rajapet.net/2009/12/there-is-no-sense-of-humor-on-north.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/6343891247652163822?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/6343891247652163822?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ChristopherMillersRandomThoughts/~3/zy62Z1RaB7s/there-is-no-sense-of-humor-on-north.html" title="There is no sense of humor on the North Face" /><author><name>Chris Miller</name><uri>http://www.blogger.com/profile/07265018778273203357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10716448619272595213" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://anotherlab.rajapet.net/2009/12/there-is-no-sense-of-humor-on-north.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0ABQ385fSp7ImA9WxBSEUo.&quot;"><id>tag:blogger.com,1999:blog-11467244.post-3246623909899953521</id><published>2009-12-18T15:53:00.001-05:00</published><updated>2009-12-18T17:35:52.125-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-18T17:35:52.125-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL" /><title>Getting the list of databases that a user has rights to from SQL Server</title><content type="html">&lt;p&gt;We have a few applications that let the user select the database connection details.&amp;#160; It’s for SQL Server 2005/2008 and they can pick the server protocol, server name, and the database.&amp;#160; Once they select a database server, the user selects the database from a pick list selection.&amp;#160; We filter that list to only show the databases that are applicable for that user and application.&lt;/p&gt;  &lt;p&gt;The first thing we do is get the list of databases.&amp;#160; We want to only display the databases that user can access and filter out the system databases.&amp;#160; There are a few ways to get the list of databases from SQL Server.&amp;#160; There is a system stored procedure named &lt;a href="http://msdn.microsoft.com/en-us/library/ms178568.aspx"&gt;sp_helpdb&lt;/a&gt; or you can go right to the same tables and views that sp_helpdb uses.&amp;#160; The latter matter is more efficient, but you want to make sure that you are using the system views instead of the system tables.&amp;#160; Microsoft has deprecated access to the system tables and has published a list that maps the system tables to the system views on &lt;a title="SQL Server 2008 Books Online (November 2009) - Mapping System Tables to System Views (Transact-SQL)" href="http://msdn.microsoft.com/en-us/library/ms187997.aspx"&gt;this MSDN page&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;The system view that we want to uses is &lt;a title="sys.databases (Transact-SQL)" href="http://msdn.microsoft.com/en-us/library/ms178534.aspx"&gt;sys.databases&lt;/a&gt;.&amp;#160; This view will give us a list of all (well nearly all and close enough for our purposes) of the mounted databases.&amp;#160; This includes the system databases and databases that the user may not actually have rights to.&amp;#160; We can filter out the system tables by excluding them by name,&amp;#160; We can use the &lt;a href="http://msdn.microsoft.com/en-us/library/ms187718.aspx"&gt;has_dbacesss()&lt;/a&gt; function to filter out the tables that we don’t have access to.&amp;#160; The has_dbacess('databasename') function will return 1 for databases that the current connection has access to, or 0 for no access.&amp;#160; That give us the following T-SQL for getting the list of databases:&lt;/p&gt;  &lt;pre class="sql" name="code"&gt;select Name &lt;br /&gt;from sys.databases &lt;br /&gt;where (has_dbaccess(name) &amp;gt; 0) &lt;br /&gt;and name not in ('master', 'tempdb', 'model', 'msdb') &lt;br /&gt;order by 1&lt;/pre&gt;&lt;p&gt;If your user account has access to different types of databases and you want to filter the list to provide only the databases that your application supports, then you can go one step further.&amp;#160; Find a table or view in your database that is fairly unique.&amp;#160; If all of the table names are pretty generic, just create with unique name and make a use for it later.&lt;/p&gt;&lt;p&gt;The following SQL statement can be executed from an application to get a filtered list of databases in one call to the server.&lt;/p&gt;&lt;pre class="sql" name="code"&gt;create table #TempTable(dbname nvarchar(128));&lt;br /&gt;declare @AppDatabase nvarchar(128);&lt;br /&gt;declare cr cursor for select Name from sys.databases where (has_dbaccess(name) &amp;gt; 0) &lt;br /&gt;&lt;br /&gt;open cr;&lt;br /&gt;&lt;br /&gt;fetch next from cr into @AppDatabase;&lt;br /&gt;&lt;br /&gt;WHILE @@FETCH_STATUS = 0 begin;&lt;br /&gt;  execute (' insert into #TempTable(dbname) select Table_Catalog from [' + @AppDatabase + '].INFORMATION_SCHEMA.TABLES where TABLE_NAME = ''GeoZoneEdge''');&lt;br /&gt;  fetch next from cr into @AppDatabase;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;deallocate cr;&lt;br /&gt;&lt;br /&gt;select dbname from #TempTable&lt;br /&gt;&lt;br /&gt;drop table #TempTable&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The use of semicolons makes it easy to send the set of the t-sql commands as one command to the server.&amp;#160; you would replace the string “yourtablenamehere” with the name of the actual table or view you were trying to match.&amp;#160;&amp;#160; By sending a set of commands as a single batch, we get the power of a stored procedure with actually having to have a stored procedure.&amp;#160; The blank lines are there for readability, you can run that as a single execute command and get back a result set.&lt;/p&gt;&lt;p&gt;The first few lines create a temp table to store the database names collected from sys.databases.&amp;#160; We use a cursor to iterate through result set from sys.databases so that we can check each database for the existence of a table that we know will be in our application’s database.&amp;#160;&amp;#160; For each database name in that result set, we use the &lt;a href="http://msdn.microsoft.com/en-us/library/ms186224.aspx"&gt;INFORMATION_SCHEMA.TABLES&lt;/a&gt; view to check for the existence of a specific table in that table.&amp;#160; Since we doing that lookup for each database, we need to construct the SQL statement at runtime, as shown in line 10 in the listing above.&amp;#160; Each select statement the produces a result, logs the database name into the temporary table.&amp;#160; Then we just return the results of the temporary table.&lt;/p&gt;&lt;p&gt;It looks involved, but it executes fast and the calling application only needs to make one call to the SQL Server to collect the data.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11467244-3246623909899953521?l=anotherlab.rajapet.net' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=4hRkIChQHKU:WaMIOZHbqZg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=4hRkIChQHKU:WaMIOZHbqZg:2nqncYFp4_M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=2nqncYFp4_M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=4hRkIChQHKU:WaMIOZHbqZg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?i=4hRkIChQHKU:WaMIOZHbqZg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=4hRkIChQHKU:WaMIOZHbqZg:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=4hRkIChQHKU:WaMIOZHbqZg:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=4hRkIChQHKU:WaMIOZHbqZg:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ChristopherMillersRandomThoughts/~4/4hRkIChQHKU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://anotherlab.rajapet.net/feeds/3246623909899953521/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://anotherlab.rajapet.net/2009/12/getting-list-of-databases-that-user-has.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/3246623909899953521?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/3246623909899953521?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ChristopherMillersRandomThoughts/~3/4hRkIChQHKU/getting-list-of-databases-that-user-has.html" title="Getting the list of databases that a user has rights to from SQL Server" /><author><name>Chris Miller</name><uri>http://www.blogger.com/profile/07265018778273203357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10716448619272595213" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://anotherlab.rajapet.net/2009/12/getting-list-of-databases-that-user-has.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUcFQXk9fyp7ImA9WxNUF0o.&quot;"><id>tag:blogger.com,1999:blog-11467244.post-4939211917500266053</id><published>2009-11-09T08:23:00.001-05:00</published><updated>2009-11-09T08:23:30.767-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-09T08:23:30.767-05:00</app:edited><title>This Day in Epic Fail: November 9th, 1876</title><content type="html">&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_natoSxTaPFU/SvgX0Kzgu6I/AAAAAAAAAXg/Qbqvb7ny69Q/s1600-h/This%20Day%20in%20FAIL%5B2%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="This Day in FAIL" border="0" alt="This Day in FAIL" src="http://lh6.ggpht.com/_natoSxTaPFU/SvgX0veb2BI/AAAAAAAAAXk/gNxr7HoOAds/This%20Day%20in%20FAIL_thumb.png?imgmax=800" width="244" height="226" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Lloyd Header of Cleveland Ohio discovered that he needed at least one more lesson in riding his &lt;a href="http://en.wikipedia.org/wiki/Penny-farthing"&gt;High Wheel bicycle&lt;/a&gt;.&amp;#160; The term “taking a header” was named after him.&lt;/p&gt;  &lt;h6&gt;image courtesy of &lt;a href="http://do-while.com"&gt;Do-While.com&lt;/a&gt;&lt;/h6&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11467244-4939211917500266053?l=anotherlab.rajapet.net' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=pY7IF4Ppcjo:gZqnT6yroOg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=pY7IF4Ppcjo:gZqnT6yroOg:2nqncYFp4_M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=2nqncYFp4_M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=pY7IF4Ppcjo:gZqnT6yroOg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?i=pY7IF4Ppcjo:gZqnT6yroOg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=pY7IF4Ppcjo:gZqnT6yroOg:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=pY7IF4Ppcjo:gZqnT6yroOg:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=pY7IF4Ppcjo:gZqnT6yroOg:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ChristopherMillersRandomThoughts/~4/pY7IF4Ppcjo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://anotherlab.rajapet.net/feeds/4939211917500266053/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://anotherlab.rajapet.net/2009/11/this-day-in-epic-fail-november-9th-1876.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/4939211917500266053?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/4939211917500266053?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ChristopherMillersRandomThoughts/~3/pY7IF4Ppcjo/this-day-in-epic-fail-november-9th-1876.html" title="This Day in Epic Fail: November 9th, 1876" /><author><name>Chris Miller</name><uri>http://www.blogger.com/profile/07265018778273203357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10716448619272595213" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://anotherlab.rajapet.net/2009/11/this-day-in-epic-fail-november-9th-1876.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEICQnw8fip7ImA9WxNVGEk.&quot;"><id>tag:blogger.com,1999:blog-11467244.post-309195480063254753</id><published>2009-10-29T14:56:00.001-04:00</published><updated>2009-10-29T14:56:03.276-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-29T14:56:03.276-04:00</app:edited><title>I’m now a MCP</title><content type="html">&lt;p&gt;A couple of weeks ago I went away to a “boot camp” to prep for a set of Microsoft certification exams.&amp;#160; After a few years of plugging away at .NET programming, I got budget approval to take a class to prep for the MCTS ASP.NET 3.5 certification.&amp;#160; I’ve always wanted to do it and every now and then we get a RFP that has a line item about having MCP’s on staff.&lt;/p&gt;  &lt;p&gt;There are two exams, the first one is &lt;a href="http://www.microsoft.com/learning/en/us/exam.aspx?ID=70-536"&gt;70-536&lt;/a&gt; (Microsoft .NET Framework – Application Development Foundation).&amp;#160; The second one is &lt;a href="http://www.microsoft.com/learning/en/us/exam.aspx?ID=70-562"&gt;70-562&lt;/a&gt; (Microsoft .NET Framework 3.5, ASP.NET Application Development).&amp;#160; When you pass both, you get the MCTS certification.&amp;#160; From there, you can take additional exams for more certifications.&lt;/p&gt;  &lt;p&gt;I’ve been doing .NET programming for a few years, but it’s been pretty much self-taught all the way.&amp;#160; One of the goals of getting the MCTS certification was to learn where my strengths and weaknesses are.&amp;#160; About 2 years ago, we bought a self paced training kit for the MCPD exam.&amp;#160; After spending some time with the books and practice exams, I knew I needed some serious prep time and with out any interruptions.&lt;/p&gt;  &lt;p&gt;I’m easily distracted by bright shiny objects.&amp;#160; I have the attention span of a mal-adjusted 4 year old.&amp;#160; This exam prep time would not be done at home or in the office.&amp;#160; I needed to get away from here.&amp;#160; After a brief search on &lt;a href="http://en.wikipedia.org/wiki/Internets"&gt;the Internets&lt;/a&gt;, I found a company that offered “boot camp” courses.&amp;#160; &lt;a href="http://www.trainingcamp.com/"&gt;Training Camp&lt;/a&gt; offered a &lt;a href="http://www.trainingcamp.com/training/microsoft/mcts2008aspnet/overview.aspx"&gt;7 day boot camp course&lt;/a&gt; for getting the MCTS ASP.NET certification.&lt;/p&gt;  &lt;p&gt;They provided a seven day schedule of instructor led review, labs, and self tests. Their package included hotel accommodations, training material, two exam vouchers, plus breakfast and lunch.&amp;#160; The training material included the Microsoft Press self-paced training guides.&amp;#160; The &lt;a title="MCTS Self-Paced Training Kit (Exam 70-536): Microsoft® .NET Framework Application Development Foundation, Second edition (Hardcover)" href="http://www.amazon.com/MCTS-Self-Paced-Training-Exam-70-536/dp/0735626197/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1256841779&amp;amp;sr=8-1"&gt;70-536 guide&lt;/a&gt; weighed in at 750+ pages, while &lt;a title="MCTS Self-Paced Training Kit (Exam 70-562): Microsoft® .NET Framework 3.5 ASP.NET Application Development (Pro - Certification) (Hardcover)" href="http://www.amazon.com/MCTS-Self-Paced-Training-Exam-70-562/dp/073562562X/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1256841956&amp;amp;sr=1-1"&gt;70-562&lt;/a&gt; was a bit bigger at 1000 or so pages. The price was reasonable, compared to sessions offered by other vendors.&lt;/p&gt;  &lt;p&gt;I made arrangements to take their course at their PA location.&amp;#160; I planned on renting a car and driving down from Albany.&amp;#160; Accommodations would have been at the fabulous &lt;a href="http://www.fernwoodhotel.com/lodging.php"&gt;Fernwood Hotel&lt;/a&gt; in Bushkill, PA.&amp;#160; The training would have been at the Training Camp facility, not far from the hotel.&lt;/p&gt;  &lt;p&gt;After paying for the course, they sent back a list of videos to watch to prepare for the class.&amp;#160; They were not from the TrainingCamp company, but freely available from &lt;a href="http://www.asp.net"&gt;www.asp.net&lt;/a&gt;.&amp;#160; You can find them &lt;a href="http://www.asp.net/learn/videos/"&gt;here&lt;/a&gt;.&amp;#160; That felt a little bit cheesy, but on the other hand they didn’t need to reinvent the wheel.&lt;/p&gt;  &lt;p&gt;A week before the course was supported to begin, they canceled it.&amp;#160; They didn’t have enough people confirmed for the course.&amp;#160; They did have one in Orlando, starting the following week.&amp;#160; So it was off to Orlando.&amp;#160; Suprisingly, this ended up being a good thing.&lt;/p&gt;  &lt;p&gt;The training was in the hotel that I would be staying in, the Marriott Courtyard out at the Orlando airport.&amp;#160; Since this was a remote location for Training Camp, they were using laptop computers.&amp;#160; It’s much easier to ship laptops around than desktop computers.&amp;#160; We were issued the laptops on the first day and we got to hold on to them 24/7.&amp;#160; This meant, we could use the laptops to study the labs and self-tests in our hotel rooms after dinner.&amp;#160; If I had gone to the PA session, I would have use the PC’s in their labs. &lt;/p&gt;  &lt;p&gt;The instructor was top notch.&amp;#160; If you ever go for training through Training Camp, ask for the sessions taught buy Bill Chapman.&amp;#160; Just google &lt;a href="http://www.google.com/search?q=bill+chapman+mct"&gt;“Bill Chapman MCT”&lt;/a&gt;, he knows the stuff and knows how to teach it to you.&amp;#160; He was a big reason why I passed the exams.&amp;#160; The man has more certifications than I knew even existed.&amp;#160; I think Microsoft makes up imaginary certifications just to trick Bill.&amp;#160; It wont work, he’s that good.&lt;/p&gt;  &lt;p&gt;We started at 8am every morning.&amp;#160; After lunch, we would go to around 5pm.&amp;#160; Then we were cut loose to find our supper.&amp;#160; After dinner, We were expected to study the exams and take the practice exams, with lights out at 10pm.&amp;#160; It was very draining. By 10pm on the first few nights, my brain was toast and I went to bed.&amp;#160; No TV, no touristy type of things.&amp;#160; Just studying.&lt;/p&gt;  &lt;p&gt;We spent 3 days on the material that would be in the 536 exam.&amp;#160; The fourth day was exam day.&amp;#160; We had 18 people in the class, on the fourth day the first 10 of us trooped in to take the exam.&amp;#160; The exams are scored from 0 to 1000, with 700 being the passing score.&amp;#160; Based on the practice exams, I was running at at 85%-95% correct.&amp;#160; I felt good walking into the exam.&lt;/p&gt;  &lt;p&gt;And then I got hammered with the actual exam.&amp;#160; The license agreement that I accepted when I took the exam precludes me from discussing any of the questions, but I can say that the material on the test did not match what we had been prepping for.&amp;#160; There was considerable overlap, but there was a lot of stuff that I had not seen before.&amp;#160; I passed the exam, but it was not pretty.&lt;/p&gt;  &lt;p&gt;Apparently, as we found out afterwards, Microsoft had updated the exam the week before.&amp;#160; They do that, not often, but enough to keep the exam current.&amp;#160; They focus the questions more on the newer technologies and start dropping the questions on the older material.&amp;#160; We just had the misfortune of getting a new exam before the study material had caught up.&amp;#160; Only two of us passed that exam.&amp;#160; After the exam, we were handed the second exam study guide with the instructions to start reading it.&amp;#160; That took care of Thursday.&amp;#160; Friday morning, we would tackle ASP.NET.&lt;/p&gt;  &lt;p&gt;Most of the people who had failed the exam opted to spend their remaining time studying for that exam and then retake it on the final day, instead of taking the second exam.&amp;#160; We had two exam vouchers, you can retake a failed exam.&amp;#160; According to the instructor,the 536 exam is one of the harder Microsoft exams.&amp;#160; If I had failed it, I think I would opted to retake it and study for 562 on my own time. &lt;/p&gt;  &lt;p&gt;We had Friday and Saturday to review the materials for the second exam.&amp;#160; I woke up on Friday with a bad cold.&amp;#160; Headache, runny nose, sore throat, body aches, it was not a good way to start the day.&amp;#160; We ripped through the prep book at high speed.&amp;#160; We had the afternoons and evenings to do the labs and take the practice exams.&amp;#160; I don’t do too much work with ASP.NET, I really needed the study time.&amp;#160; I was so wiped out from the cold, I went to bed right after dinner on those two nights.&amp;#160; On Saturday, I took the practice exam a few times and scored in the 35% to 40% range, well below what I needed to pass.&lt;/p&gt;  &lt;p&gt;We had all Sunday morning to prep for the exam.&amp;#160; We had to start the exam by noon at the latest, but you could take it anytime after 8am..&amp;#160; I woke up Sunday morning feeling physically horrible, but mentally fit.&amp;#160; I had the choice of taking the exam now or go home with the test voucher and take it at a later date.&amp;#160; I decided to take the exam now and if I failed it, to find out where my weak points were and retake the exam later.&lt;/p&gt;  &lt;p&gt;I went in to take the exam right after breakfast.&amp;#160; I went in with a bag of cough drops, no sense bothering the other people taking their exams with my hacking.&amp;#160; The exam proctor smelled the cough drops and asked for one.&amp;#160; On the way into the hotel, a bug had flown into her mouth and she wanted something drastic to get that taste out of her mouth.&amp;#160; Personally, I would have gone for something a little less toxic tasting, but it worked.&lt;/p&gt;  &lt;p&gt;One of the lessons that Bill had drilled into us was if if you think you will fail the exam, you will.&amp;#160; I went in with the attitude that I will pass this exam.&amp;#160; And I did.&amp;#160; It wasn’t my best score on a test, but it was a passing score and that’s what counted.&amp;#160; I had now earned the MCTS certification.&amp;#160; I went back and thanked Bill and then went to airport to get an earlier flight home.&lt;/p&gt;  &lt;p&gt;The boot camp wasn’t cheap, but I know I wouldn’t have passed the exams without attending it.&amp;#160; The instructor was excellent and being away from home without any distractions allowed me to study without interruption.&amp;#160; Being able to study in my room was a nice bonus, if I ever do one of these things again, I would try to it in the same way.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_natoSxTaPFU/SunlQLnNWrI/AAAAAAAAAXY/2A6_PI4L-ec/s1600-h/MCTS%28rgb%29_1102%5B3%5D.png"&gt;&lt;img title="MCTS(rgb)_1102" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="84" alt="MCTS(rgb)_1102" src="http://lh5.ggpht.com/_natoSxTaPFU/SunlQtq9bOI/AAAAAAAAAXc/ljemYu08JdM/MCTS%28rgb%29_1102_thumb%5B1%5D.png?imgmax=800" width="365" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11467244-309195480063254753?l=anotherlab.rajapet.net' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=TZe7TmXKBhU:uQPUoCKomgk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=TZe7TmXKBhU:uQPUoCKomgk:2nqncYFp4_M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=2nqncYFp4_M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=TZe7TmXKBhU:uQPUoCKomgk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?i=TZe7TmXKBhU:uQPUoCKomgk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=TZe7TmXKBhU:uQPUoCKomgk:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=TZe7TmXKBhU:uQPUoCKomgk:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=TZe7TmXKBhU:uQPUoCKomgk:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ChristopherMillersRandomThoughts/~4/TZe7TmXKBhU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://anotherlab.rajapet.net/feeds/309195480063254753/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://anotherlab.rajapet.net/2009/10/im-now-mcp.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/309195480063254753?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/309195480063254753?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ChristopherMillersRandomThoughts/~3/TZe7TmXKBhU/im-now-mcp.html" title="I’m now a MCP" /><author><name>Chris Miller</name><uri>http://www.blogger.com/profile/07265018778273203357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10716448619272595213" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://anotherlab.rajapet.net/2009/10/im-now-mcp.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE4FR30-fSp7ImA9WxNVF0Q.&quot;"><id>tag:blogger.com,1999:blog-11467244.post-2890560692366677115</id><published>2009-10-29T01:08:00.001-04:00</published><updated>2009-10-29T01:08:36.355-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-29T01:08:36.355-04:00</app:edited><title>When HTML encoding can bite you</title><content type="html">&lt;p&gt;I’ve been using &lt;a href="http://tweetdeck.com/beta/"&gt;TweetDeck&lt;/a&gt; to follow &lt;a href="http://twitter.com/anotherlab"&gt;Twitter&lt;/a&gt;.&amp;#160; It’s a great app, but it has some quirks.&amp;#160; Like it’s ginormous memory usage.&amp;#160;&amp;#160; Another is how it renders the text of a tweet. I’ve seen a few tweets go by where the text had HTML escape sequences instead of the text.&amp;#160; &lt;/p&gt;  &lt;p&gt;This tweet is an example: &lt;a href="http://twitter.com/KristiGustafson/status/5231052312"&gt;http://twitter.com/KristiGustafson/status/5231052312&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;It should display as:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;City shelves happy hour: Many of you will be glad we aren’t this city — they’ve shelved their.. &lt;a href="http://bit.ly/10QmUr"&gt;http://bit.ly/10QmUr&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;In Tweetdeck, it displays as:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;City shelves happy hour: Many of you will be glad we aren&amp;amp;#8217;t this city &amp;amp;#8212; they&amp;amp;#8217;ve shelved their.. &lt;a href="http://bit.ly/10QmUr"&gt;http://bit.ly/10QmUr&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;A screenshot of that tweet:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_natoSxTaPFU/SukjT4LJoPI/AAAAAAAAAXE/HUVDdDrbalI/s1600-h/td%5B3%5D.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="td" border="0" alt="td" src="http://lh6.ggpht.com/_natoSxTaPFU/SukjUH7I66I/AAAAAAAAAXI/Lbc7UlNYT6k/td_thumb%5B1%5D.png?imgmax=800" width="332" height="189" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;If you view the link on Twitter, you’ll see the text the “right” way.&amp;#160; I couldn’t figure out what was wrong.&amp;#160; I posted a message in the TweetDeck support site and they couldn’t replicate the problem.&amp;#160; Then I looked at bottom line of the tweet.&amp;#160; It has been posted to Twitter from &lt;a href="http://twitterfeed.com"&gt;TwitterFeed&lt;/a&gt;.&amp;#160; I had never heard of TwitterFeed, so I signed up for an account.&lt;/p&gt;  &lt;p&gt;TwitterFeed is a free service that can scan your blog’s RSS feed and look for new blog postings.&amp;#160; It can then post the first 100 or so characters from the post to your Twitter and/or Facebook accounts.&amp;#160; And that’s where the problem occurs.&amp;#160; &lt;/p&gt;  &lt;p&gt;HTML and XML use &lt;a href="http://www.w3.org/MarkUp/html-spec/html-spec_13.html"&gt;escape sequences to define special characters&lt;/a&gt;.&amp;#160; What you see rendered in the browser is not literally the same text in the source for that page.&amp;#160; Literal characters like “&amp;lt;” and “&amp;gt;” have special meaning in XML and HTML.&amp;#160; To display those characters on the page, they needed to be encoded as &amp;amp;lt; and &amp;amp;gt; respectively.&amp;#160; It’s all magic that goes on behind the scenes, you usually are never aware of it.&lt;/p&gt;  &lt;p&gt;When TwitterFeed gets the latest post from your blog, it’s pulling it from the RSS feed and the text is encoded with the right escape sequences.&amp;#160; They then call the Twitter and/or Facebook API to post that text.&amp;#160; They are sending HTML/XML encoded text to functions that are expecting plain text.&amp;#160; When Twitter displays that new blog posting as a tweet, it’s including the encoded text.&amp;#160; Your browser sees that encoding and decodes it back again.&amp;#160; Facebook on the other hand displays the text encoded.&lt;/p&gt;  &lt;p&gt;TweetDeck isn’t a browser, it’s a desktop or mobile application.&amp;#160; It renders the tweets as plain text and assumes that the API call that it suing to get tweets from Twitter is sending back plain text.&amp;#160; So the question is where is it broken.&amp;#160; I’ve only seen this problem with entrties posted by TwitterFeed, I would be the first place I would look.&amp;#160; I think they will need to a HTML decode on the text that they are scraping from the RSS feed and send it as plain text to Twitter and Facebook API’s.&lt;/p&gt;  &lt;p&gt;btw:&amp;#160; &lt;a href="http://twitter.com/KristiGustafson"&gt;Kristi Gustafson&lt;/a&gt; is worth following, even if her text is getting mangled by TwitterFeed.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11467244-2890560692366677115?l=anotherlab.rajapet.net' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=n14oiVgxJEs:J1E5INei7Hw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=n14oiVgxJEs:J1E5INei7Hw:2nqncYFp4_M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=2nqncYFp4_M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=n14oiVgxJEs:J1E5INei7Hw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?i=n14oiVgxJEs:J1E5INei7Hw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=n14oiVgxJEs:J1E5INei7Hw:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=n14oiVgxJEs:J1E5INei7Hw:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=n14oiVgxJEs:J1E5INei7Hw:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ChristopherMillersRandomThoughts/~4/n14oiVgxJEs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://anotherlab.rajapet.net/feeds/2890560692366677115/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://anotherlab.rajapet.net/2009/10/when-html-encoding-can-bite-you.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/2890560692366677115?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/2890560692366677115?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ChristopherMillersRandomThoughts/~3/n14oiVgxJEs/when-html-encoding-can-bite-you.html" title="When HTML encoding can bite you" /><author><name>Chris Miller</name><uri>http://www.blogger.com/profile/07265018778273203357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10716448619272595213" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><feedburner:origLink>http://anotherlab.rajapet.net/2009/10/when-html-encoding-can-bite-you.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A08EQH8-fCp7ImA9WxNXGUs.&quot;"><id>tag:blogger.com,1999:blog-11467244.post-9162469175571991363</id><published>2009-10-07T22:43:00.001-04:00</published><updated>2009-10-07T22:43:21.154-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-07T22:43:21.154-04:00</app:edited><title>Fess up when you made a mistake</title><content type="html">&lt;p&gt;I was working on a installer project for a new tool that we will be releasing this fall when I hit the most odd error.&amp;#160; Right after the installer started up, it would bomb out with an error message that the some files that it need were missing.&amp;#160; And it only happened when I called a command line app that I wrote from within the installer.&amp;#160; If I commented out the code that executed that app, the installer ran as expected.&lt;/p&gt;  &lt;p&gt;Ok, so your first thought would be what is that command line app doing?&amp;#160; It wasn’t my first thought.&amp;#160; It was tested code and it worked just fine in some other installer projects.&amp;#160; That was a rookie mistake and I should have known better.&amp;#160; The app does a few things.&amp;#160; It was designed to cache the settings of an installed app and restore so that if you do an upgrade in place, the settings are migrated from the old version to the new version.&amp;#160; Plus it has code to clean up extra files left around from previous installers.&lt;/p&gt;  &lt;p&gt;After beating my head against the wall for day on it, I contacted the technical support for the installer.&amp;#160; They asked for a sample project and I sent one in.&amp;#160; While I was waiting for a response back tech support, I continued to play around with the installer.&amp;#160; This tool (&lt;a href="http://www.installaware.com"&gt;InstallAware&lt;/a&gt;) has been rock solid for me since I started using it, it had to be something that I was doing wrong.&lt;/p&gt;  &lt;p&gt;I looked at source code for my command line app and sure enough, under the right conditions, it would delete the files that the installer was using to install the actual app.&amp;#160; That wasn’t good.&lt;/p&gt;  &lt;p&gt;Actually it &lt;em&gt;was&lt;/em&gt; good, the mistake was in my code which meant I could fix it.&amp;#160; Which I did and my installer did what it was supposed to do.&amp;#160; I would rather fix my own bugs than be dependent on another vendor fixing their bugs.&amp;#160; I had switched from Wise For Windows to InstallAware because it forever to get fixes from Wise.&amp;#160; They released a new build about once a year.&amp;#160; if they didn’t fix the bug and you didn’t have a work around, then that bug became a feature.&lt;/p&gt;  &lt;p&gt;Meanwhile, I still had an open support case with InstallAware.&amp;#160; I immediately logged into their support site and I closed out the support request.&amp;#160; I added a brief note explaining that this was self-inflicted and explained why my code was turning in on itself.&amp;#160; A short while later I received a brief note from one of their support engineers thanking me for the explanation.&lt;/p&gt;  &lt;p&gt;I think the courtesy message to tech support is the right thing to do.&amp;#160; First of all it’s just common courtesy, it’s wrong to waste their time tracking down your bug after you have resolved it on your own.&amp;#160; Plus it’s going to help me if I need support from this company again.&amp;#160; If they had spent time tracking down a problem that was caused by my own carelessness, they would be less likely to help out with a legitimate support request.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11467244-9162469175571991363?l=anotherlab.rajapet.net' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=H-2s35H80sY:5hl0n2guClc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=H-2s35H80sY:5hl0n2guClc:2nqncYFp4_M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=2nqncYFp4_M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=H-2s35H80sY:5hl0n2guClc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?i=H-2s35H80sY:5hl0n2guClc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=H-2s35H80sY:5hl0n2guClc:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=H-2s35H80sY:5hl0n2guClc:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=H-2s35H80sY:5hl0n2guClc:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ChristopherMillersRandomThoughts/~4/H-2s35H80sY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://anotherlab.rajapet.net/feeds/9162469175571991363/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://anotherlab.rajapet.net/2009/10/fess-up-when-you-made-mistake.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/9162469175571991363?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/9162469175571991363?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ChristopherMillersRandomThoughts/~3/H-2s35H80sY/fess-up-when-you-made-mistake.html" title="Fess up when you made a mistake" /><author><name>Chris Miller</name><uri>http://www.blogger.com/profile/07265018778273203357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10716448619272595213" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://anotherlab.rajapet.net/2009/10/fess-up-when-you-made-mistake.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUEGSH88fCp7ImA9WxNXFE0.&quot;"><id>tag:blogger.com,1999:blog-11467244.post-3496734858813484241</id><published>2009-10-01T10:33:00.001-04:00</published><updated>2009-10-01T10:33:49.174-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-01T10:33:49.174-04:00</app:edited><title>I don’t care who signs a petition, Roman Polanski is a convicted sexual predator who needs to do his time.</title><content type="html">&lt;p&gt;I’ve never subscribed to the “Hollywood Elite” theory about radical liberals being in charge of Tinseltown, but I do think more attention is paid to people who lean to the left.&amp;#160; And too much attention is being paid to the people who signed the petition demanding the release of convicted child molester Roman Polanski.&amp;#160; Would they do the same thing if his name was Roman Ray Polan and was a Dade County dish washer?&amp;#160; I don’t think so.&lt;/p&gt;  &lt;p&gt;Polanski was arrested by Swiss police when he tried to enter Switzerland because of an outstanding 1978 arrest warrant.&amp;#160; He was to attend the Zurich Film Festival, where he would have been honored with a Lifetime Achievement Award for his film work.&amp;#160; Representing the Zurich Film Festival, Debra Winger made the following &lt;a href="http://community.livejournal.com/ohnotheydidnt/39599337.html"&gt;comment&lt;/a&gt;:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;“We hope today this latest (arrest) order will be dropped. It is based on a three-decades-old case that is dead but for minor technicalities. We stand by him and await his release and his next masterpiece.”&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I have no idea what if anything, was going through their minds when they signed the petition.&amp;#160; Roman Polanski plea bargained the charges of having given alcohol and drugs to a 13-year old, and then allegedly sexually assaulted her down to being guilty for having sex with a minor.&amp;#160; He then fled the country to avoid sentencing.&amp;#160; Those are the facts, no one has been unjustly accused here.&lt;/p&gt;  &lt;p&gt;I have never heard of sexual assault being described as a minor technicality.&amp;#160; He took a 13 year old child, gave her drugs and alcohol and then sexually assaulted her.&amp;#160; It wasn’t statutory rape, the victim had testified that she pleaded with Polanski just to take her home.&lt;/p&gt;  &lt;p&gt;I don’t buy the argument that it’s been 30 years and that it’s time to let it go.&amp;#160; Polanski was a fugitive from justice for the last 3 decades, he actively avoided going to locations where he could be expedited from.&amp;#160; He could have done his time and resumed his career decades ago.&amp;#160; He probably would received a one year sentence, would have been paroled long before the year was up.&lt;/p&gt;  &lt;p&gt;That worst part of all of this is that the victim has to relive what happened to her all over again.&amp;#160; While Polanski was living openly in a country that refused to extradite him, she had to rebuild her live, knowing that he had got away without paying consequences.&amp;#160; The only good part for her was that he had already plead guilty, she doesn’t have to testify again.&lt;/p&gt;  &lt;p&gt;I hope that the authorities in Switzerland ignore these people and honor the US extradition request.&amp;#160; The Swiss do not need to take a position one way or another about Polanski’s fate.&amp;#160; They just need to honor a legal expedition request.&lt;/p&gt;  &lt;p&gt;Personally, I’m sad to see some of those names on that petition.&amp;#160; I don’t want to see their movies anymore.&lt;/p&gt;  &lt;p&gt;Here’s the list as of the time of this posting:&lt;/p&gt;  &lt;p&gt;Abderrahmane Sissako, Alain Corneau, Alain Jessua, Alain Terzian, Albert Gauvin, Alejandro Gonzalez Inarritu, Alexander Astruc, Alexander Payne, Alexandre Arcady, Alexandre Desplat, Alexandre Tylski, Alfonso Cuaron, André Buytaers, André Larquié, Antoine Aronin, Arielle Dombasle, Asia Argento, Barbet Schroeder, Bernard-Henri Lévy, Bertrand Tavernier, Betrand Van Effenterre, Buck Henry, Camille Meyer, Candice Belaisch-Goldchmit, Carine Sarna, Charlotte Silvera, Christian Carion, Christian Gion, Christophe Barratier, Claude Lanzmann, Claude Lelouch, Claude Miller, Corinne Figuet, Costa Gavras, Cécile Telerman, Danis Tanovic, Danièle Thompson, Darren Aronofsky, David Heyman, David Lynch, Davide Homitsu Riboli, Diane Kurys, Diane von Furstenberg, Djamel Bennecib, Dominique Crevecoeur, Elie Chouraqui, Elsa Zylberstein, Emir Kusturica, Etienne Faure, Ettore Scola, Eugenia Varela Navarro, Fanny Ardant, Fatih Akin, François Margolin, Gabriel Auer, Gaelle Lancien, Georges Dybman, Gianluca Farinelli (Cinémathèque de de Bologne), Gilles Behat, Gilles Jacob, Giuseppe Bertolucci , Giuseppe Tornatore, Guillaume Stirn, Gérard Lenne, Harmony Korinne, Henning Carlsen, Isabelle Adjani, Isabelle Huppert, Jacques Bral, Jacques Fansten, Jacques Richard, Jan Kounen, Jean-Charles Tacchella, Jean-Jacques Annaud, Jean-Jacques Beineix, Jean-Loup Hubert, Jean-Marc Ghanassia, Jean-Paul Dayan, Jean-Paul Rappeneau, Jean-Paul Salomé, Jean-PierreMarois, Jean-michel Carre, Jeanne Moreau, Jerry Schatzberg, Jessika Cohen, Johanna Gozlan, John Landis, Jonathan Demme, Joël Farges, Julian Schnabel, Just Jaeckin, Jérôme Cornuau, Katarina De Meulder, Kent Jones (World Cinema Foundation), Ladislas Kijno, Laurence Roulet, Laurent Heynemann, Liria Begeja , Louis Garrel, Luc Barnier , Luc et Jean-Pierre Dardenne, Marc Guidoni, Marc Sandberg, Marco Bellochio, Margaret Walker, Marie Nieves Perez Neël, Mario Martone, Mario Monicelli, Martin Scorsese, Mathieu Celary, Michael Mann, Michel Ferry, Michel Ocelot, Michele Placido, Miguel Courtois, Mike Nichols, Milan Kundera, Monica Bellucci, Morgane Beauverger, Nadine Trintignant, Nathalie Faucheux, Neil Jordan, Nelly Kaplan, Nicolas Mauvernay, Nil Symchowicz, Olivier Assayas, Olivier Soares Barbosa, Paolo Sorrentino, Pascal Bruckner, Pascal Thomas, Patrice Chéreau, Patrice Leconte, Patrick Bouchitey, Patrick Braoudé, Patrick Mimouni, Paul Auster, Paul Boujenah, Pedro Almodovar, Philippe Corbé, Philippe Radault, Pierre Forciniti, Pierre Jolivet, Radovan Tadic, Radu Mihaileanu, Raphael Rebibo, René Gainville, Richard Pena (Directeur Festival de NY), Robert Hossein, Roger Kahane, Rosalinde et Michel Deville, Salman Rushdie, Sam Gabarski, Sam Mendes, Sandra Nicolier, Scott Foundas, Serge Toubiana, Souleymane Cissé, Stephane Allagnon, Stephen Frears, Steven Soderbergh, Taylor Hackford, Terry Gilliam, Thierry Frémaux, Thierry Kamami, Tilda Swinton, Tom Tykwer, Tonie Marshall, Tony Gatlif, Vinciane Lecocq, Walter Salles, Wes Anderson, William Shawcross, Wim Wenders., Wong Kar Waï, Woody Allen, Xavier Beauvois , Yamina Benguigui, Yann Moix, Yasmina Reza, Ysabelle Saura Del Pan&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11467244-3496734858813484241?l=anotherlab.rajapet.net' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=-n1Qjo1fvIU:N7zTKcZh5p0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=-n1Qjo1fvIU:N7zTKcZh5p0:2nqncYFp4_M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=2nqncYFp4_M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=-n1Qjo1fvIU:N7zTKcZh5p0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?i=-n1Qjo1fvIU:N7zTKcZh5p0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=-n1Qjo1fvIU:N7zTKcZh5p0:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=-n1Qjo1fvIU:N7zTKcZh5p0:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=-n1Qjo1fvIU:N7zTKcZh5p0:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ChristopherMillersRandomThoughts/~4/-n1Qjo1fvIU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://anotherlab.rajapet.net/feeds/3496734858813484241/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://anotherlab.rajapet.net/2009/10/i-dont-care-who-signs-petition-roman.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/3496734858813484241?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/3496734858813484241?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ChristopherMillersRandomThoughts/~3/-n1Qjo1fvIU/i-dont-care-who-signs-petition-roman.html" title="I don’t care who signs a petition, Roman Polanski is a convicted sexual predator who needs to do his time." /><author><name>Chris Miller</name><uri>http://www.blogger.com/profile/07265018778273203357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10716448619272595213" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://anotherlab.rajapet.net/2009/10/i-dont-care-who-signs-petition-roman.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEMHQn8_cSp7ImA9WxNQEUQ.&quot;"><id>tag:blogger.com,1999:blog-11467244.post-698522528767346604</id><published>2009-09-17T09:00:00.001-04:00</published><updated>2009-09-17T09:00:33.149-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-17T09:00:33.149-04:00</app:edited><title>You always need to read your bank and credit statements</title><content type="html">&lt;p&gt;It was with some interest that I read &lt;a title="Account number mix-up, missed deadline put $400 at risk" href="http://blog.timesunion.com/advocate/account-number-mix-up-missed-deadline-put-400-at-risk/1886/"&gt;today’s “The Advocate” column&lt;/a&gt; in the &lt;a href="http://www.timesunion.com/"&gt;Times Union&lt;/a&gt;.&amp;#160; A man had $400 taken out of his credit union account and the credit union wasn’t going to give it back to him.&amp;#160; He has an account with the &lt;a href="http://www.sefcu.com/"&gt;State Employees Federal Credit Union&lt;/a&gt; (SEFCU).&amp;#160; Another SEFCU member was making a bill payment over the phone and mistyped her account number.&amp;#160; It ended up being his account number and the money was taken from his account.&lt;/p&gt;  &lt;p&gt;The guy was on vacation and did not get his bank statements in a timely manner.&amp;#160; When he noticed the error, he contacted SEFCU and they declined to reverse the transaction because he did not notify them within a 60 day window of the transaction.&amp;#160; He contacted the Advocate (Cathy Woodruff), who was able to reach an upper level marketing manager who was able to get the transaction reversed in a few hours.&amp;#160; The manager said that the transaction could have been reversed if the SEFCU member had asked for a manager.&lt;/p&gt;  &lt;p&gt;That’s ridiculous, the service representatives that originally handled the case could have easily waved the 60 day period limitation.&amp;#160; It’s just an arbitrary time limit that SEFCU had set, nothing more.&amp;#160; If you think about this, it’s really SEFCU’s fault that they allowed the transaction to go through in the first place.&lt;/p&gt;  &lt;p&gt;The woman who typed in the wrong number had made a simple mistake entering in the account number.&amp;#160; There should be enough security in SEFCU’s over the phone banking where you should only be able to access the accounts that you actually have access to.&amp;#160; If you think about, that’s a huge security hole in their system.&lt;/p&gt;  &lt;p&gt;Hypothetically speaking, you could open an account with SEFCU today and make payments from other people’s account by lopping one digit of your own account number.&amp;#160; it may work, it may not, but apparently the SEFCU over the phone banking system will let you do that.&lt;/p&gt;  &lt;p&gt;You really have to examine your bank statements each month with a fine toothed comb.&amp;#160; And that goes for your credit cards too.&amp;#160; Nearly two years ago, &lt;a title="Citizens Bank Debit card security worries me" href="http://anotherlab.rajapet.net/2007/12/citizens-bank-debit-card-security.html"&gt;something similar happened to my checking account with Citizens Bank&lt;/a&gt;.&amp;#160; You can not count on the bank to protect your money, you have to monitor the transaction for your own fiscal safety.&amp;#160; And if you get caught in a jam like this, &lt;a href="http://blog.timesunion.com/advocate/contacting-the-advocate/"&gt;contact&lt;/a&gt; your local consumer affairs person at the newspaper or TV station.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11467244-698522528767346604?l=anotherlab.rajapet.net' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=SUxMD1Z2fgc:5R2gMbP_eY8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=SUxMD1Z2fgc:5R2gMbP_eY8:2nqncYFp4_M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=2nqncYFp4_M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=SUxMD1Z2fgc:5R2gMbP_eY8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?i=SUxMD1Z2fgc:5R2gMbP_eY8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=SUxMD1Z2fgc:5R2gMbP_eY8:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=SUxMD1Z2fgc:5R2gMbP_eY8:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=SUxMD1Z2fgc:5R2gMbP_eY8:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ChristopherMillersRandomThoughts/~4/SUxMD1Z2fgc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://anotherlab.rajapet.net/feeds/698522528767346604/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://anotherlab.rajapet.net/2009/09/you-always-have-read-your-bank-and.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/698522528767346604?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/698522528767346604?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ChristopherMillersRandomThoughts/~3/SUxMD1Z2fgc/you-always-have-read-your-bank-and.html" title="You always need to read your bank and credit statements" /><author><name>Chris Miller</name><uri>http://www.blogger.com/profile/07265018778273203357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10716448619272595213" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://anotherlab.rajapet.net/2009/09/you-always-have-read-your-bank-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0UMR3kycCp7ImA9WxNRFUQ.&quot;"><id>tag:blogger.com,1999:blog-11467244.post-4477614298085375215</id><published>2009-09-10T10:01:00.001-04:00</published><updated>2009-09-10T10:01:26.798-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-10T10:01:26.798-04:00</app:edited><title>Wireshark work around for Windows 7</title><content type="html">&lt;p&gt;I do a fair amount of programming at the socket level and &lt;a href="http://www.wireshark.org/"&gt;Wireshark&lt;/a&gt; is one the tools that I use to test the data going over the wire.&amp;#160; Wireshark is a free application that analyzes packets going across the network.&amp;#160; It knows about the different protocols and can display the data with a nice GUI front end.&amp;#160; It’s a cross platform tool, and I hit a small snag when I went to Windows 7. &lt;/p&gt;  &lt;p&gt;To capture the packets, Wireshark uses pcap, which is an API for capturing network data.&amp;#160; Unix/Linux systems use a libpcap library, Windows uses WinPcap.&amp;#160; When you install Wireshark under WIndows, the installer checks to see if WinPcap is installed and if it’s not, it runs a bundled installer for the latest version of WinPCap.&lt;/p&gt;  &lt;p&gt;When I installed Wireshark on my Windows 7 box, the installer was unable to install WinPCap.&amp;#160; It displayed the following error message:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;This version of Windows is not supported by WinPcap 4.1 beta5.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Oh, the joy of using a new version of Windows.&amp;#160; There is a work around.&amp;#160; Download the WinPcap installer from &lt;a href="http://www.winpcap.org/install/default.htm"&gt;here&lt;/a&gt; and install it first.&amp;#160; When you install it, run it in Vista compatibility mode.&amp;#160; &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;With Explorer, Right-click on the installer and select “Troubleshoot compatibility”.&amp;#160; This will bring up the “Program Compatibility” dialog. &lt;/li&gt;    &lt;li&gt;Select the second option, “Troubleshoot program”.&lt;/li&gt;    &lt;li&gt;Under “What problems do you notice”, select the first checkbox, “The program worked in earlier versions of WIndows but wont install or run now”.&amp;#160; Then press the “Next” button.&lt;/li&gt;    &lt;li&gt;Under “Which version of Windows did this program work on before?”, select “Windows Vista”.&amp;#160; Press the “Next” button.&lt;/li&gt;    &lt;li&gt;Under “Test compatibility settings for the program”, press the “Start the program…” button.&amp;#160; This should allow you to install WinPCap.&lt;/li&gt;    &lt;li&gt;After the installer has completed, press the “Next” button on the “Test compatibility settings for the program” dialog.&lt;/li&gt;    &lt;li&gt;On the “Troubleshooting has completed. Is the problem fixed?” page,&amp;#160; select “Yes, save these setting for this program” to close out the “Program Compatibility” dialog&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;At this point, you should have WinPcap successfully installed and you can now run the Wireshark installer.&amp;#160; The Wireshark installer will detected that WinPCap is already in place and you can complete the install.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11467244-4477614298085375215?l=anotherlab.rajapet.net' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=O6QpBdt8Yy8:OrRJpie1AAE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=O6QpBdt8Yy8:OrRJpie1AAE:2nqncYFp4_M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=2nqncYFp4_M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=O6QpBdt8Yy8:OrRJpie1AAE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?i=O6QpBdt8Yy8:OrRJpie1AAE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=O6QpBdt8Yy8:OrRJpie1AAE:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=O6QpBdt8Yy8:OrRJpie1AAE:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=O6QpBdt8Yy8:OrRJpie1AAE:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ChristopherMillersRandomThoughts/~4/O6QpBdt8Yy8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://anotherlab.rajapet.net/feeds/4477614298085375215/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://anotherlab.rajapet.net/2009/09/wireshark-work-around-for-windows-7.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/4477614298085375215?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/4477614298085375215?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ChristopherMillersRandomThoughts/~3/O6QpBdt8Yy8/wireshark-work-around-for-windows-7.html" title="Wireshark work around for Windows 7" /><author><name>Chris Miller</name><uri>http://www.blogger.com/profile/07265018778273203357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10716448619272595213" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://anotherlab.rajapet.net/2009/09/wireshark-work-around-for-windows-7.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkcASHY5eCp7ImA9WxNRFE8.&quot;"><id>tag:blogger.com,1999:blog-11467244.post-7252166549728823008</id><published>2009-09-08T11:32:00.001-04:00</published><updated>2009-09-08T11:34:09.820-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-08T11:34:09.820-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MS Office" /><category scheme="http://www.blogger.com/atom/ns#" term="Security" /><category scheme="http://www.blogger.com/atom/ns#" term="Annoyances" /><title>Blocking spam that appears to come from your own email address</title><content type="html">&lt;p&gt;At work, I get a lot of email where the sender has spoofed the email address so that it appears to come my work email address.&amp;#160; It’s annoying and our corporate email filter doesn’t catch it.&amp;#160; I did find a way to block it with a close to 100% success rate.&amp;#160; What I did was to create an email filter in the email application that traps those messages.&amp;#160; I’m using Outlook 2007, but the technique should would work for any email client that has decent filtering.&amp;#160; Here’s how I created the rule&lt;font face="Calibri" size="3"&gt; (using an obviously fake email address of a known spammer):&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoListParagraph" style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;span style="mso-fareast-font-family: calibri; mso-bidi-font-family: calibri"&gt;&lt;span style="mso-list: ignore"&gt;&lt;font face="Calibri" size="3"&gt;1.&lt;/font&gt;&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;From the Tools menu, select “Rules and Alerts…”&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoListParagraph" style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;span style="mso-fareast-font-family: calibri; mso-bidi-font-family: calibri"&gt;&lt;span style="mso-list: ignore"&gt;&lt;font face="Calibri" size="3"&gt;2.&lt;/font&gt;&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;From the “Rules and Alerts…” dialog, press the&amp;#160; “New Rule…” button.&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoListParagraph" style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;span style="mso-fareast-font-family: calibri; mso-bidi-font-family: calibri"&gt;&lt;span style="mso-list: ignore"&gt;&lt;font face="Calibri" size="3"&gt;3.&lt;/font&gt;&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;Under “Start from a blank rule” section, select “Check messages when they arrive” template.&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoListParagraph" style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;span style="mso-fareast-font-family: calibri; mso-bidi-font-family: calibri"&gt;&lt;span style="mso-list: ignore"&gt;&lt;font face="Calibri" size="3"&gt;4.&lt;/font&gt;&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;Under the dialog for “Which condition(s) do you want to check?”, select &amp;quot;with specific words in the message header&amp;quot;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoListParagraph" style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;span style="mso-fareast-font-family: calibri; mso-bidi-font-family: calibri"&gt;&lt;span style="mso-list: ignore"&gt;&lt;font face="Calibri" size="3"&gt;5.&lt;/font&gt;&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;Click on “specific words” to open the dialog box that allows you to enter the search criteria.&amp;#160; I entered the following list, you would enter what matches your junk email and each line is entered in separately:      &lt;br /&gt;X-Barracuda-Envelope-From: sanford.wallace@spamking.com&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt 0.25in; text-indent: 0.25in"&gt;&lt;font face="Calibri" size="3"&gt;From: &amp;lt;sanford.wallace@spamking.com&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoListParagraph" style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;span style="mso-fareast-font-family: calibri; mso-bidi-font-family: calibri"&gt;&lt;span style="mso-list: ignore"&gt;&lt;font face="Calibri" size="3"&gt;6.&lt;/font&gt;&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;After closing this dialog, press “Next”&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoListParagraph" style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;span style="mso-fareast-font-family: calibri; mso-bidi-font-family: calibri"&gt;&lt;span style="mso-list: ignore"&gt;&lt;font face="Calibri" size="3"&gt;7.&lt;/font&gt;&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;On the “What do you want to do with the message?” dialog, select the following actions:      &lt;br /&gt;mark it as read&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoListParagraph" style="margin: 0in 0in 0pt 0.5in"&gt;&lt;font face="Calibri" size="3"&gt;clear the Message Flag&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoListParagraph" style="margin: 0in 0in 0pt 0.5in"&gt;&lt;font face="Calibri" size="3"&gt;move it the specified folder&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoListParagraph" style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;span style="mso-fareast-font-family: calibri; mso-bidi-font-family: calibri"&gt;&lt;span style="mso-list: ignore"&gt;&lt;font face="Calibri" size="3"&gt;8.&lt;/font&gt;&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;Click on &amp;quot;specified&amp;quot; and select the &amp;quot;Junk E-mail&amp;quot; folder.&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoListParagraph" style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;span style="mso-fareast-font-family: calibri; mso-bidi-font-family: calibri"&gt;&lt;span style="mso-list: ignore"&gt;&lt;font face="Calibri" size="3"&gt;9.&lt;/font&gt;&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;Click the “Next” button to the Finish rule setup dialog.&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoListParagraph" style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;span style="mso-fareast-font-family: calibri; mso-bidi-font-family: calibri"&gt;&lt;span style="mso-list: ignore"&gt;&lt;font face="Calibri" size="3"&gt;10.&lt;/font&gt;&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;Name the rule and set &amp;quot;Turn on this rule&amp;quot;.&amp;#160; There is also a checkbox “Run this rule on messages already in “Inbox”.&amp;#160; You can set that checkbox to test the new rule.&amp;#160; If you have lots of messages in your inbox, create a new folder and copy some of the spam into that folder.&amp;#160; Then select that folder and edit the rule.&amp;#160; The “Run this rule…” checkbox will now list the name of the selected mail folder.&amp;#160; Your rule will run much faster on a mail folder with just a few times in it.&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoListParagraph" style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; mso-list: l0 level1 lfo1"&gt;&amp;#160;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt"&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri" size="3"&gt;As you edit the settings, Outlook will display a text representation of the rule as you configure it.&amp;#160; It should look something like this:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt"&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri" size="3"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p class="MsoNormal" style="margin: 0in 0in 0pt"&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Calibri" size="3"&gt;Apply this rule after the message arrives        &lt;br /&gt;&lt;/font&gt;&lt;font face="Calibri" size="3"&gt;with ‘X-Barracuda-Envelope-From: sanford.wallace@spamking.com or From: &amp;lt;sanford.wallace@spamking.com&amp;gt;‘ in the message header        &lt;br /&gt;&lt;/font&gt;&lt;font face="Calibri" size="3"&gt;clear the message flag        &lt;br /&gt;&lt;/font&gt;&lt;font face="Calibri" size="3"&gt;&amp;#160; and move it to the Junk E-Mail folder        &lt;br /&gt;&lt;/font&gt;&lt;font face="Calibri" size="3"&gt;&amp;#160; and mark it as read&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt"&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri" size="3"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt"&gt;&lt;font face="Calibri" size="3"&gt;You may need to tweak the rule a bit to match the right messages, but it’s fairly robust.&amp;#160; If you want to allow email from your own address, add an exception to the rule and have the exception match some specific text in your message header or your email signature.&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11467244-7252166549728823008?l=anotherlab.rajapet.net' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=6FRiIl4F618:0z_Ehl7fWNU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=6FRiIl4F618:0z_Ehl7fWNU:2nqncYFp4_M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=2nqncYFp4_M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=6FRiIl4F618:0z_Ehl7fWNU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?i=6FRiIl4F618:0z_Ehl7fWNU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=6FRiIl4F618:0z_Ehl7fWNU:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=6FRiIl4F618:0z_Ehl7fWNU:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=6FRiIl4F618:0z_Ehl7fWNU:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ChristopherMillersRandomThoughts/~4/6FRiIl4F618" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://anotherlab.rajapet.net/feeds/7252166549728823008/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://anotherlab.rajapet.net/2009/09/blocking-spam-that-appears-to-come-from.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/7252166549728823008?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/7252166549728823008?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ChristopherMillersRandomThoughts/~3/6FRiIl4F618/blocking-spam-that-appears-to-come-from.html" title="Blocking spam that appears to come from your own email address" /><author><name>Chris Miller</name><uri>http://www.blogger.com/profile/07265018778273203357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10716448619272595213" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://anotherlab.rajapet.net/2009/09/blocking-spam-that-appears-to-come-from.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUUCQXs4fSp7ImA9WxNSFUw.&quot;"><id>tag:blogger.com,1999:blog-11467244.post-5692982796422876258</id><published>2009-08-28T23:40:00.001-04:00</published><updated>2009-08-28T23:41:00.535-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-28T23:41:00.535-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Annoyances" /><category scheme="http://www.blogger.com/atom/ns#" term="Firefox" /><title>When Page Up and Page Down behave oddly in FireFox</title><content type="html">&lt;p&gt;I was viewing a web page with &lt;a href="http://www.mozilla.com/en-US/firefox/personal.html"&gt;Firefox 3.5.2&lt;/a&gt; the other day and I noticed the Page Up and Page Down keys were not behaving the right way.&amp;#160; Instead of scrolling, the page would flash a bit, but nothing really would happen.&amp;#160; I could still scroll with the mouse, but it bugged me.&amp;#160; Bugged me a lot.&lt;/p&gt;  &lt;p&gt;I did a bit of searching and discovered an odd little feature.&amp;#160; Select “Options…” from the “Tools” menu.&amp;#160; On the “Advanced tab”, select “General”.&amp;#160; There is an option, “Always use the cursor keys to navigate within pages”.&amp;#160; If that &lt;a href="http://support.mozilla.com/en-US/kb/Options+window+-+Advanced+panel?style_mode=inproduct#General_tab"&gt;option&lt;/a&gt; is set, the cursor keys can be used to select text on the page instead of navigating the page.&lt;/p&gt;  &lt;p&gt;By default, that option is not set.&amp;#160; However, you can toggle it on and off by pressing the F7 key.&amp;#160; And I must have pressed that key at some point and toggled that feature on.&amp;#160; Once I cleared that setting, I could use the Page Up and Page Down keys to navigate the page again.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11467244-5692982796422876258?l=anotherlab.rajapet.net' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=N7dGYyHhEr0:KjkyJoKbexc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=N7dGYyHhEr0:KjkyJoKbexc:2nqncYFp4_M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=2nqncYFp4_M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=N7dGYyHhEr0:KjkyJoKbexc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?i=N7dGYyHhEr0:KjkyJoKbexc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=N7dGYyHhEr0:KjkyJoKbexc:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=N7dGYyHhEr0:KjkyJoKbexc:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=N7dGYyHhEr0:KjkyJoKbexc:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ChristopherMillersRandomThoughts/~4/N7dGYyHhEr0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://anotherlab.rajapet.net/feeds/5692982796422876258/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://anotherlab.rajapet.net/2009/08/when-page-up-and-page-down-behave-odd.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/5692982796422876258?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/5692982796422876258?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ChristopherMillersRandomThoughts/~3/N7dGYyHhEr0/when-page-up-and-page-down-behave-odd.html" title="When Page Up and Page Down behave oddly in FireFox" /><author><name>Chris Miller</name><uri>http://www.blogger.com/profile/07265018778273203357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10716448619272595213" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://anotherlab.rajapet.net/2009/08/when-page-up-and-page-down-behave-odd.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEMFQn09cSp7ImA9WxNSE0o.&quot;"><id>tag:blogger.com,1999:blog-11467244.post-1337171091840128727</id><published>2009-08-27T08:33:00.001-04:00</published><updated>2009-08-27T08:33:33.369-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-27T08:33:33.369-04:00</app:edited><title>Looking forward to Delphi 2010</title><content type="html">&lt;p&gt;I just got the email from Embarcadero with the access code to get my copy of RAD Studio 2010.&amp;#160; Almost all of our products that are Delphi based are compiled with Delphi 2007, I’m looking forward to working with &lt;a title="Embarcadero RAD Studio 2010 What’s New" href="http://www.embarcadero.com/products/rad-studio/whats-new"&gt;2010 flavor of Delphi&lt;/a&gt;.&amp;#160; We do a lot of .NET development, but there is still a need for WIn32 code and Delphi has been a really good development platform for us.&amp;#160; &lt;/p&gt;  &lt;p&gt;I’ve had a software assurance contract since Delphi 7.&amp;#160; I don’t jump to next compiler just to get the next compiler, but I do want the new version to be able to evaluate the new version and see if the benefits out weigh the cost of porting to that version.&amp;#160; We chose not to use Delphi 2009.&amp;#160; We had just completed a painful upgrade to Delphi 2006 from Delphi 5 the year before.&amp;#160; The Delphi 7 port was easy because it supported Delphi 2006 components, but Delphi 2009 would have been major undertaking.&amp;#160; We still face the same porting challenges with Delphi 2010, but I still want to evaluate it and that port/no port decision.&lt;/p&gt;  &lt;p&gt;Of course the fun part is waiting for the 3rd party vendors to release their updated controls.&amp;#160; We use a fair number of 3rd party packages.&amp;#160; The biggest ones are DevExpress, &lt;a href="http://www.digital-metaphors.com/index.html"&gt;ReportBuilder&lt;/a&gt;, and &lt;a href="http://www.delphi-jedi.org/"&gt;JEDI&lt;/a&gt;.&amp;#160; &lt;a href="http://community.devexpress.com/blogs/ctodx/archive/2009/08/26/support-for-rad-studio-2010.aspx"&gt;DevExpress already put out a notice&lt;/a&gt; that they are a few days away from a release that will support RAD Studio 2010.&amp;#160; I’ll be able to do a lot more testing with.&amp;#160; There is no new information from Digital Metaphors about an update to ReportBuilder, but I would expect it fairly soon.&amp;#160; The &lt;a href="http://jvcl.delphi-jedi.org/Roadmap.html"&gt;roadmap page&lt;/a&gt; for the JEDI VCL shows that they intend on supporting Delphi 2010, but only sometime in 2009.&amp;#160; My guess would be that any component pack that supports Delphi 2009 should be fairly easy to port to Delphi 2010.&lt;/p&gt;  &lt;p&gt;We have a fair number of components that have been either &lt;a href="http://anotherlab.rajapet.net/2007/03/where-is-putersoftcom.html"&gt;abandoned by the developer&lt;/a&gt; or we chose to keep at a specific version.&amp;#160; Those components, I had ported to Delphi 2006/2007 back a few years ago.&amp;#160; Delphi 2009 was a &lt;a href="http://blog.gurock.com/postings/delphi-2009-and-backwards-compatibility/471/"&gt;big&lt;/a&gt; &lt;a href="http://chee-yang.blogspot.com/2008/10/delphi-2009-unicode.html"&gt;change&lt;/a&gt; and it will probably take &lt;a href="http://stackoverflow.com/questions/120353/delphi-2009-turbopower-library-conversions"&gt;more&lt;/a&gt; &lt;a href="http://stackoverflow.com/questions/300446/porting-a-unicode-enabled-delphi-2006-application-to-delphi-2009"&gt;work&lt;/a&gt;, but it shouldn’t be that bad.&amp;#160; I may make the decision to drop some of the lesser used components and replace them with equivalent components from DevExpress or JEDI.&amp;#160; We use Abbrevia library that was open sourced by TurboPower when they exited the market.&amp;#160; It has a Delphi 2009 &lt;a href="http://www.songbeamer.com/delphi/"&gt;port&lt;/a&gt;, that should be an easy one to port to Delphi 2010.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11467244-1337171091840128727?l=anotherlab.rajapet.net' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=zK783T6V0yA:_zMCCTUoSlk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=zK783T6V0yA:_zMCCTUoSlk:2nqncYFp4_M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=2nqncYFp4_M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=zK783T6V0yA:_zMCCTUoSlk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?i=zK783T6V0yA:_zMCCTUoSlk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=zK783T6V0yA:_zMCCTUoSlk:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=zK783T6V0yA:_zMCCTUoSlk:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=zK783T6V0yA:_zMCCTUoSlk:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ChristopherMillersRandomThoughts/~4/zK783T6V0yA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://anotherlab.rajapet.net/feeds/1337171091840128727/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://anotherlab.rajapet.net/2009/08/looking-forward-to-delphi-2010.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/1337171091840128727?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/1337171091840128727?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ChristopherMillersRandomThoughts/~3/zK783T6V0yA/looking-forward-to-delphi-2010.html" title="Looking forward to Delphi 2010" /><author><name>Chris Miller</name><uri>http://www.blogger.com/profile/07265018778273203357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10716448619272595213" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://anotherlab.rajapet.net/2009/08/looking-forward-to-delphi-2010.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEYGRH08eSp7ImA9WxNSE00.&quot;"><id>tag:blogger.com,1999:blog-11467244.post-8499425348596385676</id><published>2009-08-26T13:02:00.001-04:00</published><updated>2009-08-26T13:02:05.371-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-26T13:02:05.371-04:00</app:edited><title>I haven’t seen gas that cheap since the Carter administration</title><content type="html">&lt;p&gt;Our local supermarket chain, &lt;a href="http://www.pricechopper.com/"&gt;Price Chopper&lt;/a&gt;, has been running a &lt;a title="Fuel AdvantEdge" href="http://www2.pricechopper.com/fueladvantedge/"&gt;promotion&lt;/a&gt; this summer in combination with &lt;a href="http://www.sunocoinc.com/site"&gt;Sunoco&lt;/a&gt;.&amp;#160; The more you spend, the greater the discount will be on your next gas fill up.&lt;/p&gt;  &lt;p&gt;This is how it works: For every $50 you spend, you earn 10¢ off per gallon of gas on the next fill up.&amp;#160; The nice thing is that they track all that you are spending.&amp;#160; If you spend $75.00, you get a 10¢ discount on the first $50.00 that you spent, plus you have $25.00 towards the next discount level.&amp;#160; When you get the fill up, the discount maxes out at 20 gallons, so you can’t take your fleet of &lt;a title="The “Brunomobile,” a van with six leather pilot chairs and its very own conference table." href="http://www.nytimes.com/2009/02/12/nyregion/12repubs.html?_r=2"&gt;Brunomobiles&lt;/a&gt; and fill them up in one shot.&amp;#160; But it can add up.&amp;#160; If you are paying by credit card, you just have to swipe your AdvantEdge card before you start pumping gas.&amp;#160; If you pay by cash, you just let them swipe the card at the time of payment.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_natoSxTaPFU/SpVqivrTQpI/AAAAAAAAAWk/IwibQjcopJQ/s1600-h/Stewarts%5B3%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 5px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="" border="0" alt="" align="left" src="http://lh5.ggpht.com/_natoSxTaPFU/SpVqjBK3eCI/AAAAAAAAAWo/63ZGTzvYd7M/Stewarts_thumb%5B1%5D.png?imgmax=800" width="129" height="244" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I had been racking up the discount points this summer without paying too much attention to it.&amp;#160; A couple of weeks ago, I stopped into Price Chopper and bought some ice for a party. My current discount was printed on the receipt and it was $2.20 per gallon.&amp;#160; Some of the discount was due to expire at the end of the month, so it was time to cash in.&amp;#160; The discounts expire two months after they are earned, so it was use it or lose it.&lt;/p&gt;  &lt;p&gt;The &lt;a href="http://www.stewartsshops.com/"&gt;Stewart’s&lt;/a&gt; near my house sells Sunoco gas and the receipt here shows how much I paid to fill up my tank.&amp;#160; I paid 59.9¢ a gallon.&amp;#160; I paid a little bit over $8 to fill up a car.&amp;#160; That was just stunning.&amp;#160; That price takes us back to the year &lt;a href="http://newsgroups.derkeiler.com/Archive/Misc/misc.rural/2005-08/msg00562.html"&gt;1977&lt;/a&gt;.&amp;#160; On a side note: if you &lt;a href="http://www.randomuseless.info/gasprice/gasprice.html"&gt;factor in the inflation rate&lt;/a&gt;, that price in 1977 is not that far off from what we are paying today.&lt;/p&gt;  &lt;p&gt;Now I’m back to 0 on the discount, but since we usually buy all of our groceries at Price Chopper, it shouldn’t take too long to get that discount back up.&amp;#160; I don’t know how long they will be running this promotion, but it’s a pretty good one.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11467244-8499425348596385676?l=anotherlab.rajapet.net' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=nzc3_OUoww4:F7_6zqRFMJI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=nzc3_OUoww4:F7_6zqRFMJI:2nqncYFp4_M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=2nqncYFp4_M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=nzc3_OUoww4:F7_6zqRFMJI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?i=nzc3_OUoww4:F7_6zqRFMJI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=nzc3_OUoww4:F7_6zqRFMJI:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=nzc3_OUoww4:F7_6zqRFMJI:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=nzc3_OUoww4:F7_6zqRFMJI:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ChristopherMillersRandomThoughts/~4/nzc3_OUoww4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://anotherlab.rajapet.net/feeds/8499425348596385676/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://anotherlab.rajapet.net/2009/08/i-havent-seen-gas-that-cheap-since.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/8499425348596385676?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/8499425348596385676?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ChristopherMillersRandomThoughts/~3/nzc3_OUoww4/i-havent-seen-gas-that-cheap-since.html" title="I haven’t seen gas that cheap since the Carter administration" /><author><name>Chris Miller</name><uri>http://www.blogger.com/profile/07265018778273203357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10716448619272595213" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://anotherlab.rajapet.net/2009/08/i-havent-seen-gas-that-cheap-since.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0MBQXo4fip7ImA9WxNSEU4.&quot;"><id>tag:blogger.com,1999:blog-11467244.post-1689688327208849041</id><published>2009-08-24T14:44:00.001-04:00</published><updated>2009-08-24T14:44:10.436-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-24T14:44:10.436-04:00</app:edited><title>Why it can be good to build a PC instead of buying a prebuilt one.</title><content type="html">&lt;p&gt;After installing Windows 7, I wanted to install &lt;a title="Windows Virtual PC Home Page" href="http://www.microsoft.com/windows/virtual-pc/"&gt;Windows Virtual PC&lt;/a&gt;.&amp;#160; Windows Virtual PC requires that your machine support &lt;a title="Intel and AMD have independently developed virtualization extensions to the x86 architecture. Though not directly compatible with each other, they serve largely the same functions. Either will allow a virtual machine hypervisor to run an unmodified guest operating system without incurring significant emulation performance penalties." href="http://en.wikipedia.org/wiki/X86_virtualization#Hardware_support"&gt;hardware virtualization&lt;/a&gt;.&amp;#160; My home development machine is about two years old and I wasn’t sure it it support hardware virtualization.&amp;#160; I have an AMD X2 64 4800 with an Asus MSI-SLI Deluxe motherboard.&amp;#160; With AMD, the virtualization technology is called “&lt;a title="AMD Virtualization (AMD-V™) Technology" href="http://www.amd.com/us/products/technologies/virtualization/Pages/amd-v.aspx"&gt;AMD-V&lt;/a&gt;’.&lt;/p&gt;  &lt;p&gt;AMD provides a &lt;a title="AMD Virtualization™ Technology and Microsoft® Hyper-V™ System Compatibility Check Utility" href="http://support.amd.com/us/Pages/dynamicDetails.aspx?ListID=c5cd2c08-1432-4756-aafa-4d9dc646342f&amp;amp;ItemID=172"&gt;tool&lt;/a&gt; that will tell you if your machine supports AMD-V.&amp;#160; I downloaded and ran it.&amp;#160; It gave me a message that my motherboard needed a BIOS patch to enable AMD-V.&amp;#160; On surface simple enough, patch the motherboard and off you go.&amp;#160; &lt;/p&gt;  &lt;p&gt;I was hesitant on flashing the motherboard with a patch.&amp;#160; My motherboard’s BIOS was working just fine and there is some risk involved with flashing the BIOS to a new version.&amp;#160; If something goes wrong during the flash process, you can &lt;a title="To make an electronic device nonfunctional and usually beyond repair" href="http://en.wiktionary.org/wiki/brick#Verb"&gt;brick&lt;/a&gt; the motherboard.&amp;#160; Or you could find out the new BIOS makes your system worse.&amp;#160; Plus, I had no idea if a new version actually would enabled AMD-V.&lt;/p&gt;  &lt;p&gt;Fortunately, Asus has a decent support forum and I was able to &lt;a title="Is hardware virtualization supported" href="http://vip.asus.com/forum/view.aspx?id=20090823202545671&amp;amp;board_id=1&amp;amp;model=M2N-SLI+Deluxe&amp;amp;page=1&amp;amp;SLanguage=en-us"&gt;post a message&lt;/a&gt; asking about hardware virtualization.&amp;#160; Within an hour, I received a detailed response that the new BIOS versions did enable hardware virtualization and a list of steps on how to flash the BIOS.&amp;#160; I’ve flashed motherboard BIOS or two before and I pretty much know that drill, but it’s nice to get that level of support.&amp;#160; He did recommend clearing out the existing BIOS settings, which is always a good thing to do whenever you update the firmware of an electronic device.&lt;/p&gt;  &lt;p&gt;I grabbed the latest BIOS from the Asus site.&amp;#160; I also grabbed the current version, just in case something went wrong wrong and I needed to go back to the old BIOS.&amp;#160; My motherboard had a flash tool built it and it could access a USB thumb drive before the booting the OS.&amp;#160; I copied the BIOS files to the thumb drive and rebooted.&amp;#160; &lt;/p&gt;  &lt;p&gt;As it booted up, I pressed the Delete key to jump into the BIOS setup screen.&amp;#160; I selected the flash utility and picked the current BIOS file.&amp;#160; After a few minutes, the new BIOS was installed.&amp;#160; I cleared out the CMOS settings for the BIOS and rebooted.&amp;#160; I went into the BISO setup again and a had a few new options.&amp;#160; One of which was AMD Virtualization, which was enabled by default.&lt;/p&gt;  &lt;p&gt;The next step was a reboot.&amp;#160; Windows came up and all was good.&amp;#160; I ran the AMD tool and it said that AMD Virtualization was good.&amp;#160; That was pretty painless.&amp;#160; When I got this machine 2 years ago, I had it built from a hand picked list of components.&amp;#160; I’ve had good luck with Asus motherboards and I wanted one where it would be easy to update and upgrade.&amp;#160; Plus I wanted a decent power supply.&amp;#160; When you buy an off the shelf PC, you don’t get to pick the components, other than the capacity and number of items.&amp;#160; &lt;/p&gt;  &lt;p&gt;I used to do the actual assembly, but I’ve found it easier to have it assembled by the place where I buy it from.&amp;#160; That way they can make sure that all of the parts fit together and nothing is missing.&amp;#160; If something is DOA, they’ll find it when they assemble and test the system.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11467244-1689688327208849041?l=anotherlab.rajapet.net' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=P8e04cExMJ4:Lq_TiligsQo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=P8e04cExMJ4:Lq_TiligsQo:2nqncYFp4_M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=2nqncYFp4_M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=P8e04cExMJ4:Lq_TiligsQo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?i=P8e04cExMJ4:Lq_TiligsQo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=P8e04cExMJ4:Lq_TiligsQo:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=P8e04cExMJ4:Lq_TiligsQo:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=P8e04cExMJ4:Lq_TiligsQo:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ChristopherMillersRandomThoughts/~4/P8e04cExMJ4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://anotherlab.rajapet.net/feeds/1689688327208849041/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://anotherlab.rajapet.net/2009/08/why-it-can-be-good-to-build-pc-instead.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/1689688327208849041?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/1689688327208849041?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ChristopherMillersRandomThoughts/~3/P8e04cExMJ4/why-it-can-be-good-to-build-pc-instead.html" title="Why it can be good to build a PC instead of buying a prebuilt one." /><author><name>Chris Miller</name><uri>http://www.blogger.com/profile/07265018778273203357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10716448619272595213" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://anotherlab.rajapet.net/2009/08/why-it-can-be-good-to-build-pc-instead.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkQNRHw8fip7ImA9WxNRFEw.&quot;"><id>tag:blogger.com,1999:blog-11467244.post-3220216406475318964</id><published>2009-08-23T00:29:00.001-04:00</published><updated>2009-09-08T07:46:35.276-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-08T07:46:35.276-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Hardware" /><category scheme="http://www.blogger.com/atom/ns#" term="Logitech" /><category scheme="http://www.blogger.com/atom/ns#" term="Gadgets" /><category scheme="http://www.blogger.com/atom/ns#" term="Annoyances" /><title>Using uberOptions to extend the functionality of Logitech devices</title><content type="html">&lt;p&gt;A few weeks ago, I picked up some Logitech mice that were on sale as “dented box” items on the Logitech site.&amp;#160; They were new mice, but their boxes had some minor damage and they were half off.&amp;#160; I grabbed a &lt;a href="http://www.logitech.com/index.cfm/mice_pointers/mice/devices/165&amp;amp;cl=us,en"&gt;VX Revolution&lt;/a&gt; and a &lt;a href="http://www.logitech.com/index.cfm/mice_pointers/mice/devices/130&amp;amp;cl=us,en"&gt;MX Revolution&lt;/a&gt;.&amp;#160; The VX was for the family computer that the kids use, and the MX was for my home development machine.&amp;#160; The VX is a notebook model and it’s smaller size fits the kids hands quite nicely.&lt;/p&gt;  &lt;p&gt;The MX Revolution was to replace my &lt;a href="http://www.logitech.com/index.cfm/428/909&amp;amp;cl=us,en"&gt;MX 700&lt;/a&gt; mouse that I’ve had a few years. The 700 was one of the best mice I have ever used, but I had some issues with it.&amp;#160; First off, Logitech did not provide Vista drivers for it. While it worked just fine with Vista, it was only as a standard mouse and the extra buttons could not be used.&amp;#160; The other problem was that the rechargeable batteries had worn out to the point there they would only last for a few minutes.&amp;#160; I could easily find replacement batteries, but I missed the extra functionality of the 700.&amp;#160; Plus I wanted a mouse where the mouse wheel with the “tilt” support for left/right scrolling.&lt;/p&gt;  &lt;p&gt;From time to time, Logitech runs “dented box” sales on various products.&amp;#160; If you have right coupon code, you can get a new product with a full warranty.&amp;#160; If you use the site &lt;a href="http://www.techbargains.com"&gt;techbargains.com&lt;/a&gt;, type “dented logitech” into the search box on the main page, you’ll get a list of the current dented box specials on the Logitech site, plus coupon codes for additional savings.&lt;/p&gt;  &lt;p&gt;Both the VX and MX Revolution mice have a little button located just south of the scroll wheel.&amp;#160; By default, it’s mapped to a search function.&amp;#160; Select a word, press the button, and a new browser instance is launched with the selected word passed the search engine.&amp;#160; For some people that may be a cool feature, but I found it just maddening.&amp;#160; With the Logitech SetPoint software that comes with each mouse, you can reassign the mouse button functionality to other behavior.&amp;#160; On the VX, I was able to set the search button to be a middle click button.&amp;#160; I like being able to middle click a link on a web site and get that link opened in a new tab, leaving the existing web page right it I was reading it.&lt;/p&gt;  &lt;p&gt;You would think that you could do the same thing with the MX Revolution as you could with the VX Revolution. Oddly enough, while you could assign the middle click function to many of the buttons on the MX, it was not an option for the search button.&amp;#160; I don’t know if that was by design or by error, but it was irritating.&amp;#160; Since the SetPoint configuration software is bundled with all of the current Logitech input devices, the button definitions are not hard coded into the application, but must be read from some set of configuration files.&amp;#160; If I could find where they are located, I should be able to copy the missing MX definitions from the VX settings.&lt;/p&gt;  &lt;p&gt;I went on to Logitech’s support forums in search of tips for locating and editing the SetPoint files.&amp;#160; After doing some searching, I found references to something called uberOptions. Rich Owens put together a package called uberOptions, a new set of SetPoint configuration files that greatly expand the options that you can assign to the buttons.&amp;#160; He has modified the files for a large list of keyboards, mice, and trackballs.&amp;#160; The current list of devices plus the installer for uberOptions can be found at &lt;a href="http://uberoptions.net/"&gt;http://uberoptions.net/&lt;/a&gt;.&amp;#160; It installed and worked just fine with WIndows 7 64 bit.&amp;#160; After I installed it, his default setting for mouse had mapped the search button to the middle click function.&amp;#160; Well played Rich, well played indeed.&lt;/p&gt;  &lt;p&gt;[Edited on 8/31/2009]    &lt;br /&gt;If Rich Owens’ main site is down, he has a mirror &lt;a title="rlowens - uberOptions mirror" href="http://rlowens.googlepages.com/"&gt;site&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;[Edited on 9/8/2009]   &lt;br /&gt;Richard Owens sent in an updated link to his site, &lt;a href="http://uberoptions.net/"&gt;http://uberoptions.net/&lt;/a&gt;, this replaces &lt;a href="http://www.mstarmetro.net/users/rlowens/"&gt;http://www.mstarmetro.net/users/rlowens/&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11467244-3220216406475318964?l=anotherlab.rajapet.net' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=DImrblCLJdA:2a84PMw5cCU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=DImrblCLJdA:2a84PMw5cCU:2nqncYFp4_M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=2nqncYFp4_M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=DImrblCLJdA:2a84PMw5cCU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?i=DImrblCLJdA:2a84PMw5cCU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=DImrblCLJdA:2a84PMw5cCU:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=DImrblCLJdA:2a84PMw5cCU:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=DImrblCLJdA:2a84PMw5cCU:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ChristopherMillersRandomThoughts/~4/DImrblCLJdA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://anotherlab.rajapet.net/feeds/3220216406475318964/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://anotherlab.rajapet.net/2009/08/using-uberoptions-to-extend.html#comment-form" title="11 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/3220216406475318964?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/3220216406475318964?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ChristopherMillersRandomThoughts/~3/DImrblCLJdA/using-uberoptions-to-extend.html" title="Using uberOptions to extend the functionality of Logitech devices" /><author><name>Chris Miller</name><uri>http://www.blogger.com/profile/07265018778273203357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10716448619272595213" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">11</thr:total><feedburner:origLink>http://anotherlab.rajapet.net/2009/08/using-uberoptions-to-extend.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0EGQ345fip7ImA9WxNSEU4.&quot;"><id>tag:blogger.com,1999:blog-11467244.post-7945838431862811671</id><published>2009-08-22T16:28:00.001-04:00</published><updated>2009-08-24T14:47:02.026-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-24T14:47:02.026-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Windows 7" /><category scheme="http://www.blogger.com/atom/ns#" term="Vista" /><category scheme="http://www.blogger.com/atom/ns#" term="Windows Server 2008" /><category scheme="http://www.blogger.com/atom/ns#" term="Networking" /><category scheme="http://www.blogger.com/atom/ns#" term="Performance" /><title>Offload TCP processing to the network controllers under Vista, Server 2008, and Windows 7</title><content type="html">&lt;p&gt;After upgrading my home PC to Windows 7, I was decided to see if my motherboard/CPU combination support hardware virtualization.&amp;#160; You need hardware virtualization support if you want to &lt;a href="http://www.microsoft.com/windows/virtual-pc/support/configure-bios.aspx"&gt;run Windows XP Mode or Windows Virtual PC&lt;/a&gt;.&amp;#160; I have an XMD Athlon X2 with an &lt;a href="http://usa.asus.com/products.aspx?l1=3&amp;amp;l2=101&amp;amp;l3=301&amp;amp;model=1160&amp;amp;modelmenu=1"&gt;Asus M2N-SLI Deluxe&lt;/a&gt; and I’m not sure if that combination supports hardware virtualization.&amp;#160; I’m pretty sure the CPU does, but I don’t yet yet know about the motherboard.&lt;/p&gt;  &lt;p&gt;I decided to check the&amp;#160; Asus support forum to see that motherboard supports hardware virtualization and while reading through the forum, I found an &lt;a title="Get a faster Vista PC when using onboard LAN ports..." href="http://vip.asus.com/forum/view.aspx?id=20090121064406846&amp;amp;board_id=1&amp;amp;model=M2N-SLI+Deluxe&amp;amp;page=1&amp;amp;SLanguage=en-us"&gt;a post about tweaking the network settings for a boost in performance&lt;/a&gt;.&amp;#160; The &lt;a title="The Internet Protocol Suite (commonly known as TCP/IP) is the set of communications protocols used for the Internet and other similar networks" href="http://en.wikipedia.org/wiki/Internet_Protocol_Suite"&gt;TCP/IP&lt;/a&gt; stack in Vista has the ability to offload some of the network processing to the network controller, if the network controller has that capability.&amp;#160; Out of the box, Vista disables that feature to prevent problems with controllers that don’t support that feature.&lt;/p&gt;  &lt;p&gt;From what was posted in the Asus forum, this motherboard does support that feature.&amp;#160; This motherboard is based on the &lt;a href="http://www.nvidia.com/page/nforce5_amd.html"&gt;NVIDIA nForce 570 chipset&lt;/a&gt;, which included dual Gigabit LAN controllers.&amp;#160; If you are doing CPU intensive tasks, you can gain some performance benefit by offloading the TCP processing to the network controllers.&lt;/p&gt;  &lt;p&gt;Vista refers to this setting as the “&lt;a href="http://windowshelp.microsoft.com/Windows/en-US/Help/c6d1a24d-00e5-4ab8-bd2f-78c929203e331033.mspx"&gt;Chimney Offload State&lt;/a&gt;”.&amp;#160; It’s easy to check and set this value.&amp;#160; if you have a newish motherboard with a Gigabit speed network controller, this should work for you.&lt;/p&gt;  &lt;p&gt;To change this setting, do the following:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Open an &lt;a title="Tim Sneath&amp;#39;s tip for opening an elevated command prompt" href="http://blogs.msdn.com/tims/archive/2006/11/02/windows-vista-secret-10-open-an-elevated-command-prompt-in-six-keystrokes.aspx"&gt;elevated command prompt&lt;/a&gt;.&amp;#160; Either right-click cmd.exe and select “Run as Administrator” or press the Start button, type “cmd” and then hold the left shift and left control keys while pressing the enter key. &lt;/li&gt;    &lt;li&gt;Check the current status of the Chimney Offload state by running the following command:      &lt;br /&gt;&lt;strong&gt;netsh int tcp show global&lt;/strong&gt;       &lt;br /&gt;The possible values for that state are: disabled, enabled, default &lt;/li&gt;    &lt;li&gt;Run the following command to enable Chimney Offload state      &lt;br /&gt;&lt;strong&gt;netsh int tcp set global chimney=enable&lt;/strong&gt; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Before making the changes, check your current broadband speed.&amp;#160; I like the one at &lt;a href="http://speedtest.net/"&gt;speedtest.net&lt;/a&gt;, but the others are fine.&amp;#160; Then after making the change, check it again.&amp;#160; If the performance takes a hit, set the state back to it’s original value.&amp;#160; Not only did it work for me, I did get a slight, but measurable, download speed increase.&lt;/p&gt;  &lt;p&gt;Before enabling Chimney Offload:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_natoSxTaPFU/SpBU8XJHwCI/AAAAAAAAAWU/d9TriG5Ngeg/s1600-h/546138390%5B1%5D%5B7%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="546138390[1]" border="0" alt="546138390[1]" src="http://lh3.ggpht.com/_natoSxTaPFU/SpBU8iasCaI/AAAAAAAAAWY/NKdKCg64Jok/546138390%5B1%5D_thumb%5B5%5D.png?imgmax=800" width="244" height="112" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;After:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_natoSxTaPFU/SpBU9D06rnI/AAAAAAAAAWc/BICHITcO1xs/s1600-h/546142573%5B1%5D%5B2%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="546142573[1]" border="0" alt="546142573[1]" src="http://lh3.ggpht.com/_natoSxTaPFU/SpBU9inEKCI/AAAAAAAAAWg/qTFQnCRmrRA/546142573%5B1%5D_thumb.png?imgmax=800" width="244" height="112" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;These tests were run a few times before and after the modification.&amp;#160; I picked the average score each time.&amp;#160; That helps even out any existing network traffic that would affect the results.&amp;#160; Going from 17.42 MB/s to 18.70 wasn’t a huge increase, about 7%; but I’ll take it.&amp;#160; There are other settings that you can tweak.&amp;#160; Some are mentioned in the forum posting, and they are also documented in an article in &lt;a title="Tweaking Vista TCP/IP settings for broadband internet connections" href="http://www.speedguide.net/read_articles.php?id=2574"&gt;speedguide.net&lt;/a&gt; as well.&amp;#160; You don’t often get a free lunch, this is a good one to take.&amp;#160; This setting works for Vista, Server 2008, and Windows 7.&amp;#160; I still don’t know if I can get hardware virtualization, but this was an interesting diversion.&lt;/p&gt;  &lt;p&gt;[edited on 8/24/09]    &lt;br /&gt;As it turns out, my CPU and motherboard do support hardware virtualization, it just &lt;a title="Why it can be good to build a PC instead of buying a prebuilt one" href="http://anotherlab.rajapet.net/2009/08/why-it-can-be-good-to-build-pc-instead.html"&gt;took a little work&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11467244-7945838431862811671?l=anotherlab.rajapet.net' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=exklC1qnCcQ:Z64ecBzlCjo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=exklC1qnCcQ:Z64ecBzlCjo:2nqncYFp4_M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=2nqncYFp4_M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=exklC1qnCcQ:Z64ecBzlCjo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?i=exklC1qnCcQ:Z64ecBzlCjo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=exklC1qnCcQ:Z64ecBzlCjo:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=exklC1qnCcQ:Z64ecBzlCjo:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=exklC1qnCcQ:Z64ecBzlCjo:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ChristopherMillersRandomThoughts/~4/exklC1qnCcQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://anotherlab.rajapet.net/feeds/7945838431862811671/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://anotherlab.rajapet.net/2009/08/offload-tcp-processing-to-network.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/7945838431862811671?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/7945838431862811671?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ChristopherMillersRandomThoughts/~3/exklC1qnCcQ/offload-tcp-processing-to-network.html" title="Offload TCP processing to the network controllers under Vista, Server 2008, and Windows 7" /><author><name>Chris Miller</name><uri>http://www.blogger.com/profile/07265018778273203357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10716448619272595213" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">4</thr:total><feedburner:origLink>http://anotherlab.rajapet.net/2009/08/offload-tcp-processing-to-network.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUUGQno-cSp7ImA9WxNTF0w.&quot;"><id>tag:blogger.com,1999:blog-11467244.post-3012071272605513779</id><published>2009-08-19T16:20:00.001-04:00</published><updated>2009-08-19T16:20:23.459-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-19T16:20:23.459-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Windows 7" /><category scheme="http://www.blogger.com/atom/ns#" term="Debugging" /><category scheme="http://www.blogger.com/atom/ns#" term="Annoyances" /><category scheme="http://www.blogger.com/atom/ns#" term="64 bit" /><title>A work around for Delphi 2007/2009 with Windows 7 64 bit</title><content type="html">&lt;p&gt;I just installed Windows 7, 64 bit edition so that I could code and test against this new operating system.&amp;#160; Visual Studio 2008 installed and ran without any incident, but I hit a snag with Delphi 2007.&amp;#160; Delphi 2007 installed just fine, but it would die when you ended a debugging session.&amp;#160; An assert error would get thrown and after you cleared the dialog, Delphi would be terminated.&lt;/p&gt;  &lt;p&gt;The error was thrown by bordbk105N.dll and had the following text:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Assertion failure: &amp;quot;(!&amp;quot;SetThreadContext failed&amp;quot;)&amp;quot;     &lt;br /&gt;in ..\win32src\thread32.cpp at line 412      &lt;br /&gt;Continue execution?      &lt;br /&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;That was followed by a “Yes/No” set of buttons.&amp;#160; It didn’t matter which choice you made, it was pretty much game over for Delphi at this point. After getting this happen 3 times in a row (even with Delphi launched with “Run As Administrator”), I decided to check the Internet and see if this was unique to me and if there was a fix.&lt;/p&gt;  &lt;p&gt;I checked Google and found &lt;a href="http://www.google.com/search?q=Assertion+failure%3A+%22%28!%22SetThreadContext+failed%22%29%22&amp;amp;ie=utf-8&amp;amp;oe=utf-8&amp;amp;aq=t&amp;amp;rls=org.mozilla:en-US:official&amp;amp;client=firefox-a"&gt;a few hits&lt;/a&gt;.&amp;#160; One of them led me to a blog written by Olaf Monien, a German developer with close ties to the Delphi R &amp;amp; D department.&amp;#160; His post, “&lt;a href="http://www.monien.net/blog/index.php/2009/07/delphi-2009-windows-7-64-bit-debugger-crash-workaround/"&gt;Delphi 2009 / Windows 7 / 64 bit Debugger Crash Workaround&lt;/a&gt;”, described the issue in great detail.&amp;#160; Apparently an incorrect call is being made to the &lt;a href="http://msdn.microsoft.com/en-us/library/ms680632%28VS.85%29.aspx"&gt;SetThreadContext&lt;/a&gt; API call.&amp;#160; The debugger dll has an &lt;a href="http://en.wikipedia.org/wiki/Assertion_%28computing%29"&gt;assert&lt;/a&gt; call based on the return value SetThreadContext().&amp;#160; It’s odd that production code went out with asserts enable, that’s usually used during testing.&amp;#160; Some people traced through the debugger code and found that if a single byte is changed in the dll, you could get by this error.&amp;#160; This byte changes the logic so it ignores the return code from SetThreadContext() and never hits the assert code.&amp;#160; You can read about how they came up with that idea &lt;a href="http://social.technet.microsoft.com/Forums/en-US/w7itproappcompat/thread/e56df407-bd0b-4ecc-b8a5-0a35bcd571cc"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;An enterprising programmer named “LordByte” wrote a handy little utility that will patch the debugger dll for both Delphi 2007 and Delphi 2009.&amp;#160; Olaf is hosting the patch tool on his blog and you can download it from &lt;a href="http://www.monien.biz/blog/wp-content/uploads/2009/07/Delphi_2007_2009_WOW64_Debugger_Fix.zip"&gt;Delphi_2007_2009_WOW64_Debugger_Fix.zip&lt;/a&gt;.&amp;#160; This works but you now have the added risk of actual errors being returned from that call to SetThreadContext() being ignored.&amp;#160; Since the alternative is an unusable Delphi, it’s a risk I’m going to have to take.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11467244-3012071272605513779?l=anotherlab.rajapet.net' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=jVQMhb1JQvM:PVukCqXZtzA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=jVQMhb1JQvM:PVukCqXZtzA:2nqncYFp4_M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=2nqncYFp4_M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=jVQMhb1JQvM:PVukCqXZtzA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?i=jVQMhb1JQvM:PVukCqXZtzA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=jVQMhb1JQvM:PVukCqXZtzA:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=jVQMhb1JQvM:PVukCqXZtzA:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=jVQMhb1JQvM:PVukCqXZtzA:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ChristopherMillersRandomThoughts/~4/jVQMhb1JQvM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://anotherlab.rajapet.net/feeds/3012071272605513779/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://anotherlab.rajapet.net/2009/08/work-around-for-delphi-20072009-with.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/3012071272605513779?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/3012071272605513779?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ChristopherMillersRandomThoughts/~3/jVQMhb1JQvM/work-around-for-delphi-20072009-with.html" title="A work around for Delphi 2007/2009 with Windows 7 64 bit" /><author><name>Chris Miller</name><uri>http://www.blogger.com/profile/07265018778273203357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10716448619272595213" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://anotherlab.rajapet.net/2009/08/work-around-for-delphi-20072009-with.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkIGQH05eyp7ImA9WxJbF0w.&quot;"><id>tag:blogger.com,1999:blog-11467244.post-4056208842049932642</id><published>2009-07-27T12:02:00.001-04:00</published><updated>2009-07-27T12:02:01.323-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-27T12:02:01.323-04:00</app:edited><title>When installing apps in a Terminal Server or Citrix environment</title><content type="html">&lt;p&gt;When you install an application on a Windows Server running Terminal Services or a Citrix server, the user should go into Add/Remove programs and run the installer through “Add New Programs”.&amp;#160; It sounds clunky, but there is a reason for this.&amp;#160; Microsoft virtualizes the location of the Windows directory under terminal services.&amp;#160; Each user has a private copy of the Windows folder.&amp;#160; This allows applications that assume they are the only user to see only their own copy of the folder.&lt;/p&gt;  &lt;p&gt;If an application calls &lt;a title="MSDN: GetWindowsDirectory Function" href="http://msdn.microsoft.com/en-us/library/ms724454%28VS.85%29.aspx"&gt;GetWindowsDirectory()&lt;/a&gt;, you usually C:\WINDOWS or C:\WINNT.&amp;#160; Under Terminal Services, a call the GetWindowsDirectory will return something like C:\Documents and Settings\currentusername\Windows.&amp;#160; If you need to install a shared component in a folder off of the Windows folder, then you will not want the virtualized folder.&amp;#160; You want to use the actual C:\WINDOWS folder.&lt;/p&gt;  &lt;p&gt;Installer authoring tools like InstallAware use GetWindowsDirectory().&amp;#160; This is by design, in a multi-user environment, you want to make sure that the users don’t installed components that could adversely affect other users.&amp;#160; If you want to get the actual Windows directory, you can call &lt;a title="MSDN: GetSystemWindowsDirectory Function" href="http://msdn.microsoft.com/en-us/library/ms724403%28VS.85%29.aspx"&gt;GetSystemWindowsDirectory()&lt;/a&gt;, it will return the actual Windows directory.&amp;#160; When you run the installer through “Add New Programs”, Terminal Services is place into install mode and GetWindowsDirectory will return the actual directory instead of the virtualized directory.&lt;/p&gt;  &lt;p&gt;If your installer requires that you have the correct folder for the GetWindowsDirectory, I would suggest comparing the results of GetWindowsDirectory and GetSystemWindowsDirectory.&amp;#160; if they do not evaluate to the same folder, then you know that you are running under Terminal Services and that Terminal Services is not in install mode.&amp;#160; At the point, you can display a dialog and suggest to the user to run the installer under “Add New Programs” and then exit gracefully.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11467244-4056208842049932642?l=anotherlab.rajapet.net' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=m84TU-9_v8w:cAsK343MhfQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=m84TU-9_v8w:cAsK343MhfQ:2nqncYFp4_M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=2nqncYFp4_M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=m84TU-9_v8w:cAsK343MhfQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?i=m84TU-9_v8w:cAsK343MhfQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=m84TU-9_v8w:cAsK343MhfQ:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=m84TU-9_v8w:cAsK343MhfQ:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=m84TU-9_v8w:cAsK343MhfQ:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ChristopherMillersRandomThoughts/~4/m84TU-9_v8w" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://anotherlab.rajapet.net/feeds/4056208842049932642/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://anotherlab.rajapet.net/2009/07/when-installing-apps-in-terminal-server.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/4056208842049932642?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/4056208842049932642?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ChristopherMillersRandomThoughts/~3/m84TU-9_v8w/when-installing-apps-in-terminal-server.html" title="When installing apps in a Terminal Server or Citrix environment" /><author><name>Chris Miller</name><uri>http://www.blogger.com/profile/07265018778273203357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10716448619272595213" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://anotherlab.rajapet.net/2009/07/when-installing-apps-in-terminal-server.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEIFQH49eip7ImA9WxBTFEo.&quot;"><id>tag:blogger.com,1999:blog-11467244.post-1371842410770191852</id><published>2009-06-17T22:34:00.002-04:00</published><updated>2009-12-10T15:21:51.062-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-10T15:21:51.062-05:00</app:edited><title>Facebook does not need a “dislike” button</title><content type="html">&lt;p&gt;With just about everything you get to see view in &lt;a href="http://www.facebook.com"&gt;Facebook&lt;/a&gt;, there’s usually a button or a link displayed as “like” associated with the topic.&amp;#160; If you click that button, the person who posted that link gets a little note on his Facebook page that you liked what ever it was that they had put up.&lt;/p&gt;  &lt;p&gt;When I first saw the ‘like” button, the first thing I thought of was my &lt;a href="https://www3.tivo.com/store/merchandise.do"&gt;TiVo remote&lt;/a&gt; with it’s “Thumbs Up” and “Thumbs Down” buttons.&amp;#160; You can thumb up or down a program while you are watching it.&amp;#160; This information gets stored on the TiVo and it uses that information to pick shows it think you might like to watch.&amp;#160; A completely optional feature, but very cool none the less.&lt;/p&gt;  &lt;p&gt;With the TiVo ‘Thumbs Down” feature in mind, I wondered why there wasn’t a “dislike” button.&amp;#160; If you believe in &lt;a href="http://c2.com/cgi/wiki?SturgeonsLaw"&gt;Sturgeon’s Law&lt;/a&gt; (ninety percent of everything is crap), then there is going to be stuff on Facebook that you won’t like.&amp;#160; Since they let you express your approval with the “like' button, why not be able to express your disapproval?&lt;/p&gt;  &lt;p&gt;I’m not the only one who has wondered about that.&amp;#160; There’s at least one poll on Facebook that asks “Should Facebook get a dislike button?”&amp;#160; if you have a Facebook account, you can hit that poll from this &lt;a href="http://apps.facebook.com/my_polls/vote.php?poll_id=83&amp;amp;src=url_share"&gt;link&lt;/a&gt;.&amp;#160; I saw it because a friend of mine had already voted “Yes”.&lt;/p&gt;  &lt;p&gt;Voting “Yes” was my initial inclination, but I decided to think about it for minute.&amp;#160; The more I thought about it, the more convinced I became that it would be a bad idea to have a “dislike” button.&amp;#160; It would be a tool for expressing a negative opinion and that’s not what Facebook is about.&lt;/p&gt;  &lt;p&gt;A large part of the early appeal of Facebook was that it was closed community.&amp;#160; If you want to see someone’s Facebook page, you had to be a member of Facebook and probably need to be a “friend” as Facebook defines it) of that person before being able to view that page.&amp;#160; &lt;/p&gt;  &lt;p&gt;Since you have to have a Facebook account to access Facebook user pages, there are no anonymous users on Facebook.&amp;#160; If the Facebook administrators catch you using a fake name (like the way a certain B-List actress &lt;a title="Invoke the power of Google to display this information" href="http://www.google.com/search?hl=en&amp;amp;safe=off&amp;amp;client=firefox-a&amp;amp;rls=org.mozilla%3Aen-US%3Aofficial&amp;amp;hs=Ic7&amp;amp;q=lohan+facebook+fake+account&amp;amp;aq=0p&amp;amp;oq=loha&amp;amp;aqi=g%3Ap1g%3Az1g8"&gt;did&lt;/a&gt; last winter), they will disable the account.&amp;#160; What ever you do on Facebook, it will always be associated with your account.&lt;/p&gt;  &lt;p&gt;If you could click a “dislike” button for something that a friend had posted, your friend is going to know you didn’t like what they had posted.&amp;#160; No one is going to want to see a little thumbs down image next to the picture of their new kitten/cat/tattoo/etc.&amp;#160; There will be a percentage of users who will be offended when their post is disliked.&amp;#160; That can lead to bad feelings between the two people and add a negative tone to the Facebook experience.&lt;/p&gt;  &lt;p&gt;If you feel strongly against something, you can still leave a comment and express your opinion.&amp;#160; That can actually be helpful.&amp;#160; If you wanted to press the “dislike” button on something because you found it inaccurate or offensive, you can actually write why you feel that way.&amp;#160; Constructive criticism means a lot more than a little image of thumb pointing down.&amp;#160; Some people will still be offended by critical posts, but now you will have a starting point to discuss it.&amp;#160; So I’m not taking that poll and I’m hoping that Facebook doesn’t implement a “dislike” feature.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11467244-1371842410770191852?l=anotherlab.rajapet.net' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=8rmo83s-sao:RGkr2gV3_NQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=8rmo83s-sao:RGkr2gV3_NQ:2nqncYFp4_M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=2nqncYFp4_M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=8rmo83s-sao:RGkr2gV3_NQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?i=8rmo83s-sao:RGkr2gV3_NQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=8rmo83s-sao:RGkr2gV3_NQ:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=8rmo83s-sao:RGkr2gV3_NQ:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=8rmo83s-sao:RGkr2gV3_NQ:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ChristopherMillersRandomThoughts/~4/8rmo83s-sao" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://anotherlab.rajapet.net/feeds/1371842410770191852/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://anotherlab.rajapet.net/2009/06/facebook-does-not-need-dislike-button.html#comment-form" title="13 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/1371842410770191852?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/1371842410770191852?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ChristopherMillersRandomThoughts/~3/8rmo83s-sao/facebook-does-not-need-dislike-button.html" title="Facebook does not need a “dislike” button" /><author><name>Chris Miller</name><uri>http://www.blogger.com/profile/07265018778273203357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10716448619272595213" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">13</thr:total><feedburner:origLink>http://anotherlab.rajapet.net/2009/06/facebook-does-not-need-dislike-button.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEIGQH4-eSp7ImA9WxJWEUs.&quot;"><id>tag:blogger.com,1999:blog-11467244.post-6151669710246548542</id><published>2009-06-15T12:05:00.001-04:00</published><updated>2009-06-16T11:35:21.051-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-16T11:35:21.051-04:00</app:edited><title>Checking to see Microsoft Report Viewer 2008 SP1 has been installed</title><content type="html">&lt;p&gt;We are updating the installer for one of our applications and that app now requires the Microsoft Report Viewer 2008 Service Pack 1 to be installed first.&amp;#160; The fun part is determining if it’s installed or not.&amp;#160; Usually, I check the registry keys to see if an application is installed.&amp;#160; If the user has installed the Report Viewer as a separate application, you’ll find it under the key &lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Microsoft Report Viewer Redistributable 2008 SP1&lt;/strong&gt;.&amp;#160; &lt;/p&gt;  &lt;p&gt;If you want to read a value from that key, look for VersionMajor.&amp;#160; It should be a DWORD value of 1.&lt;/p&gt;  &lt;p&gt;Of course that’s not the only way to get Report Viewer SP1 installed.&amp;#160; If you have Visual Studio 2008 and you have applied SP1, then you’ll have Report Viewer SP1 as part of the Service Pack.&amp;#160; Under that scenario, you wont have the “Microsoft Report Viewer Redistributable 2008 SP1” key.&amp;#160; &lt;/p&gt;  &lt;p&gt;What you need to do is to check to see if VS 2008 SP1 is installed.&amp;#160; That key is located at &lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\InstalledProducts\KB945140&lt;/strong&gt;.&amp;#160; &lt;/p&gt;  &lt;p&gt;If you want to read a value for that key, look for string value for “PID”.&lt;/p&gt;  &lt;p&gt;[Update on 6/16]&lt;/p&gt;  &lt;p&gt;From the &lt;a href="http://www.versatrans.com/"&gt;home office&lt;/a&gt; in Latham, NY, a reader sent in the suggested to also check the registry for 64 bit based machines.&amp;#160; On 64-bit editions of Windows, the Report Viewer Redistributable runs in 32-bit more.&amp;#160; It sees a virtualized version of the registry.&amp;#160; The actual registry location is &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Microsoft Report Viewer Redistributable 2008 SP1&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt; Note the “Wow6432Node”, that tells that it’s a 32 bit application installed on a 64 bit OS.   &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11467244-6151669710246548542?l=anotherlab.rajapet.net' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=L6OAtAd6v1o:qJKamtjEOu4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=L6OAtAd6v1o:qJKamtjEOu4:2nqncYFp4_M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=2nqncYFp4_M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=L6OAtAd6v1o:qJKamtjEOu4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?i=L6OAtAd6v1o:qJKamtjEOu4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=L6OAtAd6v1o:qJKamtjEOu4:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=L6OAtAd6v1o:qJKamtjEOu4:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=L6OAtAd6v1o:qJKamtjEOu4:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ChristopherMillersRandomThoughts/~4/L6OAtAd6v1o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://anotherlab.rajapet.net/feeds/6151669710246548542/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://anotherlab.rajapet.net/2009/06/checking-to-see-microsoft-report-viewer.html#comment-form" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/6151669710246548542?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/6151669710246548542?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ChristopherMillersRandomThoughts/~3/L6OAtAd6v1o/checking-to-see-microsoft-report-viewer.html" title="Checking to see Microsoft Report Viewer 2008 SP1 has been installed" /><author><name>Chris Miller</name><uri>http://www.blogger.com/profile/07265018778273203357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10716448619272595213" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">5</thr:total><feedburner:origLink>http://anotherlab.rajapet.net/2009/06/checking-to-see-microsoft-report-viewer.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkMDSXk9fCp7ImA9WxJQE0g.&quot;"><id>tag:blogger.com,1999:blog-11467244.post-5847524407736525866</id><published>2009-05-26T12:13:00.001-04:00</published><updated>2009-05-26T12:14:38.764-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-26T12:14:38.764-04:00</app:edited><title>If this isn’t the first sign of the apocalypse, nothing is. (Jon &amp; Kate &amp; American Chopper)</title><content type="html">&lt;p&gt;A few months back, I posted &lt;a title="On this episode of “Jon and Kate and an American Chopper”…" href="http://anotherlab.rajapet.net/2009/02/on-this-episode-of-jon-and-kate-and.html"&gt;this&lt;/a&gt; as a joke.&amp;#160; Now I’m seeing pictures like this floating across the Internet:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_natoSxTaPFU/ShwVQtBk1sI/AAAAAAAAARU/BX6EasKES6U/s1600-h/GosselinsTuetuls%5B2%5D.jpg"&gt;&lt;img title="The Gosselins riding with the Tuetuls" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="208" alt="The Gosselins riding with the Tuetuls" src="http://lh6.ggpht.com/_natoSxTaPFU/ShwVQ5liRjI/AAAAAAAAARY/l-D4rhUemhI/GosselinsTuetuls_thumb.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;It looks like Kate is riding off with Paul Senior and she’s the only one that looks happy.&amp;#160; I think it was for some TLC promotion, not an actual episode of either one of their shows.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11467244-5847524407736525866?l=anotherlab.rajapet.net' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=6JCviu2yQi0:EGPG9CewsrU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=6JCviu2yQi0:EGPG9CewsrU:2nqncYFp4_M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=2nqncYFp4_M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=6JCviu2yQi0:EGPG9CewsrU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?i=6JCviu2yQi0:EGPG9CewsrU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=6JCviu2yQi0:EGPG9CewsrU:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=6JCviu2yQi0:EGPG9CewsrU:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?a=6JCviu2yQi0:EGPG9CewsrU:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ChristopherMillersRandomThoughts?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ChristopherMillersRandomThoughts/~4/6JCviu2yQi0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://anotherlab.rajapet.net/feeds/5847524407736525866/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://anotherlab.rajapet.net/2009/05/if-this-isnt-first-sign-of-apocalypse.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/5847524407736525866?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11467244/posts/default/5847524407736525866?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ChristopherMillersRandomThoughts/~3/6JCviu2yQi0/if-this-isnt-first-sign-of-apocalypse.html" title="If this isn’t the first sign of the apocalypse, nothing is. (Jon &amp;amp; Kate &amp;amp; American Chopper)" /><author><name>Chris Miller</name><uri>http://www.blogger.com/profile/07265018778273203357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10716448619272595213" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://anotherlab.rajapet.net/2009/05/if-this-isnt-first-sign-of-apocalypse.html</feedburner:origLink></entry></feed>
