Review: Red Faction Guerrilla (XBOX 360)
Would you have guessed that blowing the crap out of things would be fun? Yeah, probably so, and it's been done before, but wow, does Red Faction Guerrilla (RF) make it a heck of a lot of fun. I never played the first game, so this was my first introduction to the series. The story is pretty simple. A while ago, the Earth Defense Force came to Mars to kick some bad guys butts. They did just that. But apparently things have not turned out so well on Mars. The EDF are generally a bunch of pricks and have turned the red planet into a police state. (Are you seeing any real life corollaries yet? Don't worry - it gets more obvious later.) Your character lands on Mars and about 5 minutes later is embroiled in the local rebellion against the EDF. The story though is secondary really. It's not bad, but the game play is what I really want to talk about.
Just about every single structure in the game is destructible. Ok, by itself, that doesn't sound terribly interesting. But wait - it gets better. Most missions involve you tearing down buildings. Every EDF building represents their ability to exert control over the populace. So the more you destroy, the more you help free the people of Mars. Where the game shines is how many different ways you can take buildings down. You can - for example - throw charges on the wall, run away, and activate them remotely. This creates an incredibly satisfying explosion that may - or may not - take the building down. You really have to think about where you place your charges to get the maximum effect. Of course, you also have a sledgehammer. If the building doesn't come down before you run out of charge, you can wail away at it with your hammer.
One of the best moments in this game was the time I was taking down a tall guard tower (with the guards still on top - heh) with my hammer. I succeeded in knocking it down... right on my head. I laughed my rear off at that and ensured that next time I stayed towards the edge when taking the manual approach.
Another cool moment was when I driving quickly to a target and didn't break in time. This is when I discovered that yes - an armored vehicle is like one large sledgehammer. I proceeded to back up and ram the building again a few times.
What's nice too is how the EDF responds to you. Do enough destruction and they will send a few flying vehicles after you. Do a lot of damage and eventually they send heavy tanks after you. How did I discover this? I was racing away from a crime scene (wait, did I say crime scene - I mean freedom fighting!) in a zippy little humvee type car. I was feeling a bit cocky since I knew the EDF had no chance of catching up on me. I saw something new approaching me and had about one second to think "Hey, that kinda looks like a tank" when the next thing I new my vehicle (and myself) were about 200 feet in the air after taking a direct hit. I survived, barely, and booked away as fast as possible.
A lot of things are done real well in this game. The graphics are incredible, and frankly, it's nice to play a GTA type game not set in NYC (or some other Earth city). The designers did a great job creating a partially terraformed Mars. The sky - the ground - it just all plain works and works really well. The towns all have a 'wild west' type feel, which make sense as Mars in the new frontier.
Alright - so - you can't talk about this game without mentioning the obvious parallels to Iraq. The good guys come in - push out the bad guys - and then a local insurgency takes to arms against the good guys. I will say that on more than one occasion I felt a bit weird. For example, at one point you are tasked with preventing the EDF from entering a base. One of your fellow freedom fighters suggests placing explosives on the road to take out the EDF. So um yes... roadside bombs. Later on in the game you move from simple building destruction, stealing, etc, to assassination. I have no doubts in my mind that the developers were trying to create some kind of sympathy for the terrorists in Iraq, but it definitely makes a takes a bold stance.
I do have one complaint about the game. I have frequent XBox freezes when playing. A reader suggested this tip: XBox 360 Cache Clear Code. This kinda works. I now do this tip before I play. Before this, I was lucky to get more than 5 minutes in. I've got friends with the game though and none of them have seen this problem, so it may just be me. And no. This does not mean my XBox is going to red ring. Don't even think it. Period.
Oh - and one mission is a complete rip from Call of Duty 4. Did that bug me? Heck no. It was a rip from easily the coolest part of Call of Duty 4 so I didn't mind at all. I recommend this game 100%. I think it is probably my favorite game of the year so far. It may not be as deep as Fable or Fallout, but for pure devilish fun, it is incredible. It's my Crackdown for 2009.
These aren't the best screen shots. My source (Gamespress) didn't really have any 'in play' shots. Sorry about that!
Did you know Adobe had a Product Security Incident Response blog?

I didn't! Thanks to Hemant for pointing this out to me. You can find this blog here: http://blogs.adobe.com/psirt/. I've pinged Adobe to find out a bit more about how and why content shows up here. You won't see anything about the MIME issue, but as that is a coder thing not a product thing (imho), it may not make sense here. Either way - one more blog to monitor I suppose. It's not ColdFusion specific, but I'm adding it to ColdFusionBloggers.org now.
ColdFusion Security Issue - FCKEditor
Many blogs are reporting this, and frankly I don't have more to add to the already good reports out there, but be sure you read and respond to this new issue involving FCKEditor. Details:
CF8 and FCKEditor Security Threat
ColdFusion 8 FCKeditor Vulnerability
Please help spread the word.
Converting ColdFusion data for jQuery Plugins - An example
Kerrie asks:
A couple of weeks ago, I read a post you wrote on jQuery and form validation... really peaked my interest so I've been taking a look at not only the validation plugin, but many of the other great jQuery plugins... I found this one last night, and its perfect for an app I'm working on, but I cannot figure out how to return the output of a query to populate the list. In the demo they are returning the results of tvshows.php. I noticed a number of other folks were having the same problem but no solution. Might you have a few spare moments to take a look??
Kerrie, don't feel alone. I've noticed this in a few other jQuery plugins. The author will give you an example of the JSON they want, but they don't describe the JSON in pure data forms. So for example, if the JSON string is an array of strings, they don't say that. They just show it and assume you know that is how arrays are represented in JSON. JSON may be easy, but I definitely can't parse it in my head quite yet. Lets take a look at what the plugin wants:
Query of query issue with where clause/joins
A user reported this to me earlier in the week. I was sure he was wrong until I confirmed it myself. Imagine you have 2 queries you want to join using a query of query. Here is a quick sample.
Quick example of Java via ColdFusion - Reading FLV Metadata
Earlier this week a reader asked if there was a way to read FLV Metadata via ColdFusion. There isn't anything built in (that I know of!) so I did a quick search for a Java solution. I think people forget how easy it is to use Java via ColdFusion. Even if you have no intent, or care, to read FLV Metadata, please read on as the general technique is something I've done many times in ColdFusion, and could be helpful to anyone looking to do something not directly supported via CFML.
Important RIAForge Updates
Today I released two important updates to RIAForge, both thanks to Nathan Mische.
The first change is the addition of Akismet spam protection to the blogs and forums. RIAForge gets hit pretty hard by spammers, so the hope is that this will reduce some of that traffic. Yes, there is an add for Wordpress at the bottom, but for a free Akismet license, I think this is a fair trade and it will really help out project owners.
On the flip side, I've heard time and time again from visitors that we need a way to flag/rate/etc projects to help signify active projects from abandoned sites. I've said that I refuse to do this manually. We are currently at 724 released projects and there is no way I'm going to spend my time going through them and chastising project owners to update their work. (Especially when I have some 'dusty' projects myself.) Today we added a simple little modification that I think will help out. When browsing projects by category, or in search, and when viewing the detail of a project, an "active" project will have (Active) after the name. "Active" is defined as simply being updated in the past 30 days.
It isn't a perfect system - but I think it works well, especially in search. I'd like to add to this a ratings system and flag highly rated projects. So with once glance you can easily see which projects are being updated often and which have high reviews from users.
Anyway, onward and upward. Big thanks to Nathan, and hopefully the ball will keep rolling.
Are you aware of the MIME/File Upload Security Issue?
I had heard a few rumblings of this recently but had not really paid it much attention. Mike emailed me today and described how he was hacked pretty badly by it. I'll share his email and then add some notes to the end.
Ask a Jedi: CFAJAXPROXY and Managing Callbacks
Yaron asks:
I'd like to know what your preference is for using cfajaxproxy. In JavaScript, do you create one global proxy object and reuse it throughout your script? Or do you create a new proxy object within every function that generates a proxy call?
The reason I'm asking is I had multiple concurrent proxy calls that had their callback functions mixed up. Meaning, one functions makes 2 async calls with two separately defined callback functions. Unfortunately, one callback function received the input from another. Weird.
Ah, asynchronous network calls. Life would be a heck of a lot easier if everything was synchronous. Let's dig a bit into what Yaron found in case it doesn't make sense.
MAX 2009 ColdFusion Unconference - Call for Speakers/Comments
MAX is still a few months away (and I've yet to finish my presentations for CFUNITED), but it's time to begin early planning for the ColdFusion Unconference. Last year I think things went well, but there are some changes I'd like to make.
First - I booked every single possible hour (except for 2-3) with sessions. While I think this was good, it didn't leave much time for ad hoc sessions or just general bull sessions. What I'd like to do this year is leave something like 30% of the time open. This will be for any possible topic, and could be a good way to hash out ColdFusion 9 stuff that I assume will be fresh on people's minds. I'm also a big fan of show and tell. I'd like to offer some opportunities for folks to just plug in a laptop and show what they have been working on. Again, if ColdFusion 9 is out by then, or in public beta, this could be a great way to show the new shiny stuff off. Thoughts on this? Should I leave even more time open? Less?
Second - last year I was mistaken about lunch. I had thought lunch would be served at the Unconferences. This year there is no question about it - it won't be happening. So the lunch slot will always be open. Personally I plan on just bringing some food over and hanging out with the CF peeps, since we are, of course, the coolest kids on the block.
Speaking of food - some of the other Unconferences offered their own coffee and snacks. I'd like to open the Unconference to corporate sponsorship. I'm not 100% sold on this, but if a company would like to buy coffee and donuts, and maybe pizzas, I'd definitely be willing to let you speak for a few minutes at the start of each day (and to put up a small sign, whatever, something tasteful ;). I don't think the presence, or lack thereof, of food and drink will be a huge thing, but I thought it might be nice to have.
Third (or fourth? Lost count) - last year I included topics that were not 100% ColdFusion. I think this was a good idea as I think we need exposure to other technologies/subjects/etc. Any opinions on that?
So... thoughts? Comments? If you would like to speak, please go ahead and post a comment with a) your topic idea and b) your 'bad' times. Bad times being times when you are presenting at MAX or want to attend a session. I'll just pick a time outside of that to slot you in and we can hash it out later.
p.s. Also note this year I'll have not one but two helpers. Scott Stroz has offered to give me a hand again, and Charlie Griefer is my official Grunt Brute (my term, not his). CJ has offered to do anything and everything I demand of him, so I fully expect to take advantage of that and make him regret the day he met me. Just kidding. (Mostly. ;)





