<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-703101161281072462</id><updated>2012-01-25T08:32:31.079-08:00</updated><category term='linux'/><category term='vs.net'/><category term='education'/><category term='javascript'/><category term='CSS'/><category term='php'/><category term='security'/><category term='localization'/><category term='WinXP'/><category term='Google'/><category term='sql server'/><category term='t-sql'/><category term='Military'/><category term='Access'/><category term='Apex'/><category term='reporting services'/><category term='software'/><category term='Travel'/><category term='html'/><category term='Hardware'/><category term='asp.net'/><category term='.net'/><category term='performance'/><category term='DBCC'/><category term='testing'/><category term='ubuntu'/><category term='c#.net'/><category term='humor'/><title type='text'>Development Memoirs</title><subtitle type='html'>&lt;a href="http://www.linkedin.com/in/jeremeguenther"&gt;&lt;img src="http://www.linkedin.com/img/webpromo/btn_viewmy_160x25.gif" width="160" height="25" border="0" alt="View Jereme Guenther&amp;#39;s profile on LinkedIn"&gt;&lt;/a&gt;&lt;br&gt;
This blog is Jereme Guenther's method of keeping track of code snippets and other ideas he might happen to remember to post.  The idea is to get a collection of problems solved in the past so they can be searched in a condensed form when needing to be solved again.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default?start-index=101&amp;max-results=100'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>110</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-4180178592948770329</id><published>2011-12-26T18:24:00.000-08:00</published><updated>2012-01-04T03:22:20.481-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>TSocks with Ubuntu Linux</title><content type='html'>So it turned out that a simple SSH Tunnel doesn't always accomplish what is needed. &amp;nbsp;An SSH Tunnel is great for applications that are able to redirect their own packets to a different proxy, but what about applications that don't natively support&amp;nbsp;proxies?&lt;br /&gt;&lt;br /&gt;One alternative is to use a VPN Tunnel, in most cases this will work great, but in some networks VPN packets are restricted. &amp;nbsp;Also VPN networks doesn't typically run on natively installed software. &amp;nbsp;To solve this issue I turned once again to Linux which seems to have the best collection of geeky programs natively installed.&lt;br /&gt;&lt;br /&gt;Step 1: I downloaded &lt;a href="https://www.virtualbox.org/"&gt;VirtualBox&lt;/a&gt; which is an OS simulator.&lt;br /&gt;Step 2: I&amp;nbsp;downloaded an ISO file of &lt;a href="http://www.ubuntu.com/"&gt;Ubuntu linux&lt;/a&gt;.&lt;br /&gt;Step 3: Download the tsocks .deb file, you may need a normal SSH tunnel if web traffic to that site is being blocked:&lt;br /&gt;&amp;nbsp; &amp;nbsp;Go to &lt;a href="http://pkgs.org/download/tsocks"&gt;this website&lt;/a&gt;, scroll to the very bottom, and click on the link for the correct version of linux and 32 vs 64 bit OS.&lt;br /&gt;&amp;nbsp; &amp;nbsp;Under the Download Mirrors section click on "select mirror".&lt;br /&gt;&amp;nbsp; &amp;nbsp;Click on the &lt;a href="http://archive.ubuntu.com/ubuntu/pool/universe/t/tsocks/tsocks_1.8beta5-9.1_i386.deb"&gt;binary package&lt;/a&gt; link to download the .deb file.&lt;br /&gt;Step 4: Install the tsocks .deb file.&lt;br /&gt;Step 5: Edit the tsocks file, first rename the default file then modify the original file.&lt;br /&gt;&amp;nbsp; &amp;nbsp;sudo mv /etc/tsocks.conf /etc/tsocks.conf.old&lt;br /&gt;&amp;nbsp; &amp;nbsp;sudo nano /etc/tsocks.conf&lt;br /&gt;Step 6: Add the following&amp;nbsp;two lines to the file:&lt;br /&gt;&amp;nbsp; &amp;nbsp;server = 127.0.0.1&lt;br /&gt;&amp;nbsp; &amp;nbsp;server_port = 6060&lt;br /&gt;&amp;nbsp; &amp;nbsp;these lines tell tsocks to redirect all traffic fed through it to the local loopback ip using port 800.&lt;br /&gt;Step 7: Start up a ssh session accepting traffic on the port that tsocks is now configured to send it on.&lt;br /&gt;&amp;nbsp; &amp;nbsp;ssh -C -D6060 -v -v user@www.domain.us&lt;br /&gt;&amp;nbsp; &amp;nbsp;The -v -v are two levels of&amp;nbsp;verbose&amp;nbsp;troubleshooting, you only need to use them if you want to watch what is happening inside the tunnel.&lt;br /&gt;Step 8: Open another command prompt, and startup a firefox session through tsocks. I used firefox simply because it is a decent browser and is the default one installed on linux. Use the following command at a command prompt.&lt;br /&gt;&amp;nbsp; &amp;nbsp;sudo&amp;nbsp;tsocks firefox&lt;br /&gt;&lt;br /&gt;With this setup all firefox's child processes should be tunneled through the tsocks connection as well which includes things like voice calls or video chats started from the web browser but running on different ports. &amp;nbsp;Replacing firefox with the command for other applications you can try tunneling them through the tsocks connection as well.&lt;br /&gt;&lt;br /&gt;Steps 7 and 8 will need to be repeated every time you want to initiate the tunnel from now on.&lt;br /&gt;&lt;br /&gt;Getting your audio, and other USB devices to work correctly through the virtual machine is a whole different issue. &amp;nbsp;If you have too many problems with this try using a regular Linux install instead of a virtual box.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-4180178592948770329?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/4180178592948770329/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2011/12/tsocks-with-ubuntu-linux.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/4180178592948770329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/4180178592948770329'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2011/12/tsocks-with-ubuntu-linux.html' title='TSocks with Ubuntu Linux'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-4815857355593464403</id><published>2011-12-22T11:46:00.000-08:00</published><updated>2011-12-22T12:20:40.567-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WinXP'/><title type='text'>Cancel a remotely initiated shutdown</title><content type='html'>&lt;a href="http://www.blogger.com/"&gt;&lt;/a&gt;&lt;span id="goog_1801798820"&gt;&lt;/span&gt;&lt;span id="goog_1801798821"&gt;&lt;/span&gt;If a shutdown of your system has been initiated remotely you will see a dialog &lt;a href="http://marksxp.mvps.org/WindowsXP/rpc.php"&gt;similar to this&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;img alt="systemshutdown" src="http://marksxp.mvps.org/images/rpc/rpc.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;To kill this dialog and cancel the shutdown, open up a command prompt window as administrator. &amp;nbsp;Then issue the following command:&lt;br /&gt;&lt;br /&gt;shutdown -a&lt;br /&gt;&lt;br /&gt;The "a" stands for abort. &amp;nbsp;You can also use the shutdown command to initiate your own shutdown of remote systems. &amp;nbsp;You can send messages and manipulate many different aspects of the windows shutdown procedure with this command and its parameters.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-4815857355593464403?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/4815857355593464403/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2011/12/cancel-remotely-initiated-shutdown.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/4815857355593464403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/4815857355593464403'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2011/12/cancel-remotely-initiated-shutdown.html' title='Cancel a remotely initiated shutdown'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-6087845589530658563</id><published>2011-12-15T14:46:00.000-08:00</published><updated>2011-12-15T14:46:18.894-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WinXP'/><title type='text'>Cancel restart from automatic updates</title><content type='html'>Have you ever been working on a very important project and needed to put off the forced restart that many system administrators have setup on their domain?&lt;br /&gt;&lt;br /&gt;As long as you have local admin rights it is a simple process of running the following command from the command prompt.&lt;br /&gt;&lt;br /&gt;sc stop wuauserv&lt;br /&gt;&lt;br /&gt;Sc.exe is part of the windows resource toolkit, it is called Service Control and can be used for all sorts of service manipulation. &amp;nbsp;The stop word is fairly self explanitory. &amp;nbsp;The final word is simply the name of the service to be stopped, in this case the service running the windows update that controls the annoying dialog.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-6087845589530658563?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/6087845589530658563/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2011/12/cancel-restart-from-automatic-updates.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/6087845589530658563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/6087845589530658563'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2011/12/cancel-restart-from-automatic-updates.html' title='Cancel restart from automatic updates'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-9217286421226647931</id><published>2011-12-12T15:58:00.000-08:00</published><updated>2011-12-12T15:58:01.225-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>Secure Shell Tunneling</title><content type='html'>Recently I have had need to get to some websites that were not reachable from my current network location. &amp;nbsp;They weren't bad websites, just a password storage site and some school related information.&lt;br /&gt;&lt;br /&gt;So I started looking around at the various proxy solutions to see what they had to offer, unfortunately, most free proxies have been blocked on many networks in the US for the obvious reason that they help people bypass browsing limitations placed on them. &amp;nbsp;You can find a listing of many such proxy ips here at:&amp;nbsp;&lt;a href="http://hidemyass.com/"&gt;http://hidemyass.com&lt;/a&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;This site also offers another kind of proxy called the web-based proxy which allows you to tell their website where you want to go and it will act as a wrapper fetching the content you want inside of itself. &amp;nbsp;The downside to this method is the ways that the page masks it's content from DNS and IP blocker often leaves the page unusable if the destination page is complex enough.&lt;br /&gt;&lt;br /&gt;Fortunately there is a third solution which I was recently taught about called SSH tunneling. &amp;nbsp;I already love dealing with remote servers so this plays right into my&amp;nbsp;skill-set&amp;nbsp;and has become an easy favorite. &amp;nbsp;Skill-set&amp;nbsp;might be pushing it a bit far since there really is no&amp;nbsp;skill-set&amp;nbsp;required to implement the tunnel, all the required server software is already&amp;nbsp;naively&amp;nbsp;built into *nix servers and the client end can be downloaded for free.&lt;br /&gt;&lt;br /&gt;To route your web traffic over an ssh tunnel first you need some form of ssh client, I use windows so I typically use putty.exe. &amp;nbsp;Other methods can be read about here:&amp;nbsp;&lt;a href="http://www.free-ssh.com/"&gt;Free SSH&lt;/a&gt;. &amp;nbsp;You will need an account on a remote SSH/*nix server that you can reach. &amp;nbsp;If you don't have one you can risk using a free one from a list such as this:&amp;nbsp;&lt;a href="http://dataproxy.blogspot.com/2009/09/free-ssh-tunnel.html"&gt;SSH Proxy List&lt;/a&gt;; keep in mind that any server you log into could potentially be tracking or reading any and all data you send through it, including passwords to all your accounts.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;With your remote account and putty.exe in hand,&amp;nbsp;start up&amp;nbsp;putty.&lt;/li&gt;&lt;li&gt;Under Connection/SSH/Tunnels create a new source port, can be any port you choose that is not being used; for destination choose dynamic.&lt;/li&gt;&lt;li&gt;Under Session type in the IP or host name as well as Port number (typically 22 for SSH connections).&lt;/li&gt;&lt;li&gt;Choose a connection type of SSH and click open.&lt;/li&gt;&lt;li&gt;It will probably prompt you to store the key in the&amp;nbsp;registry, go ahead and do it.&lt;/li&gt;&lt;li&gt;Login to the remote server with your username and password.&lt;/li&gt;&lt;li&gt;Next, in your web browser, get into its settings/network connections/proxy servers; you will want to configure a manual proxy server and set the SOCKS Host to 127.0.0.1 (which is your own computer that now has an open ssh connection)&lt;/li&gt;&lt;li&gt;Enter the port you choose when you created the tunnel configuration in putty.&lt;/li&gt;&lt;li&gt;And save.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;You should now be able to reach any website that you can resolve a name to an ip for. &amp;nbsp;If you need a free and open DNS server you can use Googles: 8.8.4.4 or 8.8.8.8.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-9217286421226647931?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/9217286421226647931/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2011/12/secure-shell-tunneling.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/9217286421226647931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/9217286421226647931'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2011/12/secure-shell-tunneling.html' title='Secure Shell Tunneling'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-2845567199130940028</id><published>2011-12-09T10:40:00.001-08:00</published><updated>2011-12-09T11:02:25.316-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hardware'/><title type='text'>Power Over Ethernet in Switch-port Modules</title><content type='html'>I recently ran into a rather interesting issue regarding enabling POE for a switch-port module. &amp;nbsp;Those of you who have worked with routers&amp;nbsp;extensively&amp;nbsp;for years are probably well aware of both the problem and the solution, however those of us who have only a years experience managing them need some nudges in the right direction some times.&lt;br /&gt;&lt;br /&gt;Problem:&lt;br /&gt;Now for the problem. We had done some recent updates on our networks routers adding sticky mac configurations to the switch-port modules inside them. &amp;nbsp;After the update a few of our users started reporting that their IP phones would no longer power up. &amp;nbsp;Their computers hanging off the same switch-port modules were all working fine. &amp;nbsp;But not all switch-port modules were having the issue.&lt;br /&gt;&lt;br /&gt;Solution:&lt;br /&gt;After spending hours going through the configs we sought external help. &amp;nbsp;I was lucky enough that the first person I talked to had not only heard of the issue but had been able to find a solution. &amp;nbsp;The solution was so simple it is almost&amp;nbsp;embarrassing&amp;nbsp;to post it. &amp;nbsp;I learned that POE for routers modules is tied to the default VLAN for that router, in order to allow power to flow through to the switch-port module we needed to trunk the default vlan through on the switch-port modules trunk port, in our case vlan 1.&lt;br /&gt;&lt;br /&gt;As soon as we trunked vlan1 through everything powered up and life was good again. &amp;nbsp;For security reasons we had been trained to shut the default vlan down and never use it. &amp;nbsp;It never occurred to me to check to see if a vlan, which was always administratively down, had access. &amp;nbsp;It is still rather odd that power flows even though the interface is down, yet still requires the interface on the trunk port.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-2845567199130940028?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/2845567199130940028/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2011/12/power-over-ethernet-in-switch-port.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/2845567199130940028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/2845567199130940028'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2011/12/power-over-ethernet-in-switch-port.html' title='Power Over Ethernet in Switch-port Modules'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-3284126954857826942</id><published>2011-12-03T16:37:00.001-08:00</published><updated>2011-12-03T17:03:43.444-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hardware'/><title type='text'>Logitech USB Headset Low Volume</title><content type='html'>My mother was having problems with her&amp;nbsp;Logitech&amp;nbsp;USB headset, we would be chatting and she was having trouble hearing me. &amp;nbsp;It took a little while but she finally came across a rather unique solution on the Internet.&lt;br /&gt;&lt;br /&gt;A few days later she lost the ability to use her headset at all, I couldn't even hear her. &amp;nbsp;After some basic troubleshooting I suggested that she try restoring her computer to date prior in which it worked. &amp;nbsp;This worked and I was once again able to hear her, however she was no longer able to hear me very well. &amp;nbsp;I looked through my email and found the solution she used once before and using that she made adjustments to her volume until things worked normally again.&lt;br /&gt;&lt;br /&gt;She then had a feedback problem which she used a prior blog post of mine which talked about &lt;a href="http://jeremeguenther.blogspot.com/2011/08/microphone-feedback-problem.html"&gt;muting the microphone&lt;/a&gt; to fix.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I don't know where on the Internet she got the following quote, if anyone knows let me know so I can give credit to the original poster.&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;I have a logitech usb 250 headset that suddenly one day the volume was verly low on the headset. Have tried and searched for a solution but nothing worked. Today i found a solution that worked for me.&lt;br /&gt;&lt;br /&gt;Try this:&lt;br /&gt;1. Open control panel&lt;br /&gt;2. Open sound/playback devices&lt;br /&gt;3. Select Logitech USB Headset, and click on the Properties&lt;br /&gt;4. Opel Levels tab, and click on Balance button&lt;br /&gt;5. Slide one of the sliders so that the values are different, for example top at 100, and bottom at 99&lt;/blockquote&gt;I agree with the original poster that this is a very strange solution, but it work. &amp;nbsp;I hope this helps someone with their own issues, and hopefully&amp;nbsp;Logitech&amp;nbsp;will come out with an updated driver that solves these issues.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-3284126954857826942?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/3284126954857826942/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2011/12/logitech-usb-headset-low-volume.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/3284126954857826942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/3284126954857826942'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2011/12/logitech-usb-headset-low-volume.html' title='Logitech USB Headset Low Volume'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-1742419843037746898</id><published>2011-10-11T11:24:00.000-07:00</published><updated>2011-10-21T20:36:41.439-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hardware'/><title type='text'>DSL Speed Issue</title><content type='html'>I ran into a rather intriguing problem recently.  My mothers DSL was very slow, she wasn't even getting half of what she paid for.  After an upgrade she still didn't see any increase in speed.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The customer representatives said it was because she was too far from the source to get any better speed; which I knew could be a potential factor, however her issue seemed greater than just that. After a great deal of pain and effort one company tech finally had my mother unplug her phone from the DSL filter and immediately all the speed was received.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So we learned that the little DSL filters are not capable of supporting both a computer and a phone. I assume separating two signals instead of one is just too much for the small devices to handle. Using a separate filter solved the issue and allowed my mother to have both fast internet and a working land line.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-1742419843037746898?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/1742419843037746898/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2011/10/dsl-speed-issue.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/1742419843037746898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/1742419843037746898'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2011/10/dsl-speed-issue.html' title='DSL Speed Issue'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-1180061628617828786</id><published>2011-08-22T21:18:00.000-07:00</published><updated>2011-12-03T16:48:51.358-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hardware'/><title type='text'>Microphone feedback problem</title><content type='html'>I recently ran into a feedback issue where my microphone was feeding back into the speakers.  After a little troubleshooting I learned that muting the microphone fixed the issue which was to be expected.&lt;br /&gt;&lt;br /&gt;Quite by chance I discovered that even with the microphone muted in the advanced sound properties on my computer the microphone on my headset still worked.  So I have come to the conclusion that somehow a second microphone driver got installed on the computer and when I mute it the issue goes away.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-1180061628617828786?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/1180061628617828786/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2011/08/microphone-feedback-problem.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/1180061628617828786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/1180061628617828786'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2011/08/microphone-feedback-problem.html' title='Microphone feedback problem'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-8407947807401157226</id><published>2011-07-02T15:09:00.000-07:00</published><updated>2011-07-02T15:18:58.094-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><title type='text'>File not found for .net page</title><content type='html'>I recently had an error on a new IIS server where it would always return an error for .aspx files.  Other files would work just fine.  If I changed the version of .net that the site ran in the IIS settings down to v1 it would find the file, just error out because the code wasn't designed for it.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I finally solved the problem by re-installing v2 of the .net run-time.  It seems the install got corrupted.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-8407947807401157226?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/8407947807401157226/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2011/07/file-not-found-for-net-page.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/8407947807401157226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/8407947807401157226'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2011/07/file-not-found-for-net-page.html' title='File not found for .net page'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-665944884290654487</id><published>2011-01-08T08:52:00.000-08:00</published><updated>2011-01-08T09:13:50.197-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>Microsoft's SkyDrive and Online Office Suite</title><content type='html'>I just found something very interesting.&lt;div&gt;&lt;br /&gt;&lt;div&gt;I have been using Google for just about everything I can think of in my life, so unfortunately for now Microsoft has missed the boat of having me as their customer online. I still have an account with them but don't use it all that frequently.  The main reason for this is that Microsoft has always offered an inferior product online to almost any other company out there.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;At first their only offering was Hotmail, not bad and it certainly revolutionized the world of free online email, but it didn't keep up for long; it was a great innovation and they captured the online world with it. But then they slept on it, the few improvements made didn't keep up with other companies online offerings.  Then came the "Live" branding and a new level of effort was put into their online free products.  They greatly improved, once again surpassing much of the competition, however they are still playing catchup to Google in this area.  During this period Google has captured a good chunk of their user base, especially the tech minded people.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The online world started expanding from just email offerings to online storage and office suites.  Google was the first of the two giants to hop on board with free online office documents and forms of online storage.  Then Microsoft came out with a massive free online storage offering trying to dwarf it's competition.  I even use this for the shear volume they offered; at one time it was 20GB.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Most recently they have finally caught up to Google's online office suite offering.  There have been quite a few smaller companies offering online office sweets for free, but the convenience wasn't there for me. Extra logins, slow load times, etc, all kept me away and happy with Google's ever improving version of office applications. Now it appears Microsoft has finally rolled out a free version of their office suite completely usable online.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;With this Microsoft is once again within sight behind Google and I have hope that Google will be given a run for their money.  However, I will continue to stay with Google for now for two reasons. One, I am already entrenched there and moving would be hard. Two, Microsoft still has very busy graphics intensive pages that just don't feel like a pleasant environment to me. Also their organization is still lacking. Google has a simple and consistent organization that makes it easy to find all my stuff. While Microsoft has gotten better, their online environment still feels confusing, unintuitive, and heavy.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But, for those who want an alternative to Google's online documents. Microsoft is now a good alternative. I'm very happy to see this progress on their part, I was almost ready to write off Microsoft as having given up in the online race.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-665944884290654487?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://explore.live.com/windows-live-skydrive' title='Microsoft&apos;s SkyDrive and Online Office Suite'/><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/665944884290654487/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2011/01/microsofts-skydrive-and-online-office.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/665944884290654487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/665944884290654487'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2011/01/microsofts-skydrive-and-online-office.html' title='Microsoft&apos;s SkyDrive and Online Office Suite'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-4155030216417562287</id><published>2011-01-01T23:32:00.000-08:00</published><updated>2011-12-03T16:49:41.652-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>Latitude Tracker - Google Chrome Browser Extension</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;-------------&lt;/div&gt;&lt;div&gt;Edit: I originally intended on hosting this Chrome Extension on the chrome extensions website. But then I discovered that google had locked out all developers unless they paid a $5 fee for the privilege of giving away free programs to people. I expect google will probably find a better solution for the problem they were trying to fix, but in the meantime I'd still like to make this extension available to people, so I zipped it and uploaded it to google docs. Click on the title to download it.&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Unfortunately you will have to manually install it by:&lt;/div&gt;&lt;div&gt;1. unzip/unpack it to a folder&lt;/div&gt;&lt;div&gt;2. open chrome ( web browser )&lt;/div&gt;&lt;div&gt;3. click the Wrench button/tools/extensions&lt;/div&gt;&lt;div&gt;4. click Developer Mode&lt;/div&gt;&lt;div&gt;5. click Load Unpacked Extension&lt;/div&gt;&lt;div&gt;6. select the directory you just created when  you unzipped the file and press ok.&lt;/div&gt;&lt;div&gt;-------------&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This is v0.3, a kind of google beta, if you will.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It is designed for laptop users to keep their Google Latitude positions automatically updated.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Features:&lt;/div&gt;&lt;div&gt;1. Shows your current location on a map.&lt;/div&gt;&lt;div&gt;2. Updates your latitude account with your location periodically.&lt;/div&gt;&lt;div&gt;3. option to set how long ( in minutes ) between updates. default 5&lt;/div&gt;&lt;div&gt;4. option to set how long ( in minutes ) it checks back if an error occurs. default 1&lt;/div&gt;&lt;div&gt;5. option to turn it off, or update with a custom position in coordinates. default auto&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Currently it updates your Latitude account every 5 minutes, as well as shows you a nice little popup with your position in coordinates and on a google map.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Screenshot:&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5557818830888653234" src="http://3.bp.blogspot.com/_feTq9Lg0TH0/TSFWx7UYUbI/AAAAAAAABjk/gTRacP4loeY/s320/screenshot.png" style="cursor: hand; cursor: pointer; display: block; height: 210px; margin: 0px auto 10px; text-align: center; width: 320px;" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Credits:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I have to thank the "Google Latitude Updater" project from google code which doesn't seem to have made it to production, but had some crucial code to help me over a rough spot.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Also the "Geo Location" chrome extension which can be found on the chrome extensions site. The popup and geo locating code showing your position on the map actually came from there; I intend to add to it in future versions, but for now not much has been changed.&lt;/div&gt;&lt;div&gt;&lt;a href="https://chrome.google.com/webstore/detail/ebpepkmcecplhjpdfiojfjbjofekjhcp"&gt;Geo Location Extension&lt;/a&gt; developed by &lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; border-collapse: collapse; color: white; font-family: arial, sans-serif; font-size: 15px; line-height: 22px;"&gt;&lt;a href="http://thomasamsler.org/"&gt;thomasamsler.org&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-4155030216417562287?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='https://docs.google.com/leaf?id=0Bw4h_PZMcXOGMjFhMzQ1MmYtN2NhMS00MzI1LTgzMzEtYTZmYmMyNjM0YzY4&amp;sort=name&amp;layout=list&amp;num=50' title='Latitude Tracker - Google Chrome Browser Extension'/><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/4155030216417562287/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2011/01/latitude-tracker-chrome-extension.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/4155030216417562287'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/4155030216417562287'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2011/01/latitude-tracker-chrome-extension.html' title='Latitude Tracker - Google Chrome Browser Extension'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_feTq9Lg0TH0/TSFWx7UYUbI/AAAAAAAABjk/gTRacP4loeY/s72-c/screenshot.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-5804257058042464755</id><published>2010-09-12T07:01:00.000-07:00</published><updated>2010-09-12T17:38:20.255-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><title type='text'>WCF Service this.Invoke The operation has timed out</title><content type='html'>Well I had another issue which stumped me for awhile. It's a simple fix, but I spent a while on it so I figured I would try and save others similar pain.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So here is the scenario. I just added a new Web Service for my project to consume using the URL which pointed to the source WCF Service.  I have consumed a  lot of web services in the past so it was nothing new and I built out all the code rather quickly for it. However, when I tried to run it, it would always timeout, no other errors just a timeout:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana; font-size: 11px; "&gt;&lt;span&gt;&lt;h1 style="font-family: Verdana; font-weight: normal; font-size: 18pt; color: red; "&gt;Server Error in '/' Application.&lt;hr width="100%" size="1" color="silver"&gt;&lt;/h1&gt;&lt;h2 style="font-family: Verdana; font-weight: normal; font-size: 14pt; color: maroon; "&gt;&lt;i&gt;The operation has timed out&lt;/i&gt;&lt;/h2&gt;&lt;/span&gt;&lt;span&gt;&lt;b style="font-family: Verdana; font-weight: bold; color: black; margin-top: -5px; "&gt;Description: &lt;/b&gt;An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.&lt;br /&gt;&lt;br /&gt;&lt;b style="font-family: Verdana; font-weight: bold; color: black; margin-top: -5px; "&gt;Exception Details: &lt;/b&gt;System.Net.WebException: The operation has timed out&lt;br /&gt;&lt;br /&gt;&lt;b style="font-family: Verdana; font-weight: bold; color: black; margin-top: -5px; "&gt;Source Error:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;table width="100%" bg&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;&lt;pre style="font-family: 'Lucida Console'; font-size: 0.9em; "&gt;Line 82:         [return: System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] Line 83:         public string &lt;span class="Apple-style-span" style="color: rgb(255, 0, 0); "&gt;SaveMethod&lt;/span&gt;(string AppId, [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] CustomObject myobject) {&lt;br /&gt;&lt;span&gt;Line 84:             object[] results = this.Invoke("SaveMethod", new object[] { &lt;/span&gt;Line 85:                         AppId, Line 86:                         myobject});&lt;/pre&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;b style="font-family: Verdana; font-weight: bold; color: black; margin-top: -5px; "&gt;Source File: &lt;/b&gt;C:\path\Reference.cs&lt;b style="font-family: Verdana; font-weight: bold; color: black; margin-top: -5px; "&gt;    Line: &lt;/b&gt;84&lt;br /&gt;&lt;br /&gt;&lt;b style="font-family: Verdana; font-weight: bold; color: black; margin-top: -5px; "&gt;Stack Trace:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;table width="100%" bgcolor="#ffffcc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;&lt;pre style="font-family: 'Lucida Console'; font-size: 0.9em; "&gt;[WebException: The operation has timed out]    System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(WebRequest request) +358    System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(WebRequest request) +42    System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) +268    System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +37    System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +91    System.Web.UI.Control.OnLoad(EventArgs e) +148    System.Web.UI.Control.LoadRecursive() +122    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3412 &lt;/pre&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;hr width="100%" size="1" color="silver"&gt;&lt;b style="font-family: Verdana; font-weight: bold; color: black; margin-top: -5px; "&gt;Version Information:&lt;/b&gt; Microsoft .NET Framework Version:2.0.50727.3615; ASP.NET Version:2.0.50727.3614&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I removed some of the stack trace that was specific to my application...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After fighting with this issue for a day or two, stepping through the code, monitoring calls at both ends, the basic troubleshooting stuff. I finally read &lt;a href="http://geekswithblogs.net/MainaD/archive/2008/02/04/119287.aspx"&gt;this blog post&lt;/a&gt; again, who knows what neurons in my brain got triggered and why, but it clicked... I had added my WCF Service as a Web Service.  Adding WCF Services isn't quite as intuitive as the old web service was because there is no Add WCF Service option in the visual studio 2008 gui that I could find. Instead you have to right click on the project name itself and click Add Service Reference.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;---------------------&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The next error I fought trying to get this web service up was:&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, Geneva, SunSans-Regular, sans-serif; font-size: 11px; "&gt;&lt;b style="font-family: Verdana; font-weight: bold; color: black; margin-top: -5px; "&gt; &lt;/b&gt;System.Net.WebException: The remote server returned an error: (405) Method Not Allowed.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;This was resolved by making sure that the "endpoint address" on the server had the service URL without the final file name. While the client "endpoint address" had the fully qualified url of the wcf service.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-5804257058042464755?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://geekswithblogs.net/MainaD/archive/2008/02/04/119287.aspx' title='WCF Service this.Invoke The operation has timed out'/><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/5804257058042464755/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2010/09/wcf-service-thisinvoke-operation-has.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/5804257058042464755'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/5804257058042464755'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2010/09/wcf-service-thisinvoke-operation-has.html' title='WCF Service this.Invoke The operation has timed out'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-214425489855999874</id><published>2010-08-15T22:06:00.000-07:00</published><updated>2010-08-23T15:46:41.080-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google Chrome Incognito Doesn't load GMail</title><content type='html'>I just had an interesting issue.&lt;div&gt;for some reason gmail stopped working in google chrome. It still worked great in the regular browser, but as soon as I went incognito I would get a blank screen.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I found the answer at the linked google forum site. It was very basic and something I would expect and try instantly in Internet Explorer, but I have never had the issue in Chrome.  Turns out all I needed to do was clear the browsing history and cache.  A simple fix and I am glad that was all it turned out to be, at the same time that's a trick that IE pulls; Chrome is supposed to be better than that.  However, that is the first time ever that I have had that issue, hopefully it doesn't become a habit of it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Edit: apparently that only fixed the issue for a short period. A few minutes later it started having the issue again and I have been unable to get it fixed.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Edit2: well what do you know, a few days later it just started working again. Apparently google worked out the issue and sent out an update. It's good to know they are still working on it. I love this browser.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-214425489855999874?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.google.com/support/forum/p/Chrome/thread?tid=14a91a9edd34b035&amp;hl=en' title='Google Chrome Incognito Doesn&apos;t load GMail'/><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/214425489855999874/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2010/08/google-chrome-incognito-doesnt-load.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/214425489855999874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/214425489855999874'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2010/08/google-chrome-incognito-doesnt-load.html' title='Google Chrome Incognito Doesn&apos;t load GMail'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-3727205463992215684</id><published>2010-08-07T14:42:00.000-07:00</published><updated>2010-08-07T14:51:28.504-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Chrome Extensions</title><content type='html'>Well finally, after all this waiting, Google Chrome finally has &lt;a href="http://chrome.google.com/extensions"&gt;official extensions&lt;/a&gt;.&lt;div&gt;Some of us have played around with the unofficial things which have been ok, but not so easy to use; however now we get the official integration and it sure is slick.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;They seem to have a pretty good range of diversity as well. The two that I have settled on using right now are the google voice and gmail as default mail client extensions.  There seem to be a few great ones  for web developers as well to bring up to speed with the development helpfulness of firefox.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So far my limited experience with them has been really good. While the helpfulness of any given extension depends on its developer, the interface to use them seems almost perfect. They have a very fast download time, almost instantaneous install and uninstall, and so far have been unimposing and have not seems to affect my browser speed.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-3727205463992215684?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://chrome.google.com/extensions' title='Chrome Extensions'/><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/3727205463992215684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2010/08/chrome-extensions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/3727205463992215684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/3727205463992215684'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2010/08/chrome-extensions.html' title='Chrome Extensions'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-6332743023708879973</id><published>2010-06-27T04:44:00.000-07:00</published><updated>2010-06-27T04:57:27.616-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Travel'/><category scheme='http://www.blogger.com/atom/ns#' term='Military'/><title type='text'>Purchasing plane ticket</title><content type='html'>I've been trying to figure out when the best time to purchase a plane ticket on orbitz.com is.&lt;div&gt;It's been quite a confusing process, purchasing a plane ticket has got to be one of the least straight forward things I have ever tried to acquire.&lt;/div&gt;&lt;div&gt;Each day brings slightly different pricing, and occasionally when I click on a price I want to explore it has disappeared.&lt;/div&gt;&lt;div&gt;Another very annoying thing is price disclosure. Orbitz seems to at least try, but some flights require the archaic method of mailing me the tickets on paper. This ends up adding about $30 to the total package. Not only does this make me mad when I have already settled on a price, but how does it benefit the airline? They now have to go through the work of mailing out a set of tickets, which is extra overhead, when they already have a better system in place; and they have to deal with tickets getting lost in the mail.&lt;/div&gt;&lt;div&gt;Also it is hard to shop around and compare prices on other ticket sites with the pricing changing so quickly, I might come back to my good deal only to find it gone.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-6332743023708879973?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/6332743023708879973/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2010/06/purchasing-plane-ticket.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/6332743023708879973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/6332743023708879973'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2010/06/purchasing-plane-ticket.html' title='Purchasing plane ticket'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-7579150438649427923</id><published>2010-06-07T09:10:00.000-07:00</published><updated>2010-06-07T09:14:30.015-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Military'/><title type='text'>getting ready for permanent duty.</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;Well in a couple of months I will be heading to my permanent duty station.  Looking like Ft Drum though possibly Ft Lewis.  I would much prefer Ft Lewis, Ft Drums snow doesn't sound super appealing, plus Ft Lewis is much closer to home.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;AIT barracks are horrible, so I was looking at trying to figure out what my new home would look like.  Here is a picture someone took of &lt;a href="http://www.goarmyparents.com/forum/viewtopic.php?f=5&amp;amp;t=10810&amp;amp;start=45"&gt;their room&lt;/a&gt; at Ft Drum:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://1.bp.blogspot.com/_feTq9Lg0TH0/TA0ahXoIc6I/AAAAAAAABcU/gtepYTs9XrA/s320/ftdrum_baracks.jpg" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5480065482160108450" /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-7579150438649427923?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/7579150438649427923/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2010/06/getting-ready-for-permanent-duty.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/7579150438649427923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/7579150438649427923'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2010/06/getting-ready-for-permanent-duty.html' title='getting ready for permanent duty.'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_feTq9Lg0TH0/TA0ahXoIc6I/AAAAAAAABcU/gtepYTs9XrA/s72-c/ftdrum_baracks.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-2728368325335753626</id><published>2010-02-13T14:00:00.000-08:00</published><updated>2010-05-09T13:04:12.001-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>googles new blog type idea sharing tool</title><content type='html'>I've played with the new google sharing tool for a few hours now...&lt;div&gt;So far I'd say it has potential, but still isn't worth using just yet.&lt;/div&gt;&lt;div&gt;It has the ability to pull in posts from other rss type sites which is rather cool.&lt;/div&gt;&lt;div&gt;It is trying to integrate into gmail which has potential, however the integration is pretty poor still.&lt;/div&gt;&lt;div&gt;It has some pretty big security concerns still and is difficult to find exactly what you want when looking through it.&lt;/div&gt;&lt;div&gt;My biggest complaint is the email integration, it floods the gmail inbox with emails that are only half integrated into the sharing tool, they allow comments and moderation to be performed from them, however archiving and deletion have no effect on the sharing tool post itself.  It's like a separate copy of the post was sent to gmail that has shortcuts in it to perform some of the convenience actions.  This is a problem for me because the big thing I like about google is centralization, having two copies of a post sent to me seems to make management more difficult and just creates clutter.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Edit: this post is getting spammed a lot so I am trying to reword it to cut down on spam.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-2728368325335753626?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/2728368325335753626/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2010/02/buzz.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/2728368325335753626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/2728368325335753626'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2010/02/buzz.html' title='googles new blog type idea sharing tool'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-7783653886687379750</id><published>2010-02-12T10:38:00.001-08:00</published><updated>2010-02-12T10:41:57.798-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>google docs</title><content type='html'>Google docs recently came out with a new feature that I have been waiting for for awhile.  It now allows you to add all types of files, not just those supported by docs themselves. This is great in that now I have one central place to save all my most important documents.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Unfortunately storage is still limited to 1GB so I still use skydrive.live.com for longer term storage of documents that I need to save but might not need to access quite as frequently.  Skydrive is pretty week on features still, but it offers more storage than any other free service I have found.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-7783653886687379750?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/7783653886687379750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2010/02/google-docs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/7783653886687379750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/7783653886687379750'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2010/02/google-docs.html' title='google docs'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-2930724178181380675</id><published>2009-12-28T16:46:00.000-08:00</published><updated>2009-12-28T16:51:49.395-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Apex'/><title type='text'>selectCheckboxes and commandbuttons in Sales Force</title><content type='html'>Through a lot of trial and error I discovered that the use of selectCheckboxes in Apex code built for salesforce.com disabled all command buttons on the page from executing their code, even though they still posted back to the server.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It was a very odd thing and was easily fixed by changing to selectOptions which is what I needed instead of checkboxes anyway.  I am hoping that I had some sort of error in my code that caused the issue, I am sure that others have used selectCheckboxes just fine before.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My guess is that some sort of syntactical error that Eclipse didn't catch is what caused the issue, however since it is gone now I do not plan on digging further into the matter.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-2930724178181380675?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/2930724178181380675/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2009/12/selectcheckboxes-and-commandbuttons-in.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/2930724178181380675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/2930724178181380675'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2009/12/selectcheckboxes-and-commandbuttons-in.html' title='selectCheckboxes and commandbuttons in Sales Force'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-4634410316364808060</id><published>2009-12-28T16:41:00.000-08:00</published><updated>2010-01-16T03:31:26.592-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Military'/><title type='text'>Starting Classes</title><content type='html'>I have finally started classes in AIT for the MOS 25S.&lt;br /&gt;So far we have crammed through basic electronics which I got 100% in.&lt;br /&gt;Next we will be learning some of the more specialized equipment.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-4634410316364808060?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/4634410316364808060/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2009/12/starting-classes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/4634410316364808060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/4634410316364808060'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2009/12/starting-classes.html' title='Starting Classes'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-2556516733394267968</id><published>2009-11-04T08:37:00.000-08:00</published><updated>2009-11-04T08:40:35.418-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>Free faxing with Skype</title><content type='html'>I discovered a wonderful little add-on to skype that allows you to fax with your computer.  For infrequent faxers it is free, and there are paid options for those who fax a lot.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-2556516733394267968?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='https://extras.skype.com/1571' title='Free faxing with Skype'/><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/2556516733394267968/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2009/11/free-faxing-with-skype.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/2556516733394267968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/2556516733394267968'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2009/11/free-faxing-with-skype.html' title='Free faxing with Skype'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-7366063474572791628</id><published>2009-11-03T09:07:00.000-08:00</published><updated>2009-11-03T09:14:29.831-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Military'/><title type='text'>Internet Access</title><content type='html'>The laptop that my wife mailed me finally arrived with all the required amenities.  I am slowly starting to catch up on my online activities again. I really missed having a computer and an online connection.&lt;br /&gt;&lt;br /&gt;I am looking forward to being rejoined with my family during Christmas vacation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-7366063474572791628?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/7366063474572791628/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2009/11/internet-access.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/7366063474572791628'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/7366063474572791628'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2009/11/internet-access.html' title='Internet Access'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-1612300291507435434</id><published>2009-10-25T10:43:00.000-07:00</published><updated>2009-10-25T10:49:38.352-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Military'/><title type='text'>Basic Pictures</title><content type='html'>An army chaplain was nice enough to take some pictures of us in basic training.&lt;br /&gt;For those who are interested... here are a few pictures of me and what life was like.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;table style="WIDTH: auto"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/AxNjaWp1reK3drnnRW3AnA?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_feTq9Lg0TH0/SuSDL9eTQcI/AAAAAAAAAis/cOKTvP5Ro5w/s144/jeg_gas1.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="FONT-SIZE: 11px; FONT-FAMILY: arial,sans-serif; TEXT-ALIGN: right"&gt;From &lt;a href="http://picasaweb.google.com/jereme.guenther/MilitaryBasic?feat=embedwebsite"&gt;Military/Basic&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;table style="WIDTH: auto"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/oi4c_UnK6VO_J4PgQzVhqw?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_feTq9Lg0TH0/SuSDL0xtleI/AAAAAAAAAiw/oK1A7SGilmU/s144/jeg_nic1.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="FONT-SIZE: 11px; FONT-FAMILY: arial,sans-serif; TEXT-ALIGN: right"&gt;From &lt;a href="http://picasaweb.google.com/jereme.guenther/MilitaryBasic?feat=embedwebsite"&gt;Military/Basic&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;table style="WIDTH: auto"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/qi-G9lB4tB7pKyt-HE_W_Q?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_feTq9Lg0TH0/SuSDMV05x8I/AAAAAAAAAjA/blyFONZSw_I/s144/jeg_vic2.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="FONT-SIZE: 11px; FONT-FAMILY: arial,sans-serif; TEXT-ALIGN: right"&gt;From &lt;a href="http://picasaweb.google.com/jereme.guenther/MilitaryBasic?feat=embedwebsite"&gt;Military/Basic&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;My album with a few extra pictures can be found here:&lt;br /&gt;&lt;br /&gt;&lt;table style="width:194px;"&gt;&lt;tr&gt;&lt;td align="center" style="height:194px;background:url(http://picasaweb.google.com/s/c/transparent_album_background.gif) no-repeat left"&gt;&lt;a href="http://picasaweb.google.com/jereme.guenther/MilitaryBasic?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_feTq9Lg0TH0/SuSC9cH87aE/AAAAAAAAAjE/bJuZTNGd4WA/s160-c/MilitaryBasic.jpg" width="160" height="160" style="margin:1px 0 0 4px;"&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align:center;font-family:arial,sans-serif;font-size:11px"&gt;&lt;a href="http://picasaweb.google.com/jereme.guenther/MilitaryBasic?feat=embedwebsite" style="color:#4D4D4D;font-weight:bold;text-decoration:none;"&gt;Military/Basic&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-1612300291507435434?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/1612300291507435434/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2009/10/basic-pictures.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/1612300291507435434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/1612300291507435434'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2009/10/basic-pictures.html' title='Basic Pictures'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_feTq9Lg0TH0/SuSDL9eTQcI/AAAAAAAAAis/cOKTvP5Ro5w/s72-c/jeg_gas1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-2766237356745741458</id><published>2009-10-24T09:53:00.000-07:00</published><updated>2009-10-24T09:56:38.654-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Military'/><title type='text'>After Basic</title><content type='html'>Well so far AIT has been mildly dissapointing.  They are so overbooked with recruits that we are put on waiting lists for months.&lt;br /&gt;&lt;br /&gt;I am able to talk to my wife each day on the cell phone which really helps.  She has shipped me a laptop which should arrive in about a week which we should be able to do video chat on, that will be nice.  We are hoping to have her move down here right after Christmas vacation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-2766237356745741458?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/2766237356745741458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2009/10/after-basic.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/2766237356745741458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/2766237356745741458'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2009/10/after-basic.html' title='After Basic'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-2120507634505672837</id><published>2009-10-16T17:02:00.000-07:00</published><updated>2009-12-28T16:44:55.976-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Military'/><title type='text'>Graduating Basic</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_feTq9Lg0TH0/StkKrVusVCI/AAAAAAAAAiA/ywVbprpQCaM/s1600-h/jeg_dress_uniform.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 240px; height: 320px;" src="http://1.bp.blogspot.com/_feTq9Lg0TH0/StkKrVusVCI/AAAAAAAAAiA/ywVbprpQCaM/s320/jeg_dress_uniform.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5393353768436519970" /&gt;&lt;/a&gt;&lt;br /&gt;Well basic was definitely an experience.  Physically it wasn't too much of a challenge given my country upbringing; but I missed my family a lot and wasn't allowed hardly any contact with them.  I am looking forward to AIT with apprehension, we'll see how much freedom I have, I'm hoping for the best and planning for the worst.  I really miss computers and hope I have access to them both for programming and contacting my family.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I took this photo for my wife, it's not my standard uniform, but I really like having something I can go on a nice date in now.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-2120507634505672837?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/2120507634505672837/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2009/10/graduating-basic.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/2120507634505672837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/2120507634505672837'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2009/10/graduating-basic.html' title='Graduating Basic'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_feTq9Lg0TH0/StkKrVusVCI/AAAAAAAAAiA/ywVbprpQCaM/s72-c/jeg_dress_uniform.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-347932971798717357</id><published>2009-07-13T10:28:00.000-07:00</published><updated>2009-07-13T15:34:28.075-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='t-sql'/><category scheme='http://www.blogger.com/atom/ns#' term='sql server'/><title type='text'>Invalid use of side-effecting or time-dependent operator in 'UPDATE' within a function.</title><content type='html'>I have run into a very interesting and very frustrating problem with Sql Server.&lt;div&gt;So far my experimenting points to a bug in sql server, though I wish it was something I was doing wrong.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I have created a scalar-valued function that uses a table variable.  According to &lt;a href="http://msdn.microsoft.com/en-us/library/aa258261(SQL.80).aspx"&gt;microsoft's msdn&lt;/a&gt; and several other sites doing inserts, updates, and deletes on local table variables in user functions is very valid.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In my case I was able to get Inserts and Deletes to work, but am having all sorts of issues with the Update statement.  I copied microsofts example one and that executed fine, so then I started replacing pieces of their code with my own and saving/executing until it was a duplicate of my original function.  At this point I assumed something must have been cached incorrectly in my original query window.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;However, I needed to add a second update statement to the function and while the first one still works the second one won't take.  So after messing with it for a bit I once again executed the microsoft example and bit by bit copied each piece of my sproc over replacing their code; and what do you know it worked again.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The only difference I can see is that their update statements are inside of a While loop, so it is still a bug in sql server, but I might be getting a little closer to a better work around.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Update:  Looks like it might have been my problem after all, which is wonderful.  I was using &lt;b&gt;square brackets&lt;/b&gt; around my table variables; on a co-workers suggestion I removed those and my queries started working.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'm guessing that all I was doing before was figuring out a way to bypass the query parser as can often happen in large stored procedures.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-347932971798717357?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/347932971798717357/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2009/07/invalid-use-of-side-effecting-or-time.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/347932971798717357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/347932971798717357'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2009/07/invalid-use-of-side-effecting-or-time.html' title='Invalid use of side-effecting or time-dependent operator in &apos;UPDATE&apos; within a function.'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-3687704173206124928</id><published>2009-06-24T13:34:00.000-07:00</published><updated>2009-06-24T13:43:11.118-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>salesforce insufficient privileges on custom page</title><content type='html'>I recently created a new custom apex page in SalesForce.  It worked fine as an administrator but regular users were unable to find it.&lt;br /&gt;All of the solutions I found assumed someone was pretty familiar with navigating the SFDC admin area so I figured I would give the path where the answer is located.&lt;br /&gt;&lt;br /&gt;The page that helped me the most is &lt;a href="http://www.gotsalesforce.com/Home/tabid/902/BlogID/21/Default.aspx"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Login as an administrator&lt;/li&gt;&lt;li&gt;Click on the 'Setup' link on the left of the upper right hand side&lt;/li&gt;&lt;li&gt;Under 'Administration Setup' in the left hand column, expand the 'Manage Users' list&lt;/li&gt;&lt;li&gt;Click on 'Profiles'&lt;/li&gt;&lt;li&gt;Click on the NAME of the profile you want to give permissions to ( under the Users area you can see what profile your users are assigned to )&lt;/li&gt;&lt;li&gt;Scroll to the bottom of the page&lt;/li&gt;&lt;li&gt;Click on the 'Edit' button for the 'Enabled Apex Class Access' area&lt;/li&gt;&lt;li&gt;Move your new class into the enabled list and click the 'Save' button&lt;/li&gt;&lt;li&gt;Scroll to the bottom of the page again.&lt;/li&gt;&lt;li&gt;Click on the 'Edit' button for the 'Enabled Visualforce Page Access' area&lt;/li&gt;&lt;li&gt;Move your new page into the enabled list and click the 'Save' button&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;That should be it, anyone in that profile should now be able to see the new page.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-3687704173206124928?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.gotsalesforce.com/Home/tabid/902/BlogID/21/Default.aspx' title='salesforce insufficient privileges on custom page'/><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/3687704173206124928/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2009/06/salesforce-insufficient-privileges-on.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/3687704173206124928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/3687704173206124928'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2009/06/salesforce-insufficient-privileges-on.html' title='salesforce insufficient privileges on custom page'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-4020956181638528965</id><published>2009-06-17T10:03:00.000-07:00</published><updated>2009-06-17T10:09:33.013-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='t-sql'/><category scheme='http://www.blogger.com/atom/ns#' term='sql server'/><title type='text'>Cross Apply Incorrect syntax near '.'</title><content type='html'>I recently ran into an issue that had me puzzled for a bit.&lt;div&gt;I was using the new Cross Apply functionality in SQL 2005 and was getting the error:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Incorrect syntax near '.'&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I checked and rechecked my syntax but couldn't figure out what I had done wrong.&lt;/div&gt;&lt;div&gt;After doing some googling I came accross &lt;a href="http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=71869"&gt;this sqlteam post&lt;/a&gt; in which another poor guy had worked through the same issue.&lt;/div&gt;&lt;div&gt;He ended up figuring out that Cross Apply didn't work when the database was set to sql 2000 compatibility.  It makes sense, though it might have been nice to get a more clear error message.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Armed with that information I looked up the &lt;a href="http://blog.sqlauthority.com/2007/05/29/sql-server-2005-change-database-compatible-level-backward-compatibility/"&gt;code to change the db compatibility level&lt;/a&gt;, and what do you know my problem was solved.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here is the code copied from the link above:&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: -webkit-monospace; color: rgb(51, 51, 51); font-size: 12px; line-height: 19px; "&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: green; "&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: green; "&gt;----SQL Server 2005 database compatible level to SQL Server 2000&lt;br /&gt;&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: blue; "&gt;EXEC &lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(139, 0, 0); "&gt;sp_dbcmptlevel &lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: black; "&gt;AdventureWorks&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: gray; "&gt;, &lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: black; "&gt;80&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: gray; "&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: black; "&gt;GO&lt;br /&gt;&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: green; "&gt;----SQL Server 2000 database compatible level to SQL Server 2005&lt;br /&gt;&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: blue; "&gt;EXEC &lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(139, 0, 0); "&gt;sp_dbcmptlevel &lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: black; "&gt;AdventureWorks&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: gray; "&gt;, &lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: black; "&gt;90&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: gray; "&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: black; "&gt;GO&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: black; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 13px; white-space: pre; "&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-4020956181638528965?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=71869' title='Cross Apply Incorrect syntax near &apos;.&apos;'/><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/4020956181638528965/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2009/06/cross-apply-incorrect-syntax-near.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/4020956181638528965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/4020956181638528965'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2009/06/cross-apply-incorrect-syntax-near.html' title='Cross Apply Incorrect syntax near &apos;.&apos;'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-8592865493650827403</id><published>2009-06-08T13:38:00.000-07:00</published><updated>2009-06-17T13:09:42.292-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='education'/><title type='text'>Colorado Technical University</title><content type='html'>&lt;div style="text-align: left;"&gt;I was recently reading on military.com and discovered that Colorado Technical University was one of their recommended colledges.&lt;/div&gt;&lt;div&gt;It seemed they favored CTU because the college not only had higher education courses and has a great distance educational program but also because the school takes special care to tailor itself to the service man/woman's needs.  For example they allow the service member to put their education on temporary hold if they get deployed.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.coloradotech.edu/ctu-online/"&gt;&lt;img src="http://4.bp.blogspot.com/_feTq9Lg0TH0/SjlM_fK_liI/AAAAAAAAAFc/M5owhjSxk-4/s320/ctu_logo.gif" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 213px; height: 86px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5348390686062253602" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Getting such praise from the military is great for me since that just happens to be the college I graduated from.  Now that I have joined the U.S. Army, when I want to continue my education I won't have any issue transfering education since they already have all my records.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-8592865493650827403?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.coloradotech.edu/' title='Colorado Technical University'/><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/8592865493650827403/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2009/06/colorado-technical-university.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/8592865493650827403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/8592865493650827403'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2009/06/colorado-technical-university.html' title='Colorado Technical University'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_feTq9Lg0TH0/SjlM_fK_liI/AAAAAAAAAFc/M5owhjSxk-4/s72-c/ctu_logo.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-8591163173542730855</id><published>2009-06-08T13:22:00.000-07:00</published><updated>2009-06-17T10:48:11.843-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c#.net'/><title type='text'>Web Resource but no Embedded Resource</title><content type='html'>&lt;span class="Apple-style-span"  style="font-size:small;"&gt;I was having a major problem trying to get an embedded javascript file registered.&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;The issue started because I was trying to port over Raj Kaimal's ( http://weblogs.asp.net/rajbk/ ) GridView client side reordering extender to the Data Grid.  Since both controls are very similar the work wasn't difficult, however I was getting hung up trying to stick the .js file in my backend dll.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Searching google it seemed as though a lot of people got hung up in this area.  I finally stumbed on &lt;a href="http://www.flixon.com/Articles/23.aspx"&gt;Lee's post&lt;/a&gt; &lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;which directed me to &lt;a href="http://damianblog.com/2007/02/22/webresource-but-no-emeddedresource/"&gt;Damian's blog&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;While niether of those posts directly solved my issue, Damian gave me the idea of using a reflector to see what the .NET view of my dll looked like.  From that and a little luck I discovered that the proper syntax was:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;[assembly: System.Web.UI.WebR&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;esource("[default namespace].[folder].[file name].js", "text/javascript")]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;then for the script reference:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;new ScriptReference("[default namespace].[folder].[file name].js", "[assembly name]");&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;most people keep the default namespace and the assembly name the same which makes things simpler but fosters a lot of confusion as to what the various parameters are really looking for.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-8591163173542730855?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://damianblog.com/2007/02/22/webresource-but-no-emeddedresource/' title='Web Resource but no Embedded Resource'/><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/8591163173542730855/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2009/06/web-resource-but-no-embedded-resource.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/8591163173542730855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/8591163173542730855'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2009/06/web-resource-but-no-embedded-resource.html' title='Web Resource but no Embedded Resource'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-1139043093150019168</id><published>2009-03-25T13:48:00.000-07:00</published><updated>2009-03-31T08:39:08.212-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='t-sql'/><title type='text'>T-Sql trigger doesn't always work.</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; "&gt;&lt;div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; width: auto; font: normal normal normal 100%/normal Georgia, serif; text-align: left; "&gt;I'm having a rather odd problem.  A trigger I wrote for database Inserts seems to work about 99 percent of the time, but periodically some records will get inserted that the trigger never fires for.  Or rather that the data the trigger is suppose to create is never created.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It's a rather odd delima, if I can figure it out I will try and put the answer here.  In the meantime, if anyone else has experienced this I wouldn't mind hearing about it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ok I figured out the answer with a little help from Google.&lt;/div&gt;&lt;div&gt;turns out that in SQL Server a trigger fires once per set of operation as opposed to once per affected row.&lt;/div&gt;&lt;div&gt;so for a standard insert statement the trigger works fine, but if the insert statement has more than one record it is inserting then the trigger will only be fired once.  Good news is that the "inserted" table contains all the records that were inserted, not just one; so you still have access to all the records, you just get them in batch form instead of individually.&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-1139043093150019168?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/1139043093150019168/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2009/03/bulk-insert-disables-sql-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/1139043093150019168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/1139043093150019168'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2009/03/bulk-insert-disables-sql-server.html' title='T-Sql trigger doesn&apos;t always work.'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-2302425259837593766</id><published>2009-03-02T13:11:00.000-08:00</published><updated>2009-03-02T13:23:29.698-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><title type='text'>Unwanted space between li elements in IE</title><content type='html'>I ran into an old problem today... a problem where some extra white space was appearing between items in a list.&lt;div&gt;In this particular case it was only appearing below list elements in an ul where the li contained an image.&lt;/div&gt;&lt;div&gt;Caused the problem:&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&amp;lt;ul&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;lt;li&amp;gt;&amp;lt;img src="submenu.gif" /&amp;gt;&amp;lt;/li&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;lt;li&amp;gt;Contact Us&amp;lt;/li&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Fixed the problem:&lt;/div&gt;&lt;div&gt;&amp;lt;ul&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;lt;li&amp;gt;&amp;lt;img src="submenu.gif" /&amp;gt;&amp;amp; nbsp;&amp;lt;/li&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;lt;li&amp;gt;Contact Us&amp;lt;/li&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To fix the issue I ended up manually adding a space with the html code &amp;amp; nbsp;&lt;/div&gt;&lt;div&gt;I recall this issue occuring with some floated divs in IE6 as well, though this time I was having the issue with IE7.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It's a really odd fix to a bug in IE7, but it does seem to work and doesn't seem to cause adverse affects in other browsers.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-2302425259837593766?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/2302425259837593766/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2009/03/unwanted-space-between-li-elements-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/2302425259837593766'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/2302425259837593766'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2009/03/unwanted-space-between-li-elements-in.html' title='Unwanted space between li elements in IE'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-4033870075697509498</id><published>2009-02-18T15:00:00.000-08:00</published><updated>2009-02-18T15:03:24.136-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c#.net'/><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><title type='text'>Getting and Setting cookies</title><content type='html'>I was recently having a lot of trouble trying to set and read a cookie in asp.net.  I discovered that my big issue was not correctly using the Request and Response objects.  The Request object is only used for retrieving a cookie, while the Response object is only used for creating a cookie.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Another little anomaly I found.  Apparently the client doesn't send the experation date of a cookie when it sends the cookie to the server.  So, in asp.net when retrieving a cooky the experation date will always be MinDate even if the date is set correctly.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;    HttpRequest oRequest = System.Web.HttpContext.Current.Request;&lt;/div&gt;&lt;div&gt;    HttpResponse oResponse = System.Web.HttpContext.Current.Response;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;      HttpCookie oCookie = oRequest.Cookies[ConfigurationManager.AppSettings["anonUserCookie"]];&lt;/div&gt;&lt;div&gt;      if (oCookie == null) oCookie = new HttpCookie(ConfigurationManager.AppSettings["anonUserCookie"], Guid.NewGuid().ToString());&lt;/div&gt;&lt;div&gt;      oCookie.Expires = DateTime.UtcNow.AddMonths(1);&lt;/div&gt;&lt;div&gt;      oResponse.Cookies.Add(oCookie);&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-4033870075697509498?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/4033870075697509498/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2009/02/getting-and-setting-cookies.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/4033870075697509498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/4033870075697509498'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2009/02/getting-and-setting-cookies.html' title='Getting and Setting cookies'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-2597049952317729239</id><published>2009-02-16T12:59:00.000-08:00</published><updated>2009-02-16T13:18:58.849-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><title type='text'>IE7 div centering with margin auto</title><content type='html'>I've been having some problems getting a div to center on a webpage.  All the websites I have visited said the fix was easy and gave me various forms of this as a solution:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: -webkit-monospace; font-size: 13px; white-space: pre-wrap; "&gt;&amp;lt;div style="text-align:center;"&amp;gt;&lt;br /&gt; &amp;lt;div style="text-align:left;"&amp;gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: -webkit-monospace; font-size: 13px; white-space: pre-wrap;"&gt;Content goes here.&lt;/span&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: -webkit-monospace; font-size: 13px; white-space: pre-wrap;"&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: -webkit-monospace; font-size: 13px; white-space: pre-wrap;"&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: -webkit-monospace; font-size: 13px; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;However, no matter what I put in my stylesheet I couldn't get it to work.  Turns out this fix has to be applied inline.  Putting it in a stylesheet doesn't work.  Once I got that figured out and grumbled for a bit everything worked great.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-2597049952317729239?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.cosnetics.co.uk/articles/IE7-margin-auto-not-working/' title='IE7 div centering with margin auto'/><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/2597049952317729239/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2009/02/ie7-div-centering-with-margin-auto.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/2597049952317729239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/2597049952317729239'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2009/02/ie7-div-centering-with-margin-auto.html' title='IE7 div centering with margin auto'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-1368933195103087283</id><published>2009-01-20T12:57:00.000-08:00</published><updated>2009-01-20T13:00:33.627-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Access'/><category scheme='http://www.blogger.com/atom/ns#' term='c#.net'/><title type='text'>OleDbConnection.GetSchema MS Access list of Tables, Columns, Key columns</title><content type='html'>I have submitted a couple of community content pieces of code &lt;a href="http://msdn.microsoft.com/en-us/library/ms135981.aspx"&gt;here&lt;/a&gt;.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;They give details on how to use the ole getschema method to retrieves the schema from an access database to get tables, columns, or key columns.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-1368933195103087283?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://msdn.microsoft.com/en-us/library/ms135981.aspx' title='OleDbConnection.GetSchema MS Access list of Tables, Columns, Key columns'/><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/1368933195103087283/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2009/01/oledbconnectiongetschema-ms-access-list.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/1368933195103087283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/1368933195103087283'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2009/01/oledbconnectiongetschema-ms-access-list.html' title='OleDbConnection.GetSchema MS Access list of Tables, Columns, Key columns'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-8334752272736945902</id><published>2009-01-15T09:40:00.000-08:00</published><updated>2009-01-15T11:35:00.931-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><category scheme='http://www.blogger.com/atom/ns#' term='testing'/><title type='text'>NUnit error - Could not load type 'custom.namespace' from assembly 'System.Web...</title><content type='html'>I was recently having some issues using NUnit to test my code when the code was using the .net membership profile provider.  Scott Davis summed it up &lt;a href="http://weblogs.asp.net/jgalloway/archive/2008/01/19/writing-a-custom-asp-net-profile-class.aspx#6025139"&gt;nicely&lt;/a&gt;:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;I've implemented it easily in my site and it works great, but have you been able to unit test it?  On my first attempt, the inherited "Create" method returned a DefaultProfile object, which caused a casting failure.  I figured out that the Unit Tests were not using the web.config file to see the custom Profile Provider I configured, then I figured out you need to copy the web.config to the unit test project, and rename it to app.config.  However now I get the error.  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;"Test method TestMyProject.UserControllerTest.CreateNewUserTest threw exception:  System.TypeLoadException: Could not load type 'MyRootNamespace.Profile.UserProfile' from assembly 'System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.."&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;I don't know why it is not looking the DLL that contains my custom "UserProfile" class.  Any ideas?  It works in my website, but not in the Unit Test.  The UnitTest project references the project containing the Profile class.  I'm using VS2008 built-in Unit Testing.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A little further down I found a link to a &lt;a href="http://forums.asp.net/p/1270044/2397754.aspx#2397754"&gt;forum&lt;/a&gt; where the answer was eventually discovered from &lt;a href="http://geekswithblogs.net/AzamSharp/archive/2007/12/30/118071.aspx"&gt;here&lt;/a&gt; and explained a little further:&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;My config file was something like this:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;?xml version="1.0" encoding="utf-8" ?&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;configuration&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &amp;lt;connectionStrings&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;    &amp;lt;add name="MeanWormConnectionString" connectionString="Server=localhost;Database=MeanWormDB;Trusted_Connection=true"/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &amp;lt;/connectionStrings&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &amp;lt;system.web&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;    &amp;lt;membership defaultProvider="MeanWormMembershipProvider"&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;      &amp;lt;providers&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;        &amp;lt;remove name="AspNetSqlMembershipProvider"/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;        &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;          &amp;lt;add applicationName="MeanWorm" requiresQuestionAndAnswer="false"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;            requiresUniqueEmail="true" minRequiredNonalphanumericCharacters="0"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;            enablePasswordReset="true" passwordFormat="Hashed" connectionStringName="MeanWormConnectionString"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;            name="MeanWormMembershipProvider" type="MeanWorm.Domain.Providers.MeanWormMembershipProvider" /&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;        &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;      &amp;lt;/providers&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;    &amp;lt;/membership&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &amp;lt;/system.web&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;/configuration&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; His config file was this:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;?xml version="1.0" encoding="utf-8" ?&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;configuration&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &amp;lt;connectionStrings&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;    &amp;lt;add name="MeanWormConnectionString" connectionString="Server=localhost;Database=MeanWormDB;Trusted_Connection=true"/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &amp;lt;/connectionStrings&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &amp;lt;system.web&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;    &amp;lt;membership defaultProvider="MeanWormMembershipProvider"&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;      &amp;lt;providers&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;        &amp;lt;remove name="AspNetSqlMembershipProvider"/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;        &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;          &amp;lt;add applicationName="MeanWorm" requiresQuestionAndAnswer="false"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;            requiresUniqueEmail="true" minRequiredNonalphanumericCharacters="0"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;            enablePasswordReset="true" passwordFormat="Hashed" connectionStringName="MeanWormConnectionString"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;            name="MeanWormMembershipProvider" &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;type&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;="MeanWorm.Domain.Providers.MeanWormMembershipProvider&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;,MeanWorm.Domain&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;" /&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;        &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;      &amp;lt;/providers&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;    &amp;lt;/membership&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &amp;lt;/system.web&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;/configuration&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Can you spot the difference? It's in the "type" attribute of the add provider tag. If you have a custom provider and do not specify the partial assembly name to find the class in, nunit flips out and tries to load the class from the default assembly, which is System.Web.dll.&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;If you want more information on how the type attribute works check out this &lt;a href="http://weblogs.asp.net/anasghanem/archive/2008/05/25/differences-when-registering-httpmodules-and-httphandlers-for-web-application-projects-and-website-project.aspx?CommentPosted=true#commentmessage"&gt;post&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-8334752272736945902?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://forums.asp.net/p/1270044/2397754.aspx#2397754' title='NUnit error - Could not load type &apos;custom.namespace&apos; from assembly &apos;System.Web...'/><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/8334752272736945902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2009/01/nunit-error-could-not-load-type.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/8334752272736945902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/8334752272736945902'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2009/01/nunit-error-could-not-load-type.html' title='NUnit error - Could not load type &apos;custom.namespace&apos; from assembly &apos;System.Web...'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-6221201835197393053</id><published>2009-01-14T12:32:00.000-08:00</published><updated>2009-01-14T12:34:31.351-08:00</updated><title type='text'>NUnit: Could not load file or assembly 'Microsoft.Practices.ObjectBuilder</title><content type='html'>I use NUnit for testing and was getting this error when using one of the Microsoft app blocks to write stuff to the event log.&lt;br /&gt;Turns out the answer was simple, the Microsoft.Practices.ObjectBuilder.dll simply didn't get copied locally in the test project even though it was set to copy local.  I manually copied in the dll and it works great.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-6221201835197393053?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://bytes.com/groups/net-asp/621454-could-not-load-file-assembly-microsoft-practices-objectbuilder' title='NUnit: Could not load file or assembly &apos;Microsoft.Practices.ObjectBuilder'/><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/6221201835197393053/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2009/01/nunit-could-not-load-file-or-assembly.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/6221201835197393053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/6221201835197393053'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2009/01/nunit-could-not-load-file-or-assembly.html' title='NUnit: Could not load file or assembly &apos;Microsoft.Practices.ObjectBuilder'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-3918722080971518994</id><published>2009-01-13T11:54:00.000-08:00</published><updated>2009-01-15T10:12:24.021-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vs.net'/><category scheme='http://www.blogger.com/atom/ns#' term='WinXP'/><title type='text'>Create Strong Name Key - Access Denied Error</title><content type='html'>I recently ran into this error when trying to generate a new strong name key file.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I found the solution &lt;a href="http://www.dasblonde.net/2006/02/19/ClickOnceCreateStrongNameKeyAccessDeniedError.aspx"&gt;here&lt;/a&gt;:&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;I had to give my user account access to the key container in C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys. It turns out, even administrator rights were disabled on my machine! I am not sure if this was the default installation (I rebuilt the machine a few weeks ago) or if this is modified when I install WinFX, or if when I granted ASP.NET and NETWORK SERVICE access it somehow lost the inherited permissions that were granted when I installed the OS. In any case, at least it seems predictable, you need access to the key store in order to generate keys, makes sense!&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-3918722080971518994?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.dasblonde.net/2006/02/19/ClickOnceCreateStrongNameKeyAccessDeniedError.aspx' title='Create Strong Name Key - Access Denied Error'/><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/3918722080971518994/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2009/01/create-strong-name-key-access-denied.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/3918722080971518994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/3918722080971518994'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2009/01/create-strong-name-key-access-denied.html' title='Create Strong Name Key - Access Denied Error'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-82305316118828402</id><published>2009-01-12T15:28:00.000-08:00</published><updated>2009-01-12T15:33:34.539-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WinXP'/><title type='text'>Copy and Paste from Excel to MS Access says corrupt clipboard</title><content type='html'>I was trying to copy a massive amount of information from MS Excel 2007 to MS Access 2007.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After going through all the standard troubleshooting like rebooting and making sure all versions were compatible, I mentioned the issue to my co-worker.  Fortunately for me my co-worker had already experience and spent time figuring out the issue; when I heard what the problem was I was glad he was the one who did the leg work figuring it out.  I didn't do that much work with Excel and Access so I wasn't sure when the problem had begun.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Turns out a relatively recent Microsoft Excel security update ( &lt;a href="http://update.microsoft.com/microsoftupdate/v6/itemdetails.aspx?iPage=1&amp;amp;index=3&amp;amp;ln=en-us"&gt;KB958437&lt;/a&gt;)  was the culprit.  As soon as I got that uninstalled copy and paste between the two apps started working again.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-82305316118828402?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/82305316118828402/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2009/01/copy-and-paste-from-excel-to-ms-access.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/82305316118828402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/82305316118828402'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2009/01/copy-and-paste-from-excel-to-ms-access.html' title='Copy and Paste from Excel to MS Access says corrupt clipboard'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-6533734403145559846</id><published>2009-01-12T15:25:00.001-08:00</published><updated>2009-01-12T15:27:21.111-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WinXP'/><title type='text'>Add or Remove Programs list not populating</title><content type='html'>I spent several days trying to figure out why my Add or Remove Programs list no longer populated.  It would just sit there saying populating, but not actually displaying any programs.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Finally I happened accross &lt;a href="http://forums.techguy.org/windows-nt-2000-xp/669051-add-remove-programs-hangs-please.html"&gt;this thread&lt;/a&gt;, where someone was talking about an extra drive of their causing problems.  Turns out I had an external hard drive that was corrupted, as soon as I turned it off the list started working again.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-6533734403145559846?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://forums.techguy.org/windows-nt-2000-xp/669051-add-remove-programs-hangs-please.html' title='Add or Remove Programs list not populating'/><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/6533734403145559846/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2009/01/add-or-remove-programs-list-not.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/6533734403145559846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/6533734403145559846'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2009/01/add-or-remove-programs-list-not.html' title='Add or Remove Programs list not populating'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-4243578829491157310</id><published>2009-01-09T09:57:00.000-08:00</published><updated>2009-01-12T15:20:22.746-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c#.net'/><title type='text'>Using the Data Link Properties wizard in .NET code</title><content type='html'>I had a really hard time finding an example for this code so I decided to blog about it.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;With .NET and Microsoft's dedication to documentation in the last couple of years I have really gotten spoiled.  It is pretty rare that I actually dig into .dll's anymore trying to find some obscure functions and how to use them.  These days if I can't find code examples using the Google search engine for something I want to do I will often just find another way around the problem, it just isn't worth spending time trying to dig into the lower levels for a very high level application.  ( Google Chrome is one exception to this, thanks Google for digging for the extra speed, I love it. )&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In this case I spent a few minutes searching for a connection string builder.  I didn't find one so I started to role my own.  After a couple of hours of that and realising just how many options there are I decided to try searching again.  I knew one existed, Microsoft uses it in all their apps it seems, just had to find where it was and how to call it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I found this guy:&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.geocities.com/izenkov/"&gt;http://www.geocities.com/izenkov/&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;who had essencially made a wrapper around what I was looking for, but there was no source code.  However the fact he did it reinforced my certainty that I would find what I wanted.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Next I ran into &lt;a href="http://pedotnet.blogspot.com/2008/07/how-to-invoke-ole-db-data-link.html"&gt;Elisabeth&lt;/a&gt; who gave me the big break with source code and everything:&lt;/div&gt;&lt;div&gt;[quote source="Elisabeth"]&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(30, 30, 30); font-family: Verdana; font-size: 11px; line-height: 16px; "&gt;&lt;pre class="csharpcode" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="kwrd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;using&lt;/span&gt; MSDASC;&lt;br /&gt;&lt;span class="kwrd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;using&lt;/span&gt; ADODB;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="csharpcode" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="kwrd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;private&lt;/span&gt; &lt;span class="kwrd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;string&lt;/span&gt; BuildConnectionString()&lt;br /&gt;{&lt;br /&gt;          &lt;span class="kwrd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;string&lt;/span&gt; strConnString = &lt;span class="str" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;""&lt;/span&gt;;&lt;br /&gt;          &lt;span class="kwrd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;object&lt;/span&gt; _con = &lt;span class="kwrd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;null&lt;/span&gt;;&lt;br /&gt;          MSDASC.DataLinks _link = &lt;span class="kwrd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;new&lt;/span&gt; MSDASC.DataLinks();&lt;br /&gt;          _con = _link.PromptNew();&lt;br /&gt;          &lt;span class="kwrd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;if&lt;/span&gt; (_con == &lt;span class="kwrd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;null&lt;/span&gt;) &lt;span class="kwrd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;return&lt;/span&gt; &lt;span class="kwrd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;string&lt;/span&gt;.Empty;&lt;br /&gt;          strConnString = ((ADODB.Connection)_con).ConnectionString;&lt;br /&gt;          &lt;span class="kwrd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;return&lt;/span&gt; strConnString;&lt;br /&gt;}&lt;/pre&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;[/quote]&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I did end up having to go to &lt;a href="http://www.devnewsgroups.net/group/microsoft.public.dotnet.framework.adonet/topic58054.aspx"&gt;her source&lt;/a&gt; ( glad she linked to it ) to get the pretty names of the .dll's that needed to be referenced:&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: Tahoma; font-size: 13px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;Microsoft ActiveX Data Objects 2.8 Library&lt;br /&gt;Microsoft OLEDB Service Component 1.0 Type Library&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-4243578829491157310?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://pedotnet.blogspot.com/2008/07/how-to-invoke-ole-db-data-link.html' title='Using the Data Link Properties wizard in .NET code'/><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/4243578829491157310/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2009/01/using-data-link-properties-wizard-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/4243578829491157310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/4243578829491157310'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2009/01/using-data-link-properties-wizard-in.html' title='Using the Data Link Properties wizard in .NET code'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-2980344902475078522</id><published>2008-12-29T13:20:00.001-08:00</published><updated>2009-01-12T15:20:12.475-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='t-sql'/><title type='text'>joins on t-sql table valued functions</title><content type='html'>I love using functions to create re-usable code.  However I recently ran into a major issue with them.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I created one to return a simple list of ids, based on some authentication data, which I could then use to return only records that users had access to.  I read a couple of articles which said table valued functions were great for performance, especially over scalar valued functions.  They cautioned to use them in the joins though and not in the select or where clauses; the articles claimed that the select and where clauses would cause them to execute once for each record.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I followed the advice of the articles, which seemed logical, and we started having all sorts of speed issues with our application.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Through a little trial and error I discovered that my table valued function would often add minutes onto the execution time of a sproc when used in the join area of the sql statement.  I tried moving it down to the Where clause using the In keyword and the sprocs began executing in less than a second again.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Maybe I was reading the articles backwards, but I have learned to use table valued functions in my where clause and not in the join part of a sql statement.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;On a side note, I have lots of really small sprocs with the function in their join clause, so it is possible that the optimizer only has problems with it when there are at least a hand full of tables it is working with.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-2980344902475078522?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/2980344902475078522/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2008/12/joins-on-t-sql-table-valued-functions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/2980344902475078522'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/2980344902475078522'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2008/12/joins-on-t-sql-table-valued-functions.html' title='joins on t-sql table valued functions'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-156392358518232593</id><published>2008-12-29T10:57:00.000-08:00</published><updated>2008-12-29T11:03:14.335-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='reporting services'/><title type='text'>matrix RowNumber doesn't work with even rows</title><content type='html'>&lt;div&gt;I recently ran into a new issue with Microsoft Reporting Services 2005 matrix control.&lt;/div&gt;&lt;div&gt;When trying to color alternating columns with collapsible row groups, I discovered that when a group contained an even number of rows the typical alternating code didn't work:&lt;/div&gt;iif(RowNumber("matrix_RowGroup") Mod 2, "LightGrey", "White")&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This is due to RowNumber being multiplied by the number of rows when a group is collapsed.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After some research and playing around I discovered that CountRows() would give me the number of rows in the current context, so when a group was expanded it would always return 1, while when the group was collapsed it would give me the number of rows in the group.  After that a little simple division worked wonders and fixed my issue:&lt;br /&gt;&lt;div&gt;iif(RowNumber("matrix_RowGroup")/CountRows() Mod 2, "LightGrey", "White")&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-156392358518232593?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/156392358518232593/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2008/12/matrix-rownumber-doesnt-work-with-even.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/156392358518232593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/156392358518232593'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2008/12/matrix-rownumber-doesnt-work-with-even.html' title='matrix RowNumber doesn&apos;t work with even rows'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-7529294849438977927</id><published>2008-11-26T18:01:00.000-08:00</published><updated>2008-11-27T01:01:37.546-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='testing'/><title type='text'>Asp.net unit tests with nunit - config file</title><content type='html'>I have been trying to get more into testing lately.  I work for a company that isn't really a development shop and I have never been exposed to proper testing methods in real life.  So it has been up to me and my teammates to get a test environment setup and working without running up a huge bill.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We started with AutomatedQA's &lt;a href="http://www.automatedqa.com/products/testcomplete/"&gt;TestComplete&lt;/a&gt; product, which is very nice and helps us automate the macro type tasks.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I recently discovered that Visual Studio has builtin support for auto generating a good portion of Unit tests.  Unfortunately the MSTest.exe file isn't stand alone.  Since we really don't want to buy another license just to run unit tests I decided to check out &lt;a href="http://www.nunit.org/"&gt;NUnit&lt;/a&gt; which seemed to advertise exactly what we needed.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After a bit of work and learning I got some basic unit tests passing in NUnit.  Then I tried to create tests for some of our database method calls.  That's when things started blowing up.  The error seemed to stem from the methods being unable to find the web.config file.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Reading around a little it looks like since I was running things in NUnit .NET wasn't looking for a config file with the name web.config.  After taking half a dozen incorrect guesses based on various blog posts, I grabbed the good old tool &lt;a href="http://download.sysinternals.com/Files/Filemon.zip"&gt;File Monitor&lt;/a&gt; from &lt;a href="http://www.sysinternals.com/"&gt;sysinternals.com&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I used that to figure out that it was looking for a file called unittests.config.  I made a copy of my web.config file, renamed it to the desired name, and placed it in the folder where the nunit process was looking.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now things are working much better, I still have a few bugs to workout, but I am no longer getting the config file error.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As a side note, in the NUnit GUI, under the Project/Edit menu item there is a configuration setting called "Configuration File Name" set to unittests.config.  I have a strong hunch that setting controls the name of the file it is looking for.  I did try and play with that setting earlier, however nunit kept throwing errors since the file didn't exist so I gave up; might have to look into it again.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-7529294849438977927?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/7529294849438977927/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2008/11/aspnet-unit-tests-with-nunit-config.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/7529294849438977927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/7529294849438977927'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2008/11/aspnet-unit-tests-with-nunit-config.html' title='Asp.net unit tests with nunit - config file'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-6603701325904229351</id><published>2008-11-25T16:39:00.001-08:00</published><updated>2008-11-25T16:44:24.930-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='testing'/><title type='text'>ClassNotes_2008-11-17</title><content type='html'>&lt;p align="CENTER" style="margin-bottom: 0.21in; border-top: none; border-bottom: 1.00pt solid #ffff00; border-left: none; border-right: none; padding-top: 0in; padding-bottom: 0.06in; padding-left: 0in; padding-right: 0in"&gt;&lt;br /&gt;&lt;img src="http://docs.google.com/File?id=dg4ccd7n_5frvjt4dc_b" name="WATERMAR" align="BOTTOM" width="65" height="100" border="0" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0.21in; border-top: none; border-bottom: 1.00pt solid #ffff00; border-left: none; border-right: none; padding-top: 0in; padding-bottom: 0.06in; padding-left: 0in; padding-right: 0in"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0.21in; border-top: none; border-bottom: 1.00pt solid #ffff00; border-left: none; border-right: none; padding-top: 0in; padding-bottom: 0.06in; padding-left: 0in; padding-right: 0in"&gt;&lt;br /&gt;&lt;span style="color:#17365d;"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:6;"&gt;&lt;span style="font-size:6;"&gt;Test&lt;br /&gt;Complete – Training Notes&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;Quick&lt;br /&gt;Info&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;The&lt;br /&gt;trainer had trouble deviating from his lecture path so most questions&lt;br /&gt;were put off.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;The&lt;br /&gt;web wireless login was:&lt;br /&gt;User: AutoQA&lt;br /&gt;Pass: AutoQA&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom: 0.14in"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;January&lt;br /&gt;15 a new indepth TC book is being released.  The instructor promised&lt;br /&gt;me a paperback copy, but didn’t write it down so I doubt he&lt;br /&gt;will remember.  I would like a copy of this book when it comes out.&lt;br /&gt;An advanced class is also starting up about this time as well.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Error&lt;br /&gt;count comparisons:&lt;br /&gt;- Vista shipped with 73 thousand known bugs.&lt;br /&gt;-&lt;br /&gt;the current release of the Mac OS shipped with 25 thousand known&lt;br /&gt;errors.&lt;br /&gt;- NT4 shipped with 120 thousand known errors.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Sqaforums.com&lt;br /&gt;is a great reference for the test complete software, probably better&lt;br /&gt;than aqa’s site itself. Sqaforums is monitored by aqa staff.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Testcompletetv&lt;br /&gt;is a website that has short video tutorials covering various things&lt;br /&gt;in test complete.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-left: 0.5in; margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;Test&lt;br /&gt;Complete&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt; &lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;It&lt;br /&gt; would be a good idea to start off with simple and small tests and&lt;br /&gt; slowly add features keeping individual tests and functions simple.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Absolutely&lt;br /&gt; everything you can do in the GUI can be done in code.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Smoke&lt;br /&gt; Tests are brief tests to make sure the build is not DOA (Dead On&lt;br /&gt; Arrival).&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Code&lt;br /&gt; Explorer whos stats on code, it also gives a list of functions in&lt;br /&gt; each unit.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;Shortcuts:&lt;br /&gt;-&lt;br /&gt; Ctrl + Shift + # = bookmark code lines.&lt;br /&gt;- Ctrl + # = goto&lt;br /&gt; bookmark.&lt;br /&gt;- Shift + F2 = kills/stops TC during a run.&lt;br /&gt;- Ctrl +&lt;br /&gt; Shift + Space = brings up the parameter completion prompt.&lt;br /&gt;-&lt;br /&gt; Click on keyword and press F1 = go to documentation for the&lt;br /&gt; keyword.&lt;br /&gt;- Ctrl + J = brings up the available templates for&lt;br /&gt; insertion&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Object&lt;br /&gt; Explorer:&lt;br /&gt;- has a blue arrow next to properties if the attribute&lt;br /&gt; is read only.&lt;br /&gt;- right click on ‘sys’ to get “object&lt;br /&gt; properties”.&lt;br /&gt;- target icon means probable open application.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;Object&lt;br /&gt; Browser:&lt;br /&gt;- the occasional params button allows us to get values&lt;br /&gt; for various index’s inside the object.&lt;br /&gt;- name mapping is&lt;br /&gt; reached by right clicking on an object.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Process&lt;br /&gt; Explorer: right click to filter visible processes.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;Settings:&lt;br /&gt;-&lt;br /&gt; Log file path, default project properties – all.&lt;br /&gt;- Tested&lt;br /&gt; apps list, allows you to set the number of instances of a tested app&lt;br /&gt; that are allowed to run before reusing an instance.  Default is 1.&lt;br /&gt;-&lt;br /&gt; Docking, the default can be restored if too many windows get messed&lt;br /&gt; up or closed.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;Project&lt;br /&gt; level variables save their state to an xml file to maintain between&lt;br /&gt; runs or even system reboots.  They are the only communication that&lt;br /&gt; projects can have between each other in a project suite.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Jscript&lt;br /&gt; is the most powerful and easy to use language in TC.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;C#&lt;br /&gt; script is a subset of Jscript&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;DelphiScript&lt;br /&gt; is what TC is written in and pretty powerful too.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;VBScript&lt;br /&gt; is almost has powerful as Jscript, just a few limitations.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;Name&lt;br /&gt; mapping:&lt;br /&gt;- a very powerful concept for controls whose nesting&lt;br /&gt; level/ path changes, but currently a very brittle implementation.&lt;br /&gt;-&lt;br /&gt; to modify mapping layers, make sure the code is using Aliases, then&lt;br /&gt; delete the named mapping and recreate the correct mapping making&lt;br /&gt; sure to recreate the same Aliases that were in use before.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Wait(ing)&lt;br /&gt; for methods wait for an object to terminate.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;Log:&lt;br /&gt;-&lt;br /&gt; Lock Event, set to true to remove events from the log. If test&lt;br /&gt; errors out then last 20 or so events are put back into the log.&lt;br /&gt;-&lt;br /&gt; Log.Picture takes a window handle ( not a process handle ) and&lt;br /&gt; stores a picture in the log.  Most of the time it can simply be&lt;br /&gt; passed an object and it will take a picture of just that object.&lt;br /&gt;-&lt;br /&gt; Log.AppendFolder puts a ‘+’ sign in the Log.&lt;br /&gt; Log.PopLogFolder bring the logging back up a level outside of a ‘+’&lt;br /&gt; sign.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;CPU&lt;br /&gt; will skip any waits or events that take less than 16ms to run.  This&lt;br /&gt; is a hardware issue, not a TC feature.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Missing&lt;br /&gt; Images on a webpage can be found in IE using Image Find to find the&lt;br /&gt; red X of a missing img.  The red X will need to be stored in the&lt;br /&gt; image stores first.  This won’t work with firefox since it&lt;br /&gt; doesn’t display red X’s.  A different image will need to&lt;br /&gt; be stored for different versions of IE since they don’t likely&lt;br /&gt; use the same image.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Object&lt;br /&gt; Compare, compares multiple values and keeps a copy of the object in&lt;br /&gt; the project stores.  Another advantage of this is the error messages&lt;br /&gt; will tell you what is wrong as well as the incorrect and correct&lt;br /&gt; values.  Only worth using for complex comparisons.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;Unit&lt;br /&gt; Testing:&lt;br /&gt;- in TC create a new MSTest and load the dll path, leave&lt;br /&gt; the path to a shared location so it doesn’t need to be&lt;br /&gt; reloaded in TC with each build.  Make sure that all the dll’s&lt;br /&gt; the test dll references are available either in the GAC or in the&lt;br /&gt; dll’s folder.&lt;br /&gt;- NUnit works the same as MSTest, it just&lt;br /&gt; requires that NUnit be installed on the machine and that tests&lt;br /&gt; implements the NUnit framework rather than the MS testing framework.&lt;br /&gt;  A little more work from a testing perspective since the code isn’t&lt;br /&gt; autogenerated by visual studio correctly, but MSTest isn’t&lt;br /&gt; stand alone so if the test isn’t being run locally, then&lt;br /&gt; visual studio needs to be loaded on the testing machine.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Unexpected&lt;br /&gt; windows:&lt;br /&gt;- automatic handling only works on modal windows (&lt;br /&gt; windows that deny access to where TC is trying to get ).&lt;br /&gt;- TC&lt;br /&gt; will press the default button after 10 seconds, then press Esc after&lt;br /&gt; 10 more seconds, then Kill window after 10 more seconds.&lt;br /&gt;-&lt;br /&gt; settings and times can be changed both in code and in the project&lt;br /&gt; options area.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;MAPI.SendMail&lt;br /&gt; can be used in the error even t handler to send immediate&lt;br /&gt; notifications of errors to an email, rather than waiting until the&lt;br /&gt; test has completed before finding out what went wrong.  Good for&lt;br /&gt; really long running tests.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;TC&lt;br /&gt; Engine can be used inside of .NET if you want to integrate it into&lt;br /&gt; your application.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Builtin.RebootAndContinue&lt;br /&gt; will reboot the machine the test is running on and start the test&lt;br /&gt; back up when the machine comes backup.  Application variables will&lt;br /&gt; need to be used to make sure the test starts back up at the correct&lt;br /&gt; place.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Web&lt;br /&gt; accessibility checkpoint checks a webpage for compliance of various&lt;br /&gt; things, including government compliance which is very strict. (e.g.&lt;br /&gt; alt tag, working links, etc…)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;IEFrame(x),&lt;br /&gt; the x is the index of the tabs of a browser.  Good idea to keep all&lt;br /&gt; tests written against the first tab so issues don’t come into&lt;br /&gt; play of the tab disappearing or causing other tabs to crash.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;NativeWebObject.Find&lt;br /&gt; only works on valid html tags and attributes.  It won’t parse&lt;br /&gt; custom tags ( that might be used for CSS ) and recognize them as&lt;br /&gt; anything other than pure text.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;“&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Web&lt;br /&gt; testing, quick tips” in the help index is a nice place to get&lt;br /&gt; a quick overview of a bunch of items that can help when performing&lt;br /&gt; webtesting.  It’s the only copy of this list.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;Web&lt;br /&gt; Services:&lt;br /&gt;- TC can build a test for a web service from a WSDL. It&lt;br /&gt; creates the object and some dummy data so the framework is auto&lt;br /&gt; generated for you.&lt;br /&gt;- Web service checkpoint, allows you to test a&lt;br /&gt; specific method in a WSDL.  While the returning object is created by&lt;br /&gt; TC, the data in the object needs to be either specified or loaded in&lt;br /&gt; code from a data store.&lt;br /&gt;- Set a variable equal to a WSDL call and&lt;br /&gt; it will be set to the return value. If the return value exists and&lt;br /&gt; is an object then intellisense will function.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;-&lt;br /&gt; be sure to check if exists on calls to make sure the web service&lt;br /&gt; call worked.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;Load&lt;br /&gt; Testing:&lt;br /&gt;- By default .NET will turn off caching of things like&lt;br /&gt; javascript when compiled in Debug mode.&lt;br /&gt;- If perfect performance&lt;br /&gt; tests of cached javascript are required then the assembly will need&lt;br /&gt; to be compiled in release mode.&lt;br /&gt;- remote agent, can send requests&lt;br /&gt; through other machines for load testing.  Add the other machines ip&lt;br /&gt; address under the Stations list to facilitate this.&lt;br /&gt;- the remote&lt;br /&gt; agent can also simulate requests from all sorts of browsers at&lt;br /&gt; almost any given connection speed.  Not a replacement for actual&lt;br /&gt; testing on a given device though.&lt;br /&gt;- remote agent and test execute&lt;br /&gt; can be run on the same machine at the same time, so it is possible&lt;br /&gt; to have a machine executing tests at the same time it is being used&lt;br /&gt; as a node for a load test.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;Distributed&lt;br /&gt; Testing:&lt;br /&gt;- for windows applications uses the “network&lt;br /&gt; testing” area of TC.&lt;br /&gt;- When adding a new project task, the&lt;br /&gt; “path” is the location of the project file (.mds) on the&lt;br /&gt; destination ( not host ) machine.  The “test” option is&lt;br /&gt; the name of the function to run, by default it is ‘main’&lt;br /&gt; ( or whatever is set as the default in the project ).&lt;br /&gt;- you can&lt;br /&gt; ‘verify’ both hosts and tasks to be sure they exist and&lt;br /&gt; are available and correct before starting the test.  This helps to&lt;br /&gt; be sure that the basic stuff is covered so you don’t get&lt;br /&gt; things erroring out before the test even starts.&lt;br /&gt;- distributed&lt;br /&gt; testing uses port 9090.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;TC&lt;br /&gt; 6.5 fixed the issue of not supporting Order By and Where clauses in&lt;br /&gt; query design view.  Before it would erase them if you added them&lt;br /&gt; after the fact then opened up the design window.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;The&lt;br /&gt; only way to use shared connection strings for dbtables is to put one&lt;br /&gt; in code then in code set all the dbtables connection strings.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Code&lt;br /&gt; Editor, can be accessed through the code templates in the project&lt;br /&gt; options.  It allows you to write code snippets for reuse later.  Put&lt;br /&gt; a Pipe where you want the cursor to be placed when the snippet is&lt;br /&gt; inserted.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p class="western" style=" margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;Questions:&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt; &lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Q:&lt;br /&gt; The testing tool doesn’t allow more than one instance of&lt;br /&gt; itself to run on the machine making it difficult to use code between&lt;br /&gt; the Dev and Prod test environments we have setup.&lt;br /&gt;A: TC is a COM&lt;br /&gt; server which is the main reason why multiple instances can’t&lt;br /&gt; run.  Try using project level variables ( whose values can be passed&lt;br /&gt; via command line if desired ) to determine if the test is running in&lt;br /&gt; Prod or Dev.&lt;br /&gt;#ifdef Prod&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Q:&lt;br /&gt; When viewing logs with IE and test execute my log files are&lt;br /&gt; frequently so big that it hangs the browser.  Can I set it so it&lt;br /&gt; only shows errors on initial open?&lt;br /&gt;A: javascript isn’t very&lt;br /&gt; involved in the rendering of this page, it is all XML and XSL. Try&lt;br /&gt; using an XML/XSL reader instead of IE. Opening a different app for&lt;br /&gt; log reading isn’t possible in Test execute, but IE can be&lt;br /&gt; turned off from displaying when the test is done.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Q:&lt;br /&gt; What is the point of locking events if you still get a “Locked&lt;br /&gt; events” drilldown line in the log?&lt;br /&gt;A: Locking events does&lt;br /&gt; remove them unless an error occurs, then it shows the last 20 or so.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Q:&lt;br /&gt; Intellisense seems to barely function at best in C#, are the other&lt;br /&gt; languages better?&lt;br /&gt;A: Intellisense doen’t work on variants,&lt;br /&gt; a specific object must be declared.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Q:&lt;br /&gt; Using Excel to drive tests is kind of cumbersome and unusual at&lt;br /&gt; times.  Is there an easy way of simply opening the file and looping&lt;br /&gt; through the data?&lt;br /&gt;A: DDT.CurrentDriver.Next in a loop or assigned&lt;br /&gt; variable.Next allows for a single pass through the file. Closing and&lt;br /&gt; reopening the connection allows for multiple passes.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Q:&lt;br /&gt; Can you move to the first record to start a manual loop over without&lt;br /&gt; closing down the connection?&lt;br /&gt;A: No, currently there is no&lt;br /&gt; movefirst method and no plan to add one.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Q:&lt;br /&gt; You can have dbtables either compare themselves or update themselves&lt;br /&gt; using the “Compare” method. But what if you want to do&lt;br /&gt; one of the other at the dbtable level rather than the project suite&lt;br /&gt; level?&lt;br /&gt;A: It’s an all or nothing approach.  If you need to&lt;br /&gt; loop through a current data table it might be a better option to use&lt;br /&gt; DDT.ADODriver.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Q:&lt;br /&gt; Is there a way to set the macro recorder so it records slower yet&lt;br /&gt; more robust script by using search and find functions rather than&lt;br /&gt; pathing everything out?&lt;br /&gt;A: No, but try named mapping, it will&lt;br /&gt; allow for faster code and simple remapping even if it isn’t&lt;br /&gt; quite as robust as find.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Q:&lt;br /&gt; “Keys” doesn’t seem to support any keys that&lt;br /&gt; aren’t on the standard English keyboard.  Why since they are&lt;br /&gt; just other ASCII symbols?&lt;br /&gt;A: x&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Q:&lt;br /&gt; I haven’t tried all the ADO query types, but CreateADOQuery()&lt;br /&gt; doesn’t seem capable of simply executing a statement without&lt;br /&gt; returning a resultset, it errors out; why?&lt;br /&gt;A: Use the straight&lt;br /&gt; ADO driver with ExecuteNonScalar.  TC implements most of the data&lt;br /&gt; connection options that .NET does so if something is available in&lt;br /&gt; .NET it probably will be in TC.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Q:&lt;br /&gt; The exception object doesn’t seem to have more than a basic&lt;br /&gt; description of an error.  Am I missing something ( line number, code&lt;br /&gt; snippet, etc. ) ?&lt;br /&gt;A: No, since it isn’t a compiled language&lt;br /&gt; there isn’t much information available to the exception&lt;br /&gt; object.  This can be worked around by implementing your own&lt;br /&gt; framework with inheritance that does its own error handling and&lt;br /&gt; produces better errors.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Q:&lt;br /&gt; ToURL doesn’t behave like user input, it doesn’t first&lt;br /&gt; change the url, so if the destination page fails, you still have the&lt;br /&gt; original url.  This makes troubleshooting more difficult, so I made&lt;br /&gt; my own ToURL functions.  Why does it behave like this?&lt;br /&gt;A: ToURL&lt;br /&gt; is faster the way they have it as it makes a direct http request&lt;br /&gt; bypassing the GUI until it is time for the page to load.&lt;br /&gt; Implementing a custom function work around is currently the best&lt;br /&gt; option.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Q:&lt;br /&gt; I couldn’t find a way to “select” a listbox item&lt;br /&gt; by its value, arguable one of the most important items, am I missing&lt;br /&gt; something?&lt;br /&gt;A: No, there is currently no function for that.  The&lt;br /&gt; best workaround is to write your own using the IndexOf function.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Q:&lt;br /&gt; The NativeWebObject’s find and the findall methods are very&lt;br /&gt; slow, especially with large DOMs.  Is there a way for me to write a&lt;br /&gt; javascript function to return the desired object or array from some&lt;br /&gt; input?&lt;br /&gt;A: The Add method is in the DOM object for inserting code,&lt;br /&gt; it can be used for this purpose.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Q:&lt;br /&gt; What is the AQA development cycle and rev release dates?&lt;br /&gt;A: Every&lt;br /&gt; 3 months.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Q:&lt;br /&gt; Is there a way to set the macro recorder so it records slower yet&lt;br /&gt; more robust scripts by using search and find functions rather than&lt;br /&gt; pathing everything out?&lt;br /&gt;A: Not yet, but it is being worked on.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Q:&lt;br /&gt; You can compare a database against stored values but can you update&lt;br /&gt; the database with them? In other words can you reset the data in the&lt;br /&gt; database?&lt;br /&gt;Q: automated build studio can restore an entire&lt;br /&gt; database.  However the only way to restore a dbtable is to loop&lt;br /&gt; through each record in code and update the database with it.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Q:&lt;br /&gt; When creating a new unit the code templates for each language appear&lt;br /&gt; to be different.  Can the templates be changed?  Why are they&lt;br /&gt; different?&lt;br /&gt;A: They are different because some languages don’t&lt;br /&gt; support all the features that others do, so each template is&lt;br /&gt; tailored to give the best jump start for a particular language.  The&lt;br /&gt; templates themselves can’t be modified, but Ctrl+J will bring&lt;br /&gt; up the template creator which can be used to create code snippets.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Q:&lt;br /&gt; There is a serious lack of documentation of the language features&lt;br /&gt; which has made progress much slower than it otherwise would have&lt;br /&gt; been.  Any other places I can go?&lt;br /&gt;A: Sqaforums.com is a great&lt;br /&gt; reference for the test complete software, probably better than aqa’s&lt;br /&gt; site itself. Sqaforums is monitored by aqa staff.  Also&lt;br /&gt; Testcompletetv is a website that has short video tutorials covering&lt;br /&gt; various things in test complete.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Q:&lt;br /&gt; TestComplete seems to have problems finding hyperlinks by HTML ID;&lt;br /&gt; it seems testcomplete occasionally overwrites the HTML ID with its&lt;br /&gt; own unique ID.  Why is this?&lt;br /&gt;A: TC doesn’t overwrite any&lt;br /&gt; HTML Dom objects or attributes.  Check the code and see if you have&lt;br /&gt; a mistake.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Q:&lt;br /&gt; Is there any major efforts to improve the TC tool, including&lt;br /&gt; documentation?&lt;br /&gt;A: There is an advanced book coming out in January&lt;br /&gt; which will be free to download.&lt;br /&gt;There is a custom script plugin&lt;br /&gt; framework in the works as well.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Q:&lt;br /&gt; When a variable is used in a method without first declaring it, what&lt;br /&gt; is the scope of that variable?&lt;br /&gt;A: it will be a local variant&lt;br /&gt; variable.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Q:&lt;br /&gt; AQA’s news reader forums don’t have a decent search, are&lt;br /&gt; they planning on one?&lt;br /&gt;A: not that I am aware of, however try&lt;br /&gt; sqaforums.com, it’s a better place for answers anyway.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Q:&lt;br /&gt; Is “TestComplete made easy” the only book you know of&lt;br /&gt; covering Test Complete?&lt;br /&gt;A: Yes, until the advanced book comes out&lt;br /&gt; in January.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Q:&lt;br /&gt; If I want to store sql queries in text files or XML documents rather&lt;br /&gt; than inline in code, can I easily do that?&lt;br /&gt;A: No, the&lt;br /&gt; functionality isn’t currently built-in, the closest thing&lt;br /&gt; would be storing them in an excel document and loop through that;&lt;br /&gt; which has its own issues.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Q:&lt;br /&gt; It’s very annoying having to enter so many case sensitive&lt;br /&gt; registration details, but it’s even worse when the “check&lt;br /&gt; for updates” link won’t log me into the site.&lt;br /&gt;A: no&lt;br /&gt; plans to change the registration process, however the link to log&lt;br /&gt; into the site is suppose to auto log you in with your current&lt;br /&gt; registration, it’s just currently broken.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Q:&lt;br /&gt; Is there a way to programmatically refresh the data stored in a TC&lt;br /&gt; dbtable?&lt;br /&gt;A: yes, everything that can be done through the GUI can&lt;br /&gt; be done in code.  Would have to open the dbtable in code and rerun&lt;br /&gt; the query.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Q:&lt;br /&gt; can I trade in the second copy of the TestComplete book we now own&lt;br /&gt; for a copy of the new advanced version when it comes out?&lt;br /&gt;A: no,&lt;br /&gt; but the instructor said he would send me one when it came out.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Q:&lt;br /&gt; Can I change the default app TestExecute uses to view logs when the&lt;br /&gt; test completes?&lt;br /&gt;A: No.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p style="margin-left: 0.5in; margin-bottom: 0.14in"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-left: 0.5in; margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;Questions&lt;br /&gt;I couldn’t get answered due to no laptop:&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt; &lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Q:&lt;br /&gt; On some of my tests, one in particular, TC shuts itself down after&lt;br /&gt; finishing the test; no error long, no errors, it just closes down&lt;br /&gt; “Japa Tap Prod ‘User Management’”.  Any idea&lt;br /&gt; why?&lt;br /&gt;A: try bringing up with AQA team.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Q:&lt;br /&gt; Global variable to TestedApps.IExplorer.run().IEFrame(0) didn’t&lt;br /&gt; always hold the correct and original value. Why?&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Q:&lt;br /&gt; Even when NativeWebObject.Find sees an object, sometimes I can’t&lt;br /&gt; Find it using UniqueID.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Q:&lt;br /&gt; When TestComplete has to deal with a popup window (i.e. a file&lt;br /&gt; download) it seems to mess it up internally so things no longer&lt;br /&gt; function as expected.  Any ideas?&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;Q:&lt;br /&gt; When running a bunch of tests batched up TestComplete will often&lt;br /&gt; error out on the later tests, even though each test starts up a new&lt;br /&gt; instance of IE and closes it down when it is done.  Why?&lt;br /&gt;A: don’t&lt;br /&gt; know, but might try checking to see if the IE process is really&lt;br /&gt; closed and killing it if it isn’t.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Q:&lt;br /&gt; “Keys” function doesn’t always work correctly.&lt;br /&gt; Sometimes it prepends data instead of erasing it with “^a”.&lt;br /&gt;  Why?&lt;br /&gt;A: don’t know, haven’t seen that problem&lt;br /&gt; before.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Q:&lt;br /&gt; Sometimes it misses the first field on my PLT form even though the&lt;br /&gt; field is looked for in code?&lt;br /&gt;A: check to be sure you are really&lt;br /&gt; looking for the field. Make sure the field isn’t locked or&lt;br /&gt; read only.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p style="margin-left: 0.5in; margin-bottom: 0.14in"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-left: 0.5in; margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;AQTime&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt; &lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;AQTime&lt;br /&gt; checks speed of code and finds memory leaks.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p style="margin-left: 0.5in; margin-bottom: 0.14in"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-left: 0.5in; margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;Test&lt;br /&gt;Recorder&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt; &lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Test&lt;br /&gt; Recorder can be built into your application so users can record&lt;br /&gt; tests if they are having problems.  There is generally a registry&lt;br /&gt; setting to allow users to turn on and off the test menu so they&lt;br /&gt; don’t have to see it unless support is requesting a recorded&lt;br /&gt; test of their issue.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p style="margin-left: 0.5in; margin-bottom: 0.14in"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-left: 0.5in; margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;Automated&lt;br /&gt;Build Studio:&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt; &lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Seems&lt;br /&gt; worth checking out.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Less&lt;br /&gt; than $200.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Can&lt;br /&gt; ftp, dts, run macros, has logic paths, and much more.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;Runs&lt;br /&gt; as a service and can even log in a user to start up a test at a&lt;br /&gt; specific time if needed.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p style="margin-left: 0.5in; margin-bottom: 0.14in"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-left: 0.5in; margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;Visual&lt;br /&gt;Studio&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt; &lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Unit&lt;br /&gt; test creation, right click on a method to access the built-in auto&lt;br /&gt; generate functions.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;CPU&lt;br /&gt; window allows you to see the memory certain code is being run in and&lt;br /&gt; how it is being run.  Can be a major hacker tool.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;Functions&lt;br /&gt; returning string pointers are very hackable as the pointer can be&lt;br /&gt; changed to point to malicious code or the terminator ( typically a&lt;br /&gt; \n ) can be removed and malicious code inserted.  Ints and objects&lt;br /&gt; don’t have this problem and aren’t as vulnerable.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0.14in"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-size:100%;"&gt;The&lt;br /&gt; US government doesn’t allow any functions in code it runs to&lt;br /&gt; return string pointers.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div type="FOOTER"&gt;&lt;br /&gt; &lt;p align="RIGHT" style="margin-top: 0.46in; margin-bottom: 0in"&gt;&lt;br /&gt; Page | 1&lt;br /&gt; &lt;/p&gt;&lt;br /&gt; &lt;p style="margin-bottom: 0in"&gt;&lt;br /&gt;&lt;br /&gt; &lt;/p&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-6603701325904229351?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/6603701325904229351/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2008/11/classnotes2008-11-17_25.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/6603701325904229351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/6603701325904229351'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2008/11/classnotes2008-11-17_25.html' title='ClassNotes_2008-11-17'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-1605739715840490135</id><published>2008-11-21T18:38:00.000-08:00</published><updated>2008-11-21T18:48:16.898-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>List of installed packages in linux</title><content type='html'>I am using CentOS and was wondering how to get a list of all packages installed on my system:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I found a site: &lt;a href="http://www.cyberciti.biz/faq/show-display-get-installed-packages-software-list-linux-freebsd-openbsd/"&gt;Here&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;which claims&lt;/div&gt;&lt;div&gt;rpm -qa | sort | less&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;does the trick, however I am unable to find a package I am pretty sure is installed so I am not sure if their is a better method.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-1605739715840490135?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.cyberciti.biz/faq/show-display-get-installed-packages-software-list-linux-freebsd-openbsd/' title='List of installed packages in linux'/><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/1605739715840490135/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2008/11/list-of-installed-packages-in-linux.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/1605739715840490135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/1605739715840490135'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2008/11/list-of-installed-packages-in-linux.html' title='List of installed packages in linux'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-1393511823713168244</id><published>2008-10-21T14:02:00.000-07:00</published><updated>2008-10-21T14:07:15.320-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Access'/><title type='text'>Microsoft Access version of Coalesce</title><content type='html'>Ever need to use Access for something only to learn that the handy coalesce function doesn't exist?&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Turns out Access has a function by a different name that performs a similar though slightly more limited function.&lt;/div&gt;&lt;div&gt;Syntax: Nz(value, valueifnull)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Read about it &lt;a href="http://www.techonthenet.com/access/functions/advanced/nz.php"&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-1393511823713168244?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.techonthenet.com/access/functions/advanced/nz.php' title='Microsoft Access version of Coalesce'/><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/1393511823713168244/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2008/10/microsoft-access-version-of-coalesce.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/1393511823713168244'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/1393511823713168244'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2008/10/microsoft-access-version-of-coalesce.html' title='Microsoft Access version of Coalesce'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-6179637474530698443</id><published>2008-10-05T21:41:00.000-07:00</published><updated>2009-06-17T10:46:32.023-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hardware'/><title type='text'>Nasty experience with Zen Player</title><content type='html'>My wife recently purchased herself a zen player; I had heard good things about them over the brand name &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;IPod&lt;/span&gt;.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After she spent an hour trying to make the computer software work with it she asked me to help.  I verified that our computer and software met all the specs it wanted and that she had done the install correctly, but it still wouldn't work.  Turns out their software doesn't do all that good of a job installing itself.  Fortunately someone was nice enough to make a patch kit for the thing which I found and ran fixing the issue.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For those looking for the patch kit it can be found here:&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.delldjsite.com/forums/attachment.php?s=87a9a0c567eb1057199ca71fbc7f07ea&amp;amp;attachmentid=462"&gt;Patch Kit&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Just download the zip file, extract it and run the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;cmd&lt;/span&gt; file.  The thread that lead me to the download is linked to in the header of this post.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-6179637474530698443?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://forums.techarena.in/windows-xp-music/738811.htm' title='Nasty experience with Zen Player'/><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/6179637474530698443/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2008/10/nasty-experience-with-zen-player.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/6179637474530698443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/6179637474530698443'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2008/10/nasty-experience-with-zen-player.html' title='Nasty experience with Zen Player'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-2084374909308413070</id><published>2008-09-30T09:00:00.000-07:00</published><updated>2008-10-21T14:08:49.096-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='t-sql'/><category scheme='http://www.blogger.com/atom/ns#' term='sql server'/><title type='text'>DBCC commands to clear SQL server cache for speed tests</title><content type='html'>&lt;span class="Apple-style-span"   style="  ;font-family:Arial;font-size:13px;"&gt;&lt;div&gt;[quote name="&lt;span class="Apple-style-span"  style=" font-style: italic; font-weight: bold; font-size:12px;"&gt;Andrew Holliday&lt;span class="Apple-style-span"  style=" font-style: normal; font-weight: normal; font-size:13px;"&gt;"]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;When tuning SQL Server applications, a certain degree of hands-on experimenting must occur. Index options, table design, and locking options are items that can be modified to increase performance. When running a test, be sure to have SQL Server start from the same state each time. The cache (sometimes referred to as the buffer) needs to be cleared out. This prevents the data and/or execution plans from being cached, thus corrupting the next test. To clear SQL Server’s cache, run DBCC DROPCLEANBUFFERS, which clears all data from the cache. Then run DBCC FREEPROCCACHE, which clears the stored procedure cache.&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style=" ;font-family:Arial;font-size:13px;"&gt;[quote]&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-2084374909308413070?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.devx.com/tips/Tip/14401' title='DBCC commands to clear SQL server cache for speed tests'/><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/2084374909308413070/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2008/09/dbcc-commands-to-clear-sql-server-cache.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/2084374909308413070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/2084374909308413070'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2008/09/dbcc-commands-to-clear-sql-server-cache.html' title='DBCC commands to clear SQL server cache for speed tests'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-5985042030127603951</id><published>2008-09-18T10:57:00.000-07:00</published><updated>2008-10-21T14:09:30.337-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='reporting services'/><title type='text'>How to alternate colors in a Matrix even when RowNumber doesn't work</title><content type='html'>Most of the time you can easily alternate colors using:&lt;br /&gt;&lt;div&gt;Table: &lt;span class="Apple-style-span" style="font-style: italic;"&gt;=iif(RowNumber(Nothing) Mod 2,"Green","White")&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Matrix: &lt;span class="Apple-style-span" style="font-style: italic;"&gt;=iif(RowNumber("Matrix_RowGroup") Mod 2,"Green","White")&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;The above is by far the most popular method of accomplishing the task, it is widely known and very simple.  However it has one major downfall, when the matrix doesn't receive any data for a specific cell it must generate a blank cell, when that happens the RowNumber count does not get auto incremented which can really throw the coloring off.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Chris Hays came up with a great workaround hack to this issue.  You can create a static grouping at the lowest level and use RunningValue to calculate an alternating value for the group header cell, then hide the cell and point the data cells BackgroundColor to the value of the group header cell.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;=iif(RunningValue(Fields!Country.Value,CountDistinct,Nothing) Mod 2, "AliceBlue", "White")&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I would highly recommend visiting Chris's blog where he gives step by step instructions on how to accomplish the task.&lt;/div&gt;&lt;div&gt;&lt;a href="http://blogs.msdn.com/chrishays/archive/2004/08/30/GreenBarMatrix.aspx"&gt;Chris Hays - Green Bar Matrix&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-5985042030127603951?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blogs.msdn.com/chrishays/archive/2004/08/30/GreenBarMatrix.aspx' title='How to alternate colors in a Matrix even when RowNumber doesn&apos;t work'/><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/5985042030127603951/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2008/09/how-to-alternate-colors-in-matrix-even.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/5985042030127603951'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/5985042030127603951'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2008/09/how-to-alternate-colors-in-matrix-even.html' title='How to alternate colors in a Matrix even when RowNumber doesn&apos;t work'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-4272810082352526478</id><published>2008-09-05T09:13:00.000-07:00</published><updated>2008-09-05T09:19:21.006-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='humor'/><title type='text'>Google Down?</title><content type='html'>I just rebooted my computer and one of the first apps I started back up was Google's Chrome browser.  And this is the screen I saw:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://2.bp.blogspot.com/_feTq9Lg0TH0/SMFbGuYoXtI/AAAAAAAAAAQ/7wCVcxGm8ak/s320/googledown.JPG" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" border="0" alt="" id="BLOGGER_PHOTO_ID_5242571612324650706" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After getting over the initial shock of google's website being down I refreshed the page and life was good again.  I didn't believe their site would actually go down so easily so I tried to recreate the problem.  I found I got the error if I disabled my network connection so apparently the network drivers just hadn't loaded yet or were over loaded when Chrome tried to connect.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I do think it would be nice if Chrome were smart enough to know if it were actually connected to the net or not before suggesting to me that a site is down.  Or at least change the message so it says it couldn't connect to it rather than alude that the site itself is having issues.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-4272810082352526478?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/4272810082352526478/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2008/09/google-down.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/4272810082352526478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/4272810082352526478'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2008/09/google-down.html' title='Google Down?'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_feTq9Lg0TH0/SMFbGuYoXtI/AAAAAAAAAAQ/7wCVcxGm8ak/s72-c/googledown.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-7350224322499959693</id><published>2008-08-27T15:30:00.000-07:00</published><updated>2008-10-21T14:09:53.210-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='t-sql'/><title type='text'>T-SQL Performance of the DatePart function</title><content type='html'>I recently have had some trouble with speed on one of my queries.  Suspecting it might be a DatePart function I was applying to every row of retrieved data I wrote a little performance test and was pleasantly surprised at how efficient DatePart was:&lt;br /&gt;&lt;br /&gt;[code]&lt;br /&gt;&lt;br /&gt;declare @loop int, @temp varchar(10), @datestamp datetime&lt;br /&gt;set @loop=1&lt;br /&gt;print convert(varchar(100),getdate(),113)&lt;br /&gt;set @datestamp = getdate()&lt;br /&gt;while @loop &lt; 1000000&lt;br /&gt;begin&lt;br /&gt;set @loop = @loop + 1&lt;br /&gt;set @temp = DatePart(q, '08/27/2008')&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;print convert(varchar(100),getdate(),113)&lt;br /&gt;print datediff(ms, @datestamp,getdate())&lt;br /&gt;&lt;br /&gt;set @datestamp = getdate()&lt;br /&gt;set @loop=1&lt;br /&gt;while @loop &lt; 1000000&lt;br /&gt;begin&lt;br /&gt;set @loop = @loop + 1&lt;br /&gt;set @temp = ''&lt;br /&gt;end&lt;br /&gt;print convert(varchar(100),getdate(),113)&lt;br /&gt;print datediff(ms, @datestamp,getdate())&lt;br /&gt;&lt;br /&gt;[/code]&lt;br /&gt;&lt;br /&gt;[results]&lt;br /&gt;&lt;br /&gt;27 Aug 2008 15:23:12:293&lt;br /&gt;27 Aug 2008 15:23:14:200&lt;br /&gt;1906&lt;br /&gt;27 Aug 2008 15:23:15:983&lt;br /&gt;1783&lt;br /&gt;&lt;br /&gt;[/results]&lt;br /&gt;&lt;br /&gt;so the DatePart function only added a little more than 100 milliseconds to the processing time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-7350224322499959693?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/7350224322499959693/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2008/08/t-sql-performance-of-datepart-function.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/7350224322499959693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/7350224322499959693'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2008/08/t-sql-performance-of-datepart-function.html' title='T-SQL Performance of the DatePart function'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-9096106193939630484</id><published>2008-08-14T09:43:00.000-07:00</published><updated>2008-08-18T08:10:25.299-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WinXP'/><title type='text'>Windows updates failing to install</title><content type='html'>I recently had an issue where my windows updates simply failed to install.  They would download just fine but never installed.&lt;br /&gt;&lt;br /&gt;I found a fix &lt;a href="http://forums.cnet.com/5208-6142_102-0.html?forumID=5&amp;amp;threadID=276886&amp;amp;messageID=2660716"&gt;here&lt;/a&gt;:&lt;br /&gt;[quote]&lt;br /&gt;Go here and see if it works&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/genuine/" target="_blank"&gt;http://www.microsoft.com/genuine/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;fix any issues, then  validate it.&lt;br /&gt;&lt;br /&gt;If it still doesn't work try this&lt;br /&gt;&lt;br /&gt;Re-register the  Windows Update DLL with the commands below&lt;br /&gt;Click Start, click Run, type cmd,  and then click OK.&lt;br /&gt;Type the following commands. Press ENTER after each  command.&lt;br /&gt;regsvr32 wuapi.dll&lt;br /&gt;regsvr32 wuaueng.dll&lt;br /&gt;regsvr32  wuaueng1.dll&lt;br /&gt;regsvr32 wucltui.dll&lt;br /&gt;regsvr32 wups.dll&lt;br /&gt;regsvr32  wups2.dll&lt;br /&gt;regsvr32 wuweb.dll&lt;br /&gt;&lt;br /&gt;Attempt to run Windows Update&lt;br /&gt;&lt;br /&gt;Now  what do you get?&lt;br /&gt;[/quote]&lt;br /&gt;&lt;br /&gt;The problem in the thread had a different source than mine, he had cloned his OS onto a new HD.  In my case I had a fresh install of WinXP that was barely a month old.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-9096106193939630484?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://forums.cnet.com/5208-6142_102-0.html?forumID=5&amp;threadID=276886&amp;messageID=2660716' title='Windows updates failing to install'/><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/9096106193939630484/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2008/08/windows-updates-failing-to-install.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/9096106193939630484'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/9096106193939630484'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2008/08/windows-updates-failing-to-install.html' title='Windows updates failing to install'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-8773115672883839473</id><published>2008-07-24T18:49:00.000-07:00</published><updated>2009-01-15T11:20:27.157-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>FireFox Extension For New Gmail</title><content type='html'>Gmail is an absolutely awesome product and I personally believe it revolutionized the world of free web based email clients.&lt;br /&gt;&lt;br /&gt;However every now and then there is some little feature or functionality you just which you had.  The GMail team is doing a great job of adding features but they can't do everything right away.  Fortunately a bunch of FireFox extension hackers got together and made tweaks for things they found annoying; they then bundled them together and offered the package to the world.&lt;br /&gt;&lt;br /&gt;Hopefully all the ideas in this extension will eventually made it into the native GMail interface, but until then it is one extention that makes the GMail experience much cooler.  Check it out here:&lt;br /&gt;&lt;a href="http://lifehacker.com/software/exclusive-lifehacker-download/better-gmail-2-firefox-extension-for-new-gmail-320618.php"&gt;GMail FireFox Extension&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-8773115672883839473?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://lifehacker.com/software/exclusive-lifehacker-download/better-gmail-2-firefox-extension-for-new-gmail-320618.php' title='FireFox Extension For New Gmail'/><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/8773115672883839473/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2008/07/firefox-extension-for-new-gmail.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/8773115672883839473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/8773115672883839473'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2008/07/firefox-extension-for-new-gmail.html' title='FireFox Extension For New Gmail'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-2113402252383519808</id><published>2008-07-02T11:37:00.000-07:00</published><updated>2008-12-10T08:48:28.417-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='t-sql'/><title type='text'>TSQL Datatypes</title><content type='html'>I can't ever seem to remember what the various data type ranges are.  So I have linked to a page that seems to have a pretty complete list of them and how much space each takes up.  I have also copied a few to this post:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;bigint   &lt;/span&gt;Range: -2^63 (-9,223,372,036,854,775,808) to 2^63-1 (9,223,372,036,854,775,807)&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;int  &lt;/span&gt;Range: -2^31 (-2,147,483,648) to 2^31-1 (2,147,483,647)&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;smallint   &lt;/span&gt;Range: -2^15 (-32,768) to 2^15-1 (32,767)&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;tinyint   &lt;/span&gt;Range: 0 to 255&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Byte   &lt;/span&gt;bit  Range: 0 (FALSE) or 1 (TRUE)&lt;br /&gt;  bit columns in a table, will be collectively stored as: 1 Byte&lt;br /&gt;  9 - 16 bit columns in a table, will be collectively stored as: 2 Bytes, etc.&lt;br /&gt;&lt;strong&gt;money &lt;/strong&gt;&lt;span class="code"&gt;Range: -922,337,203,685,477.5808 to 922,337,203,685,477.5807&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;smallmoney &lt;/strong&gt;&lt;span class="code"&gt;Range: -214,748.3648 to 214,748.3647&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;float &lt;/strong&gt;&lt;span class="code"&gt;&lt;br /&gt;Range: -1.79E+308 to -2.23E-308, 0 and 2.23E-308 to 1.79E+308&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;real &lt;/strong&gt;&lt;span class="code"&gt;Range: -3.40E + 38 to -1.18E - 38, 0 and 1.18E - 38 to 3.40E + 38&lt;br /&gt; &lt;/span&gt;&lt;span class="code"&gt;Note: Real is equivalent to float(24).&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;datetime &lt;/strong&gt;&lt;span class="code"&gt;Range: January 1, 1753, through December 31, 9999&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;smalldatetime &lt;/strong&gt;&lt;span class="code"&gt;Range: January 1, 1900, through June 6, 2079&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;text &lt;/strong&gt;&lt;span class="code"&gt;Maximum length is 2,147,483,647 characters.&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;ntext &lt;/strong&gt;&lt;span class="code"&gt;Maximum length is 1,073,741,823 characters.&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;binary &amp;amp; &lt;/strong&gt;&lt;strong&gt;varbinary&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt;&lt;span class="code"&gt;Maximum length is 8000 bytes.&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;image &lt;/strong&gt;&lt;span class="code"&gt;Maximum length is 2,147,483,647 bytes.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-2113402252383519808?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.tsqltutorials.com/datatypes.php' title='TSQL Datatypes'/><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/2113402252383519808/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2008/07/tsql-datatypes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/2113402252383519808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/2113402252383519808'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2008/07/tsql-datatypes.html' title='TSQL Datatypes'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-7304404987498117183</id><published>2008-06-30T17:51:00.000-07:00</published><updated>2009-01-12T15:20:34.448-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c#.net'/><title type='text'>DataSet.WriteXml() removes null columns</title><content type='html'>I have discovered one very annoying feature of the dataset.&lt;br /&gt;When using the WriteXml() method to dump its contents to an XML file it will remove columns it doesn't think you need.  I believe it removes all columns where all the values are set to null, however I haven't tested enough to know if it is simply taking a top sampling.&lt;br /&gt;&lt;br /&gt;My work around was to check all the values for null and set them to a default value if so.  It would be nice if WriteXml() gave us an option to leave the column schema alone.  I didn't want the full schema written to the top of the file in this case, so I don't know if that would have made a difference.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-7304404987498117183?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/7304404987498117183/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2008/06/datasetwritexml-removes-null-columns.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/7304404987498117183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/7304404987498117183'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2008/06/datasetwritexml-removes-null-columns.html' title='DataSet.WriteXml() removes null columns'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-6533698045858303404</id><published>2008-06-20T09:15:00.000-07:00</published><updated>2009-01-12T15:21:50.034-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vs.net'/><title type='text'>Cannot use local variable [variablename] before it is declared</title><content type='html'>I recently ran into a little issue that I would almost call a bug in Visual Studio 2008.&lt;br /&gt;&lt;br /&gt;Technically my code ended up being the issue, however the error VS gave me was very misleading.&lt;br /&gt;&lt;br /&gt;I had a method with two input parameters which were used throughout the method.&lt;br /&gt;about 2/3 rd's of the way through I accidentally put this line&lt;br /&gt;obj.var&lt;br /&gt;essentially I referenced an attribute on a custom object without using the value for anything and without ending the line with a semicolon (C#).  I received this error and almost every instance of my parameter variables were underlined with it:&lt;br /&gt;"Cannot use local variable [variablename] before it is declared".&lt;br /&gt;&lt;br /&gt;My problems with this error were:&lt;br /&gt;1. it is completely false.&lt;br /&gt;2. with every variable highlighted I forgot about my bad line and set about figuring out what the issue could be towards the top of my method to cause such a bad problem.&lt;br /&gt;3. Normally VS will keep missing ; errors constrained to the errant line and the one following it, this time it said there was an error in lines far above where the actual error was.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-6533698045858303404?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/6533698045858303404/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2008/06/cannot-use-local-variable-variablename.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/6533698045858303404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/6533698045858303404'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2008/06/cannot-use-local-variable-variablename.html' title='Cannot use local variable [variablename] before it is declared'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-121607240640026066</id><published>2008-06-17T13:27:00.000-07:00</published><updated>2008-12-17T07:50:54.525-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql server'/><category scheme='http://www.blogger.com/atom/ns#' term='reporting services'/><title type='text'>Reporting Services matrix alternating column colors</title><content type='html'>Since the matrix has dynamic columns the value for its background color has to be calculated rather than simply applied through the tools GUI.  I figured it would be simple using RowNumber(Nothing), but I got this error when I tried:&lt;br /&gt;&lt;br /&gt;&lt;span id="_ctl0_MainContent_PostFlatView"&gt;&lt;span&gt;&lt;strong&gt;Error 1 ... The BackgroundColor expression for the textbox ... has a scope parameter that is not valid for RunningValue, RowNumber or Previous.  The scope parameter must be set to a string constant that is equal to the name of a containing group within the matrix ...&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;After fighting with it for a bit I searched msn and found this:&lt;br /&gt;&lt;br /&gt;[quote]&lt;br /&gt;The RowNumber function can’t be used in the whole matrix. But it can be used in the groups. So please replace the nothing with the name of the rows group. For example: =IIF(RowNumber(“rows_group_name”) Mod 2,"gray","white")&lt;br /&gt;[/quote]&lt;br /&gt;&lt;br /&gt;That ended up working great for me, however it appears that if you have a more complicated matrix you might need to take some additional tips from this page:&lt;br /&gt;&lt;span id="_ctl0_MainContent_PostFlatView"&gt;&lt;span&gt;&lt;span style="line-height: 115%;font-size:10;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;b style=""&gt;&lt;a title="http://blogs.msdn.com/chrishays/archive/2004/08/30/GreenBarMatrix.aspx" href="http://blogs.msdn.com/chrishays/archive/2004/08/30/GreenBarMatrix.aspx"&gt;Green-Bar Matrix&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-121607240640026066?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://forums.microsoft.com/TechNet/ShowPost.aspx?PostID=2677831&amp;SiteID=17' title='Reporting Services matrix alternating column colors'/><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/121607240640026066/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2008/06/reporting-services-matrix-alternating.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/121607240640026066'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/121607240640026066'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2008/06/reporting-services-matrix-alternating.html' title='Reporting Services matrix alternating column colors'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-473876976480206562</id><published>2008-06-12T11:37:00.000-07:00</published><updated>2008-08-18T08:09:46.658-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='reporting services'/><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><title type='text'>CSS hack for viewing reporting services in FireFox</title><content type='html'>&lt;span id="ctl00_ContentPlaceHolder1_NotesList_ctl13_lblNote"&gt;**** CSS Fix For FireFox ***&lt;br /&gt;&lt;br /&gt;&lt;a href="http://weblogs.asp.net/jgalloway/archive/2006/09/01/SQL-Reporting-Services-_2D00_-CSS-fix-for-Firefox.aspx"&gt;Source Page&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Add the following CSS to this file:&lt;br /&gt;C:\Program Files\Microsoft SQL Server\MSSQL.2\Reporting Services\ReportManager\Styles\ReportingServices.css&lt;br /&gt;&lt;br /&gt;/* Fix report IFRAME height for Firefox */&lt;br /&gt;&lt;br /&gt;.DocMapAndReportFrame&lt;br /&gt;{&lt;br /&gt;min-height: 860px;&lt;br /&gt;min-width: 1024px;&lt;br /&gt;} &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-473876976480206562?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://weblogs.asp.net/jgalloway/archive/2006/09/01/SQL-Reporting-Services-_2D00_-CSS-fix-for-Firefox.aspx' title='CSS hack for viewing reporting services in FireFox'/><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/473876976480206562/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2008/06/css-hack-for-viewing-reporting-services.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/473876976480206562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/473876976480206562'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2008/06/css-hack-for-viewing-reporting-services.html' title='CSS hack for viewing reporting services in FireFox'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-6141726249562471851</id><published>2008-06-12T11:15:00.000-07:00</published><updated>2009-01-12T15:22:07.805-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>Run older extentions on new versions of firefox</title><content type='html'>[quote url=&lt;a href="http://www.computerworld.com.au/index.php/id;488470447"&gt;Here&lt;/a&gt;]&lt;br /&gt;The key to the fix is to prevent Firefox from checking its version number before it tries to load extensions. To do this, you will need to set a new preference value. Point your browser at the URL "about:config", then right-click on the preferences list to bring up the contextual menu. You should see an option that says "New." Select that, and choose "Boolean." When it asks you for the preference name, type "extensions.checkCompatibility" (without the quotes). You have to enter the name exactly. For the value, choose "false."&lt;br /&gt;[/quote]&lt;br /&gt;&lt;br /&gt;Don't forget to restart the browser after applying the fix.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-6141726249562471851?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.computerworld.com.au/index.php/id;488470447' title='Run older extentions on new versions of firefox'/><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/6141726249562471851/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2008/06/run-older-extentions-on-new-versions-of.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/6141726249562471851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/6141726249562471851'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2008/06/run-older-extentions-on-new-versions-of.html' title='Run older extentions on new versions of firefox'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-8329651693514240007</id><published>2008-05-13T11:08:00.000-07:00</published><updated>2009-01-15T11:21:58.652-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>Terminal Server Admin Pack</title><content type='html'>There are lots of places to download this on the net, but it can be kind of a pain not having the link right at ones finger tips when needed.&lt;br /&gt;&lt;br /&gt;This is a link to download the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=C16AE515-C8F4-47EF-A1E4-A8DCBACFF8E3&amp;amp;displaylang=en"&gt;Microsoft Terminal Services Administration Pack&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-8329651693514240007?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.microsoft.com/downloads/details.aspx?FamilyId=C16AE515-C8F4-47EF-A1E4-A8DCBACFF8E3&amp;displaylang=en' title='Terminal Server Admin Pack'/><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/8329651693514240007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2008/05/terminal-server-admin-pack.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/8329651693514240007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/8329651693514240007'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2008/05/terminal-server-admin-pack.html' title='Terminal Server Admin Pack'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-9191454908345211836</id><published>2007-12-05T08:28:00.001-08:00</published><updated>2008-08-18T08:14:38.159-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c#.net'/><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><title type='text'>Ambiguous match found (C#.NET)</title><content type='html'>&lt;a target="_blank" href="http://weblogs.asp.net/pjohnson/archive/2006/08/11/Ambiguous-match-found.aspx" style="text-decoration: underline; color: rgb(35, 136, 189);"&gt;Ambiguous match found - Peter Johnson's Blog&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;I recently received this "Ambiguous match found" error in an app I had recently converted from visual studio 2003 to visual studio 2005.  The error was particularly unhelpful in letting me know what the problem was.  So, like always, I turned to Google in the hopes that someone else had had this issue.  I found the page, linked to above, where I got this quote.  I was particularly impressed had how similar this guys issue was.  I am guessing that this error only plagues converted c# apps.&lt;/p&gt;&lt;p&gt;  [quote] Other Google search results were similarly unhelpful, until I found &lt;a target="_blank" href="http://dotnetdebug.blogspot.com/" style="text-decoration: underline; color: rgb(35, 136, 189);"&gt;the blog of a guy named Eran Sandler&lt;/a&gt; who talked about &lt;a target="_blank" title="Advanced .NET Debugging: &amp;quot;Ambiguous match found&amp;quot; in a Web Control - a Possible Bug" href="http://dotnetdebug.blogspot.com/2006/03/ambiguous-match-found-in-web-control.html" style="text-decoration: underline; color: rgb(35, 136, 189);"&gt;his "Ambiguous match found" error and how he solved it&lt;/a&gt;--two protected fields with names that differed only in case, apparently confusing reflection. [/quote]&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-9191454908345211836?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/9191454908345211836/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2007/12/ambiguous-match-found-cnet.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/9191454908345211836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/9191454908345211836'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2007/12/ambiguous-match-found-cnet.html' title='Ambiguous match found (C#.NET)'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-2431867221205773981</id><published>2007-12-01T09:58:00.000-08:00</published><updated>2009-01-12T15:23:58.953-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>checking installed php packages</title><content type='html'>There is this really easy method of finding out what packages are installed for your current version of php.&lt;br /&gt;&lt;br /&gt;just log onto your server and type&lt;br /&gt;php -m&lt;br /&gt;and it will display the list for you.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-2431867221205773981?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/2431867221205773981/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2007/12/checking-installed-php-packages.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/2431867221205773981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/2431867221205773981'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2007/12/checking-installed-php-packages.html' title='checking installed php packages'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-2914588478629587508</id><published>2007-11-24T23:43:00.001-08:00</published><updated>2008-08-18T08:27:06.685-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Mount and Unmout ISO images in Ubuntu Linux</title><content type='html'>Recently I decided I needed to mount an ISO in Linux.  I have done this many times in Windows and expected it to be even easier in Linux.  Surprisingly Ubuntu didn't have a graphical tool for this, however some wonderful person created a couple of scripts and some easy install instructions to give us a graphical tool.&lt;br /&gt;&lt;br /&gt;I am going to try this out tomorrow I hope.&lt;br /&gt;&lt;br /&gt;"Some times you want to use iSO images without burning them.If you don’t want to waste your CD’s/DVD’s here is the simple possible solutions using these tips you can mount and unmount ISO images without burning them. &lt;p&gt;I know two possible solutions..."&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-2914588478629587508?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.ubuntugeek.com/mount-and-unmout-iso-images-without-burning-them.html' title='Mount and Unmout ISO images in Ubuntu Linux'/><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/2914588478629587508/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2007/11/mount-and-unmout-iso-images-in-ubuntu.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/2914588478629587508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/2914588478629587508'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2007/11/mount-and-unmout-iso-images-in-ubuntu.html' title='Mount and Unmout ISO images in Ubuntu Linux'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-4815807751513736793</id><published>2007-11-20T13:08:00.000-08:00</published><updated>2009-01-15T11:21:32.526-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><title type='text'>asp.net membership returnURL &amp; DestinationPageUrl</title><content type='html'>I have recently been having issues with my web application where we don't want the user redirected to the URL they were on after their session times out.  Unfortunately I couldn't find anything that would turn off this functionality in Microsoft's membership block.&lt;br /&gt;&lt;br /&gt;I read both of these pages which gave great information except that they didn't work for me:&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/aa480476.aspx"&gt;http://msdn2.microsoft.com/en-us/library/aa480476.aspx&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/EN-US/library/ms178331.aspx"&gt;http://msdn2.microsoft.com/EN-US/library/ms178331.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In the end I created my own solution by putting the following code into the Page_Load method:&lt;br /&gt;[code]&lt;br /&gt;if (Request.QueryString.Get("ReturnURL") != "" &amp;amp;&amp;amp; Request.QueryString.Get("ReturnURL") != null) Response.Redirect("~/login.aspx");&lt;br /&gt;[/code]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-4815807751513736793?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/4815807751513736793/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2007/11/aspnet-membership-returnurl.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/4815807751513736793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/4815807751513736793'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2007/11/aspnet-membership-returnurl.html' title='asp.net membership returnURL &amp; DestinationPageUrl'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-5211345741604775918</id><published>2007-10-29T21:52:00.000-07:00</published><updated>2008-08-18T08:13:47.046-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Installing DVD playing codecs on Ubuntu.</title><content type='html'>I have recently been having a lot of trouble with my MS Windows installations.  I really like windows XP (not Vista), I just don't like the spyware, shareware and other junk that comes with it.  Also the licensing issues have recently become such a nightmare that I have decided to switch to linux.&lt;br /&gt;&lt;br /&gt;I have chosen Ubuntu as my distro of choice and things have been going great.  Almost everything works out of the box.  The few things that haven't have generally been because of licensing issues (in other words Ubuntu can't include the sofware I want because it isn't free).&lt;br /&gt;&lt;br /&gt;My most recent hurtle has been making DVD's play on my Ubuntu installation.  I ended up finding a great site (linked to above) which guided me to these two links:&lt;br /&gt;http://www.debian-multimedia.org/pool/main/w/w32codecs/&lt;br /&gt;http://www.debian-multimedia.org/pool/main/libd/libdvdcss/&lt;br /&gt;After downloading the correct two packages for my machine ( they installed without any problems or headaches just link a Windows .exe file ) I was able to use MPlayer to play my DVD's.  Totem still didn't work for them, but hey, that's ok, MPlayer is as good or better than any programs I could find for MS Windows, and it is free.&lt;br /&gt;&lt;br /&gt;Here is a small excerpt from the site:&lt;br /&gt;"&lt;p&gt;&lt;strong&gt;libdvdcss&lt;/strong&gt; is a highly portable library for accessing and unscrambling &lt;a id="KonaLink0" target="_new" class="kLink" style="text-decoration: underline ! important; position: static;" href="http://www.debianadmin.com/install-libdvdcss-and-w32-video-codecs-in-debian-and-ubuntu.html#"&gt;&lt;span style="color: rgb(51, 51, 255) ! important; font-weight: 400; position: static;font-family:verdana,arial,helvetica,sans-serif;font-size:12;"  &gt;&lt;span class="kLink" style="color: rgb(51, 51, 255) ! important; font-weight: 400; position: static;font-family:verdana,arial,helvetica,sans-serif;font-size:12;"  &gt;DVDs&lt;/span&gt;&lt;/span&gt;&lt;/a&gt; encrypted with the CSS system. It is part of the VideoLAN project and is used by VLC and all other open source DVD players such as Ogle, xine-based players and MPlayer.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Installing w32codecs in Debian&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;#wget http://www.debian-multimedia.org/pool/main/w/w32codecs/w32codecs_20060611-0.0_i386.deb&lt;/p&gt; &lt;p&gt;#dpkg -i w32codecs_20060611-0.0_i386.deb&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Installing liddvdcss2 in Debian&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;#wget http://www.debian-multimedia.org/pool/main/libd/libdvdcss/libdvdcss2_1.2.9-0sarge0.0_i386.deb&lt;/p&gt; &lt;p&gt;#dpkg -i libdvdcss2_1.2.9-0sarge0.0_i386.deb&lt;/p&gt;"&lt;br /&gt;&lt;br /&gt;I pasted the most important part of the site here in case they ever become unavailable.  One of my biggest peeves on the web is people to link to something without giving me a summary or the critical information from the site, then having the link not work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-5211345741604775918?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.debianadmin.com/install-libdvdcss-and-w32-video-codecs-in-debian-and-ubuntu.html' title='Installing DVD playing codecs on Ubuntu.'/><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/5211345741604775918/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2007/10/installing-dvd-playing-codecs-on-ubuntu.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/5211345741604775918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/5211345741604775918'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2007/10/installing-dvd-playing-codecs-on-ubuntu.html' title='Installing DVD playing codecs on Ubuntu.'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-7682692653116266409</id><published>2007-10-15T08:22:00.001-07:00</published><updated>2008-08-18T08:28:40.219-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='t-sql'/><category scheme='http://www.blogger.com/atom/ns#' term='sql server'/><title type='text'>Restore your SQL Server database using transaction logs.</title><content type='html'>&lt;div style="border: 0px none ; overflow: auto; margin-top: 25px; min-height: 50px; font-size: 11px; width: 456px; line-height: 16.8px; float: none;"&gt;&lt;img src="http://cache.yoono.com/memo/web-site.gif" id="undefined" class="yoono-smiley" align="middle" border="0" /&gt; &lt;a target="_blank" href="http://www.builderau.com.au/program/sqlserver/soa/Restore-your-SQL-Server-database-using-transaction-logs/0,339028455,339282046,00.htm" style="text-decoration: underline; color: rgb(35, 136, 189);"&gt;Restore your SQL Server database using transaction logs - Pr...&lt;/a&gt;  Most DBAs dread hearing that they need to restore a database to a point in time, especially if the database is a production database. However, knowing how to do this is of the utmost importance for a DBA's skill set. I'll walk you through the steps of how to restore a SQL Server database to a point in time to recover a data table.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-7682692653116266409?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/7682692653116266409/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2007/10/restore-your-sql-server-database-using.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/7682692653116266409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/7682692653116266409'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2007/10/restore-your-sql-server-database-using.html' title='Restore your SQL Server database using transaction logs.'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-3110296873816187904</id><published>2007-10-11T17:04:00.001-07:00</published><updated>2008-08-18T08:37:07.061-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c#.net'/><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><title type='text'>Convert DataReader to DataSet</title><content type='html'>&lt;div style="border: 0px none ; overflow: auto; margin-top: 25px; min-height: 50px; font-size: 11px; width: 456px; line-height: 16.8px; float: none;"&gt;&lt;img src="http://cache.yoono.com/memo/web-site.gif" id="undefined" class="yoono-smiley" align="middle" border="0" /&gt; &lt;a target="_blank" href="http://authors.aspalliance.com/stevesmith/articles/convertReadertoSet.asp" style="text-decoration: underline; color: rgb(35, 136, 189);"&gt;Code: Convert DataReader to DataSet&lt;/a&gt;  ConvertDataReaderToDataSet: A great method to convert a data reader into a dataset. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-3110296873816187904?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/3110296873816187904/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2007/10/convert-datareader-to-dataset.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/3110296873816187904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/3110296873816187904'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2007/10/convert-datareader-to-dataset.html' title='Convert DataReader to DataSet'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-8012277311590605506</id><published>2007-10-03T12:08:00.000-07:00</published><updated>2008-08-18T08:45:10.150-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><title type='text'>A alphabetized HashTable</title><content type='html'>Due to the way a HashTable stores its keys and values they can't be natively alphabetized; it is optimized as a lookup system and that is what it is good at.&lt;br /&gt;&lt;br /&gt;Other languages have objects like the TreeMap which can then be walked to be the items in sorted order.&lt;br /&gt;&lt;br /&gt;In .NET if you want the functionality of the HashTable but have your list indexed on key rather than hash value, then you have to use the SortedList object.  Personally I don't like the name, but I love the functionality, it is a great tool to be aware of.&lt;br /&gt;&lt;br /&gt;It's namespace is:&lt;br /&gt;System.Collections.SortedList&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-8012277311590605506?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/8012277311590605506/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2007/10/alphabetized-hashtable.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/8012277311590605506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/8012277311590605506'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2007/10/alphabetized-hashtable.html' title='A alphabetized HashTable'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-6343533635050073340</id><published>2007-09-28T10:40:00.001-07:00</published><updated>2008-08-18T08:40:23.483-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><title type='text'>Scrollable Table with fixed header using CSS</title><content type='html'>&lt;div style="border: 0px none ; overflow: auto; margin-top: 25px; min-height: 50px; font-size: 11px; width: 456px; line-height: 16.8px; float: none;"&gt;&lt;img src="http://cache.yoono.com/memo/web-site.gif" id="undefined" class="yoono-smiley" align="middle" border="0" /&gt; &lt;a target="_blank" href="http://home.tampabay.rr.com/bmerkey/examples/nonscroll-table-header.html" style="text-decoration: underline; color: rgb(35, 136, 189);"&gt;Scrollable Table with Fixed Header, repeat print header and ...&lt;/a&gt;  This frozen / locked HTML table header is a usability advance done without HTML fakery such as hidden tables, frames, or JavaScript. Tested in (Windows) Mozilla-spawned browsers (incl. Netscape 6+ and Firefox) and IE5+. IE has problems with the screen behavior of the footer—but thanks to a clever expression provided by Renato Cherullo, even IE6 can have a modern footer. Mozilla self-induces display problems cramming the scrollbar into the last column, which can be corrected with advanced selector syntax. Surprisingly, both render the printed version of the table consistently well, including the repeated headers and footers. --------------------- Ever wanted to create a table to display data which head frozen headers and/or frozen footers like MS Excel allows?  read this article to find out how.  I have searched long and hard for a solution like this and now that I found such a simple one it is rather embarrassing that I didn't think of it myself. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-6343533635050073340?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/6343533635050073340/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2007/09/scrollable-table-with-fixed-header.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/6343533635050073340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/6343533635050073340'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2007/09/scrollable-table-with-fixed-header.html' title='Scrollable Table with fixed header using CSS'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-8375687704644346661</id><published>2007-09-28T10:14:00.001-07:00</published><updated>2008-08-18T08:46:59.024-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><category scheme='http://www.blogger.com/atom/ns#' term='localization'/><title type='text'>using .resx files to localize asp.net web applications</title><content type='html'>&lt;div style="border: 0px none ; overflow: auto; margin-top: 25px; min-height: 50px; font-size: 11px; width: 456px; line-height: 16.8px; float: none;"&gt;&lt;img src="http://cache.yoono.com/memo/web-site.gif" id="undefined" class="yoono-smiley" align="middle" border="0" /&gt; &lt;a target="_blank" href="http://support.microsoft.com/kb/917414" style="text-decoration: underline; color: rgb(35, 136, 189);"&gt;How to use application resource files (.resx) to efficiently...&lt;/a&gt;  You can use application resource files (.resx) to efficiently create a localizable Microsoft ASP.NET Web application. By using resource files, you can store localized values for controls. The localized values are based on a user’s language and culture. When you store localized values in resource files, ASP.NET can select the appropriate value at run time.  ----------------------- This page describes how to create a localized resx file in Visual Studio.NET.  essentially after the first resx default file is created you just copy it and insert an extension for the language code you are looking to support, make sure localization is turned on in your app and .net handles the rest. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-8375687704644346661?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/8375687704644346661/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2007/09/using-resx-files-to-localize-aspnet-web.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/8375687704644346661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/8375687704644346661'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2007/09/using-resx-files-to-localize-aspnet-web.html' title='using .resx files to localize asp.net web applications'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-5591570358642290753</id><published>2007-09-27T09:06:00.001-07:00</published><updated>2009-01-15T11:22:32.052-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>New method of hanging onto notes</title><content type='html'>I recently discovered Google's Bookmark feature which allows me to put a really cool javascript button on my toolbar. It isn't a complete replacement for the blog as it lacks easy access and search features, but as a basic and transportable bookmarking system it works really nice.&lt;br /&gt;&lt;br /&gt;It's these extra little features that keep popping up that keep me with google.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-5591570358642290753?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/5591570358642290753/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2007/09/new-method-of-hanging-onto-notes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/5591570358642290753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/5591570358642290753'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2007/09/new-method-of-hanging-onto-notes.html' title='New method of hanging onto notes'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-5447149696463744822</id><published>2007-09-27T08:57:00.001-07:00</published><updated>2008-08-18T08:30:04.369-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='t-sql'/><title type='text'>SQL Where clauses: Avoid Case, use Boolean logic</title><content type='html'>&lt;div style="border: 0px none ; overflow: auto; margin-top: 25px; min-height: 50px; font-size: 11px; width: 456px; line-height: 16.8px; float: none;"&gt;&lt;img src="http://cache.yoono.com/memo/web-site.gif" id="undefined" class="yoono-smiley" align="middle" border="0" /&gt; &lt;a target="_blank" href="http://weblogs.sqlteam.com/jeffs/archive/2003/11/14/513.aspx" style="text-decoration: underline; color: rgb(35, 136, 189);"&gt;SQL WHERE clauses: Avoid CASE, use Boolean logic&lt;/a&gt;  As some of you may know, I recommend to avoid using CASE expressions in the WHERE clause of a query to express conditional logic.  I prefer to have everything translated to simple ANDs, ORs and NOTs to keep things a) portable, b) easier to read and c) efficient. ------------ Apparently Coalesce() in the Where clause removes the queries ability to use an index for evaluating that column.  Makes the code a tad bit messier but really good to know when to use boolean logic. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-5447149696463744822?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/5447149696463744822/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2007/09/sql-where-clauses-avoid-case-use.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/5447149696463744822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/5447149696463744822'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2007/09/sql-where-clauses-avoid-case-use.html' title='SQL Where clauses: Avoid Case, use Boolean logic'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-6055835819826457274</id><published>2007-09-25T10:13:00.001-07:00</published><updated>2008-08-18T08:30:59.534-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='testing'/><category scheme='http://www.blogger.com/atom/ns#' term='WinXP'/><title type='text'>Download IE6 standalone dll's</title><content type='html'>&lt;div style="border: 0px none ; overflow: auto; margin-top: 25px; min-height: 50px; font-size: 11px; width: 456px; line-height: 16.8px; float: none;"&gt;&lt;img src="http://cache.yoono.com/memo/web-site.gif" id="undefined" class="yoono-smiley" align="middle" border="0" /&gt; &lt;a target="_blank" href="http://dhtmldev.com/content/view/128/30/" style="text-decoration: underline; color: rgb(35, 136, 189);"&gt;dhtmldev.com - Standalone IE6 for Testing&lt;/a&gt;   Most users still use Internet Explorer 6, while most developers have upgraded to ie7. So how do you test in ie6? Most people designate another machine as an ie6 box, and then turnoff automatic updates. Oops, it was upgraded by the new guy. Nice. Anyway, for one reason or another it would be sweet to run both ie6 and ie7 on the same computer. After a lot of googling "ie6 side by side install" and "ie standalone" etc., and reading a bunch of crap, I found a nice standalone version at &lt;a target="_blank" href="http://browsers.evolt.org/" style="text-decoration: underline; color: rgb(35, 136, 189);"&gt;browsers.evolt.org&lt;/a&gt; and a nice added dll from positioniseverything. So I zipped everything (link at bottom) and wrote these instructions. Enjoy! &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-6055835819826457274?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/6055835819826457274/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2007/09/download-ie6-standalone-dll.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/6055835819826457274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/6055835819826457274'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2007/09/download-ie6-standalone-dll.html' title='Download IE6 standalone dll&amp;#39;s'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-4632222678282790316</id><published>2007-09-18T12:24:00.001-07:00</published><updated>2008-08-18T08:26:06.066-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='t-sql'/><title type='text'>Cast varchar to datetime</title><content type='html'>&lt;div style="border: 0px none ; overflow: auto; margin-top: 25px; min-height: 50px; font-size: 11px; width: 456px; line-height: 16.8px; float: none;"&gt;&lt;img src="http://cache.yoono.com/memo/web-site.gif" id="undefined" class="yoono-smiley" align="middle" border="0" /&gt; &lt;a target="_blank" href="http://www.codeguru.com/forum/archive/index.php/t-244606.html" style="text-decoration: underline; color: rgb(35, 136, 189);"&gt;CodeGuru Forums - Convert a Varchar in a DateTime&lt;/a&gt;   SELECT * FROM tab_val WHERE (CASE ISDATE(val) WHEN 1 THEN CAST(val As DateTime) ELSE NULL END) &amp;gt; CAST('2003-05-05 08:00:00.000' As DateTime) ------------------- When casting a varchar to a datetime it is critical that all the datetime pieces (such as minutes, seconds...) are in the string.  Otherwise an error will be thrown. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-4632222678282790316?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/4632222678282790316/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2007/09/cast-varchar-to-datetime.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/4632222678282790316'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/4632222678282790316'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2007/09/cast-varchar-to-datetime.html' title='Cast varchar to datetime'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-2177786781559154545</id><published>2007-09-18T12:02:00.001-07:00</published><updated>2008-08-18T08:47:30.063-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c#.net'/><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><title type='text'>Aspnet Membership Password manipulation</title><content type='html'>&lt;div style="border: 0px none ; overflow: auto; margin-top: 25px; min-height: 50px; font-size: 11px; width: 456px; line-height: 16.8px; float: none;"&gt;&lt;img src="http://cache.yoono.com/memo/web-site.gif" id="undefined" class="yoono-smiley" align="middle" border="0" /&gt; &lt;a target="_blank" href="http://mishler.net/2006/04/18/AspNet+Membership+Password+Administration.aspx" style="text-decoration: underline; color: rgb(35, 136, 189);"&gt;Brian Mishler on .Net - Asp.Net Membership Password Administ...&lt;/a&gt;  The &lt;span class="searchword"&gt;Asp.net&lt;/span&gt; &lt;span class="searchword"&gt;membership&lt;/span&gt; provider was designed to allow for self-service &lt;span class="searchword"&gt;password&lt;/span&gt; management but through an understanding of the configuration options as well as a combined use certain provider methods, web site administrators can effectively manage member &lt;span class="searchword"&gt;password&lt;/span&gt;s.  This article briefly summarizes the various settings and methods which can be combined to administratively manage &lt;span class="searchword"&gt;password&lt;/span&gt;s in an &lt;span class="searchword"&gt;Asp.Net&lt;/span&gt; &lt;span class="searchword"&gt;membership&lt;/span&gt; system based on the default SQL&lt;span class="searchword"&gt;Membership&lt;/span&gt;Provider. ------------------ This article give a good summary of how to manipulate passwords in the aspnet membership framework, including retrieval which is what I needed this time. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-2177786781559154545?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/2177786781559154545/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2007/09/aspnet-membership-password-manipulation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/2177786781559154545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/2177786781559154545'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2007/09/aspnet-membership-password-manipulation.html' title='Aspnet Membership Password manipulation'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-7735223785794362461</id><published>2007-09-14T12:06:00.001-07:00</published><updated>2008-08-18T08:47:57.818-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>Portable Software on USB</title><content type='html'>&lt;div style="border: 0px none ; overflow: auto; margin-top: 25px; min-height: 50px; font-size: 11px; width: 456px; line-height: 16.8px; float: none;"&gt;&lt;img src="http://cache.yoono.com/memo/web-site.gif" id="undefined" class="yoono-smiley" align="middle" border="0" /&gt; &lt;a target="_blank" href="http://portableapps.com/" style="text-decoration: underline; color: rgb(35, 136, 189);"&gt;PortableApps.com - Portable software for USB drives | Your D...&lt;/a&gt;  &lt;h2 style="border: 0pt none ; margin: 0pt; color: rgb(155, 7, 39); font-family: Arial; font-weight: bold; font-size: 1.6em; letter-spacing: -1px;"&gt;Convenient&lt;/h2&gt; &lt;p style="font-size: 0.9em; margin-top: 7px; margin-bottom: 15px; line-height: 1.5em; letter-spacing: 0.1em; font-family: Arial;"&gt;Now you can carry your favorite computer programs along with all of your bookmarks, settings, email and more with you. Use them on any Windows computer. All without leaving any personal data behind.&lt;/p&gt;&lt;p style="font-size: 0.9em; margin-top: 7px; margin-bottom: 15px; line-height: 1.5em; letter-spacing: 0.1em; font-family: Arial;"&gt;A very nice way of being able to carry some convenient pieces of software around on a USB drive for troubleshooting others systems. &lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-7735223785794362461?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/7735223785794362461/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2007/09/portable-software-on-usb.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/7735223785794362461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/7735223785794362461'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2007/09/portable-software-on-usb.html' title='Portable Software on USB'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-9200388935428106573</id><published>2007-09-13T13:12:00.000-07:00</published><updated>2009-01-15T11:23:42.072-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='t-sql'/><title type='text'>T-SQL Sproc timeout in .NET but not Management Studio</title><content type='html'>I recently had a rather odd problem which I have been unable to solve to my satisfaction so far.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Problem:&lt;/span&gt;&lt;br /&gt;The problem involves stored procedures which are compiled and cached.  When calling the sproc from a c#.net 2.0 web application the call would timeout; however I could capture the call in SQL Profiler, run it in Management Studio and it would run great in sub second times.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Solution:&lt;/span&gt;&lt;br /&gt;The only solution I have found so far is to re-compile the sproc manually.&lt;br /&gt;You could also try adding &lt;span style=";font-family:Verdana,Arial,Helvetica;font-size:85%;color:midnightblue;"   &gt;&lt;span class="spnMessageText" id="msg"&gt;WITH RECOMPILE&lt;/span&gt;&lt;/span&gt; to the sproc and deal with the performance loss.  This was suggested in a &lt;a href="http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=39525"&gt;sqlteam thread&lt;/a&gt;:&lt;br /&gt;A similar suggestion is on &lt;a href="http://www.sqlservercentral.com/columnists/mdillon/2863.asp"&gt;SQLServerCentral.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After reading &lt;a href="http://blogs.msdn.com/khen1234/archive/2005/06/02/424228.aspx"&gt;Ken Henderson's WebLog&lt;/a&gt; I am guessing that the cached plan is somehow getting corrupted and that running the code manually in Management Studio somehow uses a different cached plan.  Perhaps plans are different for each user?  Hopefully I can find and post a better solution.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-9200388935428106573?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/9200388935428106573/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2007/09/t-sql-sproc-timeout-in-net-but-not.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/9200388935428106573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/9200388935428106573'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2007/09/t-sql-sproc-timeout-in-net-but-not.html' title='T-SQL Sproc timeout in .NET but not Management Studio'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-8762972061582086762</id><published>2007-09-13T11:36:00.001-07:00</published><updated>2008-08-18T08:48:57.548-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><category scheme='http://www.blogger.com/atom/ns#' term='vs.net'/><title type='text'>Publish WebSite - precompiled</title><content type='html'>&lt;div style="border: 0px none ; overflow: auto; margin-top: 25px; min-height: 50px; font-size: 11px; width: 456px; line-height: 16.8px; float: none;"&gt;&lt;img src="http://cache.yoono.com/memo/web-site.gif" id="undefined" class="yoono-smiley" align="middle" border="0" /&gt; &lt;a target="_blank" href="http://www.sunlab.de/Tools.aspx" style="text-decoration: underline; color: rgb(35, 136, 189);"&gt;ASP.NET Deployment Tool&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;An avanced and robust Deployment Tool for precompiling your ASP.NET Websites! Pre-Compilation gives your site a performance boost and secures it.   Precompile and deploy your Website for speed improvements and security, specific Error Panel, FTP Support, Deploy to Network, Merge Assemblies, easy to use.&lt;br /&gt;----------------------------&lt;br /&gt;A free addon type utility that can be used to precompile a .net website.  Basically it compiles all the aspx and dll code into what the webserver typically does on first site access. The two benefits of this are: 1. no code aspx or cs is visible 2. website first load doesn't have any extra overhead  downsides are: 1. the site has to be recompiled for any change 2. there are no relative paths anymore so moving the site or changing its directory could have disasterous results.&lt;br /&gt;-----------------------------&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/1y1404zt%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/1y1404zt(VS.80).aspx&lt;/a&gt;&lt;br /&gt;Microsoft has a built-in tool which has almost as many features as this tool, the big difference is that theirs doesn't come with the free edition of visual studio.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-8762972061582086762?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/8762972061582086762/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2007/09/publish-website-precompiled.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/8762972061582086762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/8762972061582086762'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2007/09/publish-website-precompiled.html' title='Publish WebSite - precompiled'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-6830898550255886550</id><published>2007-09-12T17:08:00.001-07:00</published><updated>2008-08-18T08:37:30.438-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c#.net'/><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><title type='text'>asp.net - Display inline PDF on webpage</title><content type='html'>&lt;div style="border: 0px none ; overflow: auto; margin-top: 25px; min-height: 50px; font-size: 11px; width: 456px; line-height: 16.8px; float: none;"&gt;&lt;img src="http://cache.yoono.com/memo/web-site.gif" id="undefined" class="yoono-smiley" align="middle" border="0" /&gt; &lt;a target="_blank" href="http://www.codeproject.com/aspnet/EmbedPDFinWebpages.asp?df=100&amp;amp;forumid=379907&amp;amp;exp=0&amp;amp;select=1935133" style="text-decoration: underline; color: rgb(35, 136, 189);"&gt;Embed PDFs into a Web Page with a Custom Control - The Code ...&lt;/a&gt;  This article describes an approach to embedding and displaying PDF documents in a web page through the use of a simple ASP.NET 2.0 custom &lt;a class="iAs" classname="iAs" style="border-bottom: 0.075em solid darkgreen; font-weight: normal; font-size: 100%; text-decoration: underline; color: darkgreen; background-color: transparent; padding-bottom: 1px;" href="http://www.codeproject.com/aspnet/EmbedPDFinWebpages.asp?df=100&amp;amp;forumid=379907&amp;amp;exp=0&amp;amp;select=1935133#" target="_blank" itxtdid="4348891"&gt;server&lt;/a&gt; control. The approach indicated herein allows the developer the opportunity to control the web page content surrounding the embedded PDF; this is in contrast to linking directly to a PDF which uses the entire web page to display PDF but does not otherwise permit the developer to control the appearance of the page.&lt;/div&gt;&lt;br /&gt;-----------------------&lt;br /&gt;Honestly I think that this approach is an error prone and overbloan method of creating an IFrame.  A much simpler method of accomplishing what I needed in this instance is:&lt;br /&gt;       System.IO.FileInfo file = new System.IO.FileInfo(Server.MapPath(cPage.RedirectURL));&lt;br /&gt;&lt;br /&gt;             Response.Clear();&lt;br /&gt;             Response.AddHeader("Content-Length", file.Length.ToString());&lt;br /&gt;             Response.ContentType = "application/pdf";&lt;br /&gt;             Response.WriteFile(file.FullName);&lt;br /&gt;             Response.End();&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-6830898550255886550?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/6830898550255886550/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2007/09/aspnet-display-inline-pdf-on-webpage.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/6830898550255886550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/6830898550255886550'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2007/09/aspnet-display-inline-pdf-on-webpage.html' title='asp.net - Display inline PDF on webpage'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-8118155352055376081</id><published>2007-09-11T13:59:00.001-07:00</published><updated>2008-08-18T08:48:20.078-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vs.net'/><title type='text'>A compendium of short cuts, tips and tricks, features, whatcha-may-callits for the Visual Studio .NET IDE.</title><content type='html'>&lt;div style="border: 0px none ; overflow: auto; margin-top: 25px; min-height: 50px; font-size: 11px; width: 456px; line-height: 16.8px; float: none;"&gt;&lt;img src="http://cache.yoono.com/memo/web-site.gif" id="undefined" class="yoono-smiley" align="middle" border="0" /&gt; &lt;a target="_blank" href="http://www.codeproject.com/tips/VSnetIDETipsAndTricks.asp" style="text-decoration: underline; color: rgb(35, 136, 189);"&gt;Tips and Tricks for the Visual Studio .NET IDE - The Code Pr...&lt;/a&gt;  A compendium of short cuts, tips and tricks, features, whatcha-may-callits for the Visual Studio .NET IDE.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-8118155352055376081?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/8118155352055376081/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2007/09/compendium-of-short-cuts-tips-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/8118155352055376081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/8118155352055376081'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2007/09/compendium-of-short-cuts-tips-and.html' title='A compendium of short cuts, tips and tricks, features, whatcha-may-callits for the Visual Studio .NET IDE.'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-5805232452443662866</id><published>2007-09-07T12:04:00.001-07:00</published><updated>2008-08-18T08:49:16.131-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><title type='text'>CSS2 Reference</title><content type='html'>&lt;div style="border: 0px none ; overflow: auto; margin-top: 25px; min-height: 50px; font-size: 11px; width: 456px; line-height: 16.8px; float: none;"&gt;&lt;img src="http://cache.yoono.com/memo/web-site.gif" id="undefined" class="yoono-smiley" align="middle" border="0" /&gt; &lt;a target="_blank" href="http://www.w3schools.com/css/css_reference.asp" style="text-decoration: underline; color: rgb(35, 136, 189);"&gt;CSS2 Reference&lt;/a&gt;  This page has a complete listing of all CSS properties and the values they can be set to.  Very useful.  It also has the well known and legendary w3schools.com name to add value to the content. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-5805232452443662866?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/5805232452443662866/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2007/09/css2-reference.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/5805232452443662866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/5805232452443662866'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2007/09/css2-reference.html' title='CSS2 Reference'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-5647744783790355792</id><published>2007-09-07T11:03:00.001-07:00</published><updated>2008-08-18T08:43:21.584-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='t-sql'/><title type='text'>Left Join vs Left outer Join - Join vs Inner Join</title><content type='html'>&lt;div style="border: 0px none ; overflow: auto; margin-top: 25px; min-height: 50px; font-size: 11px; width: 456px; line-height: 16.8px; float: none;"&gt;&lt;img src="http://cache.yoono.com/memo/web-site.gif" id="undefined" class="yoono-smiley" align="middle" border="0" /&gt; &lt;a target="_blank" href="http://www.dbforums.com/showthread.php?t=698224" style="text-decoration: underline; color: rgb(35, 136, 189);"&gt;Join vs Inner Join - dBforums&lt;/a&gt;  Hi all,   Can someone please describe whats the difference between:    1) Join vs Inner Join  2) Left join vs Left Outer Join    TIA  Falik  ------------ According to this thread, the words Inner and Outer are optional in the Join syntax.  This is something that wasn't ever really clear to me before so it is good to have it cleared up.  The shorter code the better so I will happily stop using the non required words. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-5647744783790355792?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/5647744783790355792/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2007/09/left-join-vs-left-outer-join-join-vs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/5647744783790355792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/5647744783790355792'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2007/09/left-join-vs-left-outer-join-join-vs.html' title='Left Join vs Left outer Join - Join vs Inner Join'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-8172233709125164437</id><published>2007-08-21T12:33:00.000-07:00</published><updated>2008-08-18T08:33:06.680-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DBCC'/><category scheme='http://www.blogger.com/atom/ns#' term='t-sql'/><title type='text'>Can't truncate table with Foreign Key</title><content type='html'>When trying to truncate a table that is referenced by a Foreign Key I always get this message, even if the table referencing the primary table is empty.&lt;br /&gt;&lt;br /&gt;Server: Msg 4712, Level 16, State 1, Line 1&lt;br /&gt;Cannot truncate table 'actTouches' because it is being referenced by a FOREIGN KEY constraint.&lt;br /&gt;&lt;br /&gt;To get around this problem I simply delete all rows from the table then re seed the identity column with 1.&lt;br /&gt;&lt;br /&gt;Delete From [table]&lt;br /&gt;Go&lt;br /&gt;DBCC CheckIdent ([table], RESEED, 1)&lt;br /&gt;Go&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-8172233709125164437?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://doc.ddart.net/mssql/sql70/dbcc_5.htm' title='Can&apos;t truncate table with Foreign Key'/><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/8172233709125164437/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2007/08/cant-truncate-table-with-foreign-key.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/8172233709125164437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/8172233709125164437'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2007/08/cant-truncate-table-with-foreign-key.html' title='Can&apos;t truncate table with Foreign Key'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-3912657584309712033</id><published>2007-08-21T08:12:00.000-07:00</published><updated>2008-08-18T08:43:04.404-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='t-sql'/><title type='text'>How to Insert Values into an Identity Column in SQL Server</title><content type='html'>&lt;blockquote&gt;&lt;br /&gt;Identity columns are commonly used as primary keys in database tables.  These columns automatically assign a value for each new row inserted.  But what if you want to insert your own value into the column?  It's actually very easy to do.&lt;br /&gt;&lt;br /&gt;The trick is to enable IDENTITY_INSERT for the table.  That looks like this:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;SET IDENTITY_INSERT IdentityTable ON&lt;br /&gt;&lt;br /&gt;INSERT IdentityTable(TheIdentity, TheValue)&lt;br /&gt;VALUES (3, 'First Row')&lt;br /&gt;&lt;br /&gt;SET IDENTITY_INSERT IdentityTable OFF&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Here are some key points about IDENTITY_INSERT&lt;br /&gt;&lt;br /&gt;* It can only be enabled on one table at a time.  If you try to enable it on a second table while it is still enabled on a first table SQL Server will generate an error.&lt;br /&gt;* When it is enabled on a table you must specify a value for the identity column.&lt;br /&gt;* The user issuing the statement must own the object, be a system administrator (sysadmin role), be the database owner (dbo) or be a member of the db_ddladmin role in order to run the command.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Read the full article for more information.  For instance the fact that this can modify the identity properties of your column depending on the values you update the table with.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-3912657584309712033?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.sqlteam.com/article/how-to-insert-values-into-an-identity-column-in-sql-server' title='How to Insert Values into an Identity Column in SQL Server'/><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/3912657584309712033/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2007/08/how-to-insert-values-into-identity.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/3912657584309712033'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/3912657584309712033'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2007/08/how-to-insert-values-into-identity.html' title='How to Insert Values into an Identity Column in SQL Server'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-5003087793990416833</id><published>2007-08-20T15:23:00.000-07:00</published><updated>2008-08-18T08:44:33.521-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='t-sql'/><title type='text'>SQL Server linked servers by IP</title><content type='html'>I struggled for quite a little while trying to execute this:&lt;br /&gt;Select top 1 * From [xxx.xxx.xxx.xxx].[db].[owner].[table]&lt;br /&gt;&lt;br /&gt;In SQL2005 Management Studio against a SQL2000 box.&lt;br /&gt;&lt;br /&gt;And receiving this:&lt;br /&gt;An error occurred while executing batch. Error message is: Processing of results from SQL Server failed because of an invalid multipart name "xxx.xxx.xxx.xxx.db.owner.table", the current limit of "4" is insufficient.&lt;br /&gt;&lt;br /&gt;I was unable to link the servers by name since there was no DNS to resolve it.&lt;br /&gt;&lt;br /&gt;I finally discovered that I didn't receive the error if I simply used SQL 2000's Query analyzer.  I was a little surprised to find that this issue in backwards compatibility existed in the Management Studio.  I have not had a chance to test a SQL 2005 linked server to see if an IP address causes the same issue on it, though I would hope that it wouldn't.&lt;br /&gt;&lt;br /&gt;Note: I just discovered that I was able to use OPENQUERY in Management Studio to run my query from one SQL2000 server to a linked SQL2000 server.&lt;br /&gt;&lt;br /&gt;SELECT * FROM OPENQUERY([xxx.xxx.xxx.xxx], 'SELECT * FROM [db].owner.[table]') AS tablename&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-5003087793990416833?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.codeproject.com/aspnet/LikeDataStores.asp' title='SQL Server linked servers by IP'/><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/5003087793990416833/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2007/08/sql-server-linked-servers-by-ip.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/5003087793990416833'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/5003087793990416833'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2007/08/sql-server-linked-servers-by-ip.html' title='SQL Server linked servers by IP'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-5736256777405789708</id><published>2007-08-14T15:31:00.001-07:00</published><updated>2008-08-18T08:39:27.844-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c#.net'/><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><title type='text'>DataGrid Default Paging</title><content type='html'>&lt;div style="border: 0px none ; overflow: auto; margin-top: 25px; min-height: 50px; font-size: 11px; width: 456px; line-height: 16.8px; float: none;"&gt;&lt;img src="http://cache.yoono.com/memo/web-site.gif" id="undefined" class="yoono-smiley" align="middle" border="0" /&gt; &lt;a target="_blank" href="http://www.c-sharpcorner.com/UploadFile/amit_agrl/PagingInASPNet11262005011702AM/PagingInASPNet.aspx" style="text-decoration: underline; color: rgb(35, 136, 189);"&gt;Paging in ASP.NET&lt;/a&gt;  //Implement the EventHandler &lt;span style="font-size:85%;color:#0000ff;"&gt;private&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;void&lt;/span&gt;&lt;span style="font-size:85%;"&gt; GridPageIndexChanged(&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;object&lt;/span&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:85%;"&gt; source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e) { DataGrid1.CurrentPageIndex = e.NewPageIndex; &lt;/span&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:85%;color:#008000;"&gt;//Bind the DataGrid again with the Data Source  &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;"&gt;DataGrid1.DataSource = dataSet1; DataGrid1.DataBind(); }&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-5736256777405789708?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/5736256777405789708/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2007/08/datagrid-default-paging.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/5736256777405789708'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/5736256777405789708'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2007/08/datagrid-default-paging.html' title='DataGrid Default Paging'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-4118651790097271536</id><published>2007-08-14T09:51:00.001-07:00</published><updated>2008-08-18T08:39:59.383-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='education'/><title type='text'>What is HanselMinutes?</title><content type='html'>&lt;div style="border: 0px none ; overflow: auto; margin-top: 25px; min-height: 50px; font-size: 11px; width: 456px; line-height: 16.8px; float: none;"&gt;&lt;img src="http://cache.yoono.com/memo/web-site.gif" id="undefined" class="yoono-smiley" align="middle" border="0" /&gt; &lt;a target="_blank" href="http://www.hanselminutes.com/default.aspx?showID=90" style="text-decoration: underline; color: rgb(35, 136, 189);"&gt;Hanselminutes&lt;/a&gt;   &lt;h2&gt; &lt;span style="font-size:10;"&gt;What is Hanselminutes?&lt;/span&gt;&lt;/h2&gt; &lt;p&gt; Hanselminutes is a weekly audio talk show with noted web developer and technologist Scott Hanselman and hosted by Carl Franklin. Scott discusses utilities and tools, gives practical how-to advice, and discusses ASP.NET or Windows issues and workarounds.&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-4118651790097271536?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/4118651790097271536/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2007/08/what-is-hanselminutes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/4118651790097271536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/4118651790097271536'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2007/08/what-is-hanselminutes.html' title='What is HanselMinutes?'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-3492043224781459712</id><published>2007-08-13T19:52:00.000-07:00</published><updated>2008-08-18T08:23:31.832-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>how to untar/tar</title><content type='html'>To get the files out of a tarball, you can use the     following commands:&lt;blockquote&gt;       &lt;p&gt;&lt;kbd&gt;tar xvf something.tar&lt;/kbd&gt;&lt;/p&gt;     &lt;/blockquote&gt;     &lt;p&gt;If the tarball has also been gzipped (compressed), you can use the following command:&lt;/p&gt;     &lt;blockquote&gt;       &lt;p&gt;&lt;kbd&gt;tar xvfz something.tar.gz&lt;/kbd&gt;&lt;/p&gt;     &lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;The biggest thing that I always forget when trying to use this command is that it doesn't accept the "-" prefix before its modifiers like most other linux commands.&lt;br /&gt;&lt;br /&gt;If you need to create a tar file&lt;br /&gt;&lt;a href="http://infohost.nmt.edu/tcc/help/unix/tar_build.html"&gt;http://infohost.nmt.edu/tcc/help/unix/tar_build.html&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;tar -cvzf &lt;i&gt;name&lt;/i&gt;.tgz &lt;i&gt;subdir&lt;/i&gt;&lt;/pre&gt;the 'z' is optional and gzips the file.&lt;br /&gt;the 'v' is optional and gives a verbose output.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-3492043224781459712?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.freebsddiary.org/untar.php' title='how to untar/tar'/><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/3492043224781459712/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2007/08/how-to-untartar.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/3492043224781459712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/3492043224781459712'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2007/08/how-to-untartar.html' title='how to untar/tar'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-4647989269837844005</id><published>2007-08-08T14:15:00.001-07:00</published><updated>2008-08-18T08:45:55.564-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><title type='text'>The ASP.NET Page lifecycle</title><content type='html'>&lt;div style="border: 0px none ; overflow: auto; margin-top: 25px; min-height: 50px; font-size: 11px; width: 456px; line-height: 16.8px; float: none;"&gt;&lt;img src="http://cache.yoono.com/memo/web-site.gif" id="undefined" class="yoono-smiley" align="middle" border="0" /&gt; &lt;a target="_blank" href="http://www.15seconds.com/issue/020102.htm" style="text-decoration: underline; color: rgb(35, 136, 189);"&gt;15 Seconds : The ASP.NET Page Life Cycle&lt;/a&gt;   When a page request is sent to the Web server, whether through a submission or location change, the page is run through a series of events during its creation and disposal. When we try to build ASP.NET pages and this execution cycle is not taken into account, we can cause a lot of headaches for ourselves. However, when used and manipulated correctly, a page's execution cycle can be an effective and powerful tool. Many developers are realizing that understanding what happens and when it happens is crucial to effectively writing ASP.NET pages or user controls. So let's examine in detail the ten events of an ASP.NET page, from creation to disposal. We will also see how to tap into these events to implant our own custom code.  The events that get fired are: 1. Object Initialization &lt;span class="clsTitle"&gt;2. Load Viewstate Data &lt;/span&gt;&lt;span class="clsTitle"&gt;3. LoadPostData Processes Postback Data &lt;/span&gt;&lt;span class="clsTitle"&gt;4. Object Load &lt;/span&gt;&lt;span class="clsTitle"&gt;5. Raise PostBack Change Events &lt;/span&gt;&lt;span class="clsTitle"&gt;6. Process Client-Side PostBack Event &lt;/span&gt;&lt;span class="clsTitle"&gt;7. Prerender the Objects &lt;/span&gt;&lt;span class="clsTitle"&gt;8. ViewState Saved &lt;/span&gt;&lt;span class="clsTitle"&gt;9. Render To HTML &lt;/span&gt;&lt;span class="clsTitle"&gt;10. Disposal&lt;br /&gt;&lt;/span&gt; &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Excerpt from another page I found helpful:&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms972976.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms972976.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;So, dynamically added controls must be programmatically added to the Web page on each and every page visit. The best time to add these controls is during the initialization stage of the page life cycle, which occurs before the load view state stage. That is, we want to have the control hierarchy complete before the load view state stage arrives. For this reason, it is best to create an event handler for the &lt;code class="ce"&gt;Page&lt;/code&gt; class's &lt;code class="ce"&gt;Init&lt;/code&gt; event in your code-behind class, and add your dynamic controls there.&lt;/p&gt; &lt;blockquote class="dtBlock"&gt; &lt;b&gt;Note&lt;/b&gt;   You may be able to get away with loading your controls in the &lt;code class="ce"&gt;Page_Load&lt;/code&gt; event handler and maintaining the view state properly. It all depends on whether or not you are setting any properties of the dynamically loaded controls programmatically and, if so, when you're doing it relative to the &lt;code&gt;&lt;code class="ce"&gt;Controls.Add(&lt;/code&gt;&lt;code&gt;&lt;b class="cfe"&gt;dynamicControl&lt;/b&gt;&lt;/code&gt;&lt;code class="ce"&gt;)&lt;/code&gt;&lt;/code&gt; line. A thorough discussion of this is a bit beyond the scope of this article, but the reason it may work is because the &lt;code class="ce"&gt;Controls&lt;/code&gt; property's &lt;code class="ce"&gt;Add()&lt;/code&gt; method recursively loads the parent's view state into its children, even though the load view state stage has passed.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-4647989269837844005?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/4647989269837844005/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2007/08/aspnet-page-lifecycle.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/4647989269837844005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/4647989269837844005'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2007/08/aspnet-page-lifecycle.html' title='The ASP.NET Page lifecycle'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-3718949165114443127</id><published>2007-08-07T15:11:00.000-07:00</published><updated>2008-08-18T08:24:32.083-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='t-sql'/><title type='text'>CAST and CONVERT (T-SQL) - datetime syntax</title><content type='html'>&lt;table cellspacing="0" cols="4" width="446"&gt;&lt;tbody&gt;&lt;tr valign="top"&gt;&lt;th align="left" width="18%"&gt;Without&lt;br /&gt;century&lt;br /&gt;(yy)&lt;/th&gt; &lt;th align="left" width="22%"&gt;With&lt;br /&gt;century&lt;br /&gt;(yyyy)&lt;/th&gt; &lt;th align="left" width="31%"&gt;&lt;br /&gt;&lt;br /&gt;Standard&lt;/th&gt; &lt;th align="left" width="29%"&gt;&lt;br /&gt;&lt;br /&gt;Input/Output**&lt;/th&gt; &lt;/tr&gt;  &lt;tr valign="top"&gt; &lt;td width="18%"&gt;-&lt;/td&gt; &lt;td width="22%"&gt;0 or 100 (*) &lt;/td&gt; &lt;td width="31%"&gt;Default&lt;/td&gt; &lt;td width="29%"&gt;mon dd yyyy hh:miAM (or PM)&lt;/td&gt; &lt;/tr&gt;  &lt;tr valign="top"&gt; &lt;td width="18%"&gt;1&lt;/td&gt; &lt;td width="22%"&gt;101&lt;/td&gt; &lt;td width="31%"&gt;USA&lt;/td&gt; &lt;td width="29%"&gt;mm/dd/yy&lt;/td&gt; &lt;/tr&gt;  &lt;tr valign="top"&gt; &lt;td width="18%"&gt;2&lt;/td&gt; &lt;td width="22%"&gt;102&lt;/td&gt; &lt;td width="31%"&gt;ANSI&lt;/td&gt; &lt;td width="29%"&gt;yy.mm.dd&lt;/td&gt; &lt;/tr&gt;  &lt;tr valign="top"&gt; &lt;td width="18%"&gt;3&lt;/td&gt; &lt;td width="22%"&gt;103&lt;/td&gt; &lt;td width="31%"&gt;British/French&lt;/td&gt; &lt;td width="29%"&gt;dd/mm/yy&lt;/td&gt; &lt;/tr&gt;  &lt;tr valign="top"&gt; &lt;td width="18%"&gt;4&lt;/td&gt; &lt;td width="22%"&gt;104&lt;/td&gt; &lt;td width="31%"&gt;German&lt;/td&gt; &lt;td width="29%"&gt;dd.mm.yy&lt;/td&gt; &lt;/tr&gt;  &lt;tr valign="top"&gt; &lt;td width="18%"&gt;5&lt;/td&gt; &lt;td width="22%"&gt;105&lt;/td&gt; &lt;td width="31%"&gt;Italian&lt;/td&gt; &lt;td width="29%"&gt;dd-mm-yy&lt;/td&gt; &lt;/tr&gt;  &lt;tr valign="top"&gt; &lt;td width="18%"&gt;6&lt;/td&gt; &lt;td width="22%"&gt;106&lt;/td&gt; &lt;td width="31%"&gt;-&lt;/td&gt; &lt;td width="29%"&gt;dd mon yy&lt;/td&gt; &lt;/tr&gt;  &lt;tr valign="top"&gt; &lt;td width="18%"&gt;7&lt;/td&gt; &lt;td width="22%"&gt;107&lt;/td&gt; &lt;td width="31%"&gt;-&lt;/td&gt; &lt;td width="29%"&gt;mon dd, yy&lt;/td&gt; &lt;/tr&gt;  &lt;tr valign="top"&gt; &lt;td width="18%"&gt;8&lt;/td&gt; &lt;td width="22%"&gt;108&lt;/td&gt; &lt;td width="31%"&gt;-&lt;/td&gt; &lt;td width="29%"&gt;hh:mm:ss&lt;/td&gt; &lt;/tr&gt;  &lt;tr valign="top"&gt; &lt;td width="18%"&gt;-&lt;/td&gt; &lt;td width="22%"&gt;9 or 109 (*) &lt;/td&gt; &lt;td width="31%"&gt;Default + milliseconds&lt;/td&gt; &lt;td width="29%"&gt;mon dd yyyy hh:mi:ss:mmmAM (or PM)&lt;/td&gt; &lt;/tr&gt;  &lt;tr valign="top"&gt; &lt;td width="18%"&gt;10&lt;/td&gt; &lt;td width="22%"&gt;110&lt;/td&gt; &lt;td width="31%"&gt;USA&lt;/td&gt; &lt;td width="29%"&gt;mm-dd-yy&lt;/td&gt; &lt;/tr&gt;  &lt;tr valign="top"&gt; &lt;td width="18%"&gt;11&lt;/td&gt; &lt;td width="22%"&gt;111&lt;/td&gt; &lt;td width="31%"&gt;JAPAN&lt;/td&gt; &lt;td width="29%"&gt;yy/mm/dd&lt;/td&gt; &lt;/tr&gt;  &lt;tr valign="top"&gt; &lt;td width="18%"&gt;12&lt;/td&gt; &lt;td width="22%"&gt;112&lt;/td&gt; &lt;td width="31%"&gt;ISO&lt;/td&gt; &lt;td width="29%"&gt;yymmdd&lt;/td&gt; &lt;/tr&gt;  &lt;tr valign="top"&gt; &lt;td width="18%"&gt;-&lt;/td&gt; &lt;td width="22%"&gt;13 or 113 (*) &lt;/td&gt; &lt;td width="31%"&gt;Europe default + milliseconds&lt;/td&gt; &lt;td width="29%"&gt;dd mon yyyy hh:mm:ss:mmm(24h)&lt;/td&gt; &lt;/tr&gt;  &lt;tr valign="top"&gt; &lt;td width="18%"&gt;14&lt;/td&gt; &lt;td width="22%"&gt;114&lt;/td&gt; &lt;td width="31%"&gt;-&lt;/td&gt; &lt;td width="29%"&gt;hh:mi:ss:mmm(24h)&lt;/td&gt; &lt;/tr&gt;  &lt;tr valign="top"&gt; &lt;td width="18%"&gt;-&lt;/td&gt; &lt;td width="22%"&gt;20 or 120 (*) &lt;/td&gt; &lt;td width="31%"&gt;ODBC canonical&lt;/td&gt; &lt;td width="29%"&gt;yyyy-mm-dd hh:mi:ss(24h)&lt;/td&gt; &lt;/tr&gt;  &lt;tr valign="top"&gt; &lt;td width="18%"&gt;-&lt;/td&gt; &lt;td width="22%"&gt;21 or 121 (*) &lt;/td&gt; &lt;td width="31%"&gt;ODBC canonical (with milliseconds)&lt;/td&gt; &lt;td width="29%"&gt;yyyy-mm-dd hh:mi:ss.mmm(24h)&lt;/td&gt; &lt;/tr&gt;  &lt;tr valign="top"&gt; &lt;td colspan="4" width="100%"&gt;*    The default values (&lt;i&gt;style&lt;/i&gt; 0 or 100, 9 or 109, 13 or 113, 20 or 120, and 21 or 121) always return the century (yyyy). &lt;p&gt;** Input when converting to &lt;b&gt;datetime&lt;/b&gt;; Output when converting to character data.&lt;/p&gt;&lt;p&gt;CONVERT &lt;b&gt;(&lt;/b&gt;&lt;i&gt;data_type&lt;/i&gt;[&lt;b&gt;(&lt;/b&gt;&lt;i&gt;length&lt;/i&gt;&lt;b&gt;)&lt;/b&gt;]&lt;b&gt;,&lt;/b&gt; &lt;i&gt;expression&lt;/i&gt; [&lt;b&gt;,&lt;/b&gt; &lt;i&gt;style&lt;/i&gt;]&lt;b&gt;)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-3718949165114443127?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://doc.ddart.net/mssql/sql70/ca-co_1.htm' title='CAST and CONVERT (T-SQL) - datetime syntax'/><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/3718949165114443127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2007/08/cast-and-convert-t-sql-datetime-syntax.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/3718949165114443127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/3718949165114443127'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2007/08/cast-and-convert-t-sql-datetime-syntax.html' title='CAST and CONVERT (T-SQL) - datetime syntax'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-3878539038732013572</id><published>2007-08-06T12:18:00.001-07:00</published><updated>2008-08-18T08:38:31.423-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='c#.net'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>Javascript shorthand if statement syntax</title><content type='html'>&lt;div style="border: 0px none ; overflow: auto; margin-top: 25px; min-height: 50px; font-size: 11px; width: 456px; line-height: 16.8px; float: none;"&gt;&lt;img src="http://cache.yoono.com/memo/web-site.gif" id="undefined" class="yoono-smiley" align="middle" border="0" /&gt; &lt;a target="_blank" href="http://www.bennadel.com/blog/177-Javascript-Short-Hand-IF-Within-Object-Notation.htm" style="text-decoration: underline; color: rgb(35, 136, 189);"&gt;Javascript Short-Hand IF Within Object Notation : Kinky Solu...&lt;/a&gt;  var myVar = ( intDayOfWeek == 6 ) ? 3 : 0;  Just a quick reminder for myself on how the short hand if statement syntax works for languages like php, javascript, and c#. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-3878539038732013572?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/3878539038732013572/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2007/08/javascript-shorthand-if-statement.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/3878539038732013572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/3878539038732013572'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2007/08/javascript-shorthand-if-statement.html' title='Javascript shorthand if statement syntax'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-3022072901005277555</id><published>2007-08-03T10:26:00.001-07:00</published><updated>2008-08-18T08:15:06.787-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c#.net'/><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><title type='text'>Convert a String to a GUID</title><content type='html'>&lt;div style="border: 0px none ; overflow: auto; margin-top: 25px; min-height: 50px; font-size: 11px; width: 456px; line-height: 16.8px; float: none;"&gt;&lt;img src="http://cache.yoono.com/memo/web-site.gif" id="undefined" class="yoono-smiley" align="middle" border="0" /&gt; &lt;a target="_blank" href="http://www.123aspx.com/ReadReviews.aspx?res=454" style="text-decoration: underline; color: rgb(35, 136, 189);"&gt;Convert a String to a GUID - 123aspx.com ASP.NET Resource Di...&lt;/a&gt;   Guid myGuid = Guid(str);&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-3022072901005277555?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/3022072901005277555/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2007/08/convert-string-to-guid.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/3022072901005277555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/3022072901005277555'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2007/08/convert-string-to-guid.html' title='Convert a String to a GUID'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-2879958704247911455</id><published>2007-08-01T10:09:00.000-07:00</published><updated>2007-08-01T10:12:29.185-07:00</updated><title type='text'>Password Reveal</title><content type='html'>A good little password finding utility that works on WinXP.  It works by revealing the *****'d text that typically hides the text in a password field.  This is not a password cracker.&lt;br /&gt;&lt;br /&gt;Warning: It does try and connect to the internet when run for some unknown reason.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-2879958704247911455?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.snadboy.com/' title='Password Reveal'/><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/2879958704247911455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2007/08/password-reveal.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/2879958704247911455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/2879958704247911455'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2007/08/password-reveal.html' title='Password Reveal'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-6601118952097586590</id><published>2007-07-30T22:22:00.000-07:00</published><updated>2007-07-31T17:56:47.633-07:00</updated><title type='text'>Accessing Cookies from Javascript</title><content type='html'>I recently had occasion to access the contents of a cookie stored on the clients computer using Javascript.  I found the following javascript function very handy.  I wander if something similar is built into javascript:&lt;br /&gt;&lt;br /&gt;function getCookie(name) {&lt;br /&gt;var dc = document.cookie;&lt;br /&gt;var prefix = name + "=";&lt;br /&gt;var begin = dc.indexOf("; " + prefix);&lt;br /&gt;if (begin == -1) {&lt;br /&gt;  begin = dc.indexOf(prefix);&lt;br /&gt;  if (begin != 0) return null;&lt;br /&gt;} else {&lt;br /&gt;  begin += 2;&lt;br /&gt;}&lt;br /&gt;var end = document.cookie.indexOf(";", begin);&lt;br /&gt;if (end == -1) {&lt;br /&gt;  end = dc.length;&lt;br /&gt;}&lt;br /&gt;return unescape(dc.substring(begin + prefix.length, end));&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-6601118952097586590?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://javascript.internet.com/cookies/save-and-restore-form-cookies.html' title='Accessing Cookies from Javascript'/><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/6601118952097586590/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2007/07/accessing-cookies-from-javascript.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/6601118952097586590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/6601118952097586590'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2007/07/accessing-cookies-from-javascript.html' title='Accessing Cookies from Javascript'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-4170656590733247835</id><published>2007-07-30T08:43:00.000-07:00</published><updated>2007-07-30T08:44:44.874-07:00</updated><title type='text'>Stylesheet Link</title><content type='html'>Probably the easiest method of adding a link to an additional style sheet in code is this:&lt;br /&gt;&lt;br /&gt;Page.Header.Controls.Add(new StylesheetLink("/css/mystyle.css"));&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-4170656590733247835?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/4170656590733247835/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2007/07/stylesheet-link.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/4170656590733247835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/4170656590733247835'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2007/07/stylesheet-link.html' title='Stylesheet Link'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-6518868745849453971</id><published>2007-07-26T23:12:00.000-07:00</published><updated>2007-07-26T23:13:14.805-07:00</updated><title type='text'>A Look at GUIDs</title><content type='html'>Summary:&lt;br /&gt;Not many people enjoy using Globally Unique Identifiers (GUIDs), partly because they are cumbersome to type and work with for humans. However they fill a need and can provide some interesting benefits. SQL Server expert Andy Warren takes us through what a GUID is and how you can use it easily in your code.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-6518868745849453971?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.sqlservercentral.com/columnists/awarren/alookatguids.asp' title='A Look at GUIDs'/><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/6518868745849453971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2007/07/look-at-guids.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/6518868745849453971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/6518868745849453971'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2007/07/look-at-guids.html' title='A Look at GUIDs'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-287190167016873652</id><published>2007-07-26T23:06:00.000-07:00</published><updated>2007-07-26T23:07:14.408-07:00</updated><title type='text'>The difference between Where and Group By</title><content type='html'>"The WHERE clause (# 3) evaluates data before the GROUP BY clause does. When you want to limit data after it's grouped, use HAVING. Often, the result will be the same whether you use WHERE or HAVING, but it's important to remember that the clauses are not interchangeable. Here's a good guideline to follow when you're in doubt: Use WHERE to filter records; use HAVING to filter groups.&lt;br /&gt;Usually, you'll use HAVING to evaluate a group using an aggregate. For instance, the following statement returns a unique list of ZIP codes, but the list might not include every ZIP code in the underlying data source: SELECT ZIP, Count(ZIP) AS CustomersByZIP FROM Customers GROUP BY ZIP HAVING Count(ZIP) = 1&lt;br /&gt;Only those groups with just one customer make it to the results. "&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-287190167016873652?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.builderau.com.au/program/sqlserver/soa/10-tips-for-sorting-grouping-and-summarizing-SQL-data/0,339028455,339274648,00.htm' title='The difference between Where and Group By'/><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/287190167016873652/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2007/07/difference-between-where-and-group-by.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/287190167016873652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/287190167016873652'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2007/07/difference-between-where-and-group-by.html' title='The difference between Where and Group By'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-5525830247745994342</id><published>2007-07-26T22:31:00.000-07:00</published><updated>2007-07-26T22:33:44.653-07:00</updated><title type='text'>What Query Plans are in SQL Server's Memory?</title><content type='html'>"SQL Server memory is primarily used to store data (buffer) and query plans (procedure cache). In this article I'll show how much memory is allocated to the procedure cache (RAM). I'll explain how to determine what plans are in the cache and how often they're used.&lt;br /&gt;&lt;br /&gt;SQL Server stores the procedure cache in 8KB data pages.  You can use the dynamic management view sys.dm_os_memory_cache_counters to provide a summary of how the cache is allocated using this query"&lt;br /&gt;&lt;br /&gt;SELECT  TOP 6&lt;br /&gt;  LEFT([name], 20) as [name],&lt;br /&gt;  LEFT([type], 20) as [type],&lt;br /&gt;  [single_pages_kb] + [multi_pages_kb] AS cache_kb,&lt;br /&gt;  [entries_count]&lt;br /&gt;FROM sys.dm_os_memory_cache_counters&lt;br /&gt;Order By single_pages_kb + multi_pages_kb DESC&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-5525830247745994342?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.sqlteam.com/article/what-query-plans-are-in-sql-server-memory' title='What Query Plans are in SQL Server&apos;s Memory?'/><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/5525830247745994342/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2007/07/what-query-plans-are-in-sql-servers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/5525830247745994342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/5525830247745994342'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2007/07/what-query-plans-are-in-sql-servers.html' title='What Query Plans are in SQL Server&apos;s Memory?'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-703101161281072462.post-8861022624185799690</id><published>2007-07-26T22:29:00.000-07:00</published><updated>2007-07-26T22:31:35.014-07:00</updated><title type='text'>What Data is in SQL Server's Memory?</title><content type='html'>"SQL Server memory is primarily used to store data (buffer) and query plans (cache). In this article I'll show how much memory is allocated to the data buffer (or RAM). I'll explain how to determine what tables and indexes are in the buffer memory of your server.&lt;br /&gt;&lt;br /&gt;SQL Server stores its data in 8KB data pages.  As these pages are read off disk they are stored in memory.  This is referred to as buffer memory.  A list of all the data pages in memory is stored in the dynamic management view &lt;a href="http://msdn2.microsoft.com/en-us/library/ms173442.aspx"&gt;sys.dm_os_buffer_descriptors&lt;/a&gt;."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/703101161281072462-8861022624185799690?l=jeremeguenther.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.sqlteam.com/article/what-data-is-in-sql-server-memory' title='What Data is in SQL Server&apos;s Memory?'/><link rel='replies' type='application/atom+xml' href='http://jeremeguenther.blogspot.com/feeds/8861022624185799690/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeremeguenther.blogspot.com/2007/07/what-data-is-in-sql-servers-memory.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/8861022624185799690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/703101161281072462/posts/default/8861022624185799690'/><link rel='alternate' type='text/html' href='http://jeremeguenther.blogspot.com/2007/07/what-data-is-in-sql-servers-memory.html' title='What Data is in SQL Server&apos;s Memory?'/><author><name>Jereme Guenther</name><uri>https://profiles.google.com/107828536544831124380</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DAwTKC0Ae34/AAAAAAAAAAI/AAAAAAAACg8/zHIhJiHdd9s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry></feed>
