Getting every last bit of performance out of TF2 on an older rig

I can take no credit for this configuration other then finding it and trying it out on my machine. Doubled my frame rates that I had already scaled back to lowest quality across the board and running full-screen at 1440 x 900

I stumbled across it on a post on reddit (by u/ThoughtlessKoopa) which ultimately pointed me to a file on pastebin:

The trickiest part was trying to determine which directory the end file needed to be in. Which i ultimately on the teamfortress wiki . I’ll save you a stem and quote the relevant paragraph (keep in mind it’s 6/6/2015 and I’m not likely to update this post.)

Editing Scripting Files

If on Windows, scripting files may be found in:
<Steam Folder>/SteamApps/common/team fortress 2/tf/cfg
If on a Mac, scripting files may be found in:
~/Library/Application Support/Steam/SteamApps/common/team fortress 2/tf/cfg
If on Linux, scripting files may be found in:
~/.steam/steam/SteamApps/common/Team Fortress 2/tf/cfg

Since the SteamPipe update, code can also be placed in .../team fortress 2/tf/custom/yourfoldernamehere/cfg

I will also specifically call out the start-up parameters the .cfg mentions in its comments:

// Launch options:
// IMPORTANT: Remove -dxlevel 81 from the launch options after the first launch!

// Fullscreen: -dxlevel 81 -full -w WIDTH -h HEIGHT -console -novid -useforcedmparms -noforcemaccel -noforcemspd

// Windowed:   -dxlevel 81 -sw -w WIDTH -h HEIGHT -console -noborder -novid -useforcedmparms -noforcemaccel -noforcemspd

My Machine specs according to Windows:

My old machine specs on Windows 7

Finally, I’ll just say, it’s certainly not the prettiest game of TF2 you’ll ever play, but it will be smooth like butter on an older box.

If you’ve come across some tweaks I’m missing, feel free to let me know 😉

Move up engy, dammit man!

A little bit of fun development

I installed Windows 8 recently and I wanted to check it out and I went to go look at my second monitor to see what time it was and :: frowny face :: that’s right, I forgot. No desktop gadgets, so no timer/clock. Hrmph

Then it occurred to me, “oh yeah, I know how to make that” so I proceeded to grab vs express 2012 from the windows store.

Install on all of our was flawlessly, though I am some what disappointed that they won’t be releasing the windows 8 express version until after the dust from the full blown visual studio 2012 has died down.

Anyway my only options were windows store xaml apps, so I went with a blank one and have a full screen clock now… Fun anyway, tomorrow I’ll try and get it not full screen.


A quick test of WordPress for Android on my phone

This post has absolutely no purpose other then to try out the Android WordPress app which is very nicely done.

I haven’t given it a complete once over, but it’s nice. Could use more support for the plugins, but as far as admining the cite WP features, it will do for sure.

Decent posting interface. Obviously, the biggest drawback is using the phone’s keyboard. Although it isn’t too bad with the Swype keyboard app, which happen to come stock on my phone.

I will say, it’s good enough to dash of a quickie and include media, so hopefully this will help keep the word flowing, which is always good.

I’m surprised you stayed this long, surely there’s something better to do 🙂

Here is a picture of a Coleman cooler to try out the image inclusion.


And for good measure, here is an image of Mario I just happen to have on my phone.


A hard start

I was fortunate enough to be able to buy a great house exactly where I wanted to live in December of last year. It was a long road, albeit by choice, to get here. I am a big fan of flexibility and in fact, my life for quite a while involved a lot of travelling across the country to see my family.

I’m not complaining, that is just how it went down for me and it was great. But I bought this house, which again, I really do like. Feels very homey to me now, more so every day in fact. This morning I stepped outside with my coffee and realized I was too warm in my tshirt and hoody and had to take it off. If you know me personally, you’ll likely recall that I am usually cold and winter makes me cry like a little child :'(

At any rate. Last weekend, the garage was finally emptied of all boxes and we could park in there, which is awesome (thank you Rachel!) However, there is now a ton of boxes back in the house again. Its somewhat overwhelming.

I feel like I waste too much time winding down from a day at work. Don’t get me wrong, I love working and I love developing software of any kind on any platform. But being a person, I do have some personal preferences which I consider ideal. I find when they are not met it physically and emotionally takes a toll on the energy allotment I have to live with.

Well, this stuff is not going to put itself away, I guess I just wish I felt more like doing it. I’m sure when it’s done, I’ll feel great about it, just that damn motivation.

Anyway, wish me luck, tomorrow is looking like it’s going to be a busy one. Oh yeah, and then Boy Scouts at 7:30. Make that, it looks like it’s going to be a long, busy one 😉

Impressed but not impressively- A friend’s interview code sample

So a friend of mine is currently employed at a large multi-national IT contracting company. Well, that’s not entirely true, the company does staff augmentation for many sectors, IT being one of them, and while they can provide full software development life cycle services, they are typically staff augmentation.

That being said, he’s a developer. And a developer who came to developing later in life after learning, living, and dumping a previous career. He’s been doing professional development (i.e. it is his sole income) for 6 years and of the many developers I know he’s a natural, learns quick and the “right way” and the why’s. I’d hire the man for a senior developer position in a minute.

However, the economy being what it is, he is currently working a junior developer position. By which I mean doing senior developer work for junior developer money. Hey, it’s beats unemployment, no doubt, however things could be better along the compensation lines. As I’ve said, the man does not play around and he’d be a bargain at 3 times his salary (straight up.)

Well like any sane person (well as sane as one can be and still want to be a software developer), he’s taking the initiative and looking around for other employment where the compensation will be more commensurate with his efforts, and the challenges will be developmental and not overcoming ridiculous arbitrary management process (again, you’ll have to take my word that the problems are ridiculous and that he can not change them.)

So one of the places his recruiter is submitting his resume to is requiring he write a small windows console application that satisfies the following requirements:

  • Counts from between 1 and 100 inclusively
  • When the number is evenly divisible by 3, it should print “One
  • When the number is evenly divisible by 5, it should print “Two
  • When the number is evenly divisible by 3 and 5, it should print “OneTwo
  • When the number is not evenly divisible by 3 or 5, it should print the number
  • Ok, fair enough. I love that they asked for a code sample. At the end of the day, writing the code is part and parcel for software developers and I feel that the trend of those “what did you have to do”, “what were the results of doing it”, and “what could you have done differently” interviews… Sure you need to make sure the person is a good fit for the team as far as socializing, personality, not an asshat, but if they are a good fit, can they design and/or write the code.

    Well, I’ll say you have to at least consider it for a second but the above is not that challenging. Basically it will show you know how to nest/cascade if’s and perhaps know about the modulo operator.

    I would have been more impressed if they asked for a super and derived classes using interfaces to model a car, motorcyle, and airplane. But, I don’t know the company’s true needs so I’ll give them the benefit of the doubt.

    Anyway, good luck my man!

    Below is what I did… I feel it could be more performant but is pretty readable and gentle enough on resources for most stuff (I had to take a swing right?!?) …

    static void Main(string[] args)
        StringBuilder valueBuilder = new StringBuilder();
        for (int counter = 1; counter <= 100; counter++)
            if (counter % 3 == 0) valueBuilder.Append(“One”);
                if (counter % 5 == 0) valueBuilder.Append(“Two”);
                if (valueBuilder.Length == 0) valueBuilder.Append(counter.ToString());

    “What do you need?”, a life lesson; courtesy Amazon Web Services

    “What do you need?” is an important thing to know. It allows you to more accurately predict what your costs might be for any longer term obligation. And to be obvious, this relates to pretty much everything, from how many miles you drive to derive fuel costs and a budget for them, to how much free time you have to devote to a pet. You’ve got some quantity of a finite resource, generally it’s a good thing to have some reserves at all times. And that, dear reader, never happens by accident.

    If you’ve been reading along at home, you’ve noticed that spurred on by a friend of mine’s experience migrating his web hosting to Web Services, on an Elastic Computing Cloud (EC2); that I have started a EC2 of my own using their Free Tier services.

    My feelings on the service are quite positive, it’s pretty darn awesome to have the ability to go from a single small server with a website to a enterprise size data-center and web-farm on demand. I don’t use it for such but, that’s worth something. Personally, I love having a root ssh available and the ability to run whatever service I deem fit, feels good; real good!

    However, what had happened was, I popped on over to check my account activity and was greeted with this:


    What I’d like to draw your attention to is the “AWS Data Transfer (excluding Amazon CloudFront)” group. This section contains four items:

    1. Data transfer out under the monthly global free tier
    2. Region data transfer under the monthly global free tier
    3. Data transfer in per month
    4. First 10 TB / month data transfer out beyond the global free tier

    And of those items, #4 is the little devil. Good ‘ole First 10 TB / month data transfer out beyond the global free tier.

    I’m not going to complain about the price, $9.95 sounds reasonable for the transfers. The thing is, I’ve had this account for 20 days, and even if I did use quite a bit during the “load up” phase of server configuration, I’d say honestly it would have been under 10 GB. I did have a game server running for a week or so of that. I don’t believe the bandwidth use would have been in 60 GB. I could be wrong about that.

    And there you have it, I have no idea because, I don’t know what I need. At least when it comes to pay-as-you-go computing platforms and web-enabled services. Well at least I have something to think about. I’m not really quite sure where to begin to map out my needs on this.

    I’ve turned my instance off until I can sort it all out, I have time for a free experiment, but sadly not the funds. I do have an email into Amazon Web Services Support, in particular asking how I can tell if the charges are valid and identifying where my usage was to/from. Hopefully they have the capabilities and it’s just unpreparedness on my side.

    Either way, the service is excellent and I highly recommend it. I probably wouldn’t run a game server on it without getting far better bandwidth usage scenarios.

    Another Win

    Recently, a friend of mine switched his web hosting to an Amazon Elastic Compute Cloud (EC2)  and was very pleased with the results; so much so that I decided I needed to look into this myself as a currently provide web hosting for a number of small domains and while I am satisfied with my current provider, as it turns out Amazon offers deep discounts for longer term agreements (one or three years) which are very competitive.

    As I like to do, before I get into the win, I’d like to provide a little backgroundSmile

    Amazon’s description of their service is (ref: :

    Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides resizable compute capacity in the cloud. It is designed to make web-scale computing easier for developers.

    EC2 is Amazon’s version of Virtual Private Server hosting which in a nutshell is renting a an actual server computer that is located and run by the hosting provider and they give you an administrator account to that server such that you can use to install and maintain any software the server can run, such as web servers, DNS servers, source control, even video games. The advantage to a VPS hosted environment over traditional web hosting is that you get to decide exactly what services the server runs. Traditional web hosting generally provides you with a web server and usually an FTP server, and sometimes SSH access to a remote command line. You can then upload content to and not what web server software you’d like to use, or install any additional custom services.

    Currently (1/15/2010) Amazon has a Free Tier which, if you are eligible for, you can get a linux based micro instance free for a year. This tier comes with a limited but what I feel is a generous amount of bandwidth and storage use.

    From Amazon’s AWS Free Usage Tier product page:

    AWS Free Usage Tier (Per Month):

    • 750 hours of Amazon EC2 Linux Micro Instance usage (613 MB of memory and 32-bit and 64-bit platform support) – enough hours to run continuously each month*
    • 750 hours of an Elastic Load Balancer plus 15 GB data processing*
    • 10 GB of Amazon Elastic Block Storage, plus 1 million I/Os and 1 GB of snapshot storage*
    • 5 GB of Amazon S3 standard storage, 20,000 Get Requests, and 2,000 Put Requests*
    • 15 GB of bandwidth out aggregated across all AWS services*
    • 25 Amazon SimpleDB Machine Hours and 1 GB of Storage**
    • 100,000 Requests of Amazon Simple Queue Service**
    • 100,000 Requests, 100,000 HTTP notifications and 1,000 email notifications for Amazon Simple Notification Service**
    • 10 Amazon Cloudwatch metrics, 10 alarms, and 1,000,000 API requests**

    In addition to these services, the AWS Management Console is available at no charge to help you build and manage your application on AWS.

    * These free tiers are only available to new AWS customers and are available for 12 months following your AWS sign-up date. When your free usage expires or if your application use exceeds the free usage tiers, you simply pay standard, pay-as-you-go service rates (see each service page for full pricing details). Restrictions apply; see offer terms for more details.

    ** These free tiers do not expire after 12 months and are available to both existing and new AWS customers indefinitely.

    The price, is Free for the limits above (assuming you are eligible). Were you to exceed any of the limits, you will be charged the normal fees for a linux micro instance (generally under $.20 USD an hour for the exceeded limit.) For full pricing structure see: Amazon’s EC2 Pricing page.

    The eligibility requirements may be found on Amazon’s AWS Free Usage Tier Offer Terms page, and as of this writing, are as follows. (I high-lighted one in particular for it’s relevancy to this post) :

    Terms and Conditions

    • Only individuals who have not previously created an AWS account are eligible to participate in the Offer. You will not be eligible for the Offer if you or your organization create(s) more than one account to receive additional benefits under the Offer or if the new account is included in Consolidated Billing. You will be charged standard rates for use of AWS services if we determine that you are not eligible for the Offer.
    • You must create and maintain an AWS account in good standing (including a valid credit card) to participate in the Offer. Your participation in the Offer and your use of the AWS services is subject to the AWS Customer Agreement. The Offer is a Special Pricing Program under the AWS Customer Agreement.
    • Only accounts created after October 20, 2010 are eligible for the Offer. The Offer does not apply to any use of the AWS services prior to November 1, 2010.
    • You will be charged standard rates for use of the AWS services prior to November 1, 2010 or after the Offer expires. You also will be charged AWS’s standard rates for any use that exceeds the free usage amount provided under the Offer.
    • If you have not used the AWS resources provided under the Offer during the previous 3 months, we may reclaim those AWS resources after giving you 30 days notice. Even if your AWS resources are reclaimed, you may continue to participate in the Offer using new AWS resources.
    • You may participate in the Offer for one year from the date you first sign up for any of the services provided under the Offer.
      Unused usage amounts remaining at the end of the month do not roll over to subsequent months.
    • When calculating your use of AWS services under the Offer, we will aggregate your use across all AWS regions.
    • We may stop accepting new registrations for the Offer at any time.
    • Existing free tier offers for Amazon SimpleDB, Amazon Simple Queue Service, and Amazon Simple Notification Service are subject to separate terms and conditions described on the pricing pages for those services and the AWS Service Terms.

    So, as I stated before, I was pretty excited about the offer to check out what Amazon had to offer, especially in that I am a software developer that frequently works with web services and internet connected applications and Cloud Computing is a Big Thing in my world these days. So I grabbed my credit card and signed up immediately!

    Well as it turns out I completely forgot that I did in fact already have an AWS account that I had gotten a number of years ago to play around with some of their web API’s. This made me ineligible for the Free Tier.

    I proceed to load the server up and get it running the way I wanted to and two days later I checked back at the billing page to ensure I hadn’t messed anything up during the sign-up process. I found the process to be slightly confusing. The way what you are ordering is clearly defined and great, what was not intuitive was if what I was ordering was eligible under the micro account. You can absolutely get a Free Tier instance and purchase and pay for anything above and beyond what’s in the Free Tier, no problems. Which is great, but I found myself wishing for a way to limit the products and services to those only included in the Free Tier.

    And they may actually be, I am not certain because I was not eligible at sign-up and the UI may very well have been tailored to that of a long time user. I’m certainly not going to slight them much for that, but if that was the case, it would have been nice to know before I pulled the trigger.

    At any rate, I ended up being charged $.71 USD for 2 days of the service. Completely no big deal but if money keeps adding up and being budget wise is never a bad thing. So I quickly filled out a customer support form asking about it. This was a Friday evening and I heard back on the following Sunday morning.

    Below is a portion of the response:

    Hello John,

    I’ve researched your account and it appears your AWS account was created before October 21, 2010. This would ordinarily make you ineligible for the Free Usage Tier Offer.  However, because of your limited use of our services, as an exception I have manually signed you up for the free tier services of EC2 and S3 effective January 1, 2012.

    I was completely satisfied with the outcome. I wasn’t really sure what to expect, I was not aware that I was ineligible. I figured, worst case scenario, I pay the $.71 USD and cancel the account. And I feel that Amazon would have been completely within their right to rigidly stick to their terms. But they sure surprised me!

    Amazon’s customer service is simply excellent. It’s one thing that, I feel, sets Amazon apart from its competitors. Their commitment to making their customers happy is truly one of the reasons I keep giving them my business. I’ve had to contact customer support a few times for my regular shopping using their site, and have always been happy with the outcome. It really is nice to see a company provide the same great service across all their product offerings.

    Tip of the hat, thank you!


    Two things I heard that I can’t un-hear

    Without further ado, here they are. These both happened years ago, so I’m likely paraphrasing, but here’s they retain the spirit in which they were given.

    “If I am going to be spending time reading anyway, I may as well read something that will help my career.” –Timothy Flory

    “If it took you ten hours to write a program, and you make $20.00 / hour at your day job. You’d be better off spending that ten hours earning $200.00 and spending $85.00 for an app that does it.” –Craig Lubitz

    Well, pretty good advice, that’s for sure. Nothing bad ever happened to anyone for doing either or both of those. More likely, and I can attest first hand to some degree, that both of these has helped me out over the years.

    <rant type=”tongue-in-cheek”>

    Every damn time I am in a bookstore, or browsing and I come across a tasty fantasy (I’m looking at you Elric of Melniboné) or some sci-fi gem (take a bow Mr. Asimov (mmmm, old school baby)) I am inevitably plagued by Tim’s voice and it honestly makes me feel a bit guilty.

    Likewise, every time I feel a little urge to write some not for work code, I think of Craig and feel a bit inefficient.

    Now don’t get me wrong, this is completely my own idiosynchrocies, and I have no problem doing things just because I want or need to. They both need to be applied, like anything, with moderation and it’s all good. I guess I’m just surprised that it still happens.


    Thanks fellas 🙂

    On moving, home buying, and me

    Well, it’s been much longer than I had planned between writing here. But I have a reason excuse?

    I just purchased my first home. It’s pretty exhausting and umm just really a general pain in the ass. However it is also pretty damn exciting. I’m relatively late to the game at 38 for a first home. I’ve been making enough money to get the job done for quite some time now but due to a marriage, child, divorce. I ended up doing some moving around and really grew to enjoy the freedom of being able to be where ever I really needed to be, if I really needed to be there.

    My general first time home buying view is not as great as it could have been. But it certainly was an interesting learning experience. The home that I purchased was the second home I brought into the underwriting stage. Which, for the uninitiated I’ll just say is pretty far into the “buy it” portion of the game. All the inspections, appraisals, repair work, documenting repair work, re-repair work due to lack of work permit originally had already been completed it was simply the act of jumping through the lender’s financial hoops for final thumbs up.

    The annoying part is that the financial guy should have caught the problem the second he had all the financial numbers. In a nutshell, since the whole housing market collapse debacle, the mortgage industry does a lot more due diligence (as then damn well should have been doing all along!) which basically results in many small rules changing every week. Well, absolutely your financial guy should be on top of every nuance of it. That’s his job. However in this case, since I earned my income though contracting, I had to prove a years worth of uninterrupted employment instead of a standard six months, for you average permanent employee.

    Make no mistake, I am happy to abide by any laws / rules that guide this process, but this was something that could have saved a whole lot of people a whole lot of time. In the end, the sellers did not want to risk not selling their house on the hopes of my employment not being terminated (which was never an issue, but how do you really prove that anyway.) I can’t blame them, though sadly, their house is still for sale and I live in a larger house around the corner for the same price. Sometimes gambles don’t pay off, or maybe they just didn’t care.

    It was tough getting that far invested into a house and then have it unravel. It all worked out for the best and my financial guy did in fact come through come close time, which I really appreciated and totally helped out at the exact second I needed it to!

    The second house, the one in I did in fact buy, really felt like home the second I walked into it, and the seller was great and easy to work with. I like to think I was a good buyer as well. After negotiating the price that is Winking smile

    It’s just almost a surreal feeling to sit in my basement in front of my computer and bang out a post in my own home. I honestly thought I would never buy one. It’s amazing how much life changes, and how good it can turn out being despite hard-times, penny-pinching, and life’s not-so-little obstacles.

    Overall, the whole experience is a must have. +1

    Windows 8 Preview Task Manager Screen Shots

    Well this is more of a bag of screen-shots than a blog post, but check this out. Now this is one nice taskman!

    The default opening tab is “Processes” and the CPU, Memory, Disk, and Network throb a darker yellow then there is notable activity

    Taskman - Processes

    Then the “Performance” tab which has sub views for CPU, Memory, Disk, and Networking

    Taskman - Performance - CPU

    Taskman - Performance - RAM

    Taskman - Performance - Disk

    Taskman - Performance - Network

    The “App History” tab follows and shows you how your applications are using your machine’s resources

    Taskman - App History

    The “Startup” tab details the applications that automatically run at startup and tries to assess the impact on start-up (which I assume to mean startup time during a boot or log-in)

    Taskman - Startup

    The “Users” tab breaks down the currently logged in users and the processes they have spun up and their resource usage.

    Taskman -Users

    The “Details” tab is the Old School Task Manager’s “Process” view

    Taskman - Details

    And finally the “Services” tab which details your currently running services

    Taskman - Services

    And while we are at it, here is a screen shot of the Windows 8 Preview’s “File Copy” dialog

     [Update: 11/16/2010]

    I just stumbled on a Task Tray icon that indicated my Location has been accessed. Apparently that ends up in the Event Viewer with Windows8, not terribly fancy but handy. All of the ones in the screen shots below are from Desktop Gadgets, I’m not sure which one which I find disappointing, but maybe I’m missing an easy way to correlate them.

    And here are a few of the event viewer. “Sensitive” data has been erased, but it is there if you were doing this yourself.