I thought I’d post a short “guide” on how I like to play the various classes and a few fun things you can try. Please feel free to comment and leave suggestions or better ideas. Please keep in mind that comments that aren’t constructive will not be approved.

Left 4 Dead cover (Windows version)
Image via Wikipedia

It’s been a while since I’ve posted. Admittedly, I’ve been wasting a good amount of time playing Left 4 Dead. Coop mode is fun, but I really enjoy playing versus mode. There’s nothing like getting a good 25 damage pounce with a hunter, or pulling somebody from the elevator right as the door close with the smoker on No Mercy.

Hunter

The hunter serves a few purposes. First, he’s able to pin down the target survivor, preventing him from attacking or doing anything more than taking damage. A properly coordinated attack with a few hunters can be devastating. As well as keeping the survivors from fighting back, the hunter also does the most damage of the 3 “normal” infected classes. His pounce can do up to 25 damage, and he does damage for each attack while he has a survivor pinned.

My preference with the hunter is to either do a large amount of damage with a long-range pounce, to pin down a survivor who is lagging behind, or to ambush another survivor who is attempting to rescue his teammate. Using pinned or smoked survivors as bait is a very effective technique against less experienced players. More experienced survivors will usually expect it and not wander into your trap without backup.

Smoker

A well placed smoker pull can be a game changer. I’ve seen many people who like to position the smoker in front of the survivors and pull one ahead. Unless you’re going to pull them into a hazard (such as a witch or car with an alarm), this generally isn’t effective. The survivors will quickly catch up, free their companion, and move on.

Smoker pulls should always be used to set the survivors back. I like to use the smoker to pull one into a boomer, pull one off of a roof (such as the awning on the 2nd stage of No Mercy), or just to pull one back to buy time for your team to respawn… It can also be used to pull a survivor backwards so that the hunters on your team can pounce his would-be rescuers.

The best place I’ve seen for a smoker is the elevator on stage 4 of No Mercy - If you time the pull just right, you can pull a survivor out of the elevator as the doors close. The survivor will end up incapped by the smoker.

Boomer

A great boomer player can change the game and cause a lot of damage every time he spawns. A bad boomer player will pick the wrong place to “boom” every single time.

The boomer became much more effective with the introduction of the melee cooldown. Closed spaces may seem like a good place to boom, but they make it more difficult for your hunters to attack once the enemy is blinded, and it’s much easier for the survivors to back into a wall.

Wide open areas such as most of Blood Harvest, and the gas station area on No Mercy are places where a boomer can be very effective. Most groups will become slightly separated after the boom, letting the smoker and hunters attack and get in maximum damage before the survivor is rescued.

The boomer can also be effective when parked in front of witches. With some luck, the survivors won’t see the witch and will shoot through the boomer, hitting the witch.

Another favorite of mine is using the boomer in places where a survivor can be knocked from an edge. This can be an effective way to incap a survivor by knocking him from a roof, or to set one or more of the survivors back by booming him out of a window or off an edge.

Check back in a few days

Check back for part 2 in a few days (or add the RSS feed, and you won’t have to remember to check back :). I’ll cover the Tank, and some good places to use each of the infected on Blood Harvest and No Mercy.

Reblog this post [with Zemanta]

Tags Categories: Uncategorized Posted By: Tom
Last Edit: 11 Apr 2009 @ 11 37 PM

E-mailPermalinkComments (0)

Here’s a quick one…

A developer was using AJAXControlToolkit in an application. Not a big deal. Except that it kept throwing that damn exception. You know the one:


Server Error in ” Application.
Security Exception
Description: The application attempted to perform an operation not allowed by the security policy. To grant this application the required permission please contact your system administrator or change the application’s trust level in the configuration file.

Exception Details: System.Security.SecurityException: Request for the permission of type ‘System.Web.AspNetHostingPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089′ failed.

I know what you’re going to say, but I prefer to not use caspol.exe to set the trust.

There were several other sites on the server using the toolkit that worked fine, without using caspol to set full trust.

The difference? Those other applications were compiling the AJAX DLL when the apps themselves were compiled. The developer in this case had just copied the DLL from the toolkit download and added the reference to her code.

I copied the DLL from one of the sites that I knew worked, and it magically started working. Copy her version of the DLL back, and it failed again (after IISReset).

I don’t really know how this happened, but if the DLL was referenced in the VS project, it should have been built with the rest of the app and then deployed with full trust…

So, if you’re running into this and you’re building the code yourself, make sure that the AjaxControlToolkit.dll is building with the rest of your application (the timestamp should be the same) as the other DLLs that were modified. Don’t just drop it in afterwards…it won’t work…

Reblog this post [with Zemanta]

Tags Tags: , ,
Categories: IIS7, Microsoft, Server Management, Windows Server 2008
Posted By: Tom
Last Edit: 11 Mar 2009 @ 05 02 PM

E-mailPermalinkComments (1)

My media center machine is my guinea pig. It’s relatively old with it’s nForce 440 based motherboard, Athlon 64 3200+ (Socket 989), and 1 whopping gig of memory. It’s also got a Hauppauge MCE500 dual analog tuner and an ATI 4550 with HDMI out to my Samsumg A550 40″ LCD.

I couldn’t be happier with how Windows 7 performs with minimal hardware. This machine is easily 3.5 years old, and it wasn’t exactly top of the line when I bought it. H.264 at 1080P plays flawlessly (thanks to AVIVO), and the Media Center interface is incredibly responsive, even right after bootup (which, I’m sad to say, wasn’t the case with Vista).

Anyway, last night I reinstalled Windows 7 Beta x64. Every single driver installed out of the box…except this damn WMP54G, which also didn’t work on Vista 64. So, here’s how to make it work.

This card is based on a card by RALink…that, or they use the same chip. Either way, they offer a driver that works.

http://www.ralinktech.com/ralink/Home/Support/Windows.html

I downloaded the RT2500 installer. Then I installed it. Here’s the direct link.

So, install then, then head over to Device Manager. You should see this:
Unidentified Device

Double click that device and go to Update Driver.
updatedriver

Select Browse my computer for driver software

At the bottom, select “Let me pick from a list of drivers on my computer”

In the next window, scroll down to Network Adapters and double click. Then click “Have Disk”

In the box that pops up, navigate to/enter this path: C:\Program Files (x86)\RALINK\RT6x Wireless LAN Card\Driver

Hit OK then scroll down to “Ralink Technology Corp” in the box on the left side. On the right side, select “802.11b/g Wireless Adapter.”
Driver Selection

Click YES on the warning.
warning

Success! Now try to connect to your wireless network.
success

Tags Categories: Vista Posted By: Tom
Last Edit: 16 Jan 2009 @ 12 53 AM

E-mailPermalinkComments (39)

I should have posted this a long, long time ago…but forgot. Until I got a comment from dvdor about it.

In Active Directory, we set the “Managed By” field on all of the servers we manage to our primary, non-admin account. This makes it easy for people to find out who manages what servers. It also makes it easy to do batch upgrades/file copies/whatever to your own servers.

This script, get-servernames.ps1, has a single parameter. -username. It just returns a text list of your servers…no objects or anything. I didn’t see the need, since all I wanted was the names.

Syntax: .\get-servernames.ps1 -username tmoser

Summary: Will take in your username (samaccountname) and first search AD for it. If found, it will search AD for all computer objects that have your account in the “Managed By” field. Those are returned in a list.

Uses: Things like: .\get-servernames.ps1 -username tmoser | foreach { copy-item C:\temp\somefile.txt \\$_\c$\temp\somefile.txt }

You can use it for error log checking, copying files, running remote psexec commands…anything, really.

param($username)

$root = new-object DirectoryServices.DirectoryEntry ‘LDAP://dc=yourdomain,dc=com’
$searcher = new-object DirectoryServices.DirectorySearcher
$searcher.SearchRoot = $root
$searcher.Filter = “(samaccountname=$username)”

$results = $searcher.findOne()

if ($results -eq $null) {
write-host -fore ‘blue’ -back ‘white’ “`”$($username)`” not found”
exit(1)
}
else {
$dn = $results.GetDirectoryEntry().distinguishedname
$searcher.Filter = “(&(samaccounttype=805306369)(managedby=$($dn)))”
$servers = $searcher.FindAll()
if ($($servers.count) -gt 0) {
foreach ($server in $servers) { write-output “$($server.GetDirectoryEntry().cn)” }
}
}

Tags Tags: ,
Categories: PowerShell, Server Management
Posted By: Tom
Last Edit: 18 Dec 2008 @ 02 18 PM

E-mailPermalinkComments (1)

Recently, while doing some work for a client, I needed to reinstall Vista. She had Home Premium, but needed to be able to RDP. So, she purchased Business, and I did a clean reinstall on her Hewlett Packard Pavilion Elite m9402f. Sidenote: I was pretty impressed with the machine overall. Quad core Phenom, 8GB of RAM, Asus motherboard. Then again, it’s only 2 weeks old, so who knows what might happen.

I was able to install all of the nVidia forceware drivers directly from nVidia’s website. The HP site just pointed me to older versions of them, which is fine since I don’t like re-package/branded crap (see: Dell laptop video drivers).

No matter what I installed, I couldn’t get the wireless driver to install. The driver page (Here) was no help. No wireless. The labels on the riser card itself had some stuff printed on them, but Google and HPs website turned up nothing. I searched for about an hour before I took the card out and saw “WN7600R” stamped on the PCB. A quick Google search returned this:

http://certifications.wi-fi.org/pdf_certificate.php?cid=WFA6846

I guess it’s a Lite-On. A little more searching Google (about 30 minutes worth, finding nothing), led me to an old copy of the Lite-On wireless driver, which eventually let to this: The HP Hewlett Packard Pavilion Elite m9402f Vista 64 bit Wireless Card Driver.

http://h10025.www1.hp.com/ewfrf/wc/softwareDownloadIndex?softwareitem=pv-60719-1&lc=en&dlc=en&cc=us&lang=en&os=2100&product=3771771

Tags Tags: , , , , ,
Categories: Hardware, Vista
Posted By: Tom
Last Edit: 14 Jan 2009 @ 05 15 AM

E-mailPermalinkComments (3)

Recently, after upgrading a server to Server 2008, some developers (ok, about 15 developers and BAs) began complaining that a post to a 3rd party vendor was no longer functioning. One of the devs whipped up a winform app to test from the server and locally from his workstation. From his Windows XP workstation, it was fine. From the Server 2008 box (and from my Vista laptop) it failed to connect with:

The underlying connection was closed: An unexpected error occurred on a send.

Descriptive.

A full stack trace revealed:

System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host. —> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host
at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
— End of inner exception stack trace —
at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
at System.Net.FixedSizeReader.ReadPacket(Byte[] buffer, Int32 offset, Int32 count)
at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)
at System.Threading.ExecutionContext.runTryCode(Object userData)
at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Net.TlsStream.ProcessAuthentication(LazyAsyncResult result)
at System.Net.TlsStream.Write(Byte[] buffer, Int32 offset, Int32 size)
at System.Net.PooledStream.Write(Byte[] buffer, Int32 offset, Int32 size)
at System.Net.ConnectStream.WriteHeaders(Boolean async)
The underlying connection was closed: An unexpected error occurred on a send.
at System.Net.HttpWebRequest.GetRequestStream()

Keep in mind that this worked fine on XP and 2003. Vista and 2008 always threw that exception…without exception. The code was just doing a basic XML post to an HTTPS service with authentication enabled.

ASCIIEncoding ascii = new ASCIIEncoding();
string requestToSend = body;
byte[] data = ascii.GetBytes(requestToSend);
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(destination);

webRequest.Credentials = new NetworkCredential(”User”, “Pass”);
webRequest.Method = “POST”;
webRequest.UserAgent = “Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2″;
webRequest.ContentType = “text/xml”;
webRequest.ContentLength = data.Length;
webRequest.KeepAlive = false;

//Throws an exception HERE
Stream outStream = webRequest.GetRequestStream();
outStream.Write(data, 0, data.Length);
outStream.Close();

From that stack trace, I could see that the remote server was closing the connection…but, I had no idea why. Something in how it made the request was different than XP or 2003.

ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;

As it turns out, the defult behavior in Vista and Server 2008 is to use TLS first for secure connections. If the server doesn’t support TLS, it’s supposed to negotiate with the client to use SSL3. In this case, the remote server wasn’t negotiating at all…It was just dropping the connection.

http://blogs.msdn.com/wndp/archive/2006/04/12/tls_enabled_by_default.aspx

Long story short:

If you upgrade to Server 2008 or Vista, and your HTTPS XML POSTs are failing due to some strange error, try to force SSL3.

Tags Tags: , , , , , ,
Categories: .NET, Vista, Windows Server 2008
Posted By: Tom
Last Edit: 04 Jan 2009 @ 11 29 PM

E-mailPermalinkComments (3)

 17 Jun 2008 @ 8:04 PM 

I like AVG Free. It’s quiet, not a resource hog, and FREE. I don’t like the Link Scanner in 8.0. Removing it caused AVG to tell me that it had issues all of the time. So, here’s how to remove Link Scanner from AVG Free, and not have it complain about an issue.

Quick answer: Run the installer with these flags:
/REMOVE_FEATURE fea_AVG_SafeSurf /REMOVE_FEATURE fea_AVG_SafeSearch

Detailed Answer:
This works even if AVG is already installed (in my experience).

1) Open a command prompt (Start->Run->CMD.exe is my preferred method).
2) Navigate to the directory where you’ve downloaded AVG to. Let’s say it’s on your desktop.
3) Type CD DESKTOP. This assumes that your default directory is your profile directory.
If not, you’ll need to type cd \Users\Tom\Desktop (Vista) or cd \Documents and Settings\Tom (XP)
4) Type (or copy/paste): avg_free_stf_*.exe /REMOVE_FEATURE fea_AVG_SafeSurf /REMOVE_FEATURE fea_AVG_SafeSearch
5) Run through the installer (choose repair/reinstall when it asks).

When it’s done, Link Scanner should be gone.

Source: HWDot

All is well now.

Tags Tags: , , ,
Categories: Miscellaneous Software, Uncategorized
Posted By: Tom
Last Edit: 03 Jul 2008 @ 01 32 PM

E-mailPermalinkComments (0)

UPDATE: While the post below will still work, there is a better way to do this. Please check out the Microsoft Web Deployment Tool if you need to keep your servers in sync.

http://www.iis.net/extensions/WebDeploymentTool

This tool will package registry, COM, and GAC settings. It also says that it’ll integrate with VS2010, so that your developers can package the application for easy deployment on your IIS boxes. I don’t know whether to rejoice or be scared :) Back to the original article…

I had copied the IIS7 config files from an already-configured server to a new server I was building. The two servers were going to be load balanced (non-NLB). After overwriting the config files on the new server with those that I had exported from the old server, I discovered that my app pools kept crashing. I attempted to reset the domain account credentials on the app pools, but found myself getting:

hresult:0×80090005, Message: Failed to commit configuration. Bad Data.

Built-in account works, domain accounts did not. Given that I’m much too lazy to re-configure all of the application pool IDs, I began looking for a way to gracefully import settings from the other server. Turns out, there isn’t an “import” button, so to speak. I did find that using “Shared configuration” I could essentially accomplish an import.

In IIS manager, you need to export the config from the already-configured server. In IIS manager, click the Server node, and go to Shared Configuration under Management.

IIS Shared Configuration

Click “Export Configuration

Export Configuration

Enter the path you’d like to export the config to, and set an encryption key password:

Export Configuration Settings

Copy administration.config, applicationHost.config, and configEncKey.key to your new server to a temp location.

On the new server, go back to the “Shared Configuration” section and check “Enable shared configuration.” Enter the location in physical path and click “Apply.” It should prompt for the encryption password that you had set. Enter it, and reset IIS.

Import IIS Config

After resetting IIS, go back to Shared Configuration and uncheck “Enable shared configuration.” Click apply. You should see this:

Shared Configuration Warning

Click YES and it will import all of the settings from your Shared Config into the local config on your new IIS server.

At this point, all you should need to do is change your server-specific site bindings, and it should be good to go.

Tags Tags: ,
Categories: IIS7, Microsoft, Windows Server 2008
Posted By: Tom
Last Edit: 11 Apr 2009 @ 11 56 PM

E-mailPermalinkComments (7)

 21 Feb 2008 @ 2:27 PM 

Saw this link in an RSS feed today. Seems like I’m on the right track :)

http://news.yahoo.com/s/nf/20080220/bs_nf/58454;_ylt=Ai7J7Du6zVCp6.KMVWrPaIcjtBAF

Tags Tags: , , ,
Categories: Uncategorized
Posted By: Tom
Last Edit: 27 May 2008 @ 03 28 PM

E-mailPermalinkComments (0)

 20 Feb 2008 @ 5:12 PM 


It finally happened. HD-DVD has had its last few coffin nails nail-gunned into place. But what does it mean? More BluRay sales? Maybe for the next year or so, but with cable operators on the verge of delivering 100mbit+ to your door, does it matter?

The future of SD and HD content isn’t via BluRay, HD-DVD, or whatever else comes out. It’s going to be delivered via on-demand services like Netflix Watch-Now, Comcast On-Demand, and other services. Apple is heading the right way with Apple TV, but they’ve still got it wrong. Nobody wants ANOTHER box for the TV. They want to use what’s there (ie, their cable box, Tivo, Media Center PC, etc). There was a mini-debate going back and forth about this with my team via email, and I pointed out that it’s just going to take one piece of hardware for this “breakthrough.” You could almost compare it to the iPod. Apple had a good, easy to use, all-in-one (iTunes + iPod) solution for the user. They’re close with AppleTV, but not quite. HTPCs just aren’t as main stream…but, there is a box that millions of people have that does have internet access, and can have features added. The XBox 360.

After going back and forth this morning about the future of HD content, and me saying “All it will take is one consumer friendly device when the time is right,” I see this article at MSNBC come across my RSS feeds. Maybe this explains why MS didn’t fight harder for HD-DVD…they knew that it didn’t really matter in the long run.

After seeing the Netflix plug-in for Media Center by Anthony Parks (available here, I almost signed up for a Netflix account. I just hate renting DVDs. I never want to drive to the video store, shell out $5, worry about returning it on time, watching it, etc. When I’m in the mood for a movie, I usually want to watch it then. Throw some effort into it, and I’ll go play video games instead. It’s easier. If, from my Vista Media Center, I can navigate to my Netflix Watch-Now menu, pick a movie, and start watching, I’d definitely watch more movies. Hell, I’d probably have watched all of those movies that seemingly everybody on the planet has seen except for me by now (Indiana Jones for starters).

There are rumor floating around about Microsoft adding BluRay to the XBox 360 now that HD-DVD is dead. The fact that it was never integrated into the XBox is just evidence that they were never totally committed to the format. Now that it’s dead, we’ll probably see BluRay, which only makes sense because currently the best BluRay player out there is the PS3…why lose customers to another console because they just needed a BRD player? Then again, if MS would have integrated HD-DVD into the XBox in the first place (well, with the Elite), HD-DVD would have won the war…Guess we’ll never know now.

Tags Tags:
Categories: Home Electronics
Posted By: Tom
Last Edit: 27 May 2008 @ 03 30 PM

E-mailPermalinkComments (0)

\/ More Options ...
Change Theme...
  • Users » 2
  • Posts/Pages » 25
  • Comments » 78
Change Theme...
  • VoidVoid
  • LifeLife « Default
  • EarthEarth
  • WindWind
  • WaterWater
  • FireFire
  • LiteLight
  • No Child Pages.