Main

March 4, 2011

Getting the PlayStation Network (PSN) to accept your billing address [Bad Design] | Posted at 5:19 PM

It took me a day and 20 attempts but finally I got it to work. First, you're not alone… tons of people have this issue.

Why is this happening? PSN uses the Address Verification System (AVS) for your bank. If your bank doesn't provide this, it very well might not work at all. I use Wells Fargo, and they do have it.

For myself, I have an address like this:

1234 Street Name St
Apt 123
City, STATE 12345-1234

My statement looks like:

1234 STREET NAME ST
APT 123
CITY, STATE 12345-1234

However, PSN only accepted it in this format exactly:

1234 STREET NAME ST APT 123
CITY, STATE 12345

A few things to note:

  • Not shown here but I included my middle initial in the card name field (not sure if this affected it).
  • All uppercase. This is how it appears on my credit statement.
  • No 9 digit zip. I left off the last4 digits even though they are on my statement.
  • One line. It says in the FAQ you should keep apartment numbers on the same line, so I did.

The big things are: exactly as it appears on your statement (minus perhaps the zip), all uppercase, and one line address.

The fact that I have to do this is atrocious and is either the fault of PSN for not formatting my request properly to AVS or AVS itself and its terrible request processing.

Now I can finally get FF7.

March 10, 2010

How To: OS Fingerprinting Using Wireshark Capture and p0f [Security] | Posted at 4:00 PM

In one of my classes this week, a project we had to do entailed analyzing a Wireshark packet capture to determine what kind of attacks were being used and to identify not only the tool being used to perform the attacks but the attacker's operating system.

I will not go into detail on how to analyze a Wireshark capture nor the specifics on operating Wireshark. I only want to show you how to use p0f (Passive OS Fingerprinting software) to analyze and spit out the signatures from a capture file.

This is specific to Windows. Chances are, if you have Linux you can probably figure out how to do it…

Here's what you need:

  1. Capture file (either *.cap, *.pcap). Use Wireshark to save the output.
  2. Windows PowerShell or Command Prompt
  3. p0f.exe

I will assume the capture file is in the same folder as p0f.

image

Open up PowerShell and navigate to your p0f directory (using the cd command).

image

Now just run this command to output the analyzed results to a file. To paste into PowerShell: Right-click titlebar, Edit > Paste.

&".\p0f.exe" -s attacker.pcap -o analyze.log -l

This command will execute p0f against the "attacker.pcap" (your capture file name) and output the results to a file named analyze.log.

The –s switch causes p0f to scan the capture file. The –o switch will output to a file. The –l switch will format every entry into one line.

You should open up analyze.log and look through it!

That will display the signatures p0f found (if any).

image

In my case, the perpetrator (192.168.0.9) was using Linux 2.4/2.6 and was using Nmap to scan the target. Keep in mind that p0f doesn't identify all Nmap scans… there were four total types in my capture but p0f just had one type.

Bonus

This command sequence works for my capture. It takes the output of the analysis, selects the pertinent information (regex), displays the matches, groups it, then displays it in a nice handy list. No need to look at the thousands of lines in analyze.log!

This may or may not work for you (PS. this is my first attempt at really trying PowerShell… so this probably sucks):

&".\p0f.exe" -s "attacker.pcap" -l | select-string "(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})(:\d{1,5})? - (.*?)(?=->|$)" | %{$_.Matches} | %{$_.Value} | %{$_ -replace ":\d{1,5}", ""} | group-object | Format-table Name

It will take a few seconds depending on how large your capture is. Alternatively, just replace the call to p0f with "get-content analyze.log" if you used the above method and it will be much faster. The output will look like this:

PowerShell to the rescue

A neat little list that will display unique signature/IP combinations.

March 5, 2010

How To: Get Tversity to Stream MKV Files to Xbox 360 [It Works] | Posted at 10:55 AM

The other day I successfully got a 720p MKV file to stream to my Xbox 360. Before I get into the details, I can't guarantee this will work for you. It did for me and it could be any one of these things that will make it work for you.

The last thing I did that made it work was to go into ffdshow audio decoder settings and set it to downmix decoded audio to stereo (NOTE: before I had it set to 2.1, that didn't work!). Here's the screenshot:

image

Just try doing that. If it doesn't work, then try the rest of these steps that I did.

  1. If using Vista/7, make sure you have Windows Media Player 11 installed.
  2. Download the K-Lite MEGA Codec Pack
  3. Let it uninstall all the things it warns you about.
  4. Restart
  5. Now go into the ffdshow audio decoder settings and make these changes: change WMA 7 and WMA 8/9 to use libavcodec.

image

Go into the Tversity settings Transcoder page and change it to my settings:

image

If Windows Media Video 8 doesn't work, 9 works for me. You can change your connection speed accordingly.

These are the changes I made and it worked. If they don't work for you, just make sure you can actually watch the mkv files on your own computer. If you can't, you must be missing something.

Note: While this DID work, my computer was not fast enough to transcode a 720p file into HD WMV so it buffered a lot and was choppy. For low-end machines, I'd recommend lowering the video resolution. Also, forget about rewind/fast-forwarding… that just didn't work for me.

January 3, 2010

Giving your Xbox 360 cheap wireless [Networking] | Posted at 11:32 AM

Over Christmas break, one of my presents was to wirelessly-enable my girlfriend's sister's Xbox 360 on the cheap. Once I was done, I had saved her $65 (plus tax).

Instead of walking you through everything, I will just give you the walkthroughs I used.

Note: This is not meant for non-technical people. It would be easier for you to buy the $100 wireless adapter. However, for techies, this will save you tons of money.

Requirements

First, let me describe what you need:

  • A primary router/modem-router with wireless capability (any router will do).
  • A DD-WRT-compatible router. A Linksys WRT54G works excellently and we bought one for $35 at a local computer shop.
  • An ethernet cable

The end result of this is as follows:

  1. The primary router, in my case located downstairs, has a wireless access point configured. I enabled WPA2-Personal security on it. If your DSL modem has wireless capability, you're all set. In my case, I had to configure the primary router to get an IP from the DSL router.
  2. The secondary router can be configured two ways: a Client or a Repeater Bridge. I chose the latter because it is easier to manage the network when all devices are on the same subnet. In addition, you get an added bonus of a second wireless access point!
  3. The Xbox 360 connects via ethernet to the second router.

To setup your second router, you will need to install DD-WRT. Do not just download it and flash it, you'll probably break your router.

How to Do It

This guide is meant for using DD-WRT, since it had the most documentation and supported Repeater Bridge mode. There also seems to be a way to do this via the Tomato firmware (seems only to support Client mode right now).

What I did was follow the excellent installation guides on the wiki. Here is the list of things I used:

  1. Read up on how to identify your router and version. I used this WRT54G guide on the wiki. Just Google "dd-wrt [your router model]" and you'll get the Wiki page for it.
  2. A walkthrough for Version 8 of my router. Note: Versions matter! The guide for version 6 (my second router) was much different than version 8 (the first router).
  3. Be sure to read the notes in the Peacock thread on the forums. Note: The only real tidbit of information that I used was to know how to do a 30-30-30 hard reset. LEARN IT.
  4. The files needed for your router and version. Search it in the router database. Note: Some installation guides use custom firmware so read the installation guide for your router just in case. This was the case for me with my secondary router which used version 6 software.
  5. Read the guide on Client mode or Repeater Bridge, depending on your needs. I chose the latter because it was simpler and easier to manage.
  6. Be patient. When steps tell you to wait five minutes, wait five minutes. I used Online Stopwatch to time everything appropriately. The whole process of setting up two routers with DD-WRT and configuring everything took about 4 hours (since the second router wasn't working right at first using client mode). The end result was awesome, though!

Notes

In my case, there were some things the wiki and thread said would be a problem but turned out not to be.

The guides say that when you flash the firmware with TFTP on Vista/7 you have to time it right. This wasn't a problem for me. I simply restarted the router, ran the command to flash the firmware, then hard reset the router again. I didn't run into any problems using Windows 7.

Some guides say it's not possible to manage both routers under a Repeater Bridge configuration. That's not true, if you set up and remember the local router IP, you can still manage it. I made it easy. My primary router was http://192.168.1.1/ and the secondary one was http://192.168.1.2/ since the primary router gave out IPs after 100.

Additionally, it's a good idea to enable/disable your LAN card on the computer you're using to flash the firmware once you change wireless modes on the router. It is also a good idea to clear the cache in Firefox/IE each time you flash a new firmware, to make sure you're getting the right pages.

Initially, I had tried to configure the second router as a wireless Client but it wasn't working. It was much easier to configure the router as a wireless bridge or repeater bridge. That's what I'd recommend. For the client mode, you might need to configure advanced routing and such… for a repeater, the guide was insanely straightforward. Additionally, client mode separates your network into two subnets: 192.168.1.* and 192.168.2.* which can make it harder for devices to talk to each other. Apparently, version 6 and version 8 WRT54G routers don't work well in that situation. A repeater bridge is almost like a bypass of your second router, it doesn't assign IPs, it passes all traffic to the primary router.

Results

The results were excellent. The Xbox 360 worked great on Xbox Live and I saved them $65 compared to buying a wireless adapter. In addition, they get a second access point upstairs!

Another solution, and simpler but less flexible, is to use a laptop with a wireless card and ethernet card. Bridge the connections, hook up the Xbox to it via ethernet, and then connect to wireless. This also worked for me using Windows 7 in about 5 minutes. However, you always need the laptop to connect to Xbox Live.

October 20, 2009

RE: Where did my sidebar go? [Windows 7] | Posted at 12:19 PM

If you noticed that your sidebar will not start or doesn't work anymore there may be a simple solution.

If you have the Logitech camera software installed, that is the culprit. To fix the issue simply:

  1. Click the "Change Settings" button.

    image
  2. Click the Application Preferences button, then Settings under "Video Effects application support."

    image
  3. In the list, remove "sidebar.exe" (I removed everything, as seen below).

    image
  4. Restart your computer

That should fix it! I had the same problem and after doing this it finally worked.

If your sidebar isn't working and you don't have the Logitech cam software, I can't help you.

Via Windows7Forums

August 28, 2009

How To: Fix Zune "Device Cannot Start" Error | Posted at 3:10 PM

This problem, for me, was caused by using a USB hub connected to my computer. This did not provide enough power for the Zune so Windows notified me that the device could not start.

To fix it, simply plug the USB cable from the Zune directly into the back of your computer's USB ports as those should have enough power.

That worked for me.

(I am running Windows 7 64-bit (x64))

May 8, 2009

How To: Install Windows 7 RC1 on Parallels 3 | Posted at 1:03 PM

Windows 7 on Parallels 3

I am writing from Windows Live Writer on Windows 7 RC1 running on my iMac Parallels installation at work. I have Parallel Tools installed and I’ll show you how to do the same!

Continue reading "How To: Install Windows 7 RC1 on Parallels 3" »

February 23, 2009

How To: Get Hotmail on Outlook/Thunderbird | Posted at 3:21 PM

smtp-settings

Recently the Windows Live team enabled POP email access for all Hotmail (Live Mail)-based accounts. I found a great resource for how to add your accounts to Outlook (and with Thunderbird it's pretty much the same).

What are Windows Live Hotmail's POP3 and SMTP Settings?

In Thunderbird, for incoming you choose POP. For outgoing (SMTP), you need to add it in the Outgoing Server account and instead of SSL, choose TLS with a port 25. Type in your username as well.

Yes, it works with Hotmail-based accounts too, like my Student Partners email address.

[via Ask Leo]

February 10, 2009

How To: Generate a Clean/Friendly URL | Posted at 5:27 PM

The term "slug" was first coined, I believe, by Wordpress to mean a URL-friendly version of a post title. You see them on blogs all the time. How do you go about converting an unfriendly title into a friendly one?

Learn how on my Intrepid Studios blog where I give you code in C# and PHP.

January 29, 2009

How To: Install Operation Anchorage for Steam Using Games for Windows Live [Annoying] | Posted at 10:01 PM

It took me around 20 minutes to find any shred of information about how to install Operation Anchorage to my Fallout 3 game on Steam.

Here's how to do it:

So, first you need to download the file from Games for windows LIVE file that is at around 594MB. Once you do that, I found my files at C:\Documents and Settings\YOUR LOG-ON NAME\Local Settings\Application Data\Microsoft\XLive\DLC\425307d6\00000002\d96e635 e19d298dac6820680085d45c5d36b9130\Content

op-anchorage-data-folder

I just copied those files to X:\Steam\steamapps\common\fallout 3\Data

op-anchorage-steam-folder

When you launch it from Steam, on the first little box that appears, that allows you to play; Choose Data Files, and activate the one called Anchorage.esm in addition to the Fallout3.esm. Then launch the game.

op-anchorage-launcher

Then I started Fallout 3 from Steam. After I loaded the save I wanted to play - I started the LIVE while still being in-game. Half a second after I was connected to LIVE I got the radio signal in-game.

Note: You need to be able to see hidden files and folders to find the files, btw. Open any random folder, like My Documents. Tools -> Folder Options -> View -> Scroll down until you find Show Hidden Files and Folders.

A million thanks to Kaguya for doing all of this for us.

December 26, 2008

Using the Power of LINQ to Easily Manage Collections of Objects [Awesome] | Posted at 4:15 PM

I am currently working a WPF BlackJack implementation to further develop my object-oriented and .NET skills. I have a great book called VB 2008 Recipes. It’s all sorts of useful and I recently came across a super great way to manage my annoying collections of cards, players, etc. in the game.

Instead of implementing interfaces like IList or IEnumerator for, say, a Hand of cards, you can create a variable/property called Cards with a type List(Of Card). This creates a generic list of objects of type Card (your card class, or any other type of class you want a collection of).

Then, as in my case, you can perform some powerful functions that would otherwise take more lines of code to do. For example, in BlackJack an Ace can be valued as either 1 or 11, depending on whether or not it will make the Hand total over 21 (a bust).

The way I calculate the total value for a hand, I calculate the total of all non-ace cards and then calculate the total of the Aces based on that other total.

Here was the original code I used before implementing LINQ:

Dim Cards() As Card
Dim hasAces as Boolean = False
' Calculate total for non-Ace cards
For Each myCard As Card In Cards
    Select Case myCard.Rank
        Case Card.RankType.Ace
            ' Aces
            hasAces = True
        Case Else
            intTotal += myCard.Value
    End Select
Next

If hasAces Then
    ' Do the same thing as above, only select case Ace
    ' and figure out the total
End If

That is a simplified version. Now, witness the power of LINQ combining that Select statement into a single line!

Imports System.LINQ.Enumerable

[...]

Dim Cards As List(Of Card)

' Calculate total for non-Ace cards
' PS. I <3 LINQ
intTotal = Cards.Where(Function(c) c.Rank <> Card.RankType.Ace).Sum(Function(c) c.Value)

' Any Aces?
If Cards.Any(Function(c) c.Rank = Card.RankType.Ace) Then

End If

As you can see, WAY more manageable! The reason LINQ can do this is because the System.Linq.Enumerable namespace has Extension methods like Sum, Where, Average, Max, Min, etc. that work with any kind of collection.

Previously, I was aware of LINQ to SQL and how great that was, but I didn't realize LINQ also worked with Objects (hence, LINQ to Objects).

Like I said earlier, instead of making my Hand class implement an IList, etc. I can just make Cards a property so that when I need to add a card, retrieve a card, etc from an external class, all I need to do is:

MyHand.Cards.Add(new Card)

or

MyHand.Cards(0)

If you want more information about LINQ to Objects, check it out on MSDN!

December 9, 2008

How To: Create a Grid of Album Covers [Zune] | Posted at 1:16 PM

album-grid-zune-software

If you are looking for a way to easily create a grid of your favorite album covers or artists, there is a decent implementation of the technique in the Zune Software. You don't need a Zune to use it.

All you do is let it scan in your library, then start playing a song. Click the bar graph in the bottom right corner to go into Now Playing view. You will see the program fill in your albums like it shows above.

You can take a screen shot and cut out whatever you want.

This gave me an idea, though. There's no easy way to customize how that grid looks because it constantly gets updated. So I was thinking of making some simple software that would do the same thing, only with better customization.

It'd be a fun project and someone would find it useful, I think. Winter break work!

December 6, 2008

Sample: Using A Strongly Typed Data Source in .NET [Exercise] | Posted at 1:40 PM

From my IDSC 3102: Intermediate Programming class, here is the second program we had to complete. It was a simple Database connection project, but I used and played with a strongly typed dataset.

Screenshot

What It Is

A grading program that allows you to input grades for a select number of students, save changes to the DB, and view a semester report. The report should show a list of students and their cumulative semester average calculated using a specific formula. It should also display a "printable list" for your students to view their grades, showing only the last 4 digits of their SSN.

What You Will Learn

  • How to set up and utilize a typed DataSource (DataSet.xsd)
  • Dynamically save any changes from a DataGridView to its underlying Datasource
  • Validate and prevent data entry errors
  • Set up a Mask (i.e. ***-**-1234 for a social security number) for a  column on a DataGridView control

Download Source

Download zip (165KB)

October 12, 2008

How To: Create a Tinker Toy Tractor | Posted at 2:57 PM

This instruction set is for my HSEM 3067H class, where we get different restrictions on making instructions for a tinker toy creation. Our restriction is that we can only use text-only on a blog or wiki.

That means no pictures, so we've tried our best to standardize our vocabulary and being pretty specific on what needs to be done.

What You'll Need

  • 4 Yellow Wheels
  • 2 Big Red Wheels
  • 2 Red Rods
  • 2 Purple Connectors
  • 1 Purple Rod
  • 1 Green Rod
  • 1 Dark Green Cross
  • 1 Orange Sombrero
  • 1 Blue Wheel

Overview

What you'll be constructing today is a tractor. There are 3 parts to creating the tractor: 1) Create Back Axle, 2) Create Front Axle, 3) Insert pedal shaft, seat, and steering wheel.

At the top you will find the list of materials you will need from the Tinker toy box. Keep in mind these are the "big" tinker toys, not the smaller ones.

Assumptions

When using Big Red Wheels, we are inserting rods into the side that appears to be the inside of the wheel. The "center" is the hole that is surrounded by 4 other holes.

Part 1: Create Back Axle

The Back Axle consists of:

  • 2 Big Red Wheels
  • 1 Purple Rod
  • 1 Blue Wheel

Steps

  1. Take a Big Red Wheels and insert one end of the Purple Rod into the center hole of the wheel.
  2. Take the Blue Wheel and slide it (using the center hole) onto the Purple Rod so that it is situated in the middle of the rod. The Big Red Wheels should be able to turn without turning the blue wheel.
  3. Take the other Big Red Wheels and connect it to the other side of the Purple Rod so that it reflects Step 1.

The Back Axle should resemble the rear wheels of the tractor.

Part 2: Create Front Axle

The Front Axle consists of:

  • 2 Purple Connectors
  • 3 Yellow Wheels

Steps

  1. Insert one end of the Purple Connector into the center hole on the 1st Yellow Wheel.
  2. Repeat Step 1 for the 2nd Yellow Wheel and Purple Connector.
  3. For the first pair, insert the other end of the Purple Connector into the center hole of the 3rd Yellow Wheel (the side of the wheel that consists of only one hole).
  4. Repeat Step 3 for the second pair.

The Front Axle should now resemble the front wheels of the tractor.

Part 3: Insert Other Connectors

The Pedal Shaft

The pedal shaft consists of:

  • The Front and Back Axles
  • 1 Dark Green Cross
  • 1 Red Rod
Steps
  1. Slide the Dark Green Cross onto the Red Rod, so that it is situated in the center.
  2. Insert one end of the Red Rod into the Blue Wheel of the Back Axle. At this point it does not matter which hole you use in the Blue Wheel.
  3. Insert the other end of the Red Rod into the center Yellow Wheel of the Front Axle.
  4. The back Big Red Wheels and the front 2 Yellow Wheels should be touching the ground and the Red Rod connecting the Front and Back Axles should be parallel to the ground.

The Seat

The seat consists of:

  • Back Axle
  • 1 Green Rod
  • 1 Yellow Wheel
Steps
  1. Attach the Green Rod to the Blue Wheel of the Back Axle so that the Green Rod is perpendicular to the ground (i.e. sticking straight up).
  2. Attach the Yellow Wheel to the Green Rod, so that the Yellow Wheel is sitting flat atop the rod (i.e. use the center hole to attach).

The Steering Wheel

The steering wheel consists of:

  • Front Axle
  • 1 Red Rod
  • 1 Orange Sombrero
Steps
  1. Attach the Orange Sombrero to one end of the Red Rod.
  2. Attach the other end of the Red Rod to the Yellow Wheel of the Front Axle so that, when all 4 tractor wheels are touching the ground, the Red Rod forms a 45 degree angle with the Pedal Shaft.

Conclusion

You should now have a tractor/go-cart/vehicle. The front wheels don't really turn, but we made do with the parts we had.

October 6, 2008

How To: Get $10,000 Worth of Stuff [Digital Dorm Room] | Posted at 6:16 PM

Want lots of free stuff? Want $10,000 worth of free stuff?

Head on over to my other blog to learn more. Or just enter the damn sweepstakes. Be sure to give me credit and choose U of MN Twin Cities. Please?

September 10, 2008

Fix: BioShock Crashing On Startup [Tips & Tricks] | Posted at 3:57 PM

Recently a friend of mine tried to install BioShock and play it on his newly minted computer.

However, when he started the game, it would crash right on startup.

How to fix it?

Install the latest DirectX Runtime update.

Almost monthly Microsoft releases new DirectX updates, so make sure it's all up-to-date! After he did that, it worked fine.

August 23, 2008

How To: Fix Beyond Good & Evil (BG&E) Graphics Glitches in Vista/XP | Posted at 1:15 AM

Today I let my friend borrow Beyond Good & Evil to play it, since it’s such an awesome game. He has Vista and when we ran the game there was some graphical corruption. He has an 8800GTS and it ran the game fast, but there were some artifacts in the menus.

After some Google searching I found this post. Here are the settings that you should set in the Settings program:

Beyond Good & Evil Settings

We actually set the Shadows to High. But it seemed like Antialiasing may be the culprit, we didn’t have a chance to test it with it turned on.

Thanks jackdewey.

[Beyond Good & Evil - Graphical artifacts in Vista via VistaReadyGames Forum]

August 20, 2008

How To: Read RSS/Atom Feed Using .NET and the XmlDataSource With Or Without Namespaces [Coding] | Posted at 12:43 PM

Today I was working on my site and I wanted to show some recent blog entries on the side. Used to PHP I was looking for an RSS reader I could use. I found one but it didn’t quite work with what I needed.

Stupidly, I realized that all the things I needed were right there!

Hit the jump for all the details!

Continue reading "How To: Read RSS/Atom Feed Using .NET and the XmlDataSource With Or Without Namespaces [Coding]" »

August 18, 2008

Customize Google Calendar RSS Feeds: Sort Events, Limit Results, etc. [Tips & Tricks] | Posted at 2:21 PM

If you use an RSS reader to subscribe to people’s Google Calendar events, or you use an RSS parser to read your calendar’s feed onto a webpage, you may have realized that there’s not really any good documentation about customizing that feed. Well, actually, there IS but it’s not apparent from doing a simple Google search that you can use the Google Calendar API reference to see how to customize a feed display.

Today I wanted to do a couple things, I wanted to sort the RSS by start date and from the event happening soonest to the event happening later. I also wanted to limit the results to 5 to reduce time for parsing.

Here’s how to do it, it’s quite simple:

https://www.google.com/calendar/feeds/[account]/public/basic?orderby=starttime&sortorder=ascending&max-results=5

If you notice, all I did was add some query string values.

orderby: starttime – Order results by when they start
sortorder: ascending – Order from least to greatest (soonest to latest)
max-results: 5 – Limit results to 5 events

You can use the following query string keys to customize your RSS data: Google Calendar API Reference

Tip: If you’re using PHP and SimplePie to parse the RSS, you need to add the following line of code to prevent SimplePie from automatically sorting the items by date:

$feed->enable_order_by_date(false);

August 8, 2008

How To: Integrate Google Picasa Onto Your Own Website Using PHP | Posted at 12:19 AM

I mentioned when I posted about finishing a website that I had made some custom scripts, and this was one of them.

This assumes you have all the Google PHP scripts ready on your site, comments have been made at appropriate areas. The HTML included is meant to be styled and is just the structure I used to make it. You can see the implementation right over yonder.

Features:

It’s tested and working, make sure you configure it properly. As always, feel free to add on as you please.

This was a quick script so I’d add some more error checking if I were you. It doesn’t use classes or anything, it’s just down and dirty.

Download Source Code (.zip)

gallery.php

<?php

/************************************************************

****    Picasa and PHP Integration Script

****    Created by: Kamran Ayub (c)2008 Intrepid Studios, Inc.

****    http://www.intrepidstudios.com/

****    This is just a very barebones implementation! No fancy

****    classes and whatnot. Feel free to improve it.

****

**************************************************************/    

//set_include_path("/local/home/"); // set if Zend folder isn't in the same directory as gallery.php, e.g. it's below it

 

// Vars

$user = "YOUR_GOOGLE_USERNAME";

$pass = "YOUR_PASSWORD";

$albumId = $_REQUEST['albumId'];

$albumName = $_REQUEST['albumName']; // This is just lazy, because when you are using the newAlbumQuery method, the name of the album can be gotten anyway.

$page = $_REQUEST['page'];

$maxResults = 15; // Max Results per page

$maxImageSize = 800; // don't go over 800 otherwise you won't be able to embed the larger photos

$zend_dir = "Zend/Loader.php"; // should point to your Zend directory

 

// Functions

function Paginate($numPages,$currentPage,$albumName,$albumId) {

    // Create page links

    

    $s = "<ul class='page-nav'>\n";

    for($i=1;$i<=$numPages;$i++) {

        $class = "";

        

        // Current page?

        if($i == $currentPage) {

            $class = " class='selected'";

        }

        $s .= "<li".$class.">";

        $s .= "<a href='?albumId=".$albumId."&amp;albumName=".$albumName."&amp;page=".$i."'>".$i."</a></li>\n";

    }

    $s .= "</ul>\n";

    

    return $s;

}

 

// Picasa Web Albums

require_once($zend_dir);

Zend_Loader::loadClass('Zend_Gdata_Photos');

Zend_Loader::loadClass('Zend_Gdata_ClientLogin');

Zend_Loader::loadClass('Zend_Gdata_AuthSub');

 

// Authenticate

$serviceName = Zend_Gdata_Photos::AUTH_SERVICE_NAME;

 

$client = Zend_Gdata_ClientLogin::getHttpClient($user, $pass, $serviceName);

 

// update the second argument to be CompanyName-ProductName-Version

$gp = new Zend_Gdata_Photos($client, "Google-DevelopersGuide-1.0");

 

 

// Default page

if(!isset($page)) {

    $page=1;

}

 

if(isset($albumName)) {

    $albumName = urldecode($albumName);

}

?>

<html>

<head>

    <title>Integrate Picasa and PHP Demo</title>

    <link rel="stylesheet" type="text/css" href="base.css" media="all" />

    <link rel="stylesheet" type="text/css" href="gallery.css" media="all" />

    <link rel="stylesheet" type="text/css" href="awesomebox.css" media="all" />

    

    <!-- YUI, older -->

    <script type="text/javascript" src="http://yui.yahooapis.com/2.2.0/build/yahoo-dom-event/yahoo-dom-event.js"></script>

    <script type="text/javascript" src="http://yui.yahooapis.com/2.2.0/build/animation/animation-min.js"></script>

    

    <script src="awesomebox.js" type="text/javascript"></script>

</head>

<body>

    <h1>Photo Gallery</h1>

    

    <div class="albums">

    <h3>Albums</h3>

                

        <?php

        try {

            $userFeed = $gp->getUserFeed("default");

            echo "<ul>\n";

            foreach ($userFeed as $userEntry) {

                echo "<li><a href='gallery.php?albumId=". $userEntry->gphotoId->text . "&amp;albumName=". urlencode($userEntry->title->text) ."'>". $userEntry->title->text . "</a></li>\n";

            }

            echo "</ul>\n";

            //print_r($userFeed); // Debug

        } catch (Zend_Gdata_App_HttpException $e) {

            echo "Error: " . $e->getMessage() . "<br />\n";

            if ($e->getResponse() != null) {

                echo "Body: <br />\n" . $e->getResponse()->getBody() . 

                     "<br />\n"; 

            }

            // In new versions of Zend Framework, you also have the option

            // to print out the request that was made.  As the request

            // includes Auth credentials, it's not advised to print out

            // this data unless doing debugging

            // echo "Request: <br />\n" . $e->getRequest() . "<br />\n";

        } catch (Zend_Gdata_App_Exception $e) {

            echo "Error: " . $e->getMessage() . "<br />\n"; 

        }

        ?>

     </div>       

    <?php

    // List photos from album

    

    if(!isset($albumId)) {

    ?>

        <div class="grid">

        <p>Choose a photo album to view.</p>        

        </div>            

    <?php

    } else {

        $query = $gp->newAlbumQuery();

    

        $query->setUser("default");

        $query->setAlbumId($albumId);

        $query->setImgMax($maxImageSize); 

        $query->setMaxResults($maxResults);

        

        if(isset($page)) {

            $query->setStartIndex((($page-1) * $maxResults)+1);

        }

    ?>

        <h3>Photos from <?= $albumName ?></h3>

        <div class="grid">

        <?php    

        try {    

            $albumFeed = $gp->getAlbumFeed($query);

            

            // Number of results

            $numResults = $albumFeed->gphotoNumPhotos->text;

            

            // You should probably check if $numResults is a number...

            

            // If there are more than $maxResults, we need to paginate this...

            $numPages = ceil($numResults / $maxResults);

            

            if($numPages > 1) {                            

                echo Paginate($numPages,$page,$albumName,$albumId);

            }

            foreach ($albumFeed as $photoEntry) {

                $contentUrl = "";

                $thumbnailUrl = "";

                

                if ($photoEntry->getMediaGroup()->getContent() != null) {

                  $mediaContentArray = $photoEntry->getMediaGroup()->getContent();

                  $contentUrl = $mediaContentArray[0]->getUrl();

                }

        

                if ($photoEntry->getMediaGroup()->getThumbnail() != null) {

                  $mediaThumbnailArray = $photoEntry->getMediaGroup()->getThumbnail();

                  $thumbnailUrl = $mediaThumbnailArray[1]->getUrl();

                }

        

                echo "<div class='photo'><a rel='gallery' href='".$contentUrl."'><img src='" . $thumbnailUrl . "' alt='" . $photoEntry->title->text ."' title='" . $albumName ."' /></a></div>\n"; 

            }

            //print_r($albumFeed);

            echo "<div style='clear:both;margin-bottom:6px;'>&nbsp;</div>";

            if($numPages > 1) {                            

                echo Paginate($numPages,$page,$albumName,$albumId);

            }

        } catch (Zend_Gdata_App_HttpException $e) {

            echo "Error: " . $e->getMessage() . "<br />\n";

            if ($e->getResponse() != null) {

                echo "Body: <br />\n" . $e->getResponse()->getBody() . 

                     "<br />\n"; 

            }

            // In new versions of Zend Framework, you also have the option

            // to print out the request that was made.  As the request

            // includes Auth credentials, it's not advised to print out

            // this data unless doing debugging

            // echo "Request: <br />\n" . $e->getRequest() . "<br />\n";

        } catch (Zend_Gdata_App_Exception $e) {

            echo "Error: " . $e->getMessage() . "<br />\n"; 

        }

        ?>

        </div>

    <?php

    }

    ?>

</body>

</html>


August 4, 2008

How To: Use PHP to Grab Event Date from Google Calendar RSS [Tips & Tricks] | Posted at 7:52 PM

Recently I finished a site that required me to use Google Calendar to manage events. I thought that it would be nice to show what events are up and coming, so I used SimplePie to grab and show their calendar feed.

However, the RSS date was the date the event was added, not the date that the event happens. This makes sense but makes it a bit harder to be useful in the website.

I used some simple RegEx to get the event date… it’s rough but it works and I’ve tested it with events spanning multiple dates, all day, and specific times.

<dl>

    <?php

    // Feed: http://www.google.com/calendar/feeds/[google account]/public/basic?max-results=5

    foreach ($feed->get_items() as $item):

        

        // Grab When: date.

        $content = $item->get_content();

        $content = strip_tags($content);

        

        if(preg_match("/When: (.*!?)/", $content, $matches)) {

            $content = $matches[1];

        } else {

            $content = "No Date Found";

        }

    ?>

        <dt>Event:</dt>

        <dd><a href="<?php echo $item->get_permalink(); ?>"><?php echo $item->get_title(); ?></a></dd>

        <dt>Event Date:</dt>

        <dd><?php echo $content; ?></dd>

    <?php endforeach; ?>

</dl>


This assumes you have a SimplePie feed… you can just use the RegEx in any other implementation instead…

July 29, 2008

How To: Get Free Audiobooks Legally | Posted at 8:47 PM

I’ve gushed before about how I love Audible. I also calculated how much I saved.

But then it occurred to me… have I really saved much? Consider that your public library, University, or city library may well have that audiobook available to you completely free!

I wanted to know how many of my Audible books I could have gotten for free, even if I had used credits to buy them.

In Minneapolis, by checking the Minneapolis Public Library website and NetLibrary.com which you have access to if you have a library card, I found that only the following books weren’t available in either place:

  • Fahrenheit 451 by Ray Bradbury
  • Diamond Age (unless you like phonotapes) by Neal Stephenson
  • Snow Crash by Neal Stephenson
  • Wyrms by Orson Scott Card
  • Lamb by Christopher Moore

That’s 5 books out of 13 books. Definitely not bad! And then consider all the ones I could potentially get.

The Minneapolis Library has teamed with NetLibrary.com which lets you check out up to 10 audiobooks at a time, with the ability to play on a portable. They last for 21 days before you have to check them in or you can renew them once for another 21 days. That’s more than enough time to get through a book if you listen regularly.

Consider my girlfriend who works 8 hours a day at a computer with no interaction… she borrowed my audiobooks and we even rented some from the library (if you don’t want to rip the CDs, use that old CD player that’s been collecting dust sitting in the basement). She can get through Pillars of the Earth in a week and a couple days since it’s 44 hours. Imagine the amount of books you could “read? with access to all this free public material!

Does this mean Audible is useless? I don’t think so. I think that next time I will check if my library has the book before buying on Audible and I’ll only use credits from now on to buy books. $15/month is 1 book a month and you save: the book price - $15. It’s still not a bad deal… just be sure to check around before you decide to buy that audiobook.

July 26, 2008

How To: Scan and Store Many Pictures | Posted at 2:13 PM

Just today I was tasked with the job to scan in about 50 pictures so that we could store them online for our family members to see and for others to print out and add to my great grandma’s birthday photo album.

I thought it would take forever but in just one hour I was able to scan all of them in, edit them all for better picture, and upload them to a web album that my family could see.

What You Will Need

  • Photoshop CS or above
  • Scanner or printer with scanner
  • Google Picasa2 or equivalent photo editor/organizer
  • Google Picasa account
  • A lot of RAM

1. Scan in Photos

Here is where you can be creative. The idea is to scan in a batch of photos, as much as your scanner can fit, and keep doing it until you don’t have any left.

With Photoshop, this is real easy.

Click File –> Import –> Name of your scanner/printer

This should launch ScanGear CS. Here’s why ScanGear CS is amazing. It has a super quick preview feature to see what’s being scanned, it lets you crop the image to your liking, and it can scan with many additional features like DPI and photo enhancement.

For options I have everything set to “OFF? and “None? because I’d rather edit it directly. I use a 300dpi setting for friendly and sharp printing.

Set up the photos in the scanner and press Preview in ScanGear. You should see your photos show up. Crop it so that you get all the photos and click Scan.

Keep using Preview and Scan until you’ve scanned in all your photos into Photoshop. Depending on how much RAM you have, you may only get through 3-4 batches before your computer slows down. I have 2GB of RAM so I scanned in everything just fine.

2. Slice and Dice

Here’s where some magic happens. We will use the Slices tool to split each image into their separate photos.

Select the Slice tool, then drag a box around each photo. You may have slightly tilted photos… if that’s the case, you can use the Select tool and then transform it to be straighter. I didn’t care so I just sliced so that it cropped out any slanted edges.

Once you’ve done that, go to File –> Save for Web

It might warn you about slow response, ignore it. In the Save for Web dialog, use the Slice Select tool to double-click each slice and give it a descriptive name. These will be your filenames.

Now hold the Shift key and select each picture slice. Make sure you’re exporting using JPEG and 100% quality.

Click Save and in the Save dialog make sure “All selected slices? is chosen, not “All Slices.?

Pick a folder to save them in and voila, you’re done.

Now do the same thing to each of the other Photoshop documents.

3. Organize and Upload

As far as we’re concerned, we’re done. However, chances are you want to organize these photos and upload them to the web. I use Picasa because I like its easy-to-use interface and it’s fairly evolved feature-set. I also chose Picasa Web Albums because they have 1GB of space and allow me to upload the original sizes. For reference, my 66 pictures only take up 31MB of space on the Picasa web album.

Start up Picasa and organize your photos. Add captions, rotate them, fix their color (the “I’m Feeling Lucky? option usually is all you need), fix Red Eye, etc. Then just select all the photos you want to upload and choose “Web Album? at the bottom.

4. Alternatives

If you don’t own Photoshop but still want to streamline your editing, try The GIMP editor. It’s free and duplicates many of the functions Photoshop offers. What you may not get is a nice scanning software like ScanGear CS. It’s fast which is more than you can say about software like HP or scanner manufacturer software.

All I’m doing is batch scanning photos and slicing them to make them easier to scan and upload.

July 3, 2008

How To: Use Remote Desktop With Dynamic IP | Posted at 1:52 PM

If you’re like me, your computer at home or work constantly changes its IP address. You have to either email yourself your new IP address or sign up for something like DynDNS.org. There’s an easier, free way!

I’ve talked a bit about Hamachi before and while it was primarily conceived for games it works well for work environments, too. Hamachi is a free VPN network tool that allows users to join a network and create a VPN.

The idea here is to create your own little VPN so that you can remote desktop to your Hamachi address instead of your own IP that changes frequently.

Home Computer / Server / Always-On Computer

  1. Go and download LogMeIn Hamachi
  2. Install Hamachi, you may need to restart.
  3. Close the wizard by clicking the little X in the corner.
  4. Power On Hamachi by clicking the Power button.

    hamachi-power
  5. You may need to enter a “nickname? which is just an ID for this computer.

    hamachi-nickname
  6. Click the Network button and click “Create a new network?

    hamachi-create-new-network
  7. Enter a network name you’ll remember like “MyHomeNetwork?
  8. Enter a secure password, don’t forget it!

    hamachi-create-network-dialog
  9. Hamachi will assign you its own IP address

    hamachi-ip
  10. Your home computer is done.

Work Computer / Clients

  1. Repeat steps 1-5 above.
  2. Click the Network button and click “Join an existing network?

    hamachi-joining-network
  3. Enter the appropriate details.

    hamachi-join-network-dialog
  4. Hamachi should successfully establish a connection to the server
  5. Start up the Remote Desktop Client

    hamachi-rdc
  6. Open Hamachi and right-click your server computer, choose Copy Address

    hamachi-copy-address
  7. Paste the address into the RDC address input.

    hamachi-rdc-ip
  8. Connect and enjoy!

Now whenever both computers are running Hamachi you can Remote Desktop to either of them, assuming you have Remote Desktop set-up correctly. If you’re behind a firewall or router, make sure to forward port 3389 to the proper computer.

How To: Remote Desktop to a University Computer | Posted at 12:03 PM

Last year, I had my desktop PC in my dorm here at the U of MN. When I went home, I needed a way to check my computer for email and do various other things like work remotely.

The University blocks the remote desktop port (3389) from outside, so how did I get it working?

I emailed 1-HELP and they said that if you use this VPN connection utility, you can remote desktop to your University computer.

  1. Download and install the Cisco VPN utility
  2. Restart your computer and run the “VPN Client?
  3. Connect to the U of MN VPN network
  4. Start Remote Desktop and type in your UMN computer’s IP
  5. Voila! You should be good to go

If you are trying to remote desktop to your own university computer that’s NOT the University of Minnesota, consider searching for a VPN utility provided by your university.

Keep in mind: the VPN utility is encrypted so it works well for securing your wireless connection in public places. They also keep an eye on traffic, so don’t do anything suspicious while you’re on it.

July 2, 2008

[Fixed] 10.5.4 OS X Update Breaks Parallels 3 Networking? | Posted at 10:07 AM

I don't know if it's just my system, but since I installed the 10.5.4 OSX update this morning, I can't get networking to work in Parallels 3 build 5608 (latest) for Windows XP.

This is unfortunate.

Update: I got it working. Here’s how to fix it:

  1. Stop your virtual machine.

    parallels-stop
  2. Click Edit –> Virtual Machine

    parallels-edit-vm
  3. Click Shared Networking

    parallels-network-adapter
  4. Choose “Bridged Ethernet? and then Apply

    parallels-bridged
  5. Quit Parallels
  6. Download and re-install the latest Parallels build (5608 for me).
  7. Start your Parallels again.
  8. Once in Windows, click Devices –> Network Adapter 1 and clicked “Shared Networking,? in your Parallels toolbar or right-click Parallels icon.

    parallels-xp-shared
  9. Now you should get an IP address from your Mac.

Updated 6/3: Added pictures for better understanding.

July 1, 2008

How To: Get iSight Working With Windows XP Using Parallels 3 | Posted at 2:59 PM

At work I use an iMac which I actually do like even though I am primarily a Windows user.

I have Parallels at work so that I can test different OS browsers during development and I sometimes use Skype. I wanted to see if I can get iSight working with Windows XP under Parallels and you indeed can, originally found via StevieNova. I’ve added screenshots and a walkthrough!

  1. Right-click Parallels
  2. Go to Devices –> USB –> Built in iSight
    iSight_parallels
  3. Make sure it’s checked
  4. Windows XP should detect it but just hold on
    iSight_XP_found
  5. Download these XP iSight drivers
  6. Extract them to a folder you’ll remember, probably your desktop is best.
    isight_desktop
  7. Click the option saying you don’t want to check Windows Update and click Next in the XP Hardware wizard (these screens might appear a bit differently on your computer because I installed the drivers already). 

    isight_step1
  8. Click “Install from a list or specific location? and click Next.

    isight_step2
  9. Click “Don’t search. I will choose the driver to install.? Click Next.

    isight_step3
  10. Click “Have Disk? then “Browse…? and then go to the folder you extracted the iSight drivers to.

    isight_step4
  11. Click the iSight INF file and click Open then OK. Click Next to install the drivers.

    isight_step5

Voila, you should now have it working! To make sure, go to My Computer and click the Apple iSight icon.

isight_mycomputer

Now you should see yourself!

isight_working

Happy iSighting!

P.S. You can delete those driver folders now.

June 27, 2008

How To: Fix Windows Vista Parental Controls “Access Denied” Preventing You From Playing Games | Posted at 8:30 AM

My friend had a problem when he first started using Windows Vista where he would try to play a game like BioShock and Vista said he wasn’t allowed to play the game, it said “Access Denied?.

This made no sense because Parental Controls weren’t enabled at all and we could find no setting to disable it.

The unfortunate part is that I don’t know how to fix it. The way we fixed it was by formatting.

I don’t know if this was a problem with early Vista and has now been fixed, but if anyone is running into this problem, I don’t know how to fix it.

However, some people over at the 2K forums might have fixed it. Here’s a post that explains how to make it work (presumably). I edited it to provide maximum readage and helpfulness:

I’ve had this problem with a few games, and I am using a custom install of Vista.. basically you need to restart the parental controls service to make them work:

  1. Click Start
  2. Type in “Services.msc? in the search box, Press Enter
  3. Find Parental Controls in the list
  4. Right-click it and choose “Start?

That should enable the game to work, you can also change the default option from Manual to Automatic to make it work from now on.

To do so, double-click the Parental Controls  and change “Manual? to “Automatic? in the drop down menu.

Hope this helps enjoy Bioshock. I know this is an old post but when I was researching a fix I wasn't able to find one and had to work it out for myself and I figure this is the best place to put the result.

[Original Post via 2K Forums, Thanks nerionix!]

Hopefully that might fix it.

June 25, 2008

How To: Get IPX Games to Work in Vista | Posted at 11:04 PM

Update #1: Looking for information on how to get Red Alert 2 working on Vista? Try this RA2 patch.

If you are a classic gamer, someone who plays the old Command and Conquer series like Red Alert 2, Yuri’s Revenge, and prior, you may have realized that trying to LAN on Vista doesn’t work.

That’s because these games use the IPX protocol, not the new TCP/IP. Since Windows XP, IPX has been supported on Windows but now the new Vista doesn’t support IPX.

I did find a post about how to maybe get it working. I can’t vouch for this as a solution because I don’t use Vista (old habits die hard) but perhaps it will work for some of you.

If I had Vista, I’d post a walkthrough with his steps but alas, I do not.

Alternatively, I have my own idea (that my friend mentioned):

Use a virtual machine with Windows XP and LAN over that. That would entail everyone having the virtual machine installed (or using XP) and running XP… but… if you’re really that hardcore…

You could also dual-boot XP and Vista, switch to XP for those classic games. When you can buy 750GB for $99, well, there’s no reason not to!

June 24, 2008

How to: Play Age of Empires III over Hamachi/LAN | Posted at 7:16 PM

I ran into a problem a while back where me and my friend wanted to play AOE III over Hamachi.

If you don’t know, Hamachi is a virtual private network program but it’s real easy to use. It creates a LAN between you and anyone in your server (in my case, some of my friends). You can password protect your server and invite only people you trust.

Naturally, this means you can easily LAN with people when they aren’t on your home network. Sometimes this can be tricky but the first method I’m going to show you should work for almost all the games.

Method 1: The Windows XP/Vista Route

Windows XP

There is a little known feature in Windows that lets you specify what network adapters are most important. Many games like Age of Empires will use the network card with the highest priority.

  1. Click Start and go to Control Panel
  2. Go to Network Connections
  3. In the menu at the top, click Advanced and then Advanced Settings.
  4. You’ll see your Wireless or Local Area Connection in the list and Hamachi under “Connections.?
  5. Click Hamachi and click the Green Up Arrow to move it to the top.
  6. Click OK to close the dialog.

Now Hamachi should be configured as a higher priority connection.

Windows Vista

  1. Click Start and go to Control Panel
  2. Click Network and Sharing Center
  3. On the left side, click Manage Network Connections
  4. Press the ‘Alt’ key and click Advanced then Advanced Settings at the top.
  5. You’ll see your Wireless or Local Area Connection in the list and Hamachi under “Connections.?
  6. Click Hamachi and click the Green Up Arrow to move it to the top.
  7. Click OK to close the dialog.

Run Age of Empires 3 and try to host a LAN game. In the top corner should be your Hamachi IP address.

If it’s not the right one, then you’ll have to set it manually for the game…

Method 2: Set AOE 3 Manually

Before using this method, update to AOE 3 1.04 or above! You can find the patches here.

Here’s a way to force AOE 3 to use a specific IP address:

  1. Go to your My Documents/Documents folder.
  2. Go to your My Games folder.
  3. Go to the Age of Empires III folder.
  4. Go to the Startup folder.
  5. If there is not a user.cfg file, open Notepad. Do File > Save As… and save it as user.cfg (make sure to use “All Files *.*? not “Text Documents *.txt?) in that folder.
  6. In user.cfg (right-click, Open With Notepad) add the following line:

    OverrideAddress="5.x.x.x"
  7. Change “5.x.x.x? to your Hamachi address. This can be found by opening up Hamachi and seeing what the big numbers at the top say.
  8. This will force AOE 3 to use the Hamachi address instead of your LAN IP address.

Now start AOE 3 and host a LAN game. You should see your Hamachi address now, for sure!

[View the Hamachi AOE 3-specific wiki entry for details and also the general Gaming wiki entry for more than what I’ve covered]

Troubleshooting Network Problems

If the address shows up but your friend still can’t connect, first make sure their IP address is showing correctly.

  • Use the same version. All users wanting to play AOE 3 over network need to have the same version. To see what version you have, browse to where you installed AOE 3 and open up “patch.rtf.? At the top it should tell you what version you have.
  • Make sure your EXE is the same. If you’re like me and buy games but don’t want to keep putting in the CD for them when you want to play, you’ve “cracked? your Age3.exe file. Make sure your friends all have the same one, otherwise it probably won’t work.

June 21, 2008

Run Crysis (and other games) in SLI [How To] | Posted at 3:44 PM

On Friday, I spent most of the day figuring out and tuning my system to properly use SLi. I had been having below par performance and I thought that SLi probably wasn’t working.

Before I delve into the details, here’s my rig specs:

  • AMD Athlon 64 X2 4200+ @ 2.4Ghz
  • 2GB DDR400 RAM
  • (x2) eVGA 7900GS 256MB Video Cards
  • Windows XP SP3
  • nVidia Drivers 175.16

I’m going to go through the different things I did to get Crysis (and my other games) properly running in SLI Mode.

The first thing I tried was updating my drivers to the latest, 175.16. In short, that didn’t seem to help. I was messing with the profile and nothing really seemed to be working, I was getting about 10-15fps. Unplayable.

Here’s what I did to make it all work:

Uninstall all previous nVidia Display Drivers from Control Panel.

Use Driver Cleaner Pro to remove the nVidia files (it’s just called “Nvidia?).

Restart the computer.

Cancel all of Windows’ driver installation boxes.

Install the nVidia drivers 175.16.

Download and install nHancer.

If you don’t already have FRAPS, download and install it to measure your FPS.

Restart the computer.

Now, here’s how to make sure SLI is actually working:

  1. Open up Nvidia Control Panel
  2. Make sure you have SLI Enabled
  3. Click 3D Settings in the menu, click “Show SLI Visual Indicators?

slivisual

Open up nHancer. It should scan your computer for installed programs. In the profiles list, scroll down to Crysis and select it.

nHancer

It should look like mine above. If it doesn’t, click the profile and click the Delete (X) button above it. It should say that this is a predefined profile and you can’t delete it fully, but it will reset it to the driver’s default. That’s what you want. If the preset is still different than mine, then change the Hex Value at the bottom to my value to turn on the proper compatibility flags.

Now that we’ve enabled the SLI Load Bar visual indicator, you can start Crysis up (with FRAPS running in the background). Right away, you should see the vertical SLI bar on the right side. It’s a green bar that grows from its center, indicating whether your system is using SLI. The bigger it is, the more efficient SLI is being used. If it’s close to the center, that means that it’s mostly using a single GPU.

To test it out, load up a save game. To really test your system, you should probably keep the same settings each time you use it. My system uses these settings:

crysis1024x768

If the green bar is moving and is pretty large, SLI is working. If FRAPS shows you a decent FPS, then you know everything is as it should be.

crysis_ingame1

crysis_ingame2 

There are a few things to know if you’re still getting crappy FPS:

  • Make sure you’re using the latest Crysis Patch 1.2.
  • Crysis is very GPU intensive. I get an average of 30fps using my settings and that’s good performance. It frequently is choppy, probably due to all the physics and effects, but it’s not horrible enough to make me lower the settings. Also, I don’t have an up-to-date PC by any means hardware wise.
  • Don’t install a mod like the Natural Mod, it cut my FPS to about 20 normally. It’s meant for high performance PCs.
  • Be sure to close all open programs and ones you don’t need from the system tray. It all uses up valuable memory Crysis needs.
  • Try using the 169.44 or 169.09 drivers. They are beta drivers but they might work. I tried the 169.44 drivers and SLI first started working then. However, it was probably because I used nHancer to reset the Crysis profile to its default settings.
  • Crysis is not GPU OC friendly, try disabling your overclock.

For some reason, my water is flickering and it’s annoying. It started doing that once I used SLI. It happened in the 169.44 drivers and then when I removed them and used 175.16, it still was there. It has to do with the Shader setting being set to High (or above). If it is on Medium, it doesn’t flicker.

Whatever, it works doesn’t it?

Note: In the title I said “and other games.? All of this made my other games work properly too, like Call of Duty 4, Oblivion, and Gears of War. All of which are now playable at 1680x1050 and full effects. GoW even can reach 60fps average! Oblivion is about 30-40fps average. CoD 4 can be 70fps in good areas and dip to 20s in really crazy areas.

June 9, 2008

Using a dual screen wallpaper with nVidia DualView | Posted at 11:22 AM

Yesterday I wanted to use a wallpaper that would cover both of my screens but I couldn't figure out how because I am using nVidia's DualView with my monitors. When I set the wallpaper, it made it stretch on both screens so I had two.

The fix is actually pretty easy. You can resize the picture to your dual monitor dimensions (in my case, 3360x1050) and then set the wallpaper to "Tile" in the Desktop tab of the Display Properties. I don't know why it works, but it does!

June 4, 2008

How to: Use Linux to Save Windows | Posted at 6:25 PM

Uh oh, it's happened again. Windows has gone beserk, giving you blue screens of death, not letting you backup your files, and has all around gone down the drain. What do you do? You want to reformat, but you don't want to lose your data.

Besides storing important documents and files on a separate hard drive, I have my own solution:

Knoppix.

Knoppix is a Linux OS that runs from a single CD. Put it in the drive, boot it up, and you can backup your hard drive over the network, to an external, or to a jump drive.

You can download the Knoppix distro at this site.

Use it to browse the Internet, navigate the network, and backup files for your poor OS. Of course, it only works if your hardware is not the problem, only Windows. Obviously, if your hardware is bad... well, you can always hook up the hard drive to a working computer!

Tip: To browse your network, simply start Konqueror and type in the address bar: "smb://[your computer name]" the SMB protocol is what Mac and Linux use to connect to Windows servers. Handy!

Happy fixing!

June 2, 2008

How to: Play Red Alert 2 (RA2) or Yuri’s Revenge (YR) over LAN using Windows XP/Vista | Posted at 9:58 PM

Update #1: Try using this RA2 patch that makes the game use UDP instead of IPX. It claims to make the game work on Vista.

Update #2: The other link doesn't work, use this ModDB page to download the patch. Confirmed working for RA2! This will work in Windows 7 and Vista.

---

Today, I had my friend over and we decided to play some Red Alert 2: Yuri's Revenge. This is my favorite CNC game of the whole franchise, but it did come out in 2000-2001. As such, playing it over LAN can get complicated and confusing. That's why I created this post. To help out people who are having trouble getting LAN to work.

Step 1: The set up

I have a router in my network configuration that is hooked up to a Network Switch (not a "Hub") that all my computers plug into.

When I first tried to network our game, my friend was using my laptop on my wireless network. This didn't work, at all.

Here's what did work: I plugged both computers by LAN cable into my Network Switch, not directly into the router. A hub might also work.

Step 2: Network Configuration

The next step is to make sure the network protocols on each computer are configured. Red Alert 2 is an older game and instead of the regular TCP/IP protocol that today's games use, it uses the IPX protocol.

Hey, Windows Vista Users!

Windows Vista does not officially support IPX. In fact, from the research I’ve done it looks impossible to get IPX working. However, there’s a great WikiHow article on how to apply a 3rd-party patch to replace the IPX functionality of RA2 with UDP instead. See if that works!

The Rest of Us

For the rest of you, by default, Windows XP doesn't install IPX on your network.

Alternate Solution without using IPX: WikiHow: Play Red Alert 2 Over the Internet

To install the IPX protocol on your network connection, do the following on each computer:


  1. Go to Start > Control Panel > Network Connections

    Control-Panel
  2. Find your Local Area Connection. This is the network card that you've plugged your LAN cable into, it's usually just named "Local Area Connection."

    Network-Connections
  3. Now, right-click your Local Area Connection and select Properties.

    LAN-Properties
  4. If "NWLink IPX/SPX/NetBIOS Compatible Transport Protocol" isn't listed, then we need to install it.
  5. Click "Install..." then select Protocol, then click "Add..."

    Network-Protocol-Install
  6. You should see NWLink IPX/SPX/NetBIOS Compatible Transport Protocol listed (I already have it installed). Select it and click "OK".
  7. Return to the Property page, you should now see the new protocol listed just above "TCP/IP."
  8. Select it and click "Properties"

    IPX-Properties
  9. For the field "Frame Type" select "802.2" and for Network Number use "00000001"
  10. Click OK and Close to exit out of the dialogs.

What we've just done is added the IPX protocol to your network connection. If you don't add this, Red Alert 2 will not go to the Network page when you click Network, it will bring you back to the Main Menu.

Step 3: Configuring RA2


  1. Start up Red Alert 2.
  2. Click Options and then Network
  3. For Network Adapter, select the one that begins with "00 00 00 01" and then a bunch of numbers and letters. That's your Local Area Connection.
  4. For "Destination Network" type in "00.00.00.01"

RA2-Network-Settings

Click Back and Back again to return to the Main Menu screen. Now click Network to go to the Network Lobby. Stay there. Repeat all of the above steps on the second/third/fourth/etc. computer. Once all is said and done, you should all see each other in the Network Lobby.

If you don't see each other

If you don't see each other, make sure you're all connected through the hub or switch. Make sure all the "Network Number" fields for the IPX protocol are the same. Make sure no one is accidentally connecting to your wireless network.

Try disabling your firewall. I don’t use Windows XP Firewall when I play, so the wireless issue was a strange one. However, if you are using wired ethernet, make sure to disable any Internet Security or Firewall programs.

These were the settings and conditions under which we played successfully. You may not even have to edit the Properties of the IPX protocol if you are connected through a switch. I just made them the same just in case, I didn't test it using default settings. I think it may have to do with your router, that's why I said to connect them to a switch or hub.

Anyway, I hope this helps people in the future!

Update: A lot of people hit this page, so I’ve added pictures to help!