Nov 5 2009
Disabling Censorship in the Aussie Version of the L4D2 Demo

If, like me your a slave to the ignorance and intollerance of Michael Atkinson and are stuck with the borked, "censored", Aussie version of Left4Dead 2 - have hope. As expected, I don't think Valve has gone to extreme lengths to "lockdown" the censroship of L4D2.
It's as simple as changing a single character in 2 files.
- First, download and then run the Left4Dead 2 demo.
- Quit (you don't have to play it, the menu is enough.
- Goto your "steamapps\common\left 4 dead 2 demo" directory. On my machine this folder is in "C:\Program Files (x86)\Steam\steamapps\common\left 4 dead 2 demo".
- Edit the steam_appid.txt file and change "590" to "510".
- Goto your "\steamapps\common\left 4 dead 2 demo\left4dead2" folder.
- Edit the steam.inf file in notepad (or text editor of your choice) and change the "appID=590" line to "appID=510".
- Go back to the "\steamapps\common\left 4 dead 2 demo" folder and run the "left4dead2.exe" file.
You will need to run the game from the exe directly for this hack to work, and steam will report the game as "Left4Dead Dedicated Server" but, despite these, you should have a 100% bona-fide proper version.
Now while this works (and I am grateful that it does) I should never have had to do it. Australia needs a R rating for video games. We are one of the few countries that don't. And its not about getting raunchy or violent games - its about responsibility. 15 year old children shouldn't be playing even the censored version of the game - plain and simple. There are many other examples of games which are marketed and sold to 15+ year old children which simply shouldn't be (Doom 3 for example).
And the fact is we would have an R rating except for the illinformed and rediculous stance that the Office of Film and Literature Classification has taken with video games. Video game classification in Australia is the most strict in the Western World in terms of not having an adult's rating (R18+). Currently only Michael Atkinson, South Australian Attorney-General opposes the R18 classification introduction and is also blocking the release of a public paper that canvasses the opinion of the Australian public on whether or not an R18 classification should be introduced.
It staggers me that 1 person can get so much power to effect so many people through inaction.
It's unconscionable. Immoral. And Irresponsible.
Jul 2 2009
Sometimes, Microsoft Gets it Right (The .NET Framework 4)
Parallel Programming are two words which are not nearly used enough by programmers today. I think this is partially due to the fact that most developers are answerable to management types who simply "want to get the job done". It's also highly susceptible to deadlocks, race conditions and other problems, which are somewhat more avoidable in traditional single-threaded-apartment model applications. The problem is, that we've reached a precipice in CPU architecture where CPUs are scaling out instead of up. In other words, instead of simply working harder and faster, they're working smarter - executing many simultaneous operations.
The only problem with this is that applications need to be programmed to capitalize on this architecture - and making Multi-threaded applications easier is obviously on Microsoft's mind with the announcements of features in the upcoming The .NET Framework 4.0.
One of the main the main features I am looking forward to is the Parallel class to easily thread simple loops. This Parallel class represents a significant advancement in simplistically managing loops. The .Net 4.0 team assures us that "for many common scenarios, it just works, resulting in terrific speedups". A similar technique can be used to write parallel loops over iteration spaces of non-integral objects.
Parallel.For(0, N, i=> { DoWork(i); });
There are also overhauls to the ThreadPool class (which was in dire need of serious attention) and the inclusion of "Tasks" - simple generic types which assist developers in creating native IAsyncResult objects: this means that Task can be used as the core of a Begin/End implementation. They've also really thought about these improvments, with easy and clear ways to cancel parallel operations, as well as a number of great ways to handle Exceptions within parallel blocks.
There are of course other advantages to the 4.0 Framework, but it's the big emphasis on easing MTA (Multi-Threaded Apartment) model application development that's got me excited.
- For discussions of Parallel Extensions and/or samples, visit the forums at http://social.msdn.microsoft.com/Forums/en-US/parallelextensions/threads.
- For documentation on the parallelism constructs in .NET 4, see http://blogs.msdn.com/pfxteam/archive/2009/05/20/9633092.aspx.
- For information direct from the Parallel Extensions team, subscribe to the team blog at http://blogs.msdn.com/pfxteam.
- For videos/articles on parallelism and Parallel Extensions, visit the Parallel Computing Developer Center at http://msdn.com/concurrency.
Enjoy!
Dec 16 2008
Microsoft Warns of Internet Explorer Security Flaw
Users of the world's most common web browser have been advised to switch to a rival until a serious security flaw has been fixed. Trend Micro reports that over 10,000 sites are already infected, and taking advantage of the vunerability in IE 7.0, the most widely distributed and arguablly the most common web browser today.
"Microsoft is continuing its investigation of public reports of attacks against a new vulnerability in Internet Explorer."
But I can't help but think that people are over-reacting. Every browser has its various quirks and become susceptible to vulnerabilities from time to time. It's fine to say 'don't use Internet Explorer' for now, but it's nieve to think that any specific browser is immune.