How to Get Facebook’s New Layout

Facebook isn’t offering everyone their new layout just yet so this may be worth it to people who are curious. After logging in, click this link:

http://www.new.facebook.com/home.php?fb95_opt_in=1

If you’re lucky you’ll see the new layout. You can always go back to the old layout by clicking the bar on the top right.

Screenshot:

Live Messenger Error 2771 After Installing Windows XP Service Pack 3 (SP3)

Subsequent to successfully installing Windows XP Service Pack 3 (SP3), starting Windows Live Messenger (WLM) may pop up an install error. The error reads: “The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2771.”

Error 2771 means there is a missing component. The simplest fix is to let WLM’s installer repair the issue automatically. If, however, the error dialog keeps popping up every time WLM is started then the suggested fix is to uninstall WLM from Add/Remove Programs in the Control Panel and reinstall the package from Microsoft’s website. This should correct the issue.

On a side note, some users out there don’t want Microsoft cluttering the Windows desktop with ads via WLM so they install A-Patch. The moral and ethical dilemma is up to the reader to sort out but Microsoft is providing instant messaging on an ad-supported model. If too many users do this then it could affect everyone’s free access. Choose wisely!

“Bluetooth Device Not Found” After Windows XP Service Pack 3 (SP3) Install

My Dell-branded Bluetooth module disappeared after installing Windows XP Service Pack 3 (SP3). The fix for this solution is pretty simple as long as your device was working prior to installing SP3. The steps are as follows:

  1. Click Start, click Run, type %windir%\inf in the Open box, and then click OK.
  2. Find a set of eight files beginning with “BTH.INF”.
  3. Move following files to a temporary folder:
    • bth.inf, bth.pnf
    • bthpan.inf, bthpan.pnf
    • bthprint.inf, bthprint.pnf
    • bthspp.inf, bthspp.pnf
  4. Click Start, click Run, type devmgmt.msc in the Open box, and then click OK.
  5. Expand the list under Bluetooth Radio by clicking the “plus” sign.
  6. Right-click “Microsoft Bluetooth Enumerator” and click uninstall. Click OK on the next dialog box.
  7. Right-click “Generic Bluetooth Radio” (it may read “Dell TrueMobile Bluetooth Module” or something similar) and click “Update Driver…”
  8. If a dialog box comes up asking “Can Windows connect to Windows Update to search for software?” click “No, not this time”, and then click NEXT.
  9. On the next screen pick “Install from a list or specific location (Advanced)” and click NEXT.
  10. Click “Search for the best driver in these locations.” and put a check-mark on “Include this location in the search:”. Then click BROWSE.
  11. Find the location where the Dell WIDCOMM drivers were installed. On my system this is “C:\Program Files\WIDCOMM\Bluetooth Software\bin”. Click NEXT.
  12. Windows will now install the drivers.
  13. Restart your system if necessary.

Follow these instructions at your own risk! Make sure you backup your computer before attempting this procedure. I can’t be held responsible if you screw up your computer.

How-To: Windows 2003 VPN Server

Using Windows 2003 Server as a VPN server is one of the better (read: overkill) remote access solutions for a SOHO network. This how-to will show how to create a simple yet effective VPN solution with certain limitations. Mainly, it assumes the Windows 2003 server has only one network card and sites behind a router/firewall. Make sure you have administrator privileges before continuing.

Main configuration:

  1. Open Routing and Remote Access by going to Control Panel -> Administrative Tools -> Routing and Remote Access.
  2. Right-click on the server name.
  3. In the context menu, select Configure and Enable Routing and Remote Access. Click Next on the wizard.
  4. On the Configuration page, select Custom Configuration. (Note: This particular option is chosen because we are using a single network card.)
  5. On the next screen, pick VPN Access then click Next. Then hit Finish to close out the wizard.
  6. A dialog box will appear asking if you want to start the service. Click Yes.

At this point there are a few more items left to configure. In this example, my configuration uses a custom firmware Linksys WRT54G router to handle DHCP, firewall and connection sharing. Regardless of DHCP being available, I’ve assigned a static IP range to VPN clients.

  1. In Routing and Remote Access, right-click the server name as before.
  2. In the context menu, select Properties.
  3. Click the IP tab.
  4. Select the radio-button next to Static address pool.
  5. Click the Add button.
  6. In the New Address Range window, enter the appropriate start and end IP addresses. The addresses should follow the convention of the rest of your network.
  7. Click Okay and Apply until returning to the Routing and Remote Access window and close that as well.

User accounts must be given VPN access via user properties.

  1. Open Active Directory Users and Computers and click the Users folder.
  2. Double-click on a user name to be given VPN access in the right hand window.
  3. Click the Dial-in tab.
  4. Select the radio-button next to Allow access in the Remote Access Permission (Dial-in or VPN) section. (Note: If you have multiple users, then it might be easier to create a new user group with VPN access. Then the add user profiles to the group as necessary.)
  5. Close out the window. Repeat as necessary for any other users.

Since my test server sits behind a router/firewall, the next step involves forwarding ports on the router/firewall to the local IP address of the VPN server. My Linksys WRT54G router requires PPTP Passthrough being enabled. Port listing:

Realize that once the ports are opened to the VPN server, the local network is open to the possibility of malicious attacks. Make sure users comply with a good password policy and monitor access logs. I highly doubt home users will be running out to purchase a copy of Window Server 2003 any time soon but if, like me, you happen to be tinkering with a free 120-day trial version then it is prudent to be vigilant.

Configuring an XP client is straight forward. The only caveat is knowing the IP address of the server. If you are on a static IP, then there is no problem. If you happen to be on a dynamic IP address (i.e. an IP that changes regularly), then a service like DynDNS will give you a resolvable host name.

These are the steps to configure the XP machine for VPN access:

  1. Go to Start -> Settings -> Network Connections.
  2. Open the New Connection Wizard.
  3. Pick Connect to the network at my workplace then click Next.
  4. Pick Virtual Private Network connection then click Next.
  5. In the text box, provide a connection name then click Next.
  6. Since I have broadband available from wherever I need to access my network, I have no need to dial an internet provider. If this is the case in your set up, then pick Do not dial the initial connection.
  7. On the next screen enter the host name or IP address of the VPN server then click Next. Then pick Finish.

To connect to your VPN server, double-click on the connection icon just created on the client machine.

Troubleshooting: Some routers do not function properly in a VPN over NAT environment. Consult this list of affected routers.

How-To: Image Windows XP with Ghost and Sysprep

I tend to install and reinstall operating systems quite frequently on my home system. With my hectic schedule, I don’t have time to sit down to reinstall and configure every last program. Although it is arguably easier to use a backup of my system for day-to-day mishaps, I tend to change out peripherals a lot and restoring a system that does not have certain drivers “cleaned out” tends to wreak havoc on a new configuration. To make this process go a bit faster, two years ago I created a “Ghost Image” of my hard drive after doing a basic install. Now, instead of it taking a few hours of toiling away to reinstall a system, I can do this all in about 15 minutes with only half a dozen quick mouse clicks. The trick is to use Norton Ghost or any other imaging software and Microsoft Sysprep.

Part 1: Install XP and Sysprep

  1. Install Windows XP on a clean hard drive.
  2. Do not install any drivers or other utilities that are hardware specific beyond what Windows itself installs.
    • This is necessary to make sure the image is as portable as possible across different types of systems. However, different storage controllers and different HALs (Hardware Abstraction Layers) make this harder to predict.
    • Most modern computers these days work fine with a standard ACPI HAL, but if this image is to be truly portable across multiple machines then it must be determined which specific HAL will be needed. Refer to Microsoft KB309283 if you are completely lost.
    • It is also important to determine if the target system uses a storage controller that normally requires a driver disc during a regular XP install. If this is the case, then the necessary paths to the drivers must be included in the Sysprep.inf file. These must be added to the [SysprepMassStorage] section in the form PCI\VEN_###&DEV_#### = PATH_TO_DRIVER_ON_IMAGED_DRIVE where VEN_#### should be replaced by the Vendor ID number (i.e. VEN_1234) and the DEV_#### should be replaced by the Device ID number (DEV_1234). This information can usually be found in the specifc driver INF files. Here is an example for adding the VMWare SCSI controller driver to sysprep.inf

      [SysprepMassStorage]
      ….snipped out windows mass storage driver list….

      PCI\VEN_104B&DEV_1040=C:\Drivers\Mass\VMWare\vmscsi.inf

  3. Create a testuser account with administrative privileges. Use this account to install and configure all the software and policies on the system.
  4. Remember to run Windows Update, Office Update and make sure all the rest of the software is up to date. You’ll probably end up rebooting a few times in between but keep going until everything is updated.
  5. Copy all the start menu items from the testuser account to the Administrator start menu. (Note: This is necessary as some installers do not create start menu items in All Users but within the testuser profile only. This leaves some items missing on the Administrator start menu.)
  6. Log out and log back in as the computer Administrator and then copy the testuser profile folder to the default user profile folder. This is done via Control Panel -> System -> Advanced -> User Profile “Settings” then select testuser and click Copy to. Copy all of this to c:\Documents and Settings\Default User. If you don’t understand then refer to Microsoft KB291586.
  7. Delete the testuser account. Make sure that c:\Documents and Settings\testuser has been deleted too.
  8. Download Sysprep for XP SP2.
  9. Extract the files to c:\sysprep.
  10. Create the basic sysprep.inf file by running setupmgr.exe. This a tool Microsoft provides for creating an answer file so the restore doesn’t involving asking the normal setup questions. The basic steps are below:
    • Run setupmgr.exe
    • Click Create New
    • Click Sysprep Setup
    • Then choose whichever product you are using. In our example it would be XP Professional.
    • The next question asks: Do you want to fully automate the install? All this question determines is who is going to accept the EULA, you or the person restoring the image. Also, picking yes means that you must enter your Product Key. I pick no because this is for my own use and I don’t want someone to swipe my Product Key accidentally, but a large company or OEM may choose differently.
    • The next few sets of options are for you to enter in any information like your Name, Organization, Time Zone, Product Key (I leave this blank), Network Settings, etc.
    • I leave the Computer Name option set to Automatically generate computer name.
    • Once completed, a dialog box will ask where you want to save the file. c:\sysprep\sysprep.inf is the path we’re using in this example.
    • On the completion screen, click Cancel to close setupmgr.exe.

    The process of creating a basic sysprep.inf file is now completed.

  11. Before proceeding to the next step, create a custom hardware drivers directory for any drivers needed for the target system. Usually I use c:\drivers.
  12. Open c:\sysprep\sysprep.inf in Notepad and add the following lines to the relavent sections (if the heading doesn’t exist, create it):

    [Unattended]
    DriverSigningPolicy=Ignore
    UpdateInstalledDrivers=Yes
    OemPNPDriversPath=drivers\hardware_cat\driver_dir\driver_inf;(repeat);

    [SysPrep]
    BuildMassStorageSection=Yes

    [SysprepMassStorage]

  13. Do not close the sysprep.inf yet! OemPNPDriversPath points to the c:\drivers directory created earlier. For organizational purposes, I split up my custom driver files based on category (i.e. hardware_cat in the example above). For example, all video drivers go under c:\drivers\video and network drivers under c:\drivers\network. In each of those directories, the specific driver bundles are placed with their driver inf files (i.e. driver_dir). For example, the latest nVidia drivers would go into c:\drivers\video\nVidia\. The last part is refering to driver_inf is just that, the name of the inf file. For example, for the latest nVidia driver, the path would be c:\drivers\video\nVidia\nv4_disp.inf. In sysprep.inf, the path would be written as OemPNPDriversPath=drivers\video\nVidia\nv4_disp.inf;. Do not forget the semi-colon as a separator. For the next driver, repeat the procedure by placing the path after the semi-colon without leaving a space. Once all the drivers are added, save the file.
  14. Run c:\sysprep\sysprep -bmsd. This will build the Windows XP standard mass storage drivers section.
  15. While editing sysprep.inf there is an option labeled InstallFilesPath which usually points to c:\sysprep\i386. I usually copy the contents of my XP CD’s i386 directory into c:\sysprep\i386. This isn’t necessary.
  16. Add any custom Storage dirvers to the [SysprepMassStorage] section as detailed above.
  17. Now run C:\sysprep\sysprep.exe.
  18. Pick options Mini Setup and Detect non-plug and play hardware. If you don’t have a volume license and plan on just using this image for restoring the computer the image was made on, then pick the option Don’t regenerate security identifiers. If you have a volume license key and will be using this image for multiple machines then leave that option unchecked. Ensure that Shutdown is selected from the Shutdown mode drop-down menu and click Reseal.
  19. If you left the SID option to regenerate, then a pop-up will ask you to confirm. hit OK to continue.
  20. This will take a while and your system will shut down once the process is complete.

Sysprep is now complete. Part 2 discusses imaging.

How-To: Internet Explorer Warning Infobar

I have received a few emails asking how to implement the Internet Explorer “infobar” warning on their own site. If you don’t know what I’m taking about, when browsing to my blog with Microsoft’s infamously buggy but popular browser, users see this:

Internet Explorer Infobar

Background: I don’t have to preach to the choir about Internet Explorer (IE) having a lot of quirks when it comes to rendering CSS heavy pages in addition to all the security issues plaguing the browser. The theme on this site is a slightly modified version of K2 which still needs some work to make sure it displays properly on IE. Not only do I not have time to fix these bugs myself due to school but more than 80% of my readers use Firefox. I still wanted to display a warning to any IE users letting them know that this site won’t look quite right without using an alternate browser (i.e. Opera, Safari, Konq, Firefox, etc.). Although I’m not afraid to tinker, I don’t enjoy reinventing the wheel so my first hope was finding someone else having coded this before I went at “programming” a little css/javascript myself. Google brought me to a Zatacka.com posting that had the basic CSS and example code ready to go. Interestingly, the Zatacka.com version was a streamlined version of the original author’s code (dead link). However, this minimized version did not scroll with the page in IE because IE does not properly support position: fixed. There were many possible solutions to getting this to work but most involved messing up all position: absolute blocks on the page. Finally, I found a solution that I adapted to work the way I wanted.

Instructions: This is how to add it to your site. (Warning: Your mileage may vary so backup your site before attempting an of this. Don’t come running to me when something goes wrong.)

1. Save warning.gif by right clicking and hitting “Save as…”

warning.gif

Warning.gif Image File

2. Create a file called infobar.css and paste the following code into it. Note that the path to warning.gif must be updated to reflect your site. Then save it.

/*
Name:     No IE Information Bar
Version:  0.2.6 Minimized
Original: http://minghong.dyndns.org:8080/Software/infobar/
Modified by: http://zatacka.com/index.php/2004/12/ie-warning/ and http://blog.hishamrana.com/
*/

body {
margin: 0;
}
#infobar {
font: message-box;
position: absolute; left: 0px; top: 0px;
z-index: 5; /* Change this value accordingly to reflect your site’s setup */
}
body>div#infobar {
position: fixed; /* Hopefully Internet Explorer 7 will parse this tag proporly */
}
#infobar a, #infobar a:link, #infobar a:visited, #infobar a:active {
display: block;
float: left;
clear: both;
width: 100%;
color: InfoText;
background: InfoBackground url(‘http://path/to/warning.gif’) no-repeat fixed .3em .3em; /* Change this path */
border-bottom: .16em outset;
text-align: left;
text-decoration: none;
cursor: default;
padding: .45em 0 .45em 2em;
margin: 0 -2em 0 0;
}
#infobar a:hover {
color: HighlightText;
background-color: Highlight;
}

3. Modify your site’s template. For K2, I put this all into my header.php file.

Part A: Somewhere right after the <head> tag paste the following (change the path to infobar.css for your site):

<!–[if IE]><link rel=“stylesheet” href=“http://path/to/infobar.css” type=“text/css” title=“No IE Information Bar” /><![endif]–>

<!–[if gte IE 5.5]>
<![if lt IE 7]>
<style type=“text/css”>
div#infobar {
        /* IE5.5+/Win - this is more specific than the NS4 version */
        left: expression( ( 0 + ( ignoreMe2 = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ) ) + ‘px’ );
        top: expression( ( 0 + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ) ) + ‘px’ );
}
</style>
<![endif]>
<![endif]–>

Part B: Right after <body> tag paste the following:

<!–[if IE]><div id=“infobar”><a href=“http://www.mozilla.com/firefox/”>Internet Explorer is not supported on this website. Please download Firefox by clicking here…</a></div><![endif]>

That’s it. Let me know if there are any mistakes or a better way of doing this.

How-To: Broadcatching Part 1: History

Part 1: History

For people not living in the United States or temporarily traveling away, new domestic TV episodes are not broadcast regularly which makes it difficult for fans to keep up. The age old solution for those temporarily traveling away was to leave a VCR running at home to time-shift episodes on to low-quality VHS. The problem with this approach was that VHS tapes had very limited recording capacities and a single-tuner VCR could only record one show at a time. There had to be a solution short of having multiple VCRs and tapes. For many years, it has been possible to view and record television on computers via a host of add-in cards. It was only a matter of time until savvy computer users figured out how to record TV shows onto their computers through kludgy interfaces which littered the early TV tuner landscape. Quality wasn’t always great because MPEG encoding had to happen in software run over processors (i.e. Pentium 2 450Mhz in my case) choking on 720×480 streams which made it necessary to keep resolutions low. Although bigger hard drives solved the problem of limited storage, consumers were usually stuck with the ability to record only one show at a time due to a majority of the cards only being equipped with a single tuner. Then came the consumer TV tuners with hardware MPEG encoding and multiple tuners which allowed a bump in resolution, a loss of random pauses while recording, and allowed recording of more than one program at a time. These developments spurred the underground world of computer-based TV recording.

As most things in the digital world, people wanted to share their recordings with over fans but limited bandwidth outside of ISDN lines to the home or ethernet connections in college dorms still prevented widespread sharing. For the general public, P2P applications coupled with high-speed cable and DSL broadband internet connections finally made widespread sharing possible. Many iterations of P2P came about and legal pressure from various industry groups forced newer generations of P2P protocols to cope. BitTorrent ultimately was released which provided a revolutionary way of removing all the burden from a server (in a client-server relationship) to that of one where clients would share chunks of data with other clients. In other words, the single server bandwidth burden was now less crucial. Unfortunately, lazy users still had to specifically search for shows through a non-automated process. BitTorrent made this even harder because files called torrents had to be located which contained the necessary information to download the file in question. Finally, suggestions started flying around the internet that the subsciption capabilities of RSS could allow users to subscribe to trusted feeds of specific shows. The feeds would imbed a torrent file which would be automatically downloaded at a set interval and a BitTorrent client would then automatically queue the file for transfer. This marriage of RSS + BitTorrent was termed broadcatching. All of this meant that finally a distribution model existed akin to Tivo’s Season Pass functionality where users could watch television shows without manual intervention. Although there are many legal uses of RSS + BitTorrent, sharing of TV show content is generally considered to be copyright infringement in the United States but not necessarily in other countries around the world.

In the next few parts, I will outline how to use various pieces of software to acquire content from a variety of sources.

Note: If there are any errors, shoot me an email.

Disclaimer: I am not a lawyer so I’m going to forego the legal doubletalk and say this all directly. All the information provided is for educational and entertainment purposes. It is the responsibility of the reader of this information contained in this entry to verify that they are in compliance with all applicable laws. I cannot be held responsible for any damage or illegal usage of the information provided. I cannot and will not condone copyright infringement.