<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Gdgtry</title>
	<atom:link href="http://gdgtry.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://gdgtry.com</link>
	<description>Technology issues on a day-to-day basis.</description>
	<lastBuildDate>Mon, 16 Apr 2012 18:11:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Setting up a VMware ESXi 4.1 Environment with a Dell PS4000x SAN using Software iSCSI, Multiple Paths and Jumbo Frames</title>
		<link>http://gdgtry.com/2012/03/setting-up-a-vmware-esxi-4-1-environment-with-a-dell-ps4000x-san-using-software-iscsi-multiple-paths-and-jumbo-frames/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=setting-up-a-vmware-esxi-4-1-environment-with-a-dell-ps4000x-san-using-software-iscsi-multiple-paths-and-jumbo-frames</link>
		<comments>http://gdgtry.com/2012/03/setting-up-a-vmware-esxi-4-1-environment-with-a-dell-ps4000x-san-using-software-iscsi-multiple-paths-and-jumbo-frames/#comments</comments>
		<pubDate>Thu, 08 Mar 2012 20:47:04 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://gdgtry.com/?p=506</guid>
		<description><![CDATA[Yea, that's a jumble of a title. This will be a brain dump of all the configuration I've done on our SAN environment. Looking back it seems so easy to configure, and I doubt that it would take me more than an hour or two to set up a whole new SAN environment from scratch. But since [...]]]></description>
			<content:encoded><![CDATA[<p>Yea, that's a jumble of a title. This will be a brain dump of all the configuration I've done on our SAN environment. Looking back it seems so easy to configure, and I doubt that it would take me more than an hour or two to set up a whole new SAN environment from scratch. But since this was my first time, it took me a lot of reading and research. Here's a dump of what I've done:</p>
<p><strong>Our environment:</strong></p>
<p>Two Dell r710 servers: Each with four onboard NIC ports and two add-in Broadcom 5709s with two ports each. Each server has two internal hard disks in a RAID 1 (mirrored) array to boot ESXi off of. Booting directly from the SAN is an option I will explore at a later date. In our environment I already had one server hosting a few VMs off of internal storage including a VSphere server. This process was an upgrade to add a SAN and another server. A note: If I could do this over again I would NOT have purchased Broadcom 5709s in our servers. The main reason I got them was to offload all iSCSI traffic to the cards and use the hardware iSCSI initiators in VMware. Apparently 5709s support offloading of iSCSI but not with jumbo frames. After reading <a title="Software iSCSI Initiator with Jumbo Frames vs Hardware dependant iSCSI Initiator without Jumbo Frames" href="http://www.vmadmin.co.uk/vmware/35-esxserver/252-esxihwswiscsijumbo" target="_blank">this article</a> which benchmarks VMware with hardware iSCSI without jumbo frames against software iSCSI with jumbo frames I decided I would use the software iSCSI initiators.</p>
<p>One Dell PS4000x SAN: The SAN has two controllers each with three ports. One port is for management and is on our LAN. The other two are for SAN traffic. The controllers work in a Active/Standby configuration. The secondary controller simply mirrors the primary controllers configuration and sits idle until the primary controller fails, then the secondary takes over.</p>
<p>Two Cisco 3750G Switches: The pair are in a stacked configuration using Cisco's StackWise interconnects. These switches will ONLY be used for the SAN. Doing so saves a lot of VLAN configuration. At the moment I didn't even set VLAN information.</p>
<p><strong>My process:</strong></p>
<p>The following is how I set all this up. I used tons of various articles from official configuration guides to forum and blog posts. I'll try to link to the actual documents used wherever possible.</p>
<p>I rack mounted everything. I decided to go with the switches top most. Below that (with some space) our two servers. Below that (with some space) our SAN, Below that (with some space) two UPSs.</p>
<p><strong>Install ESXi:</strong></p>
<p>As stated earlier my environment already had one ESXi server running with VMs hosted out of internal storage including a VM hosting VSphere. I simply installed ESXi on the new server, wired it into the SAN/LAN and added it to VSphere. From there I managed everything. If I were doing this fresh (without a VSphere install) I'd install ESXi on both servers, connect all the SAN/LAN connections then connect to each one via a VSphere client  independently to configure the SAN connections then create a VSphere VM to manage them both.</p>
<p><strong>Network Connections:</strong></p>
<p>For redundancy each server should have at least two completely independent network routes to the SAN and LAN. In my situation each of my Dell servers have three independent network controllers. The two Broadcom cards and the onboard units. On each server I'm using one port on each of the two Broadcom cards for SAN connectivity. The SAN has two controller cards. Each card has two SAN ports and a management port. One SAN port from each card is connected to one switch and the Management ports are connected to the LAN.</p>
<p>Should any one network card on a server fail the sever will still have SAN and LAN access. Should any one of the switches fail the servers will have SAN and LAN access. Should any one of the SAN controllers fail the servers will have SAN and LAN access.</p>
<p>IP addresses for each device are in the 10.0.0.0/24 range. The Dell SAN requires three IP address. One for each network port (.1 and .2) on a member and a group IP address (.10). The servers have two SAN IPs each (.3 .4 and .5 .6).</p>
<div id="attachment_508" class="wp-caption aligncenter" style="width: 448px"><a href="http://gdgtry.com/wp-content/uploads/2012/03/SANDiagram.jpg"><img class="size-full wp-image-508  " title="SANDiagram" src="http://gdgtry.com/wp-content/uploads/2012/03/SANDiagram.jpg" alt="SAN Topology Diagram" width="438" height="692" /></a><p class="wp-caption-text">SAN Topology Diagram: Blue is SAN connections. Green is LAN connections.</p></div>
<p><strong>Configuring the Cisco 3750g Switches:</strong></p>
<p>Following the Appendix F of the <a title="Dell EqualLogic Configuration Guide" href="http://en.community.dell.com/techcenter/storage/w/wiki/equallogic-configuration-guide.aspx" target="_blank">Dell EqualLogic Configuration Guide</a> "Cisco IOS based Switch Configuration" I enabled portfast, enabled flow control, disabled unicast storm, and enabled jumbo frames. Once again I'm setting these options on all ports because these are dedicated SAN only switches. Also because my switches are stacked I can configure them both from the same connection. Your situation may differ.</p>
<p>Enabled portfast on all ports:</p>
<p style="padding-left: 30px;">Switch# config terminal<br />
Switch(config)# spanning-tree portfast default<br />
Switch(config)# end<br />
Switch# copy running-config startup-config</p>
<p>Enabled flow control:</p>
<p style="padding-left: 30px;">Switch&gt; enable<br />
Switch# configure terminal<br />
Switch(config)# interface range gi1/0/1 - 24<br />
Switch(config-if)# flowcontrol receive desired<br />
Switch(config-if)# exit<br />
Switch(config)# interface range gi2/0/1 - 24<br />
Switch(config-if)# flowcontrol receive desired<br />
Switch(config-if)# exit<br />
Switch(config)# exit<br />
Switch# copy running-config startup-config</p>
<p>Disabled unicast storm control:</p>
<p style="padding-left: 30px;">Switch&gt; enable<br />
Switch# configure terminal<br />
Switch(config)# interface range gi1/0/1 - 24<br />
Switch(config-if)# no storm-control unicast level<br />
Switch(config-if)# exit<br />
Switch(config)# interface range gi2/0/1 - 24<br />
Switch(config-if)# no storm-control unicast level<br />
Switch(config-if)# exit<br />
Switch(config)# exit<br />
Switch# copy running-config startup-config</p>
<p>Enabled Jumbo Frames (notice this requires a reload... don't do this if you're on production equipment!):</p>
<p style="padding-left: 30px;">Switch&gt; enable<br />
Switch# config terminal<br />
Switch(config)# system mtu jumbo 9000<br />
Switch(config)# exit<br />
Switch# copy running-config startup-config<br />
Switch# reload</p>
<p>Then I verified all my settings:</p>
<p style="padding-left: 30px;">Switch# show spanning-tree interface gi1/0/1<br />
Switch# show flowcontrol interface gi1/0/1<br />
Switch# show storm-control gi1/0/1 unicast<br />
Switch# configure t<br />
Switch(config)# show system mtu<br />
Switch(config)# exit<br />
Switch# show interface gigabitethernet1/0/1</p>
<p>The last command is to confirm and MTU of 9000 on the port. Repeat the previous commands on all ports to ensure they have the necessary settings.</p>
<p><strong>Initialize</strong><strong> the SAN:</strong></p>
<p>First time use of the PS Series SANs require you to connect to the unit with a serial cable and run a initial configuration wizard. The <a title="PS4000 Installation and Setup Manual" href="https://support.equallogic.com/support/download_file.aspx?id=748" target="_blank">PS4000 Installation and Setup Manual</a> covers all these steps in more detail.</p>
<p>Hook up the serial cable and open a connection to whatever COM port you used. I used <a title="Putty" href="http://www.chiark.greenend.org.uk/~sgtatham/putty/" target="_blank">Putty</a> for this. Hit enter and you should get a prompt. Type "setup" to start the configuration wizard. First time setup uses "grpadmin" for both the username and password. From here you'll br prompted to set up a member name, group name, IP address, password and a few other things. After this process completes you can connect in a web browser to the units management interface via the IP address you set. From there you can setup the RAID level and volumes. At this time I've chosen RAID 5, but since I'm currently not production with this unit I plan on reformatting it to RAID 6 and RAID 50 to test performance levels. A note: Once you've chosen a particular RAID level you can only change to similar RAID levels.</p>
<p>RAID-10: Can only be changed to RAID-50, RAID-6, or RAID-5<br />
RAID-50: Can only be changed to RAID-6 or RAID-5<br />
RAID-6: can only be changed to RAID-5</p>
<p>Should you want to make an unsupported RAID level change you need to pretty much start over with the SAN member. In a one member environment this means also starting over with the group. See <a title="Changing RAID Levels on PS SANs" href="http://serverfault.com/questions/316188/is-it-possible-to-reduce-the-size-of-a-storage-pool-or-storage-pool-member-in-an" target="_blank">this post</a> by an EqualLogic employee.</p>
<p>After completing the initial setup, I connected to the SAN's LAN IP address and created a temporary volume. Having a volume ready to connect to makes it easier to know you've set up your ESXi iSCSI connections correctly.</p>
<p><strong>Install the Dell MEM (Multipath Extension Module):</strong></p>
<p>This module is an alternative to the built in VMware iSCSI path selectors. It's configured to better support the PS series controllers. Installation consists of downloading the <a title="Dell Multipath Extension Module" href="https://support.equallogic.com/support/download.aspx?id=1484" target="_blank">Dell Multipath Extension Module</a> then using one of three ways to install it to your ESX hosts. All of the following is taken from the Installation and User Guide that comes in the MEM download package. Note: No matter which method you choose your ESX host will need to be in maintenance mode.</p>
<p>I chose to install the module via the <a title="Vmware CLI" href="http://www.vmware.com/support/developer/vcli/" target="_blank">vSphere CLI that's available here</a>. After installing the vSphere CLI, I extracted the contents of the Dell MEM download to the /bin directory in the CLI install. Then after launching the CLI and changing directory to the /bin directory ("cd bin") I ran the following:</p>
<p style="padding-left: 30px;">esxcli --server=esxi1 software vib install --depot dell-eql-mem-esx4-1.1.0.222691.zip</p>
<p>Then repeated the command for my other ESX server and took both servers out of maintenance mode.</p>
<p><strong>Configuring ESXi SAN Connections with Jumbo Frames:</strong></p>
<p>Most of the following I got from the <a title="VMware iSCSI SAN Configuration Guide" href="http://www.vmware.com/pdf/vsphere4/r41/vsp_41_iscsi_san_cfg.pdf" target="_blank">VMware iSCSI SAN Configuration Guide</a> however that guide doesn't cover jumbo frames. For Jumbo frames replace the commands in the previous guide with the commands from the <a title="iSCSI and Jumbo Frames Configuration" href="http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;cmd=displayKC&amp;externalId=1007654" target="_blank">Knowledge Base article: iSCSI and Jumbo Frames configuration on ESX/ESXi</a>.</p>
<p>All of the guides say to do the steps straight from the terminal. However all of the steps can be accomplished remotely using the <a title="Vmware CLI" href="http://www.vmware.com/support/developer/vcli/" target="_blank">VMware CLI</a>. The VMware CLI is a series of Perl scripts. According to the documentation you can simply type the scripts name then switches to launch them. However on my computer I needed to change to the /bin subdirectory of the CLI install (where the scripts are actually located) and call each script with its .pl extension. Since the guides commands all assume your at the console the "--server=servername" switch will needed to be added to all commands in the guides.</p>
<p>Create a vSwitch:</p>
<p style="padding-left: 30px;">esxcfg-vswitch.pl --server=esxi1 -a vSwitch-iSCSI</p>
<p>Change the MTU to 9000 on the vSwitch:</p>
<p style="padding-left: 30px;">esxcfg-vswitch.pl --server=esxi1 -m 9000 vSwitch-iSCSI</p>
<p>Create two VM kernal port groups for iSCSI traffic (because I have two SAN connections on this server):</p>
<p style="padding-left: 30px;">esxcfg-vswitch.pl --server=esxi1 -A iSCSI1 vSwitch-iSCSI<br />
esxcfg-vswitch.pl --server=esxi1 -A iSCSI2 vSwitch-iSCSI</p>
<p>Create two VM kernal connections (one for each port group) with jumbo frames:</p>
<p style="padding-left: 30px;">esxcfg-vmknic.pl --server=esxi1 -a -i 10.0.0.3 -n 255.255.255.0 -m 9000 iSCSI1<br />
esxcfg-vmknic.pl --server=esxi1 -a -i 10.0.0.4 -n 255.255.255.0 -m 9000 iSCSI2</p>
<p>Make a note of the port names assigned to these connections when you create them. The port name will be in the format of "vmk#". You can view the port name from the networking section under the configuration tab. In my case iSCSI1 was vmk1 and iSCSI2 was vmk2</p>
<p>Each VMKernal Port needs to be assigned to one physical adapter. By default since all ports on a switch can use all adapters on the switch. We need to change each port to ONLY use a particular adapter. To do so select Properties on the vSwitch we created. Select the first iSCSI port listed and hit the Edit button. On the NIC Teaming tab move all but one of the vmnic adapters to the Unused Adapters section. Repeat the process for the other iSCSI ports on the switch so that each iSCSI port is bound to only one Active Adapter.</p>
<div id="attachment_513" class="wp-caption aligncenter" style="width: 589px"><a href="http://gdgtry.com/wp-content/uploads/2012/03/FailoverOverride.jpg"><img class="size-full wp-image-513" title="FailoverOverride" src="http://gdgtry.com/wp-content/uploads/2012/03/FailoverOverride.jpg" alt="Failover Override" width="579" height="392" /></a><p class="wp-caption-text">Each iSCSI port must be assigned only one Active Adapter</p></div>
<p>Enable the Software iSCSI adapter now if you haven't. Log in to vSphere client, select your server, configuration tab, Storage Adapters, select the Software iSCSI Adapter (and make a note of its port name, e.g. vmhba#), click configure, select Enable. In my case the Software iSCSI Adapter was vmhba41.</p>
<p>Bind the iSCSI ports to the iSCSI adapters:</p>
<p style="padding-left: 30px;">esxcli --server=esxi1 swiscsi nic add -n vmk1 -d vmhba41<br />
esxcli --server=esxi1 swiscsi nic add -n vmk2 -d vmhba41</p>
<p>The last step is to set up our discovery address and scan the bus.  Under the Storage Adapter section of the Configuration tab select the Software iSCSI adapter, select Properties, select the Dynamic Discovery tab, select the Add button and input the IP address of our Dell SAN group, not the individual member, but the group. In our case the group IP was 10.0.0.10. Select OK. When you hit close on the iSCSI Initiator Properties window you will be prompted to scan the bus. Select yes. If everything worked out correctly a new entry should populate under the iSCSI Storage Adapter details. Also if we navigate to the the Storage section we should see the volume we created earlier available for use.</p>
<p>An alternative to running each of the previous commands individually is to use the setup.pl script provided by Dell. We copied it over earlier to our vSphere CLI installation bin folder from the Dell MEM installation. Using the script consists of launching the vSphere CLI, changing into the /bin directory (only because thats where we extracted it earlier), and running the following:</p>
<p style="padding-left: 30px;">setup.pl --configure --server=esxi1</p>
<p>The script will then prompt your for all the parameters we used earlier and setup everything automatically. It makes setup very easy. Have a look:</p>
<div id="attachment_516" class="wp-caption aligncenter" style="width: 416px"><a href="http://gdgtry.com/wp-content/uploads/2012/03/DellSetupScript.jpg"><img class=" wp-image-516" title="DellSetupScript" src="http://gdgtry.com/wp-content/uploads/2012/03/DellSetupScript.jpg" alt="Dell's Setup Script" width="406" height="614" /></a><p class="wp-caption-text">Dell&#39;s Setup Script - Click to Enlarge</p></div>
<p><strong>Confirming Jumbo Frames are Being Used:</strong></p>
<p>To confirm you are in fact using Jumbo frames and multiple paths you can connect to the Dell SAN's management interface via web browser, login, and go to the Monitoring section and select the Events list. You should see "iSCSI log on to target... stuff here... successfull, using Jumbo frame length."</p>
<p><strong>Finished!</strong></p>
<p>Now you're up and running. If this was a fresh install I'd create myself a vSphere server VM and go to town.</p>
]]></content:encoded>
			<wfw:commentRss>http://gdgtry.com/2012/03/setting-up-a-vmware-esxi-4-1-environment-with-a-dell-ps4000x-san-using-software-iscsi-multiple-paths-and-jumbo-frames/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows with two network connections: internal and external</title>
		<link>http://gdgtry.com/2011/05/windows-with-two-network-connections-internal-and-external/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=windows-with-two-network-connections-internal-and-external</link>
		<comments>http://gdgtry.com/2011/05/windows-with-two-network-connections-internal-and-external/#comments</comments>
		<pubDate>Fri, 06 May 2011 17:50:03 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[adapters]]></category>
		<category><![CDATA[external]]></category>
		<category><![CDATA[internal]]></category>
		<category><![CDATA[networks]]></category>
		<category><![CDATA[route]]></category>
		<category><![CDATA[routes]]></category>
		<category><![CDATA[traffic]]></category>
		<category><![CDATA[two]]></category>
		<category><![CDATA[wifi]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[wireless]]></category>

		<guid isPermaLink="false">http://gdgtry.com/?p=492</guid>
		<description><![CDATA[This post applies to both Windows 7 and Windows XP (and probably the server OS's as well). At the office we have two available networks: An internal network with our servers that also has filtered internet and an external wifi network that just offers unfiltered internet. The main issue is that, as an IT tech, [...]]]></description>
			<content:encoded><![CDATA[<p>This post applies to both Windows 7 and Windows XP (and probably the server OS's as well).</p>
<p>At the office we have two available networks: An internal network with our servers that also has filtered internet and an external wifi network that just offers unfiltered internet.</p>
<p>The main issue is that, as an IT tech, I download a lot of large files that can slow down our network, so I often found myself using a laptop on our external wifi downloading items so that I don't slow internal people down.</p>
<p>My goal was to have two network connections on my Windows 7 PC, one wired internal connection and one a wifi external connection. I also want my internet traffic to go over my wifi connection but at the same time any have the ability to access all the internal sources.</p>
<p>A warning before I start: Doing this incorrectly can open a giant security hole in your network, please don't do it without the approval of your IT dept.</p>
<p>First, I simply hooked up both network connections and tested them both (by only plugging one in at a time and checking the internet) as fully functional.</p>
<p>Once both are functional you need to edit your routing table so the correct requests go over the correct network adapter.</p>
<p>You can do this via the command line, but I found the <a title="Nirsoft NetRouteView" href="http://www.nirsoft.net/utils/network_route_view.html" target="_blank">Nirsoft NetRouteView utility</a> to make this whole process a whole bunch easier.</p>
<p>Download and extract the NetRouteView utility. Then if on Windows 7, right click the NetRouteView.exe file and select "Run as Administrator".</p>
<div id="attachment_493" class="wp-caption aligncenter" style="width: 468px"><a href="http://gdgtry.com/wp-content/uploads/2011/05/NetRouteView1.jpg"><img class="size-full wp-image-493  " title="NetRouteView1" src="http://gdgtry.com/wp-content/uploads/2011/05/NetRouteView1.jpg" alt="" width="458" height="193" /></a><p class="wp-caption-text">NetRouteView with two connections</p></div>
<p>Click the "Interface Name" column title to sort your entries by interface like above.</p>
<p>Depending on your network only one or two changes should be made. First, you need to remove the 0.0.0.0 entry from your internal network. That entry is a "catch all". We want the catch all on the outside network and not the inside. So remove 0.0.0.0 from your internal adapter and make sure its already there on your external connection.</p>
<p>For most people that should be it! But for me I had to add one entry to my internal network to get it to work. I wanted the whole 192.0.0.0 (that means anything that has a 192 for its first number in it's IP address) to go on my internal network connection. So I added the following:</p>
<div id="attachment_497" class="wp-caption aligncenter" style="width: 379px"><a href="http://gdgtry.com/wp-content/uploads/2011/05/NetRouteView2.jpg"><img class="size-full wp-image-497 " title="NetRouteView2" src="http://gdgtry.com/wp-content/uploads/2011/05/NetRouteView2.jpg" alt="Adding a route" width="369" height="210" /></a><p class="wp-caption-text">Adding a route</p></div>
<p>Thats it! To check that everything is going over the correct interface I added the <a title="Network Traffic Gadget" href="http://gallery.live.com/liveItemDetail.aspx?li=aa4a0946-eee3-4af3-914d-ed0c66242523&amp;bt=1&amp;pl=1" target="_blank">Network Traffic gadget</a> to my Windows 7 desktop twice (just drag it to the desktop twice from the gadget list). I made my internal connection red and my external connection green.</p>
<div id="attachment_498" class="wp-caption aligncenter" style="width: 154px"><a href="http://gdgtry.com/wp-content/uploads/2011/05/NetRouteView3.jpg"><img class="size-full wp-image-498" title="NetRouteView3" src="http://gdgtry.com/wp-content/uploads/2011/05/NetRouteView3.jpg" alt="Network Traffic with two connections" width="144" height="225" /></a><p class="wp-caption-text">Network Traffic with two connections</p></div>
<p>Now I can watch as I view a web page which adapter it's going out.</p>
]]></content:encoded>
			<wfw:commentRss>http://gdgtry.com/2011/05/windows-with-two-network-connections-internal-and-external/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Adobe Acrobat: &quot;The Document could not be printed.&quot;</title>
		<link>http://gdgtry.com/2011/03/adobe-acrobat-the-document-could-not-be-printed/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=adobe-acrobat-the-document-could-not-be-printed</link>
		<comments>http://gdgtry.com/2011/03/adobe-acrobat-the-document-could-not-be-printed/#comments</comments>
		<pubDate>Thu, 31 Mar 2011 13:08:32 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[troubleshooting]]></category>

		<guid isPermaLink="false">http://gdgtry.com/?p=484</guid>
		<description><![CDATA[Recently we upgraded our Windows 7 machines to Adobe Acrobat X Standard/Pro. Some of our users were having issues with random PDFs that would not print. When attempting to print these PDFs users would get a "The Document could not be printed." pop-up followed by "The Document could not be printed." Interestingly I found that [...]]]></description>
			<content:encoded><![CDATA[<p>Recently we upgraded our Windows 7 machines to Adobe Acrobat X Standard/Pro. Some of our users were having issues with random PDFs that would not print.</p>
<p>When attempting to print these PDFs users would get a "The Document could not be printed." pop-up followed by "The Document could not be printed."</p>
<p>Interestingly I found that in most cases the issue occurred when the PDF was being viewed embedded in Internet Explorer. In some cases If I saved the offending PDF to desktop and then opened it, it would print without issue.</p>
<p>The solution I've come across was to replace the drivers of our HP 1320 printers from the PCL 6 drivers to the HP universal drivers. For us, that resolved all printing problems.</p>
<p>I've read on the Adobe forums that the issue is related to gibberish hidden characters added when someone adds text to a PDF from something other than an Adobe product. Something like Microsoft Word.</p>
<p>I'd be interested if anyone could come up with a "true" fix, as my solution sounds sort of like a work around.</p>
]]></content:encoded>
			<wfw:commentRss>http://gdgtry.com/2011/03/adobe-acrobat-the-document-could-not-be-printed/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Fujitsu ScanSnap Error &quot;PDF file creation failed.&quot;</title>
		<link>http://gdgtry.com/2011/03/fujitsu-scansnap-error-pdf-file-creation-failed/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=fujitsu-scansnap-error-pdf-file-creation-failed</link>
		<comments>http://gdgtry.com/2011/03/fujitsu-scansnap-error-pdf-file-creation-failed/#comments</comments>
		<pubDate>Tue, 29 Mar 2011 21:28:36 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[pdf]]></category>
		<category><![CDATA[scanner]]></category>
		<category><![CDATA[scansnap]]></category>
		<category><![CDATA[troubleshooting]]></category>

		<guid isPermaLink="false">http://gdgtry.com/?p=474</guid>
		<description><![CDATA[We currently have five of these scanners deployed on Windows 7 machines. All installations were experiencing a random error of "PDF file creation failed." The error did not not usually occur if only a single document was scanned and saved. However, If two documents are scanned and saved back to back, this error was likely [...]]]></description>
			<content:encoded><![CDATA[<p>We currently have five of these scanners deployed on Windows 7 machines. All installations were experiencing a random error of "PDF file creation failed."</p>
<div id="attachment_475" class="wp-caption aligncenter" style="width: 490px"><a href="http://gdgtry.com/wp-content/uploads/2011/03/PDFerror.gif"><img class="size-full wp-image-475  " title="ScanSnap Error" src="http://gdgtry.com/wp-content/uploads/2011/03/PDFerror.gif" alt="" width="480" height="213" /></a><p class="wp-caption-text">PDF file creation failed.</p></div>
<p>The error did not not usually occur if only a single document was scanned and saved. However, If two documents are scanned and saved back to back, this error was likely to occur at the start of the second document. Internet searches yielded nothing, but after contacting Fujitsu support, we came to a solution.</p>
<p>The error stems from the fact that ScanSnap Manager defaults to saving scans into the My Pictures folder. At our offices all users have their My Documents folders redirected via Group Policy to a network share. Apparently ScanSnap is sensitive to any delay when it attempts to write the scanned PDF files to disk.</p>
<p>The solution is to change the scan path to something other than a network share.</p>
<p>The steps:</p>
<p>Right click the ScanSnap icon and select the Scan Button Settings... option.</p>
<div id="attachment_476" class="wp-caption aligncenter" style="width: 418px"><a href="http://gdgtry.com/wp-content/uploads/2011/03/SnapScanError2.jpg"><img class="size-full wp-image-476" title="SnapScanError2" src="http://gdgtry.com/wp-content/uploads/2011/03/SnapScanError2.jpg" alt="" width="408" height="361" /></a><p class="wp-caption-text">Select Scan Button Settings</p></div>
<p>Then, if necessary, expand the window to show all the options for each setting. Then go to the Save tab and change the Image Saving folder to something other than a network share.</p>
<div id="attachment_477" class="wp-caption aligncenter" style="width: 459px"><a href="http://gdgtry.com/wp-content/uploads/2011/03/SnapScanError3.jpg"><img class="size-full wp-image-477 " title="SnapScanError3" src="http://gdgtry.com/wp-content/uploads/2011/03/SnapScanError3.jpg" alt="" width="449" height="317" /></a><p class="wp-caption-text">Change the Image Saving folder location.</p></div>
<p style="text-align: left;">That quickly resolved the errors we were receiving.</p>
]]></content:encoded>
			<wfw:commentRss>http://gdgtry.com/2011/03/fujitsu-scansnap-error-pdf-file-creation-failed/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How to Remotely Change a Computer from a Static IP to DHCP</title>
		<link>http://gdgtry.com/2011/01/how-to-remotely-change-a-computer-from-a-static-ip-to-dhcp/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-to-remotely-change-a-computer-from-a-static-ip-to-dhcp</link>
		<comments>http://gdgtry.com/2011/01/how-to-remotely-change-a-computer-from-a-static-ip-to-dhcp/#comments</comments>
		<pubDate>Wed, 19 Jan 2011 17:20:18 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[dhcp]]></category>
		<category><![CDATA[ip address]]></category>
		<category><![CDATA[remotely]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[static]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://gdgtry.com/?p=445</guid>
		<description><![CDATA[Remotely changing Windows 7 and Windows XP computers from static IP addresses to DHCP addresses.]]></description>
			<content:encoded><![CDATA[<p>We're currently migrating many computers from static IP assignments over to DHCP IP leases. Rather than walking from each computer to the next and manually changing the adapter settings I've been looking for a remote solution that I could either apply to computers one at a time or push out via group policy. Thanks to a VBScript originally written by <a href="http://social.technet.microsoft.com/Forums/en/ITCG/thread/bd7119d0-af0c-435d-83eb-7367b0c665c3" target="_blank">MatthewBeattie and posted on the technet forums</a> I now have a solution.</p>
<p style="text-align: center;">&nbsp;</p>
<div id="attachment_472" class="wp-caption aligncenter" style="width: 416px"><a href="http://gdgtry.com/wp-content/uploads/2011/01/EnableDHCP.jpg"><img class="size-full wp-image-472 " title="EnableDHCP" src="http://gdgtry.com/wp-content/uploads/2011/01/EnableDHCP.jpg" alt="" width="406" height="104" /></a><p class="wp-caption-text">Changing an adapter to DHCP remotely</p></div>
<p style="text-align: center;">&nbsp;</p>
<p>First you'll need the VBScript file. Copy and paste the following into Notepad. Assuming you want this to execute on both Windows 7 and Windows XP clients, the only line you need to edit is line 31, "subnets = Array("192.168.1.0")" and change the 192.168.1.0 to the network that you'd like this file to execute on.</p>
<p><a style="display:none;" id="te1261780479" href="javascript:expand('#te1261780479')">EnableDHCP.vbs</a>
<div class="te_div" id="te1261780479"><script language="JavaScript" type="text/javascript">expander_hide('#te1261780479');</script></p>
<pre>'----------------------------------------------------------------------------------------------------------------------------
'Script Name : EnableDHCP.vbs
'Author   : Matthew Beattie
'Created   : 29/12/10
'Description : This script enables DHCP for systems on specified subnets.
'----------------------------------------------------------------------------------------------------------------------------
'Initialization Section  
'----------------------------------------------------------------------------------------------------------------------------
Option Explicit  
Dim objFSO, wshShell, wshNetwork, hostName
On Error Resume Next
 Set objFSO   = CreateObject("Scripting.FileSystemObject")   
 Set wshNetwork = Wscript.CreateObject("Wscript.Network")  
 Set wshShell  = CreateObject("Wscript.Shell")  
 hostName    = wshNetwork.ComputerName
 ProcessScript
 If Err.Number &lt;&gt; 0 Then
 Wscript.Quit  
 End If
On Error Goto 0
'----------------------------------------------------------------------------------------------------------------------------
'Name    : ProcessScript -&gt; Primary Function that controls all other script processing.  
'Parameters : None     -&gt;  
'Return   : None     -&gt;  
'----------------------------------------------------------------------------------------------------------------------------
Function ProcessScript
 Dim ipAddress, macAddress, product, systems, system
 Dim subnets, subnet, network, continue
 product = ReadRegistry("HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProductName")
 systems = Array("Windows XP","Windows 7")
 subnets = Array("192.168.1.0")
 '-------------------------------------------------------------------------------------------------------------------------
 'Ensure this script only applies to client operating systems. (Don't configure servers with DHCP!)
 '-------------------------------------------------------------------------------------------------------------------------
 Continue = False
 For Each system In systems
 If InStr(1, product, system, vbTextCompare) &lt;&gt; 0 Then
 continue = True
 Exit For
 End If
 Next
 If Not continue Then
 Exit Function
 End If
 '-------------------------------------------------------------------------------------------------------------------------
 'Enumerate the IP and MAC Addresses from the local system.
 '-------------------------------------------------------------------------------------------------------------------------
 If Not GetIPConfig(hostName, ipAddress, macAddress) Then
 Exit Function
 End If
 '-------------------------------------------------------------------------------------------------------------------------
 'Ensure the script continues processing only if the systems IP address is within the specified subnets.
 '-------------------------------------------------------------------------------------------------------------------------
 network = Left(ipAddress, InStrRev(ipAddress, ".")) &amp; "0"
 continue = False
 For Each subnet In subnets
 If StrComp(subnet, network, vbTextCompare) = 0 Then
 continue = True
 Exit For
 End If
 Next
 '-------------------------------------------------------------------------------------------------------------------------
 'Ensure the script only continues processing if the systems IP address is within the specified subnets.
 '-------------------------------------------------------------------------------------------------------------------------
 If Not continue Then
 Exit Function
 End If
 '-------------------------------------------------------------------------------------------------------------------------
 'The system is within one of the specified subnets. Enable DHCP on all enabled interfaces that have static IP Addresses.
 '-------------------------------------------------------------------------------------------------------------------------
 If Not EnableDHCP Then
 Exit Function
 End If
End Function
'----------------------------------------------------------------------------------------------------------------------------
'Name    : ReadRegistry -&gt; Read the value of a registry key or value.
'Parameters : key     -&gt; Name of the key (ending in "\") or value to read.
'Return   : ReadRegistry -&gt; Value of key or value read from the local registry (blank is not found).
'----------------------------------------------------------------------------------------------------------------------------
Function ReadRegistry(ByVal key)
 Dim result
 If StrComp (Left (key, 4), "HKU\", vbTextCompare) = 0 Then
 Key = "HKEY_USERS" &amp; Mid (key, 4)
 End If
 On Error Resume Next
 ReadRegistry = WshShell.RegRead (key)
 If Err.Number &lt;&gt; 0 Then
 ReadRegistry = ""
 End If
 On Error Goto 0
End Function
'----------------------------------------------------------------------------------------------------------------------------
'Name    : GetIPConfig -&gt; Enumerates the IP &amp; MAC Address of the system via WMI
'Parameters : hostName  -&gt; String containing the hostname of the computer to enumerate the IP configuration for.
'      : ipAddress  -&gt; Input/Output : Variable assigned to the IP Address of the system.
'Parameters : macAddress -&gt; Input/Output : Variable assigned to the MAC Address of the system.
'Return   : GetIPConfig -&gt; Returns True and the systems IP &amp; MAC Address if successful otherwise returns False.
'----------------------------------------------------------------------------------------------------------------------------
Function GetIPConfig(hostName, ipAddress, macAddress)
 Dim wmi, ipConfig, query
 GetIPConfig = False
 ipAddress  = ""
 macAddress = ""
 query    = "select * from Win32_NetworkAdapterConfiguration where IPEnabled = True"
 On Error Resume Next
 Set wmi = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &amp; hostName &amp; "\root\cimv2")
 If Err.Number &lt;&gt; 0 Then
 Exit Function
 End If
 For Each ipConfig in wmi.ExecQuery(query)
 If Err.Number &lt;&gt; 0 Then
 Exit Function
 End If
 ipAddress = ipConfig.IPAddress(0)
 macAddress = ipConfig.MACAddress(0)
 If ipAddress &lt;&gt; "" And ipAddress &lt;&gt; "0.0.0.0" And MACAddress &lt;&gt; "" Then
 Exit For
 End If
 Next
 On Error Goto 0
 GetIPConfig = True
End Function
'----------------------------------------------------------------------------------------------------------------------------
'Name    : EnableDHCP -&gt; enables DHCP on all interfaces that have static IP Addresses.
'Parameters : hostName  -&gt; String containing the hostname of the system to enable DHCP on.
'Return   : EnableDHCP -&gt; Returns True if DHCP was enabled otherwise False.
'----------------------------------------------------------------------------------------------------------------------------
Function EnableDHCP
 Dim query, wmi, adapter, adapters, result
 EnableDHCP = False
 query   = "Select * From Win32_NetworkAdapterConfiguration Where DHCPEnabled = False And IPEnabled = True"
 On Error Resume Next
 Set wmi   = GetObject("winmgmts:\\" &amp; hostName &amp; "\root\cimv2")
 Set adapters = wmi.ExecQuery(query)
 For Each adapter In adapters
 result = adapter.EnableDHCP()
 Next
 If Err.Number &lt;&gt; 0 Then
 Exit Function
 End If
 On Error Goto 0
 EnableDHCP = True
End Function
'----------------------------------------------------------------------------------------------------------------------------</pre>
<p></div></p>
<h4>Executing Manually on Remote Machines</h4>
<p>For simplicity, place the previous EnableDHCP.vbs file either in your root C:\ or on a file share.</p>
<p>Download and install PsTools available <a title="PsTools" href="http://technet.microsoft.com/en-us/sysinternals/bb896649" target="_blank">here</a>. Once installed launch a command prompt. Change to the PsTools directory with the following command:<br />
cd \pstools</p>
<p>The following assumes your account has administrative privlidges on both the local and remote machine and you've saved the vbs file locally to C:\</p>
<p>Execute the file on the remote machine with the following command:<br />
psexec \\&lt;RemoteComputerNameOrIP&gt; cscript \\&lt;LocalComputerName&gt;\C$\EnableDHCP.vbs</p>
<p>If you need to specify a remote administrator user use the following command:<br />
psexec \\&lt;RemoteComputerNameOrIP&gt; -u &lt;RemoteAdmin&gt; cscript \\&lt;LocalComputerName&gt;\C$\EnableDHCP.vbs</p>
<p>The command will not execute cleanly because (obviously) your computer is going to lose its network connection to the other computer while it changes to DHCP.</p>
<p>You must invoke cscript to execute the command as by default .vbs files will not execute remotely.</p>
<h4>Executing via Group Policy</h4>
<p>(I'm not responsible if you screw up your domain)</p>
<p>Save the EnableDHCP.vbs to a file share location that allows everyone to read.</p>
<p>If you don't already have your computers segregated into Organizational Units, create a new OU and Create and link a new Group Policy to it.<br />
Right click your domain &gt; click New Organizational Unit &gt; right click the OU you just created&gt; click Create a GPO in this Domain, and Link it here. &gt; name it something useful like "Enable DHCP" &gt; Drag computers into the new OU</p>
<p>The best time to run this script, in my opinion, is going to be during computer startup. Edit the Group Policy you previously created to launch the script.<br />
Right click the previously created Policy &gt; Edit &gt; expand Computer Configuration &gt; Windows Settings &gt; Scripts &gt; double click Startup &gt; click Add &gt; click Browse &gt; find the script &gt; click OK a couple of times</p>
<h4>That should do it!</h4>
<p>Personally, because of the way we have some things set to start, I'm using a combination of psLoggedon to find computers that noone is logged into, then executing the script on those computers. Please always test on a non production computer before you start making big changes like this.</p>
]]></content:encoded>
			<wfw:commentRss>http://gdgtry.com/2011/01/how-to-remotely-change-a-computer-from-a-static-ip-to-dhcp/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Thinning down FireFox 4&#039;s Tab Bar</title>
		<link>http://gdgtry.com/2011/01/thinning-down-firefox-4s-tab-bar-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=thinning-down-firefox-4s-tab-bar-2</link>
		<comments>http://gdgtry.com/2011/01/thinning-down-firefox-4s-tab-bar-2/#comments</comments>
		<pubDate>Wed, 19 Jan 2011 15:57:07 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[FF4]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[tab bar]]></category>
		<category><![CDATA[tabs]]></category>

		<guid isPermaLink="false">http://gdgtry.com/?p=435</guid>
		<description><![CDATA[FireFox4 Beta 9 is out and they've made great improvements toward efficient vertical space use. Now when you maximize the main window the tabs move into the title bar! Here's how to set the tabs to always be in the Title Bar of the window even when not maximized. &#160; &#160; We need to add [...]]]></description>
			<content:encoded><![CDATA[<p>FireFox4 Beta 9 is out and they've made great improvements toward efficient vertical space use. Now when you maximize the main window the tabs move into the title bar! Here's how to set the tabs to always be in the Title Bar of the window even when not maximized.</p>
<p style="text-align: center;">&nbsp;</p>
<div id="attachment_436" class="wp-caption aligncenter" style="width: 533px"><a href="http://gdgtry.com/wp-content/uploads/2011/01/FF4Beta9TabBar.jpg"><img class="size-full wp-image-436 " title="FF4Beta9TabBar" src="http://gdgtry.com/wp-content/uploads/2011/01/FF4Beta9TabBar.jpg" alt="" width="523" height="60" /></a><p class="wp-caption-text">Setting FF4&#39;s Tabs to Always be in the Title Bar</p></div>
<p style="text-align: center;">&nbsp;</p>
<p>We need to add a couple of lines to your userChrome.css file. The userChrome.css file is located in the following locations:</p>
<p><strong>XP:</strong> C:\Documents and Settings\&lt;user&gt;\Application Data\Mozilla\Firefox\Profiles\&lt;profile&gt;\chrome\<br />
<strong>Vista\7:</strong> C:\Users\&lt;user&gt;\AppData\Roaming\Mozilla\Firefox\Profiles\&lt;profile&gt;\chrome\</p>
<p>Open that file in Notepad or another text editor and add the following lines to it:</p>
<p style="padding-left: 30px;">@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");</p>
<p style="padding-left: 30px;">#main-window[sizemode=normal][tabsontop="true"] #toolbar-menubar[autohide="true"] {<br />
margin-top:-20px;<br />
margin-left:80px;<br />
}<br />
#main-window[sizemode=normal] #navigator-toolbox[tabsontop="true"] &gt; #toolbar-menubar[autohide="true"] ~ #TabsToolbar {<br />
-moz-padding-start:80px!important;<br />
-moz-padding-end:110px!important;<br />
}<br />
#appmenu-button{<br />
padding-left: 8px !important;<br />
padding-right: 8px !important;<br />
height: 22px !important;<br />
}</p>
<p>You'll also need to set FireFox to always display the tab bar (Options &gt; Tabs &gt; Always show the tab bar) so as not to cause issues when only a single tab is open.</p>
<p>Most credit for this version goes to <a href="http://userstyles.org/styles/42417" target="_blank">sdrocking with this post as UserStyles.org</a></p>
]]></content:encoded>
			<wfw:commentRss>http://gdgtry.com/2011/01/thinning-down-firefox-4s-tab-bar-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Redirecting Lotus Notes Data to a Network Share</title>
		<link>http://gdgtry.com/2011/01/redirecting-lotus-notes-data-to-a-network-share/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=redirecting-lotus-notes-data-to-a-network-share</link>
		<comments>http://gdgtry.com/2011/01/redirecting-lotus-notes-data-to-a-network-share/#comments</comments>
		<pubDate>Tue, 11 Jan 2011 17:21:30 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[lotus]]></category>
		<category><![CDATA[lotus notes]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[notes]]></category>
		<category><![CDATA[redirect]]></category>
		<category><![CDATA[share]]></category>

		<guid isPermaLink="false">http://gdgtry.com/?p=422</guid>
		<description><![CDATA[Setting up Lotus Notes so that client data is stored on a network drive, allowing users to roam between workstations.]]></description>
			<content:encoded><![CDATA[<p>I currently redirect users' Lotus Notes data folder (the folder that contains their ID files as well as other personal files) to network shares. This allows for users to roam from computer to computer in our office and always have their data available. As far as IBM is concerned this is an unsupported configuration, they will not help you if you have issues. We're currently using the 8.5.1 client with FixPack 4 installed.</p>
<h3>Preparing Users Data for the Network</h3>
<p>The first step is to copy a users Data folder onto a network share. The location of the share should be the same for all users. For example; each of our users has a "home" drive mapped to H: where they store their personal documents. Under this drive we have a folder titled "lotus" that we place a copy of the contents of their Data folder.</p>
<p>After you've copied the contents to the network share, you'll need to edit the users notes.ini file thats located within that share. The line you'll need to change in that file is "Directory=C:\..." change it to the location where you've copied their data. In my situation I change that line to "Directory=H:\lotus"</p>
<h3>Redirecting Lotus to Look in the Network Share</h3>
<p>Now that we have our user data in a network location, we need to tell lotus to look there and not in the usual Data folder location. There are a couple of methods to do this. First is using a registry entry and the second is actually editing the shortcuts. In my experience the shortcut method has been much more reliable.</p>
<p><strong>Registry method:</strong><br />
For each user add the following registry entry (maybe as part of a log on script)<br />
[HKEY_CURRENT_USER\Software\Lotus\Notes\8.0] "NotesIniPath"="H:\\lotus\\notes.ini"</p>
<div id="attachment_425" class="wp-caption aligncenter" style="width: 413px"><a href="http://gdgtry.com/wp-content/uploads/2011/01/LotusNotesRegistry.jpg"><img class="size-full wp-image-425" title="LotusNotesRegistry" src="http://gdgtry.com/wp-content/uploads/2011/01/LotusNotesRegistry.jpg" alt="" width="403" height="174" /></a><p class="wp-caption-text">Redirecting via the Registry</p></div>
<p style="text-align: center;">&nbsp;</p>
<p><strong>Shortcut method:</strong><br />
Edit the shortcuts on the all users desktop and the start menu so the target line is as follows (quotation marks and all)<br />
"C:\(Install location of Lotus Notes)\notes.exe" "=h:\lotus\notes.ini"</p>
<div id="attachment_426" class="wp-caption aligncenter" style="width: 236px"><a href="http://gdgtry.com/wp-content/uploads/2011/01/LotusNotesShortcut.jpg"><img class="size-full wp-image-426" title="LotusNotesShortcut" src="http://gdgtry.com/wp-content/uploads/2011/01/LotusNotesShortcut.jpg" alt="" width="226" height="320" /></a><p class="wp-caption-text">Redirecting via Editing Shortcuts</p></div>
<h3>Some Notes (Get it?!)</h3>
<p>Currently on Windows 7 I do a Single User Install of the Standard Client. I've found that if I do a multi-user install I get prompted for my ID password for ntaskldr.exe. Googling has not returned a way to correct this.</p>
<p>While this modification does allow users to roam between computers, they can not have more than one instance of Notes open at a time.</p>
<p>After you've successfully got Notes functioning redirected you can delete the Data directory from the local machine. As long as your redirects are in place, it will never be recreated.</p>
<p>My users are not administrators on their machines. A single user install by default stores the users Data folder in the Program Files directory, which a user can't write to. But since we're redirecting that folder to a writeable location the users never have any permission issues.</p>
]]></content:encoded>
			<wfw:commentRss>http://gdgtry.com/2011/01/redirecting-lotus-notes-data-to-a-network-share/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Re-enable URL AutoFill on FireFox 4</title>
		<link>http://gdgtry.com/2010/09/re-enable-url-autofill-on-firefox-4/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=re-enable-url-autofill-on-firefox-4</link>
		<comments>http://gdgtry.com/2010/09/re-enable-url-autofill-on-firefox-4/#comments</comments>
		<pubDate>Thu, 23 Sep 2010 14:01:29 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[FF4]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[tab bar]]></category>
		<category><![CDATA[tabs]]></category>

		<guid isPermaLink="false">http://gdgtry.com/?p=417</guid>
		<description><![CDATA[The default behavior in Safari has always been that, while typing a URL, enter selects the most likely recommendation. Its super efficient. Why it's not the default of all browsers, I'll never know. FireFox before version 4 had the ability to auto-complete address bar suggestions. In about:config the option was called browser.urlbar.autoFill. With Version 4, [...]]]></description>
			<content:encoded><![CDATA[<p>The default behavior in Safari has always been that, while typing a URL, enter selects the most likely recommendation. Its super efficient. Why it's not the default of all browsers, I'll never know. FireFox before version 4 had the ability to auto-complete address bar suggestions. In about:config the option was called browser.urlbar.autoFill. With Version 4, that option no longer functions. As usual an extension has come to the rescue!</p>
<div id="attachment_419" class="wp-caption aligncenter" style="width: 460px"><a href="https://addons.mozilla.org/en-US/firefox/addon/7423/"><img class="size-full wp-image-419" title="EnterSelects" src="http://gdgtry.com/wp-content/uploads/2010/09/EnterSelects.png" alt="" width="450" height="73" /></a><p class="wp-caption-text">The &quot;Enter Selects&quot; FireFox Add-On</p></div>
<p>The enter selects add-on doesn't truly auto-fill the remainder of the the URL bar. Instead it simply selects the first suggested awesomebar result for whatever you've typed. The end result is the same. A quick "g, enter" gets me to Google, "l, enter" gets me to lifehacker, "j, enter" gets me to Jalopnik. I know I could have set up some tags on my bookmark entries, but this is a much more effective method that changes over time as the sites I visit change.</p>
<p>Another entry goes on my FireFox must have extension list.</p>
]]></content:encoded>
			<wfw:commentRss>http://gdgtry.com/2010/09/re-enable-url-autofill-on-firefox-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Thinning Down FireFox 4&#039;s Tab Bar - Update!</title>
		<link>http://gdgtry.com/2010/09/thinning-down-firefox-4s-tab-bar-update/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=thinning-down-firefox-4s-tab-bar-update</link>
		<comments>http://gdgtry.com/2010/09/thinning-down-firefox-4s-tab-bar-update/#comments</comments>
		<pubDate>Thu, 16 Sep 2010 14:33:25 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[bar]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[slim]]></category>
		<category><![CDATA[tab]]></category>

		<guid isPermaLink="false">http://gdgtry.com/?p=393</guid>
		<description><![CDATA[Slimming down FireFox 4's tab bar, Updated!]]></description>
			<content:encoded><![CDATA[<p><strong>This post is now outdated, please see the update available here:</strong></p>
<p><strong><a href="http://gdgtry.com/2011/01/thinning-down-firefox-4s-tab-bar-2/" target="_self">http://gdgtry.com/2011/01/thinning-down-firefox-4s-tab-bar-2/</a></strong></p>
<p>My previous post about <a title="Thinning Down FireFox 4's Tab Bar" href="http://gdgtry.com/2010/07/thinning-down-firefox-4s-tab-bar/" target="_blank">modifying FireFox 4's tab bar layout</a> has been one of the more popular posts on my blog. After updating to FF4 Beta 6 the modification broke, but I've found a solution:</p>
<p>#navigator-toolbox[tabsontop="true"] #TabsToolbar{<br />
padding-left: 80px !important;<br />
padding-right: 102px !important;<br />
padding-top: 2px !important;<br />
margin-top: -25px !important;<br />
}</p>
<p>#appmenu-button{<br />
padding: 3px 5px 3px 5px !important;<br />
height: 20px !important;<br />
}</p>
<p>As you can see, the only change is we tell the tab bar to move up 25 pixels from where it was. We also ditch the tab position as fixed as it's not really necessary.</p>
<p style="text-align: center;">
<div id="attachment_369" class="wp-caption aligncenter" style="width: 558px"><a href="http://gdgtry.com/wp-content/uploads/2010/07/FireFoxFixedTabLayout.png"><img class="size-full wp-image-369 " title="FireFoxFixedTabLayout" src="http://gdgtry.com/wp-content/uploads/2010/07/FireFoxFixedTabLayout.png" alt="" width="548" height="151" /></a><p class="wp-caption-text">FireFox 4 with a better tab layout</p></div>
<p>This gets us back to our old style. I haven't had time to test all the edge cases to see if it messes anything up, but it should get your normal browsing bar back to an acceptable size.</p>
]]></content:encoded>
			<wfw:commentRss>http://gdgtry.com/2010/09/thinning-down-firefox-4s-tab-bar-update/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Finding out where a picture was taken using EXIF info</title>
		<link>http://gdgtry.com/2010/08/finding-out-where-a-picture-was-taken-using-exif-info/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=finding-out-where-a-picture-was-taken-using-exif-info</link>
		<comments>http://gdgtry.com/2010/08/finding-out-where-a-picture-was-taken-using-exif-info/#comments</comments>
		<pubDate>Wed, 18 Aug 2010 15:47:27 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Random]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[EXIF]]></category>
		<category><![CDATA[GPS]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[location]]></category>
		<category><![CDATA[photo]]></category>

		<guid isPermaLink="false">http://gdgtry.com/?p=399</guid>
		<description><![CDATA[How to view where photos were taken using GPS information embedded in EXIF.]]></description>
			<content:encoded><![CDATA[<p>Alternate title: How to creepily stalk people using their pictures.</p>
<p>Since I've gotten an iPhone 4 I've stopped carrying a normal camera with me on outings. I find the iPhone's camera more than sufficient for most of my photo needs. Many other people are also doing the same. The fun thing about most camera phones now, is that they tag image information with GPS coordinates. Thanks to some easy online tools, you can now track people only by their pictures.</p>
<p>Lets get an example. I did a Google Search for "shots taken with my iPhone" and the first result is a blog with "<a title="9 Cracking Shots Taken With My iPhone" href="http://www.unlimitedchoice.org/blog/creative/9-cracking-shots-taken-with-my-iphone/" target="_blank">9 Cracking Shots Taken With My iPhone</a>". The second picture posted is a pic taken on a road supposedly in Death Valley. Lets see if it is.</p>
<div id="attachment_407" class="wp-caption aligncenter" style="width: 317px"><a href="http://gdgtry.com/wp-content/uploads/2010/08/iPhoneGPSImage.jpg"><img class="size-full wp-image-407" title="iPhoneGPSImage" src="http://gdgtry.com/wp-content/uploads/2010/08/iPhoneGPSImage.jpg" alt="" width="307" height="409" /></a><p class="wp-caption-text">A test image for GPS EXIF inforation</p></div>
<p>We can download a program to view where the photo was taken via its EXIF information. Programs like "<a title="Simple EXIF Viewer for Mac" href="http://homepage.mac.com/aozer/EV/" target="_blank">Simple EXIF Viewer for Mac OSX</a>" work well. Or you could install a FireFox extension like "<a title="EXIF Viewer for FireFox" href="https://addons.mozilla.org/en-US/firefox/addon/3905/" target="_blank">EXIF Viewer</a>", it's a very nice way to quickly view information for any image embedded on a web page. But both of these seem silly to install when you probably only need to view EXIF info once in a blue moon.</p>
<p>My new favorite way to view where photos were taken is to use online tools like "<a title="Jeffery's EXIF Viewer" href="http://regex.info/exif.cgi" target="_blank">Jeffery's EXIF Viewer</a>" or the "<a title="Find EXIF Online" href="http://www.findexif.com/" target="_blank">Find EXIF</a>" website. So, using our example, we would: Right click the image, Copy Image Location, Paste the image location into one of the online tools. In this example I've used Jeffery's EXIF viewer that embeds a nice little Google Maps pin of where the image says it was taken. Results from the EXIF GPS information</p>
<p style="text-align: left;">And if you follow the links over to Google Maps, and drop a street view pin as close to GPS data as possible, you get this:</p>
<p style="text-align: left;">
<div id="attachment_409" class="wp-caption aligncenter" style="width: 404px"><a href="http://gdgtry.com/wp-content/uploads/2010/08/iPhoneGPSResults.jpg"><img class="size-full wp-image-409 " title="iPhoneGPSResults" src="http://gdgtry.com/wp-content/uploads/2010/08/iPhoneGPSResults.jpg" alt="" width="394" height="360" /></a><p class="wp-caption-text">Results from the iPhone&#39;s GPS EXIF info</p></div>
<p>You can view the <a title="Google Street View" href="http://maps.google.com/maps?f=q&amp;q=36.459500,-117.844833&amp;t=k&amp;ie=UTF8&amp;ll=36.45946,-117.845251&amp;spn=0.001627,0.004849&amp;z=18&amp;layer=c&amp;cbll=36.45946,-117.845251&amp;panoid=n-BlkcbnAChlU3KO5yI_Qg&amp;cbp=12,152.93,,1,6" target="_blank">actual Google Street view location here</a>. Pretty cool.</p>
]]></content:encoded>
			<wfw:commentRss>http://gdgtry.com/2010/08/finding-out-where-a-picture-was-taken-using-exif-info/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

