Sychronize Outlook calendar between two PC’s for free

A very common problem with no “free” solution. If you come across this post, you’ve undoubtly read and re-read the Slipstick article. With the help of Jake Ludington’s blog, I came across a nifty freeware plugin to sychronize an Outlook calendar with an ICS calendar – specifically a Google ICS Calendar, called Remote Calendars. The product is a sourceforge project and is provided under the GNU Public License. Once installed, a toolbar will appear in Outlook that will provide 2-way synchronization between your local Outlook calendar and your Google calendar. Note that this plugin only supports Outlook 2003/2007.

Installation

  1. Close Microsoft Outlook
  2. Download and install .NET 2.0
  3. Download and unpack Remote Calendars (*NOTE: Version 5.82 did not work for me, so I used version 5.81)
  4. Install the Microsoft Office 2003 Primary Interop Assemblies (found in the Prerequisites folder – O2003PIA.EXE)
  5. Install the Microsoft Visual Studio 2005 Tools for Office Runtime (found in the Prerequisites – vstor.exe)

Configuration

  1. Upon opening outlook, you will have a new toolbar.Toolbar
  2. A pop-up window should appear with general settings (if it doesn’t pop-up, click the RC Options button on the far right of the toolbar). Set you time zone and click Automatic Update checkbox if you’d like to download the Google ICS at startup:Options
  3. Click the RC Subscribe button to subscribe to your Google Calendar. You’ll find your Google Calendar’s ICS URL by clicking Settings>Calendars>Name of Calendar and then right-clicking and Copy Shortcut on the ICAL button in the Private Address section. Check the “It’s my Google Calendar and I want to sync both ways” checkbox so we can push changes in your local calendar up to Google.Subscribe 
  4. After clicking OK you will be prompted to enter your Google username and password:HTTP Authentication
  5. Items added to you Google Calendar will now be synchronized with your local calendar upon startup. You can also manually force a synchronize by clicking the RC Reload button. However, we want to be able to create calendar events in Outlook and push them to Google. To do this we use the RC Publish button. Select you’re remote calendar and click the -> button to move it to the RemoteCalendars already published window. Check the “Don’t publicate my local Tasks”, “Publish my local Calendar”, and “It’s a Google URL”. The “Publishing Calendar URL” should be the XML Private Address of your calendar (See step 3 for info on where to find this on Google Calendars)Publish
  6. After you click OK, if everything went well, you should receive a message that your Google calendar was updated successfully. To synchronize to another PC, perform the above steps on the PC you want to share calendars with.

"Un-remember" IE download setting

Have you ever accidentally unchecked the “Always ask before opening this type of file” checkbox when downloading a file using IE? Wish you could change it back so that IE will ask you where to save to the file instead of automagically opening it? You can through the file type settings in XP. Open open a Windows Explorer (not IE) windows. Click on Tools>Folder Options>File Types. Find the extension of the file type you wish to change and select it. Then click the Advanced button and then check the “Confirm open after download” checkbox. You’ll now be prompted before downloading the file.

Retrieving Data from a SqlDataSource Control

There are plenty of examples of how to create a SqlDataSource control in ASP.NET 2.0 and how to then bind that control as the datasource for another control, but they’re aren’t any that will show you how to retrieve data from the control to use in code. The following code will write each of the values from the “FieldName” column to the page (be sure the DataSourceMode property of the SqlDataSource control is set to DataSet):

Dim oDV As System.Data.DataView

oDV = SqlDataSource1.Select(DataSourceSelectArguments.Empty)

For Each oDR As System.Data.DataRow In oDV.Table.Rows
Response.Write(oDR(“FieldName”))
Next

If your SqlDataSource returns a single row, you can reference the values directly (the Rows object uses a zero-based index to retrieve the row):

Response.Write(oDV.Table.Rows(0)(“FieldName”))

Microsoft Update causes 100% CPU for svchost.exe process

<UPDATE>John Bigg brought to my attention a hotfix Microsoft recently released for Windows Installer 3.1 v2: http://support.microsoft.com/kb/916089 that fixes this specific issue. Thanks John!</UPDATE>

You may have noticed since switching to Microsoft Update to get your updates, that your computer is unresponsive after startup when you have Automatic Updates enabled. You’ll also experience this problem when connecting to the Microsoft Update site. Task Manager will show near 100% CPU usage and extremely high Disk I/O for the svhost.exe process. Running tasklist /SVC from the command line will show that the matching PID contains the wuauserv service. The only known current solution, is to revert back to Windows Update. The problem manifests itself in the fact that Microsoft Update will search all cached installs on your local PC; a very CPU and Disk intensive process.

To revert back to the standard Windows Update, connect to the Microsoft Update site. On the left pane, click “Change Settings”. In the next window, scroll down to the “To stop using Microsoft Update” section and select the “Disable Microsoft Update software and let me use Windows Update only” checkbox. Click “Apply Changes”.

Port Trunking in Cisco IOS

Port trunking is the process by which ports are designated as common uplink ports to carry traffic from multiple VLANs across the same physical cable. In the following example, we enable trunking on an etherchannel group to carry specific traffic from VLANs 1 through 99. We also assign the channel to a vlan we’ve designated specifically for etherchannels.

Router# configure terminal
Router (config)# interface port-channel 1
Router (config-if)# switchport access vlan 100
Router (config-if)# switchport trunk encapsulation dot1q
Router (config-if)# switchport trunk allowed vlan 1-99
Router (config-if)# switchport mode trunk
Router (config-if)# ^Z

This configuration will carry traffic for vlans 1-99 across channel group 1. Setting the trunk encapsualtion type is only available on switches that support multiple encapsualtion types. Ensure that spanning-tree is on in order to prevent loops.

Port Aggregation in Cisco IOS

Port aggregation (in the cisco world known as channelling) combines two ports for increased bandwidth and link redundancy for connecting switches together.

Router# configure terminal
Router (config)# interface range Gi0/45-46
Router (config-if)# channel-group 1 mode desirable
Router (config-if)# ^Z

This will link ports 45 and 46 (example is on a 2960 switch) together and assign them to group 1. By setting the link mode to desirable, the ports negotiate the proper PAgP protocol. This example configures a group a of ports at the same time. You can always configure each port individually by using the standard “interface Gi0/45” command. Once ports are assigned to a channel group, you can add configuration options to all ports by adding them to the channel. To configure the channel, use the following command: “interface port-channel 1”. The channel group number is unique on the switch. Both switches need to be configured the same, though the channel number does not need to match. When choosing which ports to use for channeling, be sure to choose ports not sharing switch bandwidth to ensure maximum throughput. Ensure that spanning-tree is on in order to prevent loops.

 

WLBS Causes Service Failure on Windows 2003 Server

You may receive a “One or more services failed to start” error message when booting a Windows 2003 Server installation which may or may not be accompanied by an Event ID 7000 in the system event viewer. This is caused by the WLBS service. To resolve this issue, modify the following registry key:

HKLM\SYSTEM\CurrentControlSet\Services\WBLS

Change the value of Group from PNP_TDI to an emtpy string. More information regarding this regfix can be found on Microsoft’s KB: http://support.microsoft.com/kb/833375.